This is a story, based on true life, on how you turn from a happy programmer into something sinister.
Stage 1: The happy creative programmer
You’re developing a new exciting product. You’re the senior programmer in a small and talented team. You’re responsible for a lot of the core functionalities - you get to write a lot of code and make a lot of the important design decisions. Things go swimmingly, and you’re having the time of your life.
Stage 2: The proud father
You and your team ship the first version of the product. Despite the highly embarrassing bug in the installer, someone buys it. You’re now spending most of your time on improvements, bug fixing, and polishing the existing features. It’s not quite as fun as implementing all that new stuff, but still very rewarding. It’s your baby, and you want to take care of it.
Stage 3: The product guru
You’ve ironed out the biggest kinks, and the product is selling well. Your user base is growing, and you’re busy planning what cool features to put in the next big release. However, with the growing number of users, the support requests start rolling in. The support engineers don’t yet quite know the product, but you’re happy to help (your baby). By now, there’s enough questions and inquiries coming your way to be a bit of a distraction, but you can still find stretches of a couple of hours or even a full afternoon here and there to work on the next version.
Stage 4: The grumpy asshole programmer
The next big version ships. The customer base keeps growing still, and together with it, the volume of tricky problems grows fast. The support staff is competent enough to take care of all the easy cases, so you’re left with the hairiest problems. Since you’ve been so helpful in the past (your baby), many people have developed a habit of just coming to you when they encounter a problem they can’t immediately handle themselves. You try to counter by producing documentation, and it helps a little. Still, you spend an increasing fraction of afternoons with a queue outside your door.
Finally, you develop a fatalistic attitude about getting anything done. You’re still the lead developer. How in the hell are you supposed to get anything done when there’s someone constantly bothering you about how this-or-that works, requesting help in troubleshooting customer issues, and demanding estimates on how long it would take to add this-and-that feature? Before, you got almost no email. Now, you’re afraid to open your email. In fact, you avoid opening your email before lunch just so you could get something done. In response, people begin calling your mobile and checking by your office if you don’t answer their email in 10 minutes. You stop even trying to code, because you would be interrupted anyway.
You stop being nice to people, hoping that they would in turn stop asking you things. It doesn’t help, since you’re the resident expert on the product. You throw empty Pepsi cans at people coming to your door, and fantasize about throwing full ones. You hide in meeting rooms and turn off your phone. In the evenings, you fashion tiny phallic figurines out of Blu-Tack and stick them on product managers’ doors. None of this helps much, but it kind of makes you feel better.
No matter what you try, you are trapped and there is no escape. You have become the grumpy asshole programmer.
If you liked this, click here to receive new posts in a reader.
You should also follow me on Twitter here.
Comments on this entry are closed.
{ 28 comments }
Blogged: The Birth of the Grumpy Asshole Programmer: http://bit.ly/uJ0i9
This comment was originally posted on Twitter
I think that’s one of the biggest problem with most Open Source software: everyone wants to implement new features and flashy things, but no one wants to spend time fixing bugs that doesn’t concern them directly.
That’s an interesting observation – I had the typical corporate setting in mind when I wrote this. The tendency to like building new things is behind both phenomena, it’s just that in the corporate world you have no choice. In volunteer projects, you can just drop out and do the next interesting thing. No need to become so grumpy: if you don’t like it anymore you just move on. And yes, it is a big problem in open source projects, especially the smaller ones.
Many programmers don’t know what they’re signing up for when they start work with a new product. They love the first part where they get to build the new things, and they aren’t maybe quite aware, or at least haven’t accepted, that the second and less exhilarating part is going to come and their role will change.
@hashedbits: I love your post http://bit.ly/uJ0i9 !
This comment was originally posted on Twitter
Hey that totally happened to me, i am right now got myself out of job and self healing, My mind has struck the vaccum its not moving out. I enjoyed your post thanx
The Birth of the Grumpy Asshole Programmer http://bit.ly/2FmpYU
This comment was originally posted on Twitter
The Birth of the Grumpy Asshole Programmer http://bit.ly/2FmpYU // Me senti até mal lendo isso
This comment was originally posted on Twitter
This is quite true http://bit.ly/2FmpYU
This comment was originally posted on Twitter
The Birth of the Grumpy Asshole Programmer – http://bit.ly/2FmpYU (via @DZone)
This comment was originally posted on Twitter
hits a little too close to home http://bit.ly/2FmpYU
This comment was originally posted on Twitter
@CarecaOnLine muito bom, lembrei de vc qdo assumiu o f***ing NBuddy HAHAH http://bit.ly/2FmpYU
This comment was originally posted on Twitter
The Birth of the Grumpy Asshole Programmer – http://bit.ly/1QAIj9
This comment was originally posted on Twitter
so true so true…have encounter many in my working life..! http://bit.ly/2FmpYU
This comment was originally posted on Twitter
“The Birth of the Grumpy Asshole Programmer” – http://bit.ly/uJ0i9
This comment was originally posted on Twitter
Some really nice thoughts. I think this one might have struck a nerve. Thanks for posting.
The Birth of the Grumpy Asshole Programmer http://digg.com/u1EHd0
This comment was originally posted on Twitter
So true: The grumpy asshole programmer http://bit.ly/2FmpYU. Hilarious…
This comment was originally posted on Twitter
So true: The grumpy asshole programmer http://bit.ly/2FmpYU. Hilarious… (via @thaberkern)
This comment was originally posted on Twitter
Wie wahr: The Grumpy Asshole Programmer http://bit.ly/2FmpYU
This comment was originally posted on Twitter
@dhoelzgen Das hier solltest du lesen! Es geht Berg ab mit dir. Du bist schon auf Stufe 3!!! http://bit.ly/49EbyW
This comment was originally posted on Twitter
This is a feeling
I know well… RT @thaberkern: So true: The grumpy asshole programmer http://bit.ly/2FmpYU. Hilarious…
This comment was originally posted on Twitter
Brilliant: RT @stunami: RT @denderello: So true: The grumpy asshole programmer http://bit.ly/2FmpYU. Hilarious… (via @thaberkern)
This comment was originally posted on Twitter
So true: The grumpy asshole programmer http://bit.ly/2FmpYU. Hilarious… (via @thaberkern, @denderello, @stunami)
This comment was originally posted on Twitter
That’s funny, because stage 4 is exactly when the product begins to become valuable.
Ivan, right on. In stage 4 you start getting all those “good problems”. But for the lead developer, it’s hard to see what’s so good about them. All he sees is the problems. Stage 4 is also when a smaller and smaller portion of the total goodness is coming to the lead developer…
leyendo: The Birth of the Grumpy Asshole Programmer http://icio.us/fnagjf
This comment was originally posted on Twitter
A bit of business acumen would be wise to apply. When your baby becomes popular you need to grow with the demand, and that means get out of your cubby hole, uninstall your IDE, and start managing your new relationships.
If you want to stay in your zone then hire some business managers to do the relationship building for you – and that requires you relinquishing strategic control.
Seen this happen first hand with a univerity lecturer who wrote some software that became quite successful, got to the point where he could no longer cope, fortunately he got some professional services who incorporated his company and his software became a global success for almost a decade.
Also, somewhere between stage 3 and 4; the business managers will get worried about having ‘all their eggs in one basket’ by just having a single product guru, so they hire a bunch of under-experienced programmers they believe will be able to graft-in on day one, and when they struggle, they’ll think it was your fault for making the system too complex and decide to make someone else the product leader. Because now all the hard work is done, they can get away paying someone cheaper to maintain it.
{ 4 trackbacks }