A little disclaimer. My wife is going to take this personally and make it about her. But it’s not about her. Or the kids. It’s about the cat that constantly tries to crawl onto my keyboard. It’s about the incessant phone calls from nasty people. It’s about my mind that wants to wander to finishing projects on the house. It is about emails and computer glitches (right now my linux server doesn’t see the network..that’s an interruption). Client emergencies and angry instant messages. Angst. Yes. It is also about the thuds on the floor. The crying. Little people learning through physics, ye ol’ school of hard knocks. It’s about life’s necessary appointments and cooking dinner. Flooded bathrooms and washing machines.
All that said, a good friend of mine use to keep a piece of paper taped to the wall of his cubicle. It read:
No success at work can compensate for failure in the home.
That said, if I fail at work, I cannot provide for my family. There must be a balance. I will continue to bound up the stairs when I hear a thud following by a painful scream. I will drop everything to answer my wife’s whims. But I must keep a balance whereby work is not hindered. The cat is on notice though. Keep watching the video to see if it continues to land on all fours as I cat-apult it from my desk.
For years I have tried to explain, without success, to various non-programmers that a small interruption costs me 15 minutes of time. "But it will only take a second of your time." That second might be for a phone call, an office joke, move the laundry from the washer to the dryer, a technical question on a non-related project…the topic does not really matter, the interruption is the problem.
Logan Koester of Skin Deep writes about Overcoming Coder’s Block with some excellent advice and references none other than Joel on Software with Just a 60 second distraction can cost a programmer 15 minutes. Once again, I connect with Joel Spolsky very well! If you have a programmer in your life as his/her employer, spouse, or friend, please read this article; it’s the last paragraphs that are important.
Here’s the simple algebra. Let’s say (as the evidence seems to suggest) that if we interrupt a programmer, even for a minute, we’re really blowing away 15 minutes of productivity. For this example, lets put two programmers, Jeff and Mutt, in open cubicles next to each other in a standard Dilbert veal-fattening farm. Mutt can’t remember the name of the Unicode version of the strcpy function. He could look it up, which takes 30 seconds, or he could ask Jeff, which takes 15 seconds. Since he’s sitting right next to Jeff, he asks Jeff. Jeff gets distracted and loses 15 minutes of productivity (to save Mutt 15 seconds).
Now let’s move them into separate offices with walls and doors. Now when Mutt can’t remember the name of that function, he could look it up, which still takes 30 seconds, or he could ask Jeff, which now takes 45 seconds and involves standing up (not an easy task given the average physical fitness of programmers!). So he looks it up. So now Mutt loses 30 seconds of productivity, but we save 15 minutes for Jeff.
Every programmer has their magic equation for creative productivity. For instance, I need a warm beverage in hand, my day has to begin early, an uncluttered work environment, a computer that moves as fast as I do, minimal white noise, and a well defined goal.
8 thoughts on “Kill a programmer – ask them a question”
I agree – I read Joel’s article too – it is very true.
I can be in the middle of balancing a whole bunch of variables and short term things in my brain as I solve a complex programming problem, and then the kids have a fight in the next room (where my wife is seated at her pc). I am “programmed” to tune it out and initially I ignore it – but then the cries turn to screams and howls as injustices are performed and I am forced to become involved. Unfortunately I normally do that with some angst at my wife’s perceived lack of intervention and the fact I am interrupted. This causes two losses of productivity, first I lose the spot I am in and have to back up and get into that zone again. Second I have to now set more time aside for “family peacemaking” to set right the wrongs caused by the way I handled it. The first I can do nothing about (short of physically relocating my office out of my home or sound proofing and locking the room), I am working on the second.
Judith probably breaks up fights all day and night long. I know I do. Sometimes I let the fight go just to see how the children will work it out for themselves. Sometimes I’m busy and can’t get to it immediately. Sometimes I am just so tired that I have to mentally chill before I even attempt to intervene. Wear earplugs.
[…] I feel like I live in some bizarre government sponsored experiment to see how much adversity a mind can take before it breaks. Build him up! Knock him down. Build him up! Knock him down. Give him as much as he can possibly take, oh, then give him some more. Oh, I know! Give him a job that requires extreme concentration, and has been documented that a 60 second interruption causes a 15 minute loss of productivity (see also), then let’s give him enough work for 2 or 3 people but give him less than a normal work day to do it and make sure that he is interrupted at least once every 3 minutes. […]
[…] high, a programmer can get into such a zone that all else disappears. That’s one reason asking a programmer a question can be terribly detrimental. The mental exercise can be strenuous and leave your head throbbing. Anyone that doesn’t like […]
[…] Telecommuting!Kill a programmer – ask them a questionTN Sales Tax […]
I actually run a site called http://www.kill-a-programmer.com 🙂
And I’m a programmer aswell, hehe.
Nice work Chris!