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.