Page 64 -
P. 64
2.3 Coping with change 47
Define Outline Assign Requirements Design System Develop System
Requirements to Increments Architecture Increment
System
Incomplete?
Validate Integrate Validate Deploy
Increment Increment System Increment
System
Complete?
Figure 2.10 Incremental Final
delivery System
2.3.2 Incremental delivery
Incremental delivery (Figure 2.10) is an approach to software development where
some of the developed increments are delivered to the customer and deployed for use
in an operational environment. In an incremental delivery process, customers iden-
tify, in outline, the services to be provided by the system. They identify which of the
services are most important and which are least important to them. A number of
delivery increments are then defined, with each increment providing a sub-set of the
system functionality. The allocation of services to increments depends on the service
priority, with the highest-priority services implemented and delivered first.
Once the system increments have been identified, the requirements for the serv-
ices to be delivered in the first increment are defined in detail and that increment is
developed. During development, further requirements analysis for later increments
can take place but requirements changes for the current increment are not accepted.
Once an increment is completed and delivered, customers can put it into service.
This means that they take early delivery of part of the system functionality. They can
experiment with the system and this helps them clarify their requirements for later sys-
tem increments. As new increments are completed, they are integrated with existing
increments so that the system functionality improves with each delivered increment.
Incremental delivery has a number of advantages:
1. Customers can use the early increments as prototypes and gain experience that
informs their requirements for later system increments. Unlike prototypes, these
are part of the real system so there is no re-learning when the complete system is
available.
2. Customers do not have to wait until the entire system is delivered before they
can gain value from it. The first increment satisfies their most critical require-
ments so they can use the software immediately.
3. The process maintains the benefits of incremental development in that it should
be relatively easy to incorporate changes into the system.
4. As the highest-priority services are delivered first and increments then inte-
grated, the most important system services receive the most testing. This means