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.