Definition of timebox
A timebox is a fixed unit of development capacity. An easy way to visualize a timebox is as a two-dimensional graph. Along the vertical axis is the cost of the development team (per unit time). Along the horizontal axis is time. The longer an iteration is, the wider a timebox is.
The important thing to notice is that with Cost and Time fixed, the capacity of the timebox is fixed. There is only so much that can be accomplished with a given team and a given amount of time.
A unit of work
A unit of work represents both the functionality being delivered and the quality of the functionality.
We can think of the time as having two tightly-linked components: implementing the functionality, and implementing the functionality with good quality. Poorly written code, for an isolated requirement, can take less time than well written code. The extra time spent doing it right is part of the quality component. Writing tests and documentation (when appropriate) are also part of the quality component.
Filling a timebox
We can fill up a timebox with the work-units representing several requirements. Ideally, they are the highest priority requirements. Different requirements will take different amounts of time to implement.
There are four methods of adjusting the plan once a request has been approved and committed.
Four methods of dealing with change
- Sacrifice quality to increase functionality
- Increase cost to increase functionality
- Increase time to increase functionality
- Delay some functionality to deliver other functionality
For more details on how to apply (and when not to apply) each of the four methods, check out the extended article "How To Use Timeboxes for Scheduling Software Delivery" at http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/
Scott Sehlhorst is the author of Tyner Blain, a blog dedicated to helping people achieve software product success. Tyner Blain can be read at http://tynerblain.com/blog where you can also get a free RSS subscription.
A more detailed article, http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/ can be found with supporting diagrams that help visualize using timeboxes and making tradeoffs.