Agile and Iterative Development : A Manager's Guide
by Craig Larman
2020-07-25 11:34:04
Agile and Iterative Development : A Manager's Guide
by Craig Larman
2020-07-25 11:34:04
Introduction Overview What''s in this book? Predictable versus new product development. What value will you get from studying this book, an introduction to iterative and agile methods? First, you will know the key practices of four noteworthy methods...
Read more
Introduction Overview What''s in this book? Predictable versus new product development. What value will you get from studying this book, an introduction to iterative and agile methods? First, you will know the key practices of four noteworthy methods, Scrum, Extreme Programming XP , the Unified Process UP , and Evo one of the original iterative methods . This is a "Cliffs Notes" summary, each chapter has something useful to you as a manager, developer, or student of development methods. Second, your learning curve will be shortened, as this is a distilled learning aid. The four method chapters have the same structure, to speed comprehension and compare-contrast. There''s a FAQ chapter, a "tips" chapter of common practices, and plenty of margin pointers to related pages-paper hyperlinks. Third, you will know motivation and evidence. Some organizations accept the value of iterative development, but others are still reluctant. If you need to make a case for an iterative project experiment, you will find in this book the key reasons, research, examples of large projects, standards-body acceptance, a business case, and promotion by well-known thought leaders through the decades. The research and history sections are also of value to students of software engineering methods. Note that agile methods are a subset of iterative methods; this book covers both types.The chapters may be read in any order; the big picture is this: 1. Introduction, and predictable vs. inventive development. 2. Basic iterative and evolutionary method practices. 3. Summary of agile principles and methods. 4. An agile project story to pull some ideas together.5-6. Motivation and evidence chapters for iterative and agile methods; useful for some. 7-10. Four method summaries on Scrum, XP, UP, and Evo. Note: practices can be mixed. 11. A tips chapter that expands on some of the method practices, plus others. 12. A frequently asked questions FAQ chapter. Finally, people trump process. Every process book should probably include this standard disclaimer: Process is only a second-order effect. The unique people, their feelings, qualities, and communication are more influential.Some problems are just hard, some people are just difficult. These methods are not salvation.Software Is New Product Development Consider building mobile phones on an assembly line: It is possible to unambiguously define the specifications and construction steps. After building some phones and measuring things, it is possible to reliably estimate and schedule the building of future phones. A different problem: Build a custom house. The owner wants to use new environmentally friendly materials and methods, but isn''t exactly sure what they want, and is going to change or clarify their decisions as they see the house, costs, and weeks unfold. At one end of the spectrum, such as manufacturing phones, there are problems with low degrees of novelty or change, and high rates of repeated identical or near-identical creation-mass manufacturing or predictable manufacturing. At the other end, there are problems with high degrees of novelty, creativity, and change, and no previous identical cases from which to derive estimates or schedules. This is the realm of new product development or inventive projects. The development process, management values, planning and estimation models appropriately associated with these two domains are different Table 1.1 . Of course, the point is, Most software is not a predictable or mass manufacturing problem. Software development is new product development.Plus, many projects use new and buggy technologies that exacerbate the degree of novelty and unpredictability. Note also it is a new product for the inexperienced even if it has been done before. Since predictable manufacturing is the wrong paradigm for software, practices and values rooted in it are not helpful. This mismatch lies at the heart of many of the challenges associated with traditional approaches to running a software project.A "waterfall" lifecycle, big up-front specifications, estimates, and speculative plans applicable to predictable manufacturing have been misapplied to software projects, a domain of inventive, high-change, high-novelty work.Factors CP86 preventing reliable up-front specifications include: The clients or users are not sure what they want. They have difficulty stating all they want and know. Many details of what they want will only be revealed during development. The details are overwhelmingly complex for people. As they see the product develop, they change their minds. External forces such as a competitor''s product or service lead to changes or enhancements in requests. This deep appreciation-that building software is complex, new product development with high change rates, and not predictable manufacturing-is at the heart of the motivation for agile and iterative methods. Certainly, another driving force is the desire to compete and win. Iterative and agile methods f
Less