As the project is in the planning stage, the development approach is one of the first things to decide. This seems obvious, yes? Choosing the development approach of predictive (or waterfall), iterative, incremental, adaptive (which includes Agile), or a hybrid approach will affect the planning of milestones, schedule, documentation, and almost every activity in the project. While this series of posts focuses on project management practices within an Agile environment, let’s review the approaches mentioned. (See section 22.214.171.124 in the PMBOK®.)
- Predictive (or Waterfall): The project scope, time, and cost are determined in the early phases of the life cycle. Any changes to the scope are carefully managed.
- Iterative: The project scope is generally determined early in the project life cycle, but time and cost estimates are routinely modified as the project team’s understanding of the project increases. Iterations develop the project through a series of repeated cycles, while increments successively add to the functionality of the project.
- Incremental: The deliverable is produced through a series of iterations that successively add functionality within a predetermined time frame. The deliverable contains the necessary and sufficient capability to be considered complete only after the final iteration.
- Adaptive: Adaptive life cycles are agile, iterative, or incremental. The detailed scope is defined and approved before the start of an iteration. Adaptive life cycles are also referred to as agile or change-driven life cycles.
- Hybrid: A combination of a predictive and an adaptive life cycle. Those elements of the project that are well known or have fixed requirements follow a predictive development life cycle, and those elements that are still evolving follow an adaptive development life cycle.
From the definitions above, Agile is then an adaptive development approach consisting of iterations (sprints). This is no surprise to anyone who knows about or practices Agile. Notice that for each of the development approaches noted above, the scope of the project is handled differently. Let’s look at just scope:
- Predictive (or waterfall): All scope is defined upfront and any scope changes carefully managed to keep time and cost boundaries.
- Iterative: All or nearly all scope is defined upfront, but time and cost can be modified to account for scope changes or better knowledge.
- Incremental: There are iterations, but since the product is complete only after the final one, then the scope is defined (or nearly so) upfront. This is like predictive, except that versions at each increment should be working.
- Adaptive: Scope is defined before an iteration, and a working, deliverable product should be available at the end of each iteration. Additional scope is then defined before the next iteration.
- Hybrid: Some scope is defined at the beginning, but additional scope can be added (and is expected) along the way. It could be that a minimum viable product (MVP) is not created until several iterations are completed if the MVP needs to meet the minimum scope defined at the start.
The development approach defines how the team completes the work. The project life cycle contains all the activities of the project, including starting the project, organizing and preparing the work, doing the work, and completing the project. Depending on the development approach, the tasks involved in organizing, preparing, and doing the work will fall at different times (or phases) during the project. With predictive, iterative, and incremental approaches, most or all the scope is defined upfront before any of the product creation takes place. With adaptive (agile) and hybrid approaches, the scope can be defined before each increment (sprint). Because of these distinctions on when the scope is defined, it is now clear why the development approach needs to be determined at the start of the project.
In the next post in this series, we’ll look at organizational factors which should be considered when determining the project scope, independent of development approach.