Software development is a complex and mentally challenging job.
Developers need to write code, solve problems, be creative and efficient—we could fill up this intro just by listing their responsibilities.
However, when they work in the flow state, everything is easier.
Psychologist Mihály Csíkszentmihályi came up with the term to describe the mental state in which a person is absorbed in the activity, making them highly focused and energized.
Working in that state can produce excellent results, but how can you help your developers achieve it?
Keep reading and find out!
Table of Contents
Improve clarity
If you want to make it easier for your developers to get in the flow state and stay in it, you should make your requirements from them as clear as possible.
That means that developers should be sure about the goals they need to achieve and have clear deadlines for completing them.
Unrealistic deadlines can be a significant problem for developers.
Piling up requirements and tasks regardless of the deadline is even mentioned as one of the “nightmares” in one of the developers’ discussions on Dev.to.
When all the expectations are clear from the start, developers can think less about that and focus better on the tasks at hand.
If that’s not the case, you might need to embrace visibility and transparency more.
According to data cited on Ving, employees want that from their leaders—71% of them believe that managers don’t explain goals and plans enough.
So, how to make expectations, deadlines, and goals clear for your developers so that they don’t occupy their focus and distract them?
You can use a project management tool like Monday.
Get unreal data to fix real issues in your app & web.
It helps you build a workflow and customize it according to your needs.
To improve clarity, you can align your whole team in one platform so everyone can see the tasks, review progress, see the priorities and receive updates.
Deezer, a company that launched a popular music streaming service, started using Monday when it became too complex to organize work with Google Suite because of the increasing number of employees.
According to Yoav Banai, their former VP of Customer Engagement, the issue was that there wasn’t enough visibility in the projects.
“It wasn’t clear who knew what and when things had been or were going to be updated.”
As he claims, increased transparency was one of the first major benefits they saw when they started using product management software.
Besides technological solutions, you can also improve clarity by adopting a practice of short daily meetings where the team can discuss the work process.
Known also as daily stand-ups, they’re usually designed around three questions:
- What did I accomplish yesterday?
- What am I going to do today?
- What obstacles are impeding my progress?
There can be variations, as Jason Yip explains. For instance, software engineer Olve Maudal proposes a different order of questions:
- Are there any impediments in your way?
- What are you working on today?
- What have you finished since yesterday?
There is also Buffer, where they do things their own way.
Their employees have three minutes to share their work progress, and the last question is about what they’re doing to improve themselves.
Whatever method you use for providing more transparency and clarity to your developers, you should use it consistently.
That way, developers can count on having goals and expectations laid out and free up their minds to work in the flow.
Have a good knowledge repository
Being in the flow is all about working in a state where time, place, environment, and any other factors besides the thing you’re focusing on fade away.
When developers know where and how to find the information they need quickly, that flow is easier to maintain.
That’s why having a central repository of all the knowledge relevant to your developers is beneficial.
It makes storing, accessing, and using information easy, and developers don’t have to interrupt their work to focus on figuring out a way to find an answer they might need.
You can use various tools for building a knowledge repository, including one that you’re probably already familiar with—Slack.
Although Slack is primarily a communication tool, it can be very useful for knowledge sharing.
For example, searching the conversations and finding the information you’re looking for is simple.
Also, it has filters that let you customize your search, include only some channels or conversations, etc.
Slack can be useful as a central place to ask questions and share files, too.
For instance, software development company Monterail uses it precisely for that purpose.
As they say, they have the #nerds channel where developers can ask anything related to tech or a project.
That ensures that their developers can hop on Slack when they encounter an issue, do a quick search or type a question, and not break their flow by switching to an entirely different task of going through a lot of documentation.
“Having a safe place where people can ask anything produces much faster reactions to current issues.”
But what if you need a place to store a large amount of documentation and make it easily accessible for everyone in the team, searchable, and straightforward to update?
Then you might need a tool like Guru.
At Wrike, a work management and collaboration platform, they used Guru to create and manage content for the support and sales team.
As they say, they also used Slack in the way we described earlier, but that wasn’t enough—they wanted an internal wiki solution.
Creating a knowledge repository resulted in increased productivity and fewer questions being directed through Slack and personal messages.
That indicates that employees knew how to find information, allowing them to focus more on their tasks.
And when you have a good repository and don’t have to search through messages, emails, files in Google Drive, or some other places for the knowledge you need, it’s easier to stay in the flow.
Remove distractions
Most definitions of the flow state mention that when you work in it, you’re fully focused and immersed in the task.
One thing you can’t have if you want to be fully focused on something is distractions that can break the flow.
It’s vital to realize that your developers need some time working uninterrupted to achieve flow—they can’t just sit down, snap their fingers, and be instantly immersed in the work.
The problem with distractions is that they reset the progress of getting to the flow state.
In the graph below, you can see that after every interruption, there’s a period of time during which the productivity is low before it starts rising.
That way, the peak productivity level that can be achieved in the flow state remains elusive.
Furthermore, the studies found that people don’t immediately return to the task after an interruption.
Gloria Mark from the University of California explains that it usually takes over 23 minutes for that to happen.
So, the distractions result in your developers doing other things before they’re ready to work on their primary task, which isn’t great for their productivity.
Joel Spolsky, the co-founder of Stack Overflow and an experienced developer, explains that by considering the complexity of a developer’s work.
It seems like removing distractions is essential for getting in the flow easier, so how can you facilitate that?
Organizing no-meeting days might be worth considering. Meetings are one of the most frequent distractions for developers, interrupting their maker’s schedule.
Your developers would most likely appreciate a day in which they can focus just on their projects as they did in the now-defunct Keep.
At Asana, they have No Meeting Wednesdays (NMW).
As they say, they don’t schedule meetings for that day to allow developers a large chunk of time to focus on work and be productive—in other words, get in the flow and stay there as long as possible.
“We created a schedule that ensures everybody gets some flow time to work on a time-consuming project, projects that always seem to get put off, or to check lots of little things off their tasks lists.”
Furthermore, meetings don’t only interrupt developers’ work—they make it harder to focus even after they’re over.
According to Tanvir Bhangoo, consultant and bestselling author, they contribute to mental fatigue.
Minimizing distractions like meetings, many of which probably could have been just an email anyway, helps your developers to work in the flow state.
Of course, developers have responsibilities other than coding that they can’t always avoid, but even little adjustments like that can go a long way.
Nail the skill/challenge ratio
When you’re in the flow, you’re working on something that hits the sweet spot between being too challenging and too easy.
If you assign tasks to your developers that provide them just enough challenge for their skill level, you’ll help them get in the flow.
Let’s look at the chart below.
As you can see, the flow channel is surrounded by various other states where developers can end up if the skill/challenge ratio is off.
For example, if the challenge is too great for their skill level, they can be too anxious or worried to complete it.
On the other hand, boredom and lack of focus are likely when developers are too skilled for the tasks they work on.
The danger lies in spending too much time in either of those non-flow states. Employees who are stressed for an extended period of time can experience burnout.
According to data, it’s common among developers, especially recently due to the COVID-19 pandemic.
As you can see above, 55% of developers feel moderately or significantly burnt out, which climbed to 62% during the pandemic.
On the other side of the spectrum, there are developers who can’t get to the flow state because they’re bored.
Cynthia Maxwell, Director of Engineering at Netflix, explains why that can happen.
In her experience, flow is dynamic, and it’s unrealistic to expect that someone can stay in it indefinitely.
However, she likes to push her developers a little out of their comfort zone into an anxious state, but not so much that they can’t get back into the zone.
She advises conducting 1:1 meetings with your developers to assess how each of them feels about the job and where they land on the flow chart.
For example, she gives her team this simplified chart below and asks them to mark where they feel they are on it.
That simple tool helps her see in which direction to guide developers to get in the flow state—whether to ramp up the challenge or reduce the load on them.
However you do it, if you manage to nail the skill/challenge ratio, you can expect some great results.
According to a McKinsey study cited in Harvard Business Review, workers in the flow are five times more productive than those who aren’t.
Therefore, fine-tuning the difficulty of tasks your developers get is undoubtedly worth the effort.
They’ll be more satisfied with their work, productivity will rise, bringing more great results for the business—a winning situation for everyone involved.
Teach your devs some focusing hacks
Getting in the flow state and staying in it can be very challenging. Many factors we discussed need to align, which still doesn’t guarantee a successful outcome.
However, there are little things anyone can do to improve their focus, and you can teach your developers some of them.
Let’s start with music.
Although it might seem counterintuitive to listen to music while working in the light of our earlier section about distractions, music can be very beneficial for working in the flow.
According to one survey cited on Scalac, 71% of respondents are somewhat or much more productive when they are allowed to listen to music.
Although musical tastes are subjective, multiple studies indicate that instrumental music is most beneficial for focusing, be it classical, electronic, ambient, or some other type.
Luckily, we can easily access all kinds of music thanks to the wonders of the internet.
The most obvious place is probably YouTube. It contains seemingly endless amounts of instrumental music, and some channels are dedicated precisely to that.
Work Music Lab is one of them.
Or you can browse any of the other ones from the extensive list by Gaël Thomas.
If you want your developers to move away from YouTube, which can lure anyone to other distracting content, you can recommend sites where the content is curated with the developers’ needs in mind.
For instance, your developers can pick some of the many playlists from the Programmer’s Music site.
They can browse it by genre, discover new tracks, build their own playlists, and even use a built-in Pomodoro timer.
This leads us to another useful hack for focusing—the Pomodoro technique.
This technique traditionally uses 25-minute periods of focused work followed by 5 minutes of rest.
However, 25 minutes might be too short for developers—the complexity of software development can benefit from longer stretches of uninterrupted work.
That’s why this developer uses 50 minutes of work and 10 minutes of break. A tool called the Marinara Timer helps him to set up intervals and automate them.
And taking brief pauses shouldn’t break the flow.
For instance, Dmytro Rohov, Security Engineer at ISSP, explains that pausing for a few minutes doesn’t affect his flow as long as he’s focused and has clarity in his work.
“My experience is that if I have real clarity, and I really understand what I’m doing, I can add breaks at any point in time without losing quality.”
And if your developers are too distracted by other tools, websites, apps, messages, and anything else on their computers, you can suggest using a tool like Freedom.
It can block distracting websites, emails, or games. You can also create lists of exceptions and schedule sessions that will begin and end automatically at set times.
If all of that isn’t enough, Freedom has a Locked mode that prevents a user from ending the session.
There are many hacks for boosting focus. Some might work better than others for your developers, but even a tiny nudge can make a difference in getting to the flow state.
Conclusion
Getting and staying in the flow state isn’t easy and requires effort and preparation.
However, the benefits can be significant, both for the developers’ sense of satisfaction in their job and for the organization in general.
To help them work in the flow state more often, you should improve the clarity of their work, create a good knowledge base, minimize distractions in their work environment, balance the skill/challenge ratio, and suggest some focusing hacks.
Combine all that and watch your development team soar in the flow.