Page 81 -
P. 81

64   Chapter 3   Agile software development


                                        developers to the support team. However, supporters of agile methods rightly
                                        argue that documentation is frequently not kept up to date and it is not of much
                                        use for long-term system maintenance.
                                     6. What technologies are available to support system development? Agile methods
                                        often rely on good tools to keep track of an evolving design. If you are develop-
                                        ing a system using an IDE that does not have good tools for program visualiza-
                                        tion and analysis, then more design documentation may be required.
                                     7. How is the development team organized? If the development team is distributed
                                        or if part of the development is being outsourced, then you may need to develop
                                        design documents to communicate across the development teams. You may
                                        need to plan in advance what these are.
                                     8. Are there cultural issues that may affect the system development? Traditional
                                        engineering organizations have a culture of plan-based development, as this is
                                        the norm in engineering. This usually requires extensive design documentation,
                                        rather than the informal knowledge used in agile processes.
                                     9. How good are the designers and programmers in the development team? It is
                                        sometimes argued that agile methods require higher skill levels than plan-based
                                        approaches in which programmers simply translate a detailed design into code.
                                        If you have a team with relatively low skill levels, you may need to use the best
                                        people to develop the design, with others responsible for programming.
                                    10. Is the system subject to external regulation? If a system has to be approved by an
                                        external regulator (e.g., the Federal Aviation Authority [FAA] approve software
                                        that is critical to the operation of an aircraft) then you will probably be required
                                        to produce detailed documentation as part of the system safety case.

                                      In reality, the issue of whether a project can be labelled as plan-driven or agile is
                                    not very important. Ultimately, the primary concern of buyers of a software system
                                    is whether or not they have an executable software system that meets their needs and
                                    does useful things for the individual user or the organization. In practice, many com-
                                    panies who claim to have used agile methods have adopted some agile practices and
                                    have integrated these with their plan-driven processes.





                              3.3 Extreme programming


                                    Extreme programming (XP) is perhaps the best known and most widely used of the
                                    agile methods. The name was coined by Beck (2000) because the approach was
                                    developed by pushing recognized good practice, such as iterative development, to
                                    ‘extreme’ levels. For example, in XP, several new versions of a system may be devel-
                                    oped by different programmers, integrated and tested in a day.
   76   77   78   79   80   81   82   83   84   85   86