Being in the ‘zone’ or ‘flow’ is a state of working where time seems to disappear and your productivity is many times greater than regular work. One minute you’ve finished lunch and start work on a new path finding algorithm, the next minute its 7pm and everyone else in the office has gone home for the night. From what I’ve seen at different companies, unfortunately, most people aren’t in the zone while at work. I’d like to recommend some ways you can get in the zone, and stay there for as long as possible.
Different people take a different amount of time to ‘get in the zone’. For me it’s anywhere from 5 to 30 minutes depending on a number of factors, some of which we have control over. Before I get into the steps you can take, lets quickly look at the reasons getting in the zone are important. No matter what job you do, having higher productivity is an important factor. Any action we can take to make ourselves more productive is therefore important and we should spend time and money to make our working environments conducive to this higher productivity. Peopleware has some great detailed analysis of how working environments can be improved to help this productivity. I won’t go over everything they talk about, however some of my points touch on the same areas they discuss in the book.
If you (or your programmers) aren’t in the zone then you’re not working to your full potential. Programming is such a complex beast that it requires us to not only think about a lot of different things at once, but at a lot of different levels of abstraction. Game programming takes this one step further, we need to make our games fun. Along with the gain in productivity, I believe being in the zone means we are working at a ‘higher level’, one which allows us to comprehend more about the code we are writing, and give us more chance of writing the code required to turn a good game into the perfect game. Fun in a game is quite nebulous and difficult to get right. So, how can we get in the zone, and how can we stay there for as long as possible?
1. Reduce interruptions
The biggest single way of falling out of the zone is when something outside of your brain breaks your concentration and forces you to lose your train of thought. There are countless ways of dealing with this, the simplest being to tell those around you that you need to be interrupted less frequently. Scheduling parts of the day for solid work, and others for meetings and question time is a good way to start. I like to send someone an email or instant message instead of going over and talking to them as it gives them a chance to ignore my interruption if they need to.
2. Shut your door, if you have one
Not only does this fit in with #1, it also blocks out ambient noise which can stop you from getting in the zone to begin with. Having a physical barrier shows that you are concentrating on work and even the most socially inadequate nerd will get the message that you don’t want to be interrupted. You can go too far with this by shutting your door all day so my recommendation is, again, having set times you always leave you’re door open (this is an informal way of letting people know when you don’t mind be interrupted) or just make the habit of only shutting your door when you are getting ready for some solid work. For example I often pace up and down for a while when thinking about a complex issue, include shutting your door in these types of rituals.
3. Try and plan out large tasks which will occupy many continuous hours of your time
I’ve found when I have many smaller tasks or no definite goal of where I’m heading for the next few hours that I have trouble getting in the zone. As it takes so long to ‘warm up’ and get in the zone, jumping around tasks just doesn’t work as you are constantly reorganising your brain. Try and make sure you have all the info you need, have spoken to everyone related to a task so you can knuckle down and work on it for a few good hours without any external intervention. For personal projects this can also mean setting aside enough time just to work on a particular task. Doing 15 minutes of work, then watching some TV, another 30 mins then eating some food etc isn’t going to be as effective as getting all your TV, food and other distractions out of the way before you begin working.
4. Listen to music
If you have the unfortunate reality (as most of us do) of working in a loud and ‘busy’ working environment then one good technique is listening to some music to drown out the noise. This is not optimal of course, but I find it allows me to concentrate much more easily. I also find it easier to get back to work and concentrate on what I was previously doing if I continue my song where I left off. I’m not sure of the psychological reason for this, but it seems my brain can sometimes pick up where it left off after only a few minutes and the interruption isn’t as bad as it normally would be.
Just as a side note from this, a while ago a colleague of mine once commented that he was amazed how productive I could be even in our loud, interruption filled working environment. My confession here is that I actually work quite productively even out of the zone. I’ll admit there’s still a massive difference, but it seems I’ve spent enough time in bad environments that I’ve learned to deal with them. This got me thinking about the average working conditions and how people are judged as being ‘productive workers’. Let’s assume for a minute that most people never make it into the zone at work for one reason or another. If this is the case, then we’re not really judging productivity based on someone’s full potential, but instead their potential to work well in a non-productive environment. This has some interesting issues if you then think about whether everyone’s ‘out of zone’ productivity is directly proportional to their ‘in zone’ productivity. If this relationship is not directly proportional, then in our current working environment, the better worker is no longer the more competent or smarter worker, but instead the person that can deal with non-productive environments the best. If this is the case, then surely it would be far better for us to be spending our precious brain powers on writing better code, rather than figuring out how to be less distracted.