Reminder: The importance of flow state for developers
You are receiving this email because you subscribed to microservices.io.
Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture consulting and workshops. Learn more
My Explore DDD conference workshop, April 14-15, 2025, Denver - Designing microservices: responsibilities, APIs and collaborations. Early bird discount ends March 7th. Learn more and enroll.
Enroll in my distributed data pattterns (aka. service collaboration patterns) self-paced bootcamp. Use coupon RPPPOGHM to sign up for $95 (valid until March 26th, 2025). Learn more and enroll.
The importance of flow state for developers
Flow state, or to be more precise, ample opportunities for flow state, is one of the three elements of a great Developer Experience (aka. DevEx).
In this article, I will:
- Explain the concept of flow state
- Explore why it’s important
- Describe the obstacles to flow that are all too prevalent in the modern world
- Discuss what you can do to increase opportunities for flow
What is flow state?
To quote Wikipedia:
Flow in positive psychology, also known colloquially as being in the zone or locked in, is the mental state in which a person performing some activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity.
Flow is not a new concept. While I first read about it in the 1990 book Flow by the psychologist Mihály Csíkszentmihályi, he actually first wrote about the concept in 1975.
Why is it important?
Flow is important because, to quote DevEX: What Actually Drives Productivity:
Frequent experiences of flow state at work lead to higher productivity, innovation, and employee development. Similarly, studies have shown that developers who enjoy their work perform better and produce higher-quality products. Interruptions and delays—which relate to the feedback loops dimension—are important factors that hinder a developer’s ability to experience flow state. Other factors include maintaining autonomy over work structure, having clear team and project goals, and engaging in stimulating and challenging tasks.
In short, enabling flow for developers boosts productivity, quality, and overall job satisfaction.
Obstacles to flow state
Sadly, the modern world presents many obstacles to achieving and maintaining flow.
Constant interruptions
Constant interruptions are a major obstacle to flow. It often requires fifteen to twenty-five minutes—or sometimes even longer—of uninterrupted work to become fully immersed in a task. This means that the key elements of the modern work environment - constant notifications, phone calls, messages, endless meetings and a noisy open-plan office - make it difficult to find the large blocks of focused time necessary to enter and maintain flow.
Smartphones
Smartphones are especially problematic. Not only do they actively interrupt you with alerts, but they also passively tempt you with “infinity pools” of distraction, such as social media.
Slow tools
Slow development tools can interrupt flow. For example, if you have to wait for more than 10 seconds for a tool to complete an action, you will most likely lose your train of thought and struggle to regain your focus.
Slow feedback loops
Problems with the other elements of the DevEx triangle - feedback and cognitive load - can also be obstacles to flow. It’s important for a work environment to have fast feedback loops to enable flow. Slow development tools are a specific example of a slow feedback loop. Other examples include delayed code reviews, slow builds and tests, and slow deployments.
Pair/mob programming is one way to accelerate feedback loops and maintain flow. Unlike the traditional yet slow pull request review mechanism, pair/mob programming provides immediate feedback on your code. Another way to maintain flow is to have fast automated tests that run locally within your IDE and provide fast feedback on your code changes. Ideally, you should be able to verify a change within a few seconds.
High cognitive load
A work environment that is unnecessarily complex and has a high cognitive load can also prevent flow. On the one hand, tasks need to be challenging to engage your full attention. Yet tasks that are too challenging - i.e., have excessive cognitive load - can be too stressful and prevent flow. It’s important for a work environment to have a minimal accidental cognitive load to enable flow.
Action items for flow
It’s essential to recognize that creating an environment that enables flow is both an individual and a collective endeavor. There are practical steps you can take personally, such as managing your own notifications and environment. Engineering leaders also play a critical role in creating conditions that enable every team member to experience flow. Let’s start with the personal action items.
Personal action items
On a personal level, you should eliminate as many distractions as possible. Turn off unnecessary notifications on every device you use for work and consider placing your phone in another room. Also, consider setting specific times for checking email and social media. These simple steps can significantly reduce the temptations that pull you out of a productive flow.
Also, don’t multitask. There’s ample researching showing that it only provides the illusion of productivity. What’s more it severely disrupts flow by fragmenting focus, and increasing cognitive load. To achieve flow you need to work on tasks sequentially for extended periods of time.
Two great books that I’ve found useful are:
- Stolen Focus by Johann Hari - explains how the modern world prevents flow and what to do about it
- Make Time by Jake Knapp and John Zeratsky - full of practical advice about how to focus on what’s important
Of course, there is only so much that you can do as an individual since your organizations’ policies and practices also play a significant role in enabling or preventing flow.
Action items for engineering leaders
For engineering leaders, the challenge is to cultivate an environment that supports flow for every team member. Periodic DevEx surveys should assess how well your organization is doing in enabling flow.
According to DevEX: What Actually Drives Productivity
To improve DevEx, teams and organizations should focus on creating the optimal conditions for flow state. Disruptions should be minimized by clustering meetings, avoiding unplanned work, and batching help requests. Leaders should also recognize that flow state depends on creating positive team cultures that give developers autonomy and opportunities to work on fulfilling challenges.
In particular, improving the other elements of DevEx - accelerating feedback loops and reducing cognitive load - has the added bonus of enabling flow.
Need help with accelerating software delivery?
I’m available to help your organization improve agility and competitiveness through better software architecture: training workshops, architecture reviews, etc.
Learn more about how I can help
Older messages
The importance of flow state for developers
Wednesday, March 5, 2025
You are receiving this email because you subscribed to microservices.io. Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture
Reminder: What developer productivity metrics actually measure
Thursday, February 27, 2025
You are receiving this email because you subscribed to microservices.io. Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture
Microservices rules: what good looks like
Thursday, February 27, 2025
You are receiving this email because you subscribed to microservices.io. Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture
Reminder: Microservices rules: what good looks like
Thursday, February 27, 2025
You are receiving this email because you subscribed to microservices.io. Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture
What developer productivity metrics actually measure
Thursday, February 27, 2025
You are receiving this email because you subscribed to microservices.io. Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture
You Might Also Like
Software Testing Weekly - Issue 261
Wednesday, March 12, 2025
New AI solutions for testing 👀 View on the Web Archives ISSUE 261 March 12th 2025 COMMENT Welcome to the 261st issue! I have nothing more to add to the genuinely great news that came out recently. I
JSK Daily for Mar 11, 2025
Tuesday, March 11, 2025
JSK Daily for Mar 11, 2025 View this email in your browser A community curated daily e-mail of JavaScript news How to Enforce Type Safety in FormData with TypeScript When working with the FormData
Binary Data, Tail Calls, Pickles, and More
Tuesday, March 11, 2025
Bytes Objects: Handling Binary Data in Python #672 – MARCH 11, 2025 VIEW IN BROWSER The PyCoder's Weekly Logo Bytes Objects: Handling Binary Data in Python In this tutorial, you'll learn about
Shaking The Wasp’s Nest 🐝
Tuesday, March 11, 2025
How Gamergate swarmed into our online lives. Here's a version for your browser. Hunting for the end of the long tail • March 11, 2025 Today In Tedium: You probably have noticed, just like me, that
Daily Coding Problem: Problem #1714 [Easy]
Tuesday, March 11, 2025
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Google. You are given an N by N matrix of random letters and a dictionary of words. Find
Mapped | The State of Democracy Around the World 🌐
Tuesday, March 11, 2025
After a historic election year, we show the state of democracy worldwide as it declines to its lowest level in two decades. View Online | Subscribe | Download Our App NEW REPORT: The Age of Data >
Stories, Free Tool & CRM Template
Tuesday, March 11, 2025
Notion stories, smart tools, and a free template to organize your contacts 🔥 ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
LW 173 - How to become a Shopify Developer in 2025
Tuesday, March 11, 2025
How to become a Shopify Developer in 2025 Shopify Development news and articles Issue 173 - 03/11
This free AI tool beats Perplexity
Tuesday, March 11, 2025
Ubuntu vs. Debian; The new HR; YouTube randomizer -- ZDNET ZDNET Tech Today - US March 11, 2025 webfeetgettyimages-10141124 DuckDuckGo's AI beats Perplexity in one big way - and it's free to
⚙️ AI bubble bursts (?)
Tuesday, March 11, 2025
Plus: We talk to the CEO of Read AI