Isn't it disappointing that all your great ideas emerge at home, whereas you rarely solve your hardest problems at work?
In this quote from the book Peopleware, Tom DeMarco and Timothy Lister remind us that programmers, designers and writers are really productive in the state that Mihaly Csikszentmihalyi has popularized as “Flow”.
Are we so efficient in this state? How typical software workplace environment disturb the flow? What tricks can we use to prevent from flow interruptions?
Statistics about productivity vs interruptions
DeMarco and Lister describe the quantitative tests they've made to measure the effects of various factors on programmers' productivity (used programming language, available space, level of noise, level of interruptions, etc).
Average performance of the top quarter is 2.6 higher than bottom quarter's. What about the difference of interruptions between top and bottom quarters?
76% of worst performers say they are often interrupted, while half the percentage (38%) of the top performers say the same. Top performer programmers are found mostly in low noise, large space, low level of interruptions environments.
Whether good environment is the cause of good programmer or a factor to retain them does not matter: you just want them with you.
Getting into the flow is difficult, getting out is too easy
The hardest tasks require several hours of 100% pure flow state but it's difficult to get there. You need 15 minutes with no interruption at all to get in the flow state. A single tiny interruptions and you're out, needing at least another 15 minutes to get back in.
Tricks to avoid disturbance in the flow
Managers vs programmers: not the same need for flow
If you're a manager you need to ask, communicate, warn, coach etc: you thrive in a world of interruptions and you think your job is about information flow optimization. But don't take your needs as others' needs! As De Marco and Lister say:
You do most of your own work in interrupt mode – that's management – but the people who work for you need to get into flow.
As a manager you should be responsible for communication and knowledge flows but also mind flows.
Rely on scheduled rituals for most of communications
Schedule most of communication moments through regular meetings, with lower setup up costs, like daily stand up meeting. Ensure those regular meetings are the efficient (on time, prepared by participants, etc).
Joke about the flow
It's very hard to explain this flow thing for people who've never needed it, so it may help to joke about it. For instance, when a typical interrupting guy try to reach one focused developer, just tell him/her to get back latter because the programmer is currently “inside the matrix“. They may smile and wait a little more, and sometimes this joke helps them have a glimpse of what flow means.
Coach weak flow practitioners
Some programmers, particularly younger ones, are very weak at managing internal and self inflicted interruptions. Once you've detected that with a programmer, you may coach her/him to various techniques for staying longer in the flow:
- remove email/twitter desktop notifications (worst thing ever)
- resist the temptation to check mail/Facebook/Twitter, prefer checking at regular intervals
- use the Pomodoro technique to manage sprints of flow state
… but frequency of communications matters
Be careful not to throw the baby with the bath water while chasing down interruptions in your environment. As people from the the MIT Human Dynamics Lab measured: frequency and patterns of communications are the single most important factor of a team success.
To that respect, face to face communications and side conversations between members are crucial.
What about you?
How do you resist from interrupting your knowledge workers from their flow state? What tricks and heuristics do you use to balance a really urgent need for interruption with the related loss of focus and productivity? How do you create a workplace that optimizes both communication flows and mind flows?