Agile Development: The Importance of Timeboxing

time in a box

When agile teams plan sprints, they strive to get as much information about the user stories as possible so they can minimize interruptions and downtime throughout that sprint. So, it is helpful to have shorter (one-week) sprints rather than longer (three-week) sprints. It is important to have done a good job of story-time and backlog development prior to the start of the sprint so stories are more mature and better understood when it comes time to sprint planning. It is also really helpful to clarify any uncertainties at the daily standup so we can have productive days.

The reason this is so important is because of the cost of switching tasks when one is interrupted due to obstacles or incomplete information.  It takes time to get into the zone, particularly when the problems are complex and highly detailed. Indeed, we have observed that it takes more time to get tasks completed if we switch between them than if we concentrate and work through a single task at a time. Task switching – sometimes called multi-tasking – is also error prone.

We use this concept, called timeboxing, to plan our days, weeks, and sprints. Our daily standups, for example, are timeboxed to a maximum of 15 minutes. If the standup is taking more than 15 minutes then it is quite probable that at least 20% of the people in the meeting are not affected by the issue that is causing so much discussion.  In fact, usually only 20% of the people extending the standup are part of the discussion while 80% of the remaining team are losing valuable time.  It is far better to end the standup and take that technical discussion off-line between and among only those people who are really affected by the issue and let the rest get to work.

Another benefit to timeboxing is that it really forces people to prioritize on the most important and valuable tasks at hand.  If you know you only have a very short period of time – a three to four-day sprint, for example – to get stuff done then you really need to focus on the most important stuff.  Timeboxing is a very important part of the agile development mindset and is conducive to the concept of iterative development, Kanban, and sprints.

Similar to our philosophy of organization – a place for everything and every thing in its place – we think the same with regard to timeboxing – a time for every thing and every thing at the right time.  There is a time to work, time to reflect, time to play.  This concept has helped us become more productive by putting first things first and focusing on what is most important at any moment in time.