Agile Zone is brought to you in partnership with:

I have been working in software development for about 25 years as both a programmer and a manager. My passion is software development processes, how to build teams and lead them to success. I am a strong proponent of lightweight, agile approaches, particularly incremental and iterative development. I believe in treating developers as individuals and leading by inspiring. Scott is a DZone MVB and is not an employee of DZone and has posted 4 posts at DZone. You can read more from them at their website. View Full User Profile

The Importance of Flow

05.09.2014
| 11485 views |
  • submit to reddit

You know that feeling. You’re working on something, maybe writing some code and you’re completely immersed in it. You’re unaware of the thought process and even the passage of time. Each action leads to the next in a rapid sequence. Ideas just seem to flow.

I was first introduced to the term, “flow”, by Tom DeMarco and Tim Lister in their great book, Peopleware: Productive Projects and Teams, but I had experienced it throughout my life. As a developer, flow is the most satisfying experience. I’m convinced that this feeling is one of the key reasons people enjoy coding.

When we are in flow, we are at our most productive. Not only do we work quickly but we make effective decisions. In flow, hours can go by in a blink of an eye. You’ll look up and marvel at what you’ve accomplished!

But there’s a problem. Flow is fragile. It can be disrupted by a phone call, an email, or even too much noise around you. And once you’re out of flow it can be hard to get back into it. DeMarco and Lister say it can take 20 minutes to mentally reload the information and context so that we can get back into flow. And during that time you are even more susceptible to distractions.

Though the modern workplace continually calls upon us to increase productivity, it seems that everything about it has been designed to prevent us from entering this most productive state. Cubicles create the illusion of privacy while exposing us to all of the noise and distractions from those around us. Email notifications and chat messages interrupt our work. Meetings are scattered throughout the day. Coworkers and bosses pop over for questions or to chat. Our personal cell phones have added to the interruptions with Facebook statuses, tweets, and texts from friends and family. It’s a miracle that anyone can even get into flow anymore! The result is that we work harder and longer but we get less done.

It’s so common to hear people talk about coming in early or staying late because they can be more productive before everyone else arrives or after they all leave. Some work from home because they are free from the distractions so common in the office. Wouldn’t it be great, though, if the very place we are supposed to work did a better job of supporting it?

Few of us have the power to change the work environment in a large way. As DeMarco and Lister put it, the furniture police are there to make sure that uniformity is enforced. But we can still make changes that will promote a more productive work environment.

OK, so you’re still stuck in a cubicle. Well talk to your neighbors and see if you can work out an arrangement for fewer distractions. Maybe the office should be more like a library, where people know to speak in hushed tones. Take conversations down to the break room or an empty meeting room or out in the hall. It’s good to stand up and walk around a bit anyway. If you have a problem with coworkers coming up and interrupting you, devise a signal that tells people you need to concentrate. You can put up a flag or a piece of paper near your cubicle.

Phones, email, and chat are easier to solve: shut them off! We have voicemail and inboxes. Check them periodically to see if there is something you need to address. Unless you are on call, there are few things that can’t wait for an hour or two. And for the love of Turing, shut off your ringtones! If you are so far from your phone that you can’t tell when it’s vibrating, then you really don’t need to answer it. Even having it set to vibrate is enough to knock you out of flow.

As for meetings, work with your team to leave large blocks of time available for work. Set a rule to have meetings only in the morning or the afternoon. If you are in a meeting that doesn’t require your presence, excuse yourself. If a meeting is scheduled to get the team’s input, make sure people know that attendance is optional. Not everyone will want to weigh in on a given topic. Rigorously work to have as few meetings as possible with as few attendees as possible.

Please don’t think that I’m including collaborations in meetings, here. When two or a few people need to get together to work on something, like designing something on a whiteboard or working through a production issue, that’s a completely separate matter. I look at meetings as large, formalized gatherings that are imposed on individuals. Collaborations are spawned by individuals as needed to get something done.

Changing the culture of meetings can be very hard. In the meantime, use your calendar to block out 2 hour blocks of time for work. Really? Schedule work? Yes! That’s what we’re here for. People who are booking meetings will see that you’re busy and book it for later or leave you out. Either way, you wind up with more time to get things done!

OK, so we’ve got more time in our cubicle to work and we’ve done what we can to cut down on distractions, but things are still too noisy. A common solution is to use headphones. While this may help, and some people prefer to work with music playing, be aware that it comes with a price. In Peopleware, DeMarco and Lister talk about a study that showed that while music doesn’t interfere with the mechanical parts of programming, it does affect our ability to think more creatively.

Two groups of programmers were given a task to implement a set of requirements that performed a number of transformations on an input number. One group listened to music and the other worked in silence. Both groups had similar results in speed and accuracy in implementing the requirements. However, the group that worked in silence showed a much higher incidence of discovering that the transformations in the specification ultimately produced the same output value as the input. The creative part of the brain was busy listening to the music so it wasn’t able to engage as effectively. I’m not here to provoke a debate on whether listening to music while programming is harmful. If there is too much noise around you, a good pair of noise-canceling headphones can be an excellent investment. Just think about the kind of music you listen to and be cognizant of whether it is affecting your ability to work effectively.

Teams have more power to define the culture than they think. It just takes a few people to get things started. Creating more opportunities for flow may be the best thing you can do to make your current job more rewarding or at least less frustrating. Isn’t that worth fighting for?

Published at DZone with permission of Scott Westfall, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)