The spiral model suggests a framework activity that addresses customer communication.
The objective of this activity is to elicit project requirements from the customer.
In an ideal context, the developer simply asks the customer what is required and
the customer provides sufficient detail to proceed. Unfortunately, this rarely happens.
In reality, the customer and the developer enter into a process of negotiation,
where the customer may be asked to balance functionality,
performance, and other product or system characteristics against cost and
time to market.
The best negotiations strive for a “win-win” result. That is, the customer wins by
getting the system or product that satisfies the majority of the customer’s needs and
the developer wins by working to realistic and achievable budgets and deadlines.
Boehm’s WINWIN spiral model defines a set of negotiation activities at
the beginning of each pass around the spiral. Rather than a single customer communication
activity, the following activities are defined:
1. Identification of the system or subsystem’s key “stakeholders.”
2. Determination of the stakeholders’ “win conditions.”
3. Negotiation of the stakeholders’ win conditions to reconcile them into a set of
win-win conditions for all concerned (including the software project team).
Successful completion of these initial steps achieves a win-win result, which becomes
the key criterion for proceeding to software and system definition.
In addition to the emphasis placed on early negotiation, the WINWIN spiral model
introduces three process milestones, called anchor points , that help establish
the completion of one cycle around the spiral and provide decision milestones
before the software project proceeds.
In essence, the anchor points represent three different views of progress as the
project traverses the spiral. The first anchor point, life cycle objectives (LCO), defines
a set of objectives for each major software engineering activity. For example, as part
of LCO, a set of objectives establishes the definition of top-level system/product
requirements. The second anchor point, life cycle architecture (LCA), establishes objectives
that must be met as the system and software architecture is defined. For example,
as part of LCA, the software project team must demonstrate that it has evaluated
the applicability of off-the-shelf and reusable software components and considered
their impact on architectural decisions. Initial operational capability (IOC) is the third
anchor point and represents a set of objectives associated with the preparation of the
software for installation/distribution, site preparation prior to installation, and assistance
required by all parties that will use or support the software.