Friday, November 28, 2008

Flow - Building Lean Teams

There's few things more detrimental to the productivity of your thought workers than the interruption of flow, yet I think that so few teams recognize its importance. Demarco and Lister describe flow as

"a condition of deep, nearly meditative involvement"

Flow is a requirement in what we do. It's extremely productive time that increases quality, creativity and an overall feeling of accomplishment at the end of the day. For most, this state of immersion takes a bit of time to get into, but takes a split second to get out of.

In my experience, email and IM are disruptions that you can more easily tune out, or just flat out remove by turning them off. But the biggest disruption of flow that I've come across is when someone stops by a co-worker's desk with a "Hey, do you have a second?" Instantly the flow is lost. Your second is given to that person, at the expense of 15 minutes more of your time to get immersed again.

Say you have 5 of those interruptions a day (which is probably pretty conservative for most people), you've got nearly and hour and a half of interruptions. Tack on a few meetings, and you've got a half of a day of productive time on what was scheduled at 8 hours.

If you have taken the time to recognize this issue, often times what the response is, is to start padding scheduling. You start to say, "Jim is only productive 50% of the day". This results in timelines being pushed out or features being cut, and the overall sense that it takes forever to get stuff out the door. Not only that, but Jim doesn't want to be 50% productive. He want's to be 100% productive. He wants to feel like he knows where his day went.

It's easy to measure your flow. You can count the number of uninterrupted work hours per day. If you make it from 9-11 AM without an interruption, you've got 2 hours of uninterrupted flow. I'd challenge you to try measuring that with your team. I'd bet you'd be surprised at the ratio of uninterrupted hours to hours worked.

What can you do to curb interruptions? Designate certain hours in the day when people are "publicly available". Organize your space so that it's conducive to flow and impedes interruption.

If you need to make a case to higher-ups on the impact of flow, you can try measuring a developer who has usually low uninterrupted work hours, and put them up in an office for a week. Measure their uninterrupted work hours then. Say that they usually have 3 uninterrupted work hours for every 8 they work when they aren't in an office, but they've got 6 uninterrupted for every 8 that they work when they are in an office. By rearranging you've made them 50% more productive.

Protect the flow.


Anonymous said...

Very true. I would love to hear more of your thoughts on how to protect your flow from other disruptions, like twitter, news on your igoogle homepage, email, im, rss feeds, those post-it notes of late "to-dos" on your desk, etc. Do you really turn these off during the day? Do you not find them that distracting? Is this less interupting to your flow? I know I struggle with it.

Jim Fiorato said...

For things like IM, RSS, Twitter and news, I think that's all about discipline. For me, it's a matter of keeping track on my own of productive hours and making sure that it's acceptable, and I feel good and accomplished at the end of the day.

The _only_ way to control those things is having the discipline to turn them off. Every person has their own levels of discipline. Some can leave those on all day, and be just fine. You need to determine the best way for you to be disciplined about it.

As a leader of a team, you need to trust that the great developers that you hired have the discipline to control these distractions, and be prepared to follow up with them if they're doing a poor job of it. But keep in mind, that RSS, Twitter and News can be really productive things to do, so you need to be sensitive to when they are distractions to higher priority work.

As far as tasks go, or your back log of to-do's; Those fall in a different bucket in my opinion. That's a prioritization thing. Thanks to a recommendation from a great friend (wink, wink), I've found that David Allen's Getting Things Done to be a great way to prioritize, and become immersed in each of those todo's as you are completing them. Allen's approach to making sure that your to-do's aren't a distraction work very well for me. If you haven't read that, you should.

All these things are distractions and have huge potential for interrupting the flow. But I feel like these have less to do with the work environment you as a leader creates, and more to do with the individual's work habits. However, a good leader should be privy to when individuals are having trouble managing these distractions, and be be prepared to provide tips on how to be better at it.

Anonymous said...

As you point out, "Jim doesn't want to be 50% productive." Along those lines, if you read some of the literature about flow, like Finding Flow by Mihaly Csikszentmihalyi, people report feeling happier after engaging in flow activities. So, if you want your developers to be happy, let them have their flow time.

The flow literature also points out that you increase flow when you have relatively short feedback cycles in your activity, so TDD can help with flow, too.