Page 94 -
P. 94

Chapter 3   Key points  77


                                           tools (e.g., requirements management tools) and the use of these tools is mandated
                                           for all projects.
                                       3.  Agile methods seem to work best when team members have a relatively high
                                           skill level. However, within large organizations, there are likely to be a wide
                                           range of skills and abilities, and people with lower skill levels may not be effec-
                                           tive team members in agile processes.

                                       4.  There may be cultural resistance to agile methods, especially in those organizations
                                           that have a long history of using conventional systems engineering processes.


                                         Change management and testing procedures are examples of company proce-
                                       dures that may not be compatible with agile methods. Change management is the
                                       process of controlling changes to a system, so that the impact of changes is pre-
                                       dictable and costs are controlled. All changes have to be approved in advance before
                                       they are made and this conflicts with the notion of refactoring. In XP, any developer
                                       can improve any code without getting external approval. For large systems, there are
                                       also testing standards where a system build is handed over to an external testing
                                       team. This may conflict with the test-first and test-often approaches used in XP.
                                         Introducing and sustaining the use of agile methods across a large organization is
                                       a process of cultural change. Cultural change takes a long time to implement and
                                       often requires a change of management before it can be accomplished. Companies
                                       wishing to use agile methods need evangelists to promote change. They must devote
                                       significant resources to the change process. At the time of writing, few large compa-
                                       nies have made a successful transition to agile development across the organization.







                      KEY POINTS


                           Agile methods are incremental development methods that focus on rapid development, frequent
                            releases of the software, reducing process overheads, and producing high-quality code. They
                            involve the customer directly in the development process.
                           The decision on whether to use an agile or a plan-driven approach to development should
                            depend on the type of software being developed, the capabilities of the development team, and
                            the culture of the company developing the system.
                           Extreme programming is a well-known agile method that integrates a range of good
                            programming practices such as frequent releases of the software, continuous software
                            improvement, and customer participation in the development team.
                           A particular strength of extreme programming is the development of automated tests before a
                            program feature is created. All tests must successfully execute when an increment is integrated
                            into a system.
   89   90   91   92   93   94   95   96   97   98   99