Dear non-technical people,
We (developers) keep writing about this (just Google developer interruptions cost) and I think a lot of you still don't get it.
Like the recruiter who "just popped in for a second" to talk about one of the candidates he had sent over. Or the manager who had "a quick question". Or the dozens of other brief interruptions that shatter my concentration every day.
Most of my job is thinking. I think. Eventually I write a little code, but mostly it's just thinking.
If I'm lucky, it takes 15-30 minutes to get enough information into my head to start doing the hardcore thinking I need to get my job done.^1
###What's the big deal? I'm only taking up a second of your time.
Here's the problem. It only takes one brief interruption to get me out of that state. And maybe it's just me, but each interruption after is more disruptive. It starts to pile up pretty fast.^2
If I get two interruptions during a one-hour period, that hour is wasted!
Here's a timeline, assuming that I'm having a good day and it's only taking 15 minutes to get settled in:
9:00am Sit down to start working through a problem
9:15am OK, I'm in the zone now. All the pieces of the puzzle are in my head and I'm starting to make progress.
9:16am "Hey, quick question! (that could've easily been an email or chat message)"
9:18am Question is answered, back to work. (A 2-minute 'quick question' is super optimistic. But I'm trying to show you how bad even the best case scenario is.)
9:33am Back in the zone. Juggling chainsaws, amazing things are happening!
9:35am Tap, tap tap, "Hey, got a second?". (Even if I don't have a second, it's too late before I can even say anything. The interruption has already happened.)
9:40am Back to the computer, trying to remember where my thought process was.
9:59am Back in the zone. Unfortunately it's time to head to the weekly 10am meeting.
Sometimes the above happens all day long and I get nothing significant done.
Sometimes I'm lucky and I can get a couple of hours or more of focus.
###How can I help? What am I supposed to do?
The best thing is give every developer a space with a door that can be closed. Unfortunately, that's not going to happen until the people making seating decisions start to understand the problem and we don't have to write these kinds of articles anymore.
For now, we need a signal that means "I'm busy, go away."
In my case, that signal is wearing headphones. If my headphones are on, send me an email or chat message.
But, ultimately, just be aware of how distructive your interruption is and think hard about if it's really necessary.
Understand and respect that the way a developer works is completely different than the way you do.