Go right ahead if it makes you feel any better. I’m an easy target.
In the movie Planes, Trains and Automobiles (Oxford comma be damned), Neal blames his ruined trip home on Del. Is Del trying to ruin Neal’s trip? No. Del is just being himself. He’s loud. He’s boisterous. He’s doing what he believes is right. He’s not out to ruin Neal. But Neal, being the cynic that he is, feels that Del is just a buffoon with intentions of malice. I’ve run into a few Dels during projects. And I’ve unfortunately became Neal in many of these situations. It’s not something that I’m proud of, but something that I’m working toward improving.
I recently started working on a project at work that we took in house. The project had been outsourced to a developer in South America, but was brought to use to finish that last 5%. I loathe the last 5%. The reason? It’s never just 5%. Inevitably there are foundation problems with the code. There are quirky little bugs. The application is slow. And the code? Horrific. It’s like you’re renovating a house and you hire me to paint it. I come in and immediately fall through the floor. After I dig myself out of the hole, I see water running down the wall and electrical wires dangling out of the ceiling.
I have a tendency to become bitter at this stage. A little at the project, but most of my bitterness comes at the expense of the developer who wrote the code. It’s easy to blame all of your problems on someone else. I wanted to criticize this developer. I wanted to shame this developer. I wanted to humiliate this developer. Why would I do this? Because I’m God’s gift to programming, of course. I would never make these juvenile mistakes. My code would be pristine. My code would have been well thought out. The application would have been flawless. I even feel that the developer may have even maliciously written terrible code. Maybe the developer was intentionally attempting to sabotage the project. Sometimes I have to catch myself and realize that he or she may just be beginning their journey of being a software developer and that he or she may need a little help along the way.
The issue with my hubris is that I’m forgetting a few truths. I used to be this bad (maybe even worse). I am embarrassed by the code that I wrote while I was in college. I sincerely hope no one ever sees code from the first project that I worked on. In hindsight, it was horrible. How did I overcome this? I was fortunate enough to have developers around me who pushed me and challenged me to become better. They gave me constructive criticism. It was face-to-face. There were no attempts at public shaming. I was lucky to work with developers who genuinely wanted to do good things and help others do good things. I believe this has been lost, somewhat, in the past couple of years at our company and by most developers. It’s easy to be snarky toward others with your first projects safely deleted or hidden on a thumb drive that happens to be buried in a drawer at your desk.
When I become irritated at another developer, I explain to them why I’m irritated. I open a code review on them and try to help them improve at their craft. Am I a saint? No. I sometimes exclaim hurtful comments out loud at my keyboard. I have judged the original developer of my current projects unfairly. I have refrained from attempting to belittle him or her on Twitter. After taking a little time to reflect on the situation, I simply regret that I will not have the opportunity to give them feedback. To help him or her improve at something that they love or at least care enough about to do for money. I realize my code is far from perfect, but I figure that if I can help others improve then others can help me improve.
I occasionally have to fight my urge to become Neal. After Neal has blown up at Del (one of the many times), Del goes on a heartfelt rant with this line: “I could be a cold-hearted cynic like you, but I don’t like to hurt people’s feelings.” Perhaps this world would be a bit better for developers if there were more developers out there who cared less about “burning” a fellow developer and more about helping a fellow developer improve. I’m slowly starting to learn this and make this change within myself.