his is the second in a two-part series that surveys Agile methods and helps readers decide which combination is the most appropriate for their projects. The first part introduced Agile and summarized Extreme Programming (XP), Scrum, Lean, and Feature Driven Development (FDD). This part will look at the Agile Unified Process (AUP), Crystal, and Dynamic Systems Development Method (DSDM) before providing a comparison of all seven methodologies. (In case you missed it, be sure to read part 1
Agile Unified Process
The Unified Process (UP) is an iterative and incremental software development process framework. It is often considered a higher ceremony process because it specifies many activities and artifacts involved in a software project. As a process framework there are several adaptations, the most popular being the Rational Unified Process (RUP) from IBM. The Agile Unified Process (AUP) is an Agile adaptation of the UP formalized by Scott Ambler and written about by others including Craig Larman. Ambler succinctly summarizes AUP as "serial in the large, iterative in the small, [and] delivering incremental releases over time."
|Figure 1. Phases and Disciplines of the Unified Process. AUP is an implementation of the Unified Process which tailors it by selecting only seven disciplines (model, implementation, test, deployment, configuration management, project management, and environments).|
Image courtesy of IBM.
Risk management plays an important role in AUP projects. AUP stresses that high-risk elements be prioritized early in development. As a means to this end, a risk list is usually created early on and maintained throughout the development process. Additionally, AUP stresses the early development of an executable architectural baseline. This architectural core is developed during the Elaboration phase to validate key requirements, assumptions, and address technical risks.
In describing AUP as "serial in the large," Ambler refers to the four major phases of a UP project: inception, elaboration, construction, and transition. These phases occur in serial and each concludes when a specified milestone is achieved.
- InceptionThe goal of inception is to develop a shared understanding of the scope of the new system and to define a candidate architecture.
- ElaborationThe goal of elaboration is to expand the team's understanding of the system requirements and to validate the candidate architecture.
- ConstructionDuring construction the development of the system is completed.
- TransitionDuring transition system testing is completed and the system is deployed to production.
AUP is "iterative in the small" in that each phase is divided into one or more iterations. AUP disciplines are a subset of UP disciplines and include: model, implementation, test, deployment, configuration management, project management, and environment. During most iterations, all of the seven disciplines of AUP occur in parallel (see Figure 1
). Each discipline represents an activity that drives the project closer to achieving its vision.