Excerpt
The Economics of Iterative Software Development PREFACE
Imagine youre a wealthy, seasoned traveler planning a monthlong, multicountry vacation. Sound nice? Go ahead, pick a continent, some part of the world you always wanted to explore. Where do you begin? If you had the luxury to actually consider such a notion, you might quickly determine your starting point and where youd eventually end. Youd imagine a sequence of smaller journeys to famous cities, mountains, seaside resorts. But as you began scoping out the general profile of your trip, would you begin planning every meal, every evening stroll, every purchase youd be making? Of course not. No one can plan in advance exactly what to do in all those unknown places, or exactly how to use the time and resources available along the way. Besides, you know that the quality of a journey is bound to suffer if you try sticking to rigid plans designed before you set out.
This book is about managing software development projects, which are seldom confused with long vacations. But from a management perspective, they have many things in common, all having to do with the unfamiliar—unfamiliar territory, languages, personal behavior, practices, costs, and infrastructure. This book is based on experiences that have involved thousands of miles of travel and thousands of hours of hard work alongside businesses whose software development teams encounter these uncertainties with every project. The most successful of these teams plan their projects at a high level first, then, like seasoned travelers, they plan in smaller steps called iterations as their journey progresses.
We attempt to explain those successes in terms most managers interested in improving business results will understand. With results in mind, we dont assume a great deal of technical experience on the part of the reader, but we do assume a commitment to successful leadership. This book targets readers who find themselves in leadership positions at various levels in a business organization, especially organizations that acquire, manage, or develop software as a component of business strategy. Our objective is to describe the benefits of frequent course correction during the iterative project, how to measure the interim results, and how the overall approach contributes meaningfully to the bottom line.
This last point has everything to do with the underlying theme of this book: economics. In the broadest sense, good economics means efficient management of finite resources toward an optimal result. Software economics is based on these same principles. We spend some time exploring poor economics based on oldfashioned management styles, including the inefficiencies that occur when software projects are managed as if they were traditional engineering projects, such as the construction of a bridge. When it comes to software construction, these inefficiencies are costly in terms of time, budget, and missed opportunities in the competitive marketplace. By contrast, modern iterative development methods will improve results based on practical governance of your teams finite resources; hence, the title of this book.
The order of our parts and chapters is straightforward. Part I, “The SoftwareDriven Economy,” presents the context for software development and management in todays business climate, the difficulties of success, as well as the consequences of failure. Part II, “Improving Software Development Economics,” focuses on a modern approach to software engineering based on the principles and practices of iterative development. We certainly dont know everything.
But through decades of observation we know what doesnt work, and we have learned quite a bit about what does. Part III, “Practical Measurement for Software Engineering,” offers a more detailed look at how you can be sure these techniques work—through measurement. As an update on the tenet that “you cant manage what you cant measure,” this final portion of the book focuses on the purposes of metrics, including the means by which variance can be reduced throughout the project lifecycle.
Whether youre a seasoned software project manager looking for a relatively brief review of iterative development principles, or a novice looking for a digestible introduction to these concepts, I think youll find this book valuable.
Mike Perrow
Medford, Massachusetts
© Copyright Pearson Education. All rights reserved.