Programmer's Productivity

A meditative piece in which I explore the notion of productivity as applied to the craft of a software developer (and other such crap).

Yesterday I spent twelve hours hunting down a most bizarre bug. I flipped through literally thousands of lines of code, I set dozens of breakpoints only to realize that those places were being hit hundreds of times, and it is virtually impossible to debug it that way. I tried everything I could think of, but nothing helped and by the end of the day I was totally exhausted and pretty much ready to choke somebody.

I made no progress whatsoever!

So, at about 8 p.m. I decided to take a break. I stopped the hunt, prepared myself a tiny cup of light and at the same time velvety espresso made of South American premium Arabica beans, made myself comfortable, took a big sip of coffee and let my mind wander…

…Ecstatic feelings started filling up my heart, the time paused, allowing me to experience every bit of the surrounding reality in vivid intricacy. I could touch the sound waves coming from two fans in my computer, I could taste every single red photon spitted out by the stupid optical mouse…

I shook my head (nice coffee!) and, oh miracle, I spotted the defective piece of code in my mind. I immediately jumped to the computer, grabbed the keyboard and started typing… In a few seconds the bug was gone - one line of code did it. That was the only line of code I managed to write in a whole long day!

Now tell me, what is the measure of a programmer’s productivity!? Definitely not the number of lines of code written per day! In fact, I think those programmers are really productive whose ratio between added and removed code is approaching zero.