Awhile back, on a completely different blog, I discussed the tendency to ridicule others code while simultaneously being self-conscious of our own. I personally am very self-conscious about my code. I am constantly nervous that someone will call me an idiot, and even worse, be correct. I am extremely thin skinned and programmers tend to lack tact, so I tend to shy away from sharing my code unless absolutely necessary, and when I do I tend to be very self deprecating as a defense mechanism.
Anyway, as is so often the case, Google has something very smart to say on the matter. Maybe not Google as a whole, but at least two guys who work for Google. Two guys who work for Google and were also two out of the three creators of Subversion. In my opinion that puts them in the pretty smart category.
They talk about a lot of things in the video, but at the start in particular they discuss precisely what I was trying to talk about, but from the opposite angle. They bring up how difficult people find it to share their code. My blog post was about the flip side of the same coin, where people feel the need to ridicule other people’s code. The point is basically the same: you need to drop the ego and think of programming as an iterative team based effort. Really it isn’t even exclusive to software development. Everyone makes stupid mistakes, the people with huge egos are just better at hiding them. I’ve witnessed this first hand in fact, and it rarely improves the performance of the team as a whole. Honestly some of my greatest fuck ups could have been easily avoided if I wasn’t too proud to admit I needed help.
This idea of a “rock star” or “genius” programmer is out of tune with the reality of software development. I have actually seen the phrase “rock star programmer” used in job postings. I can’t help but wonder if the people who made those job postings understood what they were asking for. You don’t want a developer on your team who disregards everyone’s ideas, who disappears for months hoarding their code away until it is “done” to avoid embarrassment, who looks down their noses at anyone who doesn’t constantly stroke their ego. Even if a self proclaimed rock star programmer is as good as they think they are, they still aren’t going to get very much done all by themselves.
It’s not a crime to be proud of your work, and it is not bad form to offer constructive criticism. It’s a thin line though, and I don’t think many people walk it well, myself included. It is easy to mistake doing things differently for doing things wrong. It’s easy take a simple problem and over complicate it just to demonstrate how impressively you could solve it, assuming it was a problem that ever needed solving. It is painful to see it happen, especially when you realize you’re the one doing it.
No Comments