- Shopping Bag ( 0 items )
Results-Based Software Management: Achieve Better Outcomes with Finite Resources
Effective software development is no longer merely an IT concern: today, it is crucial to the entire enterprise. However, most businesspeople are not ready to make informed decisions about software initiatives. The Economics of Iterative Software Development: Steering Toward Better Business Results will prepare them. Drawing on decades of software development and business experience, the authors demonstrate how to utilize practical, economics-based techniques to plan and manage software projects for maximum return on technology investments.
The authors begin by dispelling widespread myths about software costs, explaining why traditional, “engineering-based” software management introduces unacceptable inefficiencies in today’s development environments. Next, they show business and technical managers how to combine the principles of economics and iterative development to achieve optimal results with limited resources. Using their techniques, readers will learn how to build systems that enable maximum business innovation and process improvement–and implement software processes that allow them to do so consistently.
The Economics of Iterative Software Development: Steering Toward Better Business Results will help both business and technical managers make better decisions throughout the software development process–and it will help team and project leaders keep any project or initiative on track, so they can deliver more value faster.
About the Authors xvii
Part I: The Software-Driven Economy 1
Chapter 1: The Challenge of Software Project Management 3
The High Stakes in Software Development 4
Institutional Focus 5
Traditional Software ProjectManagement 7
Problems with theWaterfall Approach 8
Chapter 2: Achieving Results: The Case for Software Economics 13
Iterative Development 15
Benefits of the Results-Based Approach 16
TheMark of Success 18
Part II: Improving Software Development Economics 21
Chapter 3: Trends in Software Economics 23
A SimplifiedModel of Software Economics 24
Software Engineering: A 40-Year History 26
Keys to Improvement: A Balanced Approach 28
Chapter 4: Reducing Software Project Size or Complexity 33
Managing Scope 33
Reducing the Size of Human-Generated Code 35
Improving Reuse Using Service-Oriented Architectures 36
Chapter 5: Improving the Development Process 39
Project Processes 39
Using an Iterative Process 40
Attacking Significant Risks Early 43
Improve Practices Incrementally to Meet Goals 46
Chapter 6: Improving Team Proficiency 51
Enhancing Individual Performance 52
Improving Project Teamwork 52
Advancing Organizational Capability 55
Chapter 7: Improving Automation Through Integrated Tools 59
Improving Human Productivity 60
Eliminating Error Sources 61
Enabling Process Improvements 62
Chapter 8: Accelerating Culture Change Through Common Sense 65
Profiles of Successful Organizations 65
Keys to Success 67
Recommendation: Select the Right Project, the Right
People, and the Right Goals 73
Part III: Practical Measurement for Software Engineering 77
Chapter 9: A Practical View of Software Development Metrics 79
Measurements and Goals 80
Variability and Goals 80
Measurement and Iterative Development 81
WhenMeasurement GoesWrong 83
What’sWrong with Detailed Up-front Planning? 85
DecidingWhat toMeasure, Phase by Phase 86
Chapter 10: What to Measure in the Inception Phase 89
Assessing Financial Viability 90
Assessing Technical Viability and Estimating Overall
Project Cost 91
Iteration in the Inception Phase 93
Chapter 11: What to Measure in the Elaboration and Construction Phases 99
Measurement in the Elaboration Phase 99
Measuring Risk Reduction 102
Measuring Progress 104
Measurement in the Construction Phase 106
Measuring the Project Backlog 107
Measuring Test Coverage 107
Measuring Build Stability 108
Expected Progress Trends in the Construction Phase 109
Chapter 12: What to Measure in the Transition Phase 113
Measurement in the Transition Phase 114
Concluding the Transition Phase 118
Chapter 13: Measuring Projects Embedded in Programs 123
Organizing Projects into Programs 124
Measuring Program Stages 127
Appendix: Getting Started with Iterative Project Management 129
Embarking on Your First Iterative Project 130
Adopting an Iterative Approach Iteratively 144
Suggested Reading 157
The Economics of Iterative Software DevelopmentPREFACE
Imagine you’re 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 you’d eventually end. You’d 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 you’d 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 toexplain those successes in terms most managers interested in improving business results will understand. With results in mind, we don’t 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 team’s 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 today’s 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 don’t know everything.
But through decades of observation we know what doesn’t 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 can’t manage what you can’t 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 you’re 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 you’ll find this book valuable.
© Copyright Pearson Education. All rights reserved.