Flow - Make Better Games
I’ve been meaning to re-present something I did for a whole game development studio a while back about ‘Flow’. It instantly improved production and was something we held dear as a team.
Have you ever said anything like:
- “Wow, is it that time already?”
- “Sorry, I was miles away”
- “I get my best work done when everyone’s gone home!”
If the answer is yes, then you’ve experienced a state of Flow and most likely been incredibly productive. It’s sometimes called being “in the zone” too among others. Here’s my take on a well-known psychological state and why it’s important to game developers.
Flow is a highly productive state of mind, time slips by and you blitz through work, making fewer mistakes, no thought about how much effort your making and generally higher quality thinking goes into it too.
“Flow is a condition of deep, nearly meditative involvement. In this state, there is a gentle sense of euphoria, and one is largely unaware of the passage of time.” DeMarco.
I’ve been a long time supporter of enabling people to enter this state of Flow and stay there so they can do their best work and enjoy it. It’s important for managers, colleagues, producers and businesses to recognise that supporting this can make a real difference to the quality of your game.
As you settle in for a good working session, you slip from your Regular un-productive state that you sit at your desk at, through your Immersion phase into a state of Flow and this whole process typically takes you about 15 minutes to get through, although it can vary from person to person.
Interruptions
We’ve recognised that the state of Flow is important and that it typically takes you 15 minutes to get there. The problem here is that there are many distractions and interruptions that break your concentration and send you crashing back up through the layers to reality.
These interruptions mean you’re now back to the start and it’s going to take you yet another 15 minutes to get back down there and if you’d only just got there then it was also a waste of your last immersion. That’s 15 minutes lost for every interruption you get. This can be incredibly frustrating and it drives me insane!
Imagine a horrible state we’re you’re constantly interrupted and never get into Flow.
Explicit Interruptions
- You get an email pop-up - +15 minutes
- IM pops up - +15 minutes
- Telephone call - +15 minutes
- At desk requests - +15 minutes
- ‘ping’ from a new text message on your mobile - +15 minutes
- Starting a long build - +15 minutes
Implicit Interruptions
- Noise
- Interrupting colleagues - how often does your neighbours phone go off?
You can quickly see how this can mount up to a problem and in a bigger team the problem compounds itself as the people who have been interrupted start sending emails, pop around to someone for a chat, ask if you want to join them for a coffee, etc.
There’s also a consideration for time of day too as if it’s close to your break/lunch/home time then you’re most likely to just not bother trying to get back
I had a particular problem when I was running a team and sitting among them. I often had to use the phone to make or receive business calls. I rapidly became aware that every time I did that people stopped working to listen to what I was saying and I was obviously disturbing them. They weren’t cross, they were just interested in what I was talking about and often asked questions. I intended this to be transparency but I was causing a whole load of drag on people’s time.
You’ll also see this happen when you approach to ask someone a question and the others around them drift out so they can pay attention.
Mitigating Interruptions
Here are a few things you can do to try to help yourself:
- Turn communications systems off and let everyone know why you’re doing it; E-Mail, IM and Phone. It’s not going to be forever and I’m sure your manager/lead will be happy you want to be focused.
- Use your email apps Out Of Office system to auto-respond letting people you’ll get back to them soon. This prevents them from thinking you’re ignoring them for no reason.
- Set your email app to only check emails every 30 mins or so. Do emails really need an instantaneous response?
- ‘Zebra’ Mail - I’ve also used the email apps rules systems to pickup keywords in the subject line to bring an alert up. In my example people knew that putting the word ‘Zebra’ in the subject line would mean it would get my instant attention. I could also change the word to prevent people just using it all of the time.
- Put your headphones on. This seems to be the international symbol for Do Not Disturb plus you’ve got a damn good excuse for not responding to general chat as you can’t hear them! You don’t have to listen to music either, just pop your headphones on.
- Door Etiquette - If you’re fortunate to have your own office then adopt a door protocol such as: - Door Open - ready for interruption - Door ajar - priority interruptions only - Door closed - Do Not Disturb on pain of death
Consider other people’s desire to be undisturbed, do you really need an answer to that question now? Try and use appropriate communication:
- Time critical: voice
- Immediate & discreet: Instant Message
- Can wait: e-mail
Teams and Studios should support this whole way of working by being considerate and enabling people to work for extended periods in an undisturbed state.
How long to stay in Flow & Exceptions
In our game development world there are typically 2 camps: Developers and Managers.
Developers generally need to stay focused for 2 hrs to get anything meaningful done and make progress. I’ve rarely seen anything take less than this and staying focused for more than that is difficult.
Managers are exceptions as they typically work in 20 min batches if they’re lucky. Their job requires constant monitoring and attention to others and they need to use email, phone and IM to communicate throughout the studio.
People in a Lead role are caught between the two roles as they are often asked to both Develop and Manage. In this position they need time to do the work but they’re constantly interrupted and this often leads to a sense of immense frustration. I often see Leads spending the regular working hours being interrupted and attending meetings but staying late to do their work. It’s a tough place to be and the only advice I can give is to try to time-box your availability so people know which hat you’re wearing at any point in time.
Consequences
There are natural consequences of not considering Flow.
Being mindful of it and actively supporting it improves efficiency, quality of work and aids progression. All of which make for happier Developers and a better game.
The natural opposite of this in a world where interruptions are rife and people can’t work are poor performance, poor quality of work and most likely late delivery.
We all know that the work still needs doing so in the latter example, people end up working overtime to compensate. This overtime usually occurs when all the interruptions are gone so people get work done.
Strive to keep a working environment that enables people to Flow as often as possible.
Meta-Flow
In addition to the regular working flow I also believe there’s a concept of Meta Flow if we take the principles of having a continuous and focused train of thought about a particular subject over an extended period.
This comes in to play when you’re team members are working on a particular item for an extended period of days, even weeks. Their mind is full of a single task and shouldn’t be polluted or interrupted by other things occurring. Think of a physics programmer being pulled off to do work on the rendering system only to return back to physics a short while later. In this scenario it makes sense for them to consecutively focus on Physics.
Summary
Being aware of, honouring and supporting Flow can make a real difference to your game development team and therefore the game. Encourage everyone in your organisation to learn about it and respect it.
Further Reading
•“Peopleware”
- Tom DeMarco
•“Cringe from crossing a concentrating coder” http://liw.iki.fi/liw/texts/flow.en
•“Promoting Flow in Software Development” http://www.davethehat.com/ot2000/unblocking.htm