The WinWin spiral software engineering methodology [#!winwin!#] is a recent example of a software engineering methodology. The WinWin spiral software engineering methodology expands the Boehm-Spiral methodology by adding a priority setting step, the WinWin process, at the beginning of each spiral cycle and by introducing intermediate goals, called anchor points.
The WinWin process identifies a decision point. For each decision point, the objectives, constraints, and alternatives are established and a WinWin condition is established. This may require a negotiation among the stakeholders and some reconciliations.
The anchor points establish three intermediate goals. The first anchor point, called the life cycle objective (LCO), establishes sound business cases for the entire system by showing that there is at least one feasible architecture that satisfies the goals of the system. The first intermediate goal is established when the top-level system objectives and scope, the operational concepts, the top-level system requirements, architecture, life cycle model, and system prototype are completed. This first anchor point establishes the why, what, when, who, where, how, and cost of the system. At the completion of this anchor point, a high level analysis of the system is available.
The second anchor point, called the life cycle architecture (LCA), defines the life cycle architecture. The third anchor point, called the initial operational capability (IOC), defines the operational capability, including the software environment needed for the first product release, operational hardware and site environment, and customer manuals and training. These two anchor points expand the high level analysis into other life cycle stages.
The WinWin spiral software engineering methodology is similar to the WaterSluice. The WinWin process could be considered a WaterSluice priority function, while the anchor points could represent WaterSluice stages. The WinWin process does not explicitly include non-monotonic effects. The anchor points are like the major stages in the life cycle of a product: initial development, deployment, operations, maintenance, legacy, and final discontinuation. The first anchor point is close to initial development. The second anchor point initiates deployment, while the third anchor point starts operations and maintenance.