“The people that work for you need to get into flow.” — Peopleware

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”. A more explicit extract is:

“The people that work for you need to get into flow. Anything that keeps them from it will reduce their effectiveness.”

Are we so efficient in this state? How typical software workplace environments 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 in the flow is difficult, getting out is too easy

The hardest tasks require several hours of 100% pure flow state but it’s hard 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 of flow, 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 take your job as 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 most efficient (on time, prepared 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 with them. 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 litter more, and sometimes this joke helps them having 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

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?


This post was first published on the blog Behind that Quote.

Email me when Software Development publishes stories