Getting into the Developer Flow State

What is the most annoying thing at work? If you ask developers, it is getting interrupted in the middle of a difficult programming task. That reminds me of the classic cartoon strip that made the rounds on HackerNews a few years back:

Image for post
Image for post

This is the perfect illustration of “flow state”. Your mind is clear and you feel you are in a natural rhythm where your knowledge, motivation, and concentration magically align. It is 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 is also a precarious state as even the slightest distraction can wreck your productivity. Unfortunately we live in a world optimized for distractions.

Image for post
Image for post

The workplace is often the destroyer of getting work done. An article in the Harvard Business Review showed the depressing state of workplace interruptions:

The first thing to recognize is that sometimes the enemy of flow is ourselves. The founder of Stack Overflow, Joel Spolsky, shared candidly that he can be massively unproductive. Mental inertia makes it hard for us to get started.

Second, sometimes what looks to the outside to be unproductive can actually be someone working in the flow. Creative work often does not appear“busy”:

Lastly, sometimes our work environment conspires against us. Besides the distractions of chat, desktop and mobile notification, and open office spaces, the tools we have for the job can limit our ability to get things done. One developer I spoke with experienced this which led to this conclusion:

As engineering leaders, equip developers with tools that help them maintain flow and avoid interruptions. One potential idea is providing a repository of trusted internal knowledge to help jumpstart one’s flow towards solving a difficult problem. If this repository is community based, then subject matter experts can contribute and share their knowledge, and in turn reduce the interruptions they receive by answering repetitive questions from others on their team and organization. If this idea is of interest, I encourage you to read our post on building “A Developer’s Knowledge Architecture”.

What are your thoughts on achieving flow state? What have you found to help you and your team stay focused on programming tasks?

Image for post
Image for post

How to explain to a layperson why a developer should not be interrupted while neck-deep in coding?

I learned the hard way to never, ever interrupt a developer in their flow…

We help IT leaders in enterprises solve the cultural challenges involved in digital transformation and move towards a community based culture that delivers innovation and customer value faster. Learn more about our work here.

Written by

Thoughts on developers, digital transformation, enterprise agility, community building & software engineering culture. Author 👉

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store