Page 200 -
P. 200

Chapter 6  •  agile Modeling and prototyping     167

                                                                                                Figure 6.7
                                                                                                There are six vital lessons that can
                                                   Short releases                               be drawn from the agile approach
                                                   allow systems                                to systems.
                                                    to evolve

                                  Agile values are               Pair programming
                                    crucial to                    enhances overall
                                     success                         quality

                                                 Lessons Gained
                                                  from Adopting
                                                  Agile Methods


                                 Balanced resources               Onsite customers
                                 and activities support            are mutually
                                   project goals                    beneficial

                                                    40-hour
                                                 workweek improves
                                                   effectiveness







                   4. Daily scrum, a brief meeting in which communication is the number-one rule. Team mem-
                     bers need to explain what they did since the last meeting, whether they encountered any
                     obstacles, and what they plan to do before the next daily scrum.
                   5. Demo, working software that can be demonstrated to the customer.
                     Scrum is indeed a high-intensity methodology. It is just one of the approaches that adopts
                 the philosophy of agile modeling.

                 Lessons Learned from Agile Modeling
                 Often posed as an alternative way to develop systems, the agile approach seeks to address com-
                 mon complaints arising about the traditional SDLC approach (for example, being too time-
                 consuming, focusing on data rather than on humans, being too costly) by being rapid, iterative,
                 flexible, and participative in responding to changing human information requirements, business
                 conditions, and environments.
                     Several agile development projects have been chronicled in books, articles, and on websites.
                 Many of them were successes, some have been failures, but we can learn a great deal from study-
                 ing them, as well as the agile values, principles, and core practices. Following are the six major
                 lessons we draw from our examination of agile modeling. Figure 6.7 depicts the six lessons.
                     The first lesson is that short releases allow systems to evolve. Product updates are made
                 often, and changes are incorporated quickly. In this way the system is permitted to grow and
                 expand in ways that the customer finds useful. Through the use of short releases, the develop-
                 ment team compresses the time between releases of their product, improving the product later as
                 the dynamic situation demands.
                     The second lesson is that pair programming enhances overall quality. Although pair program-
                 ming is controversial, it clearly fosters other positive activities necessary in systems development
                 such as good communication, identifying with the customer, focusing on the most valuable aspects
                 of the project first, testing all code as it is developed, and integrating the new code after it success-
                 fully passes its tests.
                     The third lesson is that on-site customers are mutually beneficial to the business and the
                 agile development team. Customers serve as a ready reference and reality check, and the focus
                 of the system design will always be maintained via their presence: customers become more like
                 developers and developers empathize more fully with customers.
   195   196   197   198   199   200   201   202   203   204   205