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
   59   60   61   62   63   64   65   66   67   68   69