Timeboxing
Avi Siegel
•
5 min read
What is timeboxing?
Timeboxing is a time management technique used on Agile teams. It involves setting a specific, maximum amount of time for a given activity, by which point either a conclusion is reached or the team members involved move on to the next activity. The purpose is to ensure that work remains focused and does not take more time than it’s worth.
What are the goals of timeboxing?
The primary goals of timeboxing are to:
Avoid spending too much time on a given activity
Allow some time to be spent on a given activity, especially under circumstances where it’s unclear how long it would take from start to finish
Ensure that the teams stay focused on the task at hand
What is involved in timeboxing?
The core of timeboxing is simply the act of spending only a maximum amount of time on a given activity. This can be broken down into the following steps.
Decide to timebox
The ever-important initial step is to recognize that timeboxing an activity would be useful in the first place. This is generally helpful when there is a desire to allow some time, but not too much time, to be spent on said activity.
Examples of activities that may be worth timeboxing:
Meetings and ceremonies: Meetings are the classic example of timeboxing, as they are set on a calendar to occur within a specific time window. Still, it isn’t uncommon for meetings to run over when conversations go long. On Agile teams, especially during official ceremonies, the time limit becomes much more strict. For instance, when a standup is timeboxed to be 15 minutes long, that is quite explicitly the maximum amount of time that should be spent in the ceremony - else the team tends to get too in the weeds regarding their work, going against the goal of having only brief updates during standups. The same applies to other ceremonies like Sprint Planning, Backlog Grooming, and Retrospectives, albeit with longer timeboxes.
Discussions-within-discussions: When a subtopic comes up during a meeting, you want to be careful not to waste too much of the team’s time, as not everyone may be needed for the conversation. In these situations, it may be worth spending 2 minutes on a conversation to try to reach a resolution, while any more time would warrant pushing the rest of the discussion to a separate meeting with only the most relevant team members invited, so as to not waste the rest of the team’s time.
Bug fixes: Before looking into a bug, it may be unclear if it is a quick fix or something that could upend an entire part of the codebase. As such, it could be worthwhile to give an engineer, say, a 1-day timebox to try to fix the issue. If any more time were to be necessary, it would be beneficial to consult with the product manager or engineering manager to confirm whether or not it’s worth continuing to invest time.
Spikes: Spike tasks are designed to give engineers space to look into how to perform a given set of work, without requiring that the end state be that the work itself is complete. For example, it could be useful to spend 2 days documenting a technical implementation plan which would provide understanding as to how long the work would take - in that way, the core work could be prioritized (or not) depending on how large the effort would be. A timebox would work well here to get enough information documented, without necessarily documenting all possible scenarios and edge cases.
Set the timebox
Once the decision is made to timebox an activity, the next necessity is to state how long the activity will be timeboxed. Of course, the answer to that is context-dependent.
Meetings might be timeboxed to 15, 30, 60, or 120 minutes
Mini-discussions might be timeboxed to 2, 5, or 10 minutes
Tasks might be timeboxed to a small number of days (or based on task estimation)
Perform the timeboxed activity
When it is known how long should be spent on the activity, the team member(s) involved can move forward with it.
It is important during this step to keep an eye on the clock or calendar (depending on the length of the timebox).
For activities measured in mere minutes (e.g., discussions), you’ll need to be more vigilant so you don’t go (too much) over the allotted time.
For activities measured in days, the time to check in on status would be during standups.
End the timeboxed activity
Ending a timeboxed activity is different from ending a non-timeboxed activity in that the end doesn’t necessarily mean that the activity has been resolved.
As such, when the timeboxed amount of time has been spent on the activity, if a conclusion has not yet been reached, you’ll have a decision to make. You can opt to do one of the following:
Immediately call an end to the activity
Allow a reasonable (but minimal) amount of time to quickly resolve the activity
Officially extend the timebox by another timeboxed amount of time (i.e., go back to the first step)
Best practices for timeboxing
Use realistic timeboxes. Participants should be able to conclude a meaningful amount of the activity without going too long. Underestimating will lead to frustration, and overestimating defeats the purpose of timeboxing.
Be flexible when reasonable. Remember that the overall intent is efficient use of the team’s time. It’s not necessarily going to be the best use of time to schedule a follow-up meeting simply because you refused to allow for an additional 30 seconds to close out a 5-minute timeboxed conversation.
Be strict when you have to be. Adding a small amount of time is one thing; letting 1-day tasks linger for 2, 3, or more days only serves to enable the very inefficiencies timeboxes are meant to eliminate.