Sprints (or iterations if you prefer) are rooted in the concept of timeboxing, a time-management technique that helps organize the performance of work and manage scope. Each sprint takes place in a timeframe with specific start and end dates, called a timebox. Inside this timebox, the team is expected to work at a sustainable pace to complete a chosen set of work that aligns with a sprint goal.
The merits of timeboxing are frequently debated. Why should we timebox? Wouldn’t it be better to just have continuous, uninterrupted flow (as is advocated by Kanban)? There are certainly compelling arguments to be made for continuous flow. In this blog, I will provide the counterbalance, the compelling arguments in favor of timeboxing.
Reasons to Timebox
Timeboxing is important for several reasons as shown in the mind map below.
Let me elaborate on each of these reasons.
Establishes a WIP Limit
The concept of a WIP (work in process) limit is often associated with Kanban (an approach that does not use timeboxing). WIP represents an inventory of work that is started but not yet finished. In a Kanban system each column on a Kanban board (a stage of the work) has an associated WIP limit that indicates the maximum amount of work that may be in that state at one time.
Although less obvious, timeboxing is also a technique for limiting the amount of WIP. During sprint planning the team will plan to work on only those items that it believes it can start and finish within the sprint. In this respect timeboxing establishes a WIP limit each sprint.
Not all items of work that we want to perform are the same priority. So when presented with a collection of work items it is essential that we prioritize them. Timeboxing forces us to prioritize and perform the small amount of work that matters most. This sharpens our focus on getting something valuable done quickly.
Timeboxing also helps us demonstrate relevant progress by completing and validating important pieces of work by a known date (the end of the sprint). This type of progress reduces organizational risk by shifting the focus away from unreliable forms of progress reporting, such as conformance to plan. Also, by demonstrating progress each timebox we provide for regular inspect-and-adapt opportunities and control points in the development process.
Timeboxing also helps us demonstrate progress against big features that require more than one timebox to complete. Completing some work toward those features ensures that valuable, measurable progress is being made each sprint. It also helps the stakeholders and team learn exactly what remains to be done to deliver the entire feature.
Avoids Unnecessary Perfectionism
Timeboxing helps avoid unnecessary perfectionism. At one time or another we have all spent too much time trying to get something “perfect” or to do gold plating when good enough would suffice. Timeboxing forces an end to potentially unbounded work by establishing a fixed end date for the sprint by which a good solution must be done.
Timeboxing also motivates closure. My experience is that things are more likely to get done when teams have a known end date. The fact that the end of the sprint brings with it a hard deadline encourages team members to diligently apply themselves to complete the work on time. Without a known end date, there can be less of a sense of urgency to complete the job.
Timeboxing improves predictability. Although we can’t predict with great certainty exactly the work we will complete a year from now, it is completely reasonable to expect that we can predict the work we can complete in the next short sprint.
So, I hope you agree there are compelling reasons to consider a development approach that leverages timeboxing.