- Iterative Development
- Risk-Driven and Client-Driven Iterative Planning
- Timeboxed Iterative Development
- During the Iteration, No Changes from External Stakeholders
- Evolutionary and Adaptive Development
- Evolutionary Requirements Analysis
- Early "Top Ten" High-Level Requirements and Skillful Analysis
- Evolutionary and Adaptive Planning
- Incremental Delivery
- Evolutionary Delivery
- The Most Common Mistake?
- Specific Iterative & Evolutionary Methods
- What's Next?
- Recommended Readings
Risk-Driven and Client-Driven Iterative Planning
What to do in the next three-week iteration? IID methods promote a combination of risk-driven and client-driven1 priorities. Risk-driven iterative development chooses the riskiest, most difficult elements for the early iterations. For example, maybe the client says "I want the Web pages to be green and the system to handle 5,000 simultaneous transactions." Green can wait. In this way, the highest risks are surfaced and mitigated early rather than late. Risk is a broad conceptmaybe you are making a new 3D modeling tool and market research shows that what will capture market interest is a novel, much easier user interface metaphor. The high risk is not getting the UI right.
Client-driven iterative development implies that the choice of features for the next iteration comes from the clientwhatever they perceive as the highest business value to them. In this way, the client steers the project, iteration by iteration, requesting the features that they currently think are most valuable. Note that the customer adaptively plans the choice for the next iteration, shortly before it starts, based on their latest insight, rather than speculatively at the start of the project. The customer has ongoing control and choice, as fresh information arises.
Apply both schemes. Clients do not always appreciate what is technically hard or risky. Developers do not always appreciate what has high business value.