Given a task, there are essentially two ways we can approach it. Either, we can work as hard as we can until it is “done” or we can fix the amount of time we have available and do the “best” we can. The latter approach is known as “Time boxing“.
Time boxing is a very simple technique we often use in software development. It is an effective technique for tracking progress and simply getting things done. From a planning perspective, time boxing is useful, especially when things appear complex or daunting initially and we are unsure of how to begin.
From a personal management perspective, I’ve found that time boxing can greatly improve our productivity and effectiveness. Because it’s simple, anyone can do it – including you. I use it when working on open ended tasks, like writing, where neither the scope or the quality is well defined.
This article briefly discusses how we can apply time boxing to our daily lives and get things done.
What is time boxing?
Time boxing is about fixing the time we have available to work on a given task and then doing the best we can within that time frame. So instead working on something until it is “done” in one sitting, we only work on it for say 30 mins. It is either marked as done at the end of this period or we commit to another 30 mins at a later time or another day.
In software development, an agile team releases new versions of a product to the customer for testing in fixed length iterations, say weekly. The customer and the development team work together to identify the features to be included in each release based on the relative priority and complexity of each task.
What’s special about Time boxing?
There are always several things competing for our time. At any moment, each of us could have hundreds of outstanding things to do. This question immediately become important – How can we ensure we get as much done as possible?
I believe time boxing is special for four reasons. Firstly, by consciously being aware of time, it allows us to focus on doing the things that matter most. Secondly, it serves as a reality check on how much time we spend working on open ended tasks. Thirdly, because of the fixed time constraints, it can be an effective tool against procrastination. Finally, it allows us to work on things during the free gaps we have between our commitments and appointments.
Focus on doing the things that matter most
If the time available we have is limited, a rational person should immediately think about prioritising their outstanding tasks based on what’s important and urgent.
By using time boxing and ranking our outstanding tasks, we make ourselves consciously aware of how much time we have available. This allows us to focus our energies towards things that matter most. In this way, we get things that matter most done first.
There are many techniques for ranking tasks and I won’t go into them in this post. However, it’s worth mentioning “Quality Function Deployment” – which is a technique we use in software development and engineering to translate customer requirements into engineering specifications. In the simplest sense, for each feature, we multiply a number representing a customer’s perception of its importance by another number representing an engineer’s estimation of the complexity. The final result is ranked and the relative ordering gives us an indication of what we should implement given a certain time constraint.
Limiting the time spent on open ended tasks
Do you know people who are perfectionists? Those who are constantly tweaking things to make them incrementally better or just different? To a certain extend, I suffer from a perfectionist personality which is why I find working on open ended tasks difficult. I’ll use some examples relating to my writing to illustrate: Should this sentence be structured in a passive voice? Does this paragraph look ok here? Are there enough anecdotes in this article?
Because by their nature there is no distinction between done and not done, an arbitrary open ended task can take anywhere between 1 min and 3 weeks. Time boxing is particularly useful as a reality check when working on open ended tasks. By limiting the time we spend on a given task, as long as it is complete though not perfect, we can objectively decide when something is done. This frees us up to work on the next task.
Effective tool against procrastination
In my experience, people procrastinate for two reasons – firstly, when faced with a complex task they are unsure of how to start and secondly, the prospect of having to do something they’re not particularly interested in doing.
- As a tool against complex tasks: Time boxing is useful here because it allows us to work on complex tasks over several iterations or in bite sized chunks. For example, writing a good article is a complex task for me and it is rare to be able to find one block of time in which I can write an article from start to finish. For me, it is more effective to write as best as I can within a fixed period, constantly refining and repeating this process until I finish.
- As a tool against uninteresting things: Time boxing is useful here because it allows us to commit to an undesirable task for only a limited amount of time. It’s a lot easier to start working on something we don’t like if we knew we only need to work on it for the next 30 mins. For example, if you have to clean a messy house, instead of trying to get through the entire house in one go, try only doing as much as you can for 30 mins. When you have another 30 mins to spare another day and feel so inclined, you can continue.
Using free gaps between commitments
The composition of a day from person to person and day to day is different. For some of us, our calendars are completely filled with appointments and meetings. For others, our days are relatively unstructured. Irrespective of our calendars, we often have what I call “null” time. That is, gaps between commitments in which we are either waiting for something or have free brain cycles.
Examples of “null” times are: At the station minutes before the train comes. In the car on a winter morning whilst waiting for the engine to warm up. At the desk, after you have kicked off a full compile on a complex codebase.
Time boxing can be immensely useful during these “null” times. If you knew the train will come soon, the car will warm up in moments or the code will compile in a few mins, you can choose to use that time effectively and work on a relatively simple task you know can be done within that short “null” time.
Time boxing is an effective way for getting things done. By fixing the amount of time we spend on a given set of tasks, we can focus on doing the things that matter, give us motivation to start, prevent overruns and use our “null” times effectively. In contrast, if we worked on things until completion in one sitting, we’re less likely to start on complex tasks, more likely to overrun on open ended tasks and leaves us with less time and motivation to work on the next set of tasks.
If you are interested in finding out more about time boxing, you may find these links useful:
- Wikipedia’s entry on Time boxing
- Time boxing for top team performance
- Steve Pavlina’s perspective on Time boxing
- Four things that reduce software quality
- Managing product development
- Quality Function Deployment