Iterations or "sprints" are the fundamental building blocks of an agile development process. Iterations are short - no more than a few weeks in length - and deliver a complete vertical slice of the software system to enable customer feedback and acceptance testing. To do this, each iteration incorporates a complete life cycle of design, coding, integration, and testing. An iteration must produce working, integrated, and tested code.

Iterations are characterized as follows:

Process overview

The iterative process in use at Drew leverages two concurrent and interrelated processes: the development iterations themselves, and the consulting process that is responsible for gathering user stories and use cases from the customer. In the case where it is possible to have full participation of the customer on the development team, the consulting process can be fully integrated into the iterations themselves, however in most practical applications at Drew this will be a parallel process that feeds requirements into the project backlog and gathers feedback from an external customer.

Consulting process

The consulting process is a continuous cycle, with each step providing the opportunity to feed back to the previous in order to refine the requirements being generated for the development team.

Development iterations

Each development iteration - typically between 1-6 weeks in length - works on a fixed scope of business requirements in a time-boxed period and delivers a working vertical slice of the system for customer feedback and evaluation.