Loading…

Developer Flow State and Its Impact on Productivity

Article hero image

What’s the most annoying thing at work? If you ask developers, it’s likely getting interrupted in the middle of a difficult programming task. That reminds me of the classic cartoon strip I saw making the rounds on Hacker News a few years back. This is the perfect illustration of one’s “flow state”. Your mind is clear and you feel like you’re in a natural rhythm where your knowledge, motivation, and concentration magically align. It’s the heart of optimum performance and creativity often referred as “being in the zone”. Flow state is particularly important when programming, as there are so many variables you are juggling (pun intended). It’s also a precarious state as even the slightest distraction can wreck your productivity. Joel Spolsky once said, “Productivity depends on being able to juggle a lot of little details in short term memory all at once. Any kind of interruption can cause these details to come crashing down. When you resume work, you can’t remember any of the details (like local variable names you were using, or where you were up to in implementing that search algorithm) and you have to keep looking these things up, which slows you down a lot until you get back up to speed.” Unfortunately, we live in a world optimized for distractions. Sometimes the enemy of this flow state is ourselves. A 2018 academic study found that self-interruptions (like voluntary task switching) was more disruptive than external interruptions,and had a negative effect on the performance of the interrupted tasks. Even Joel Spolsky shared candidly that when he was coding full-time, he usually averaged about two or three hours a day of productive coding. But more often than not, the workplace is the destroyer of getting things done. The numbers speak for themselves. One study found an average of almost 87 interruptions per day, while another found that people spent an average of only 3 minutes on a single event before being interrupted. When looking at data related to software developers specifically, the numbers are even worse. This study from Georgia Institute of Technology found that a programmer takes between 10-15 minutes to start editing code after resuming work from an interruption. Additionally, a programmer is likely to get just one uninterrupted 2-hour session in a day. Besides the distractions of chat, desktop and mobile notifications, and open office spaces, the tools developers use for the job can limit their ability to get things done. Whether there’s not enough or far too many, tools can make or break a development team’s productivity. One of our developers here experienced this recently, and his breakthrough led him to this conclusion: “Your developer happiness is unquestionably directly proportional to the ease of the tools you have to accomplish your task.” The average roadblock costs more than 40 minutes to resolve, taking you out of the developer flow state. Stack Overflow’s Q&A engine gives your team instant access to expert knowledge from their peers so that they can get back to building great products. Contact us to learn more about how Stack Overflow for Enterprise can help your team do their jobs—without interrupting their workflows. A version of this post previously appeared on Medium.

Login with your stackoverflow.com account to take part in the discussion.