Do we really need defined timeboxes?
Wikipedia defines time box as “In project management, a timebox is a period of time in which to accomplish some task. (…) If the team exceeds the date, the work is considered a failure and is cancelled or rescheduled“.
When using an Agile approach to software development, this is exactly the dynamic we are looking for. We use time boxes to ensure commitment by the project team to meet the defined time lines. As such, the objective of time boxing is to limit the efforts and activities of the project team to fit to an agreed upon time frame. The longer the time box, the least commitment you will get from the team.
In addition to commitment, time boxing has the amazing effect of creating a sense of urgency. We have all seen development projects
scheduled to be completed in 12 or 18 months with a big time box – a milestone – to deliver the complete application.
When this happens, the project team typically has a more relaxed approach during the early stages of the project only to spend nights and
week-end toward the end of the project to complete their tasks.
Implementing shorter time boxes forces a different team dynamic. If a team only has 2 or 3 weeks to complete their iteration, they cannot delay their activities too much and potential delays will more quickly come to the surface. Time boxing has the benefits of increasing the visibility of such situation.
Short time box also can be used as motivational factor allowing the team to frequently see the result of their work instead of waiting until the
end of the project.
In addition when using Scrum, time boxing also forces the team to work backward to accomplish their objective. In order to deliver working software, the team cannot spend superfluous efforts on the analysis and planning phases and need to start on the development tasks early. Since the development approach is iterative, the team doesn’t have to worry about every single details up front but can address them as they move forward.
Of course, there needs to be control mechanisms to ensure the team delivers working software since meeting time lines with incomplete components would defeat the purpose of time boxing.
In combination with other engineering practices, time boxing is a great way to get the entire team focused and motivated and achieve better results with your software development projects.