The following patterns generate development team activity leading to frequent and regular releases of increasingly functional programs. An important idea is the simultaneous development of requirements, specification, design and implementation. Where these responsibilities fall to single individuals, they are assumed to be able to wear the appropriate hat at the appropriate time. Similarly, should different people fill each role, they are assumed to be able to coordinate their activities such that each is productive and benefits from the other's work.
The patterns also generate a schedule of sorts while preserving considerable latitude to do what makes the most sense at the moment. Our general strategy is to develop to a few fixed target dates. When a delivery date arrives, we would like to look back over the development period and say with confidence that we used every available minute wisely.
Work Queue schedules development activity in a priority order that is free to change until work starts.
Work Group consists of a small team prepared and committed to an item surfacing in the queue.
Work Queue Report looks forward to the completion of work in progress in light of current understanding.
Comparable Work provides a reference for estimating based on expected similarity and actual records.
Completion Headroom estimates slack based on favorable completion of current and higher priority work.
Development Episode is the period when one or more of the group is actively sharing coding responsibilities.
Informal Labor Plan provides short-term and localized scheduling while work is underway.
Recommitment Meeting allows all parties to understand how work has progressed and what mutually acceptable changes might be required of schedules.
Work Split divides expectations into short and longer term needs given the insights gained so far for work in progress.