Subscribe to the Hired Download: our newsletter for top talent like you!

Screen-Shot-2019-11-06-at-9.46.14-AM

5 Ways Engineering Managers Can Facilitate Flow

As the manager of a software development team, you spend a lot of time looking for ways to get the most out of your developers. And like any human being, software developers are at their most productive when they are working in a state of flow. 

Identified and named by psychologist Mihaly Csikszentmihalyi (It’s not as hard as it looks: Me-hi Cheeks-sent-me-hi.) in 1975, flow is a mental state in which a person is totally immersed in their work, focused and energized. It’s the same thing people mean when they are “in the zone.”

Even if you don’t have an academic understanding of flow, you likely have an intuitive one. Anytime you’ve been totally absorbed in work that calls for creative, knowledgeable problem-solving–unconsciously understanding a need and fluidly offering a solution–you’ve been in flow. You’ve lost track of time and your surroundings; you’ve forgotten about physical needs like food and sleep. 

While being in a state of flow might feel like magic, there are actually some concrete factors that facilitate it. When you understand what those are and what conditions are conducive to flow, you understand how you can set up your team to better achieve it. 

The key thing to understand about flow is that in order to achieve it, the work needs to be like Goldilock’s bed, chair, and porridge; in other words, just right. It needs to be challenging and engaging enough to energize but not so challenging and demanding to deplete. In the world of software development, this means that a project can be too simple and lead to boredom and apathy. It can also be too difficult, leading to frustration and apathy. 

Either way, both extremes of experience lead to apathy and an apathetic developer is one who is likely missing deadlines, releasing sloppy code, and unresponsive to requests. With a few intentional adjustments to your management style, you can create an environment conducive to flow for your developers. Not only will you have a higher ROI in terms of a finished product, but the intangible shift in your team will be invaluable. 

1. Encourage buy-in

Developers, just like anyone else, are highly motivated knowing that the way they spend their time is meaningful. If you are fortunate enough to work for a mission-driven company, don’t stop there. In addition to the general positive company culture (or despite a general negative company culture, if this is the case), you are responsible for creating a sense of buy-in from your team.   

  • Let them know why their individual contributions are unique and valuable 
  • Share the larger context into which their roles fit 
  • Clarify specific goals and priorities within the overall project 

2. Ensure a safe and positive environment

Negativity is not good in any work environment and has an especially hard impact on achieving flow. Emotions like worry, fear, and anger destroy any chance of achieving a state of flow. Some ways to make sure you are doing what you can to create a positive work environment: 

  • Make priorities, expectations, and deadlines clear  
  • Make sure you are fair, even-tempered, and empathetic
  • Ask for–and respond to– feedback 

3. Guarantee task completion

Like most of us, developers hate getting put to work on a task only to be pulled off when a different priority comes up. To achieve flow, they must know that they can dive into a task and see it through to completion. If you find that they are getting pulled off tasks prematurely, this shows a lack of organization and you need to fix it. 

I’ve found great success in using a kanban tool, which is a visual board that assures developers that once they are assigned a task, they will remain on the task to the end. 

4. Respect the schedule

Another obstacle to flow so common in the workplace is interruptions. It takes at least 10-15 minutes just to get into a state of flow. Keep this in mind when scheduling meetings and other requests that pull developers away from work. 

Make sure the team has an efficient system of communication that they can choose to mute to avoid interruptions. Specify which platforms and channels are appropriate depending on the communication need and what reasonable response times are for each. 

5. Model work-life balance 

Even if you were able to create the perfect work environment, you ultimately don’t have control over how the team spends their free time. But keep in mind that, in addition to the emotions mentioned above, stress and anxiety are not compatible with achieving flow. 

You have some control over the stress your team feels over work-related issues but are limited in how they handle stress outside of work. One thing you can do? Model a work-life balance yourself. You can probably recite the list of things you need to do to take care of yourself in your sleep, but just in case: eat nutritious food, drink water, move your body, practice mindfulness, and nurture your personal relationships. 

Practice what you preach and not only will you create an environment conducive to flow, you may just achieve it yourself.