This blog post got started with a tweet.
That tweet got retweeted a lot by developers. And system administrators. And database administrators. And any creative type.
As of December 7th, 2012, it had been retweeted over 500 times, a personal best. Obviously I struck a chord that resonated with a lot of people.
Developers should have 4-6 hours of uninterrupted activity each day. Each 3-5 minute interruption costs more than you can imagine.— Daniel Greenfeld (@pydanny) December 3, 2012
Why did this tweet resonate with so many people?
What I said in that tweet was not new - dozens if not hundreds of others have tweeted similar thoughts before and gotten many retweets. Heck, it's been written about in blogs and articles for years, either as a huge rant or often as an effort to politely educate others on how to set up a developer/operations/creative shop.
I think this is because developers/engineers/creatives (and good managers) know that even a tiny distraction to someone "in the zone" takes more than just the 3-5 minutes it takes for you to finish a question and get an answer. Plus, because you are trying to remember the pieces in your head, you won't be able to give this issue your full attention. Which causes a whole other set of issues.
We know this. Good managers know this. Good companies live off of it.
And yet this remains a huge problem for many of us because the distractions keep happening. Maybe it's because your manager doesn't understand this issue, or you have a team mate who can switch in-and-out of the zone with impunity. Or because you foolishly leave the chat/IRC/phone on and you get pinged.
How do we fix it?
I know this sounds depressing, but I'm being realistic. Here's some reasons that apply:
- Unless you are fortunate enough to be working on a solo effort, you are working with other developers/engineers/creatives. And if they can't ask you questions or inform you about critical stuff then you or they can waste hours.
- Meetings, short or long, online or in person, are a necessary part of any operation. If not with your boss or underlings, then with clients or users.
- Your boss/co-workers/underlings/kids/pets/parents don't get it that you can't be interrupted.
- As a freelancer, you can't be inaccessible to existing or potential clients.
No really, how do we fix it?
Doesn't matter how frequently you ask the the question (or rant about it), I don't believe this problem can be really solved. However, here are some possible mitigations:
1. Maker's Day
My friend, Craig Kerstiens describes how Heroku gives engineers a full day each week (Thursday) to focus on getting stuff done. No meetings, no standup, just 100% uninterrupted quiet time to focus on making stuff.
Suggest this at your company and see how it goes!
2. Blocks of Time
As of 2010, Eldarion broke up their work day into at least two sizable chunks of uninterrupted activity. Between the chunks you communicated with co-workers. The advantage of this approach is if you went down the wrong path or someone had a critical question, the period between chunks addressed this issue.
In theory this is how a lot of places work (lunch being the break). The reality is that the distractions often still pile in. For Eldarion it worked because everyone was remote.
3. New Desk Location
If working at an office, asked to be moved to a place with less foot traffic. The downside to this is you can end up in noisy, cold, dark places.
4. New Job
Switch to a new job that promises less distractions.
Maybe I'm wrong
I'm more than happy to be proven wrong.
Maybe there is a way to get 4-6 hours a day of uninterrupted maker's time every work day.
If you've got any ideas, let me know!