- Shopping Bag ( 0 items )
-
All (11) from $2.67
-
New (8) from $11.00
-
Used (3) from $2.67
More About This Textbook
Overview
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.
Highlights include
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.
Product Details
Related Subjects
Meet the Author
Walker Royce is the vice president of IBM’s Worldwide Rational Lab Services. He has managed large software engineering projects, consulted with a broad spectrum of IBM's worldwide customer base, and developed a software management approach that exploits an iterative life cycle, industry best practices, and architecture-first priorities. He is the author of Software Project Management: A Unified Framework (Addison-Wesley, 1998) and a principal contributor to the management philosophy inherent in Rational’s Unified Process. He received his BA in physics from the University of California, and his MS in computer information and control engineering from the University of Michigan.
Kurt Bittner is chief technical officer for the Americas at Ivar Jacobson Consulting. He has worked in the software industry for more than 26 years in a variety of roles, including developer, team leader, architect, project manager, and business leader. He has led agile projects, run a large division of a software development company, survived and thrived in several start-ups, and worked with clients in a variety of industries including insurance, banking, and energy. He is the co-author of two books with Ian Spence, Use Case Modeling (Addison-Wesley, 2003) and Managing Iterative Software Development Projects (Addison-Wesley, 2007), as well as many articles, especially in the areas of improving requirements and software development management practices.
Mike Perrow is a writer and editor for the Rational organization within the IBM Software Group. He is the founding editor of The Rational Edge online magazine. In that role, he has worked closely with Rational methodologists and thought leaders, including Walker Royce, Kurt Bittner, and many others, to explain the concepts of iterative software development that underlie the Rational Unified Process and related toolset. He began his career as a technical writer on mainframe systems while teaching technical writing at Old Dominion University. Since then, he has taught periodically and served as an evangelist and marketer for Imagination Systems, Powersoft, and Sybase, Inc. In his parallel life as a creative writer, he has published poems in leading literary journals, including The Southern Review, Shenandoah, and Boston Review.
Table of Contents
Preface xiii
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
Summary 11
Chapter 2: Achieving Results: The Case for Software Economics 13
Iterative Development 15
Benefits of the Results-Based Approach 16
TheMark of Success 18
Summary 19
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
Summary 30
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
Summary 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
Summary 48
Chapter 6: Improving Team Proficiency 51
Enhancing Individual Performance 52
Improving Project Teamwork 52
Advancing Organizational Capability 55
Summary 57
Chapter 7: Improving Automation Through Integrated Tools 59
Improving Human Productivity 60
Eliminating Error Sources 61
Enabling Process Improvements 62
Summary 63
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
Summary 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
Summary 87
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
OtherMeasures 94
Summary 96
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
Summary 110
Chapter 12: What to Measure in the Transition Phase 113
Measurement in the Transition Phase 114
Concluding the Transition Phase 118
Summary 119
Chapter 13: Measuring Projects Embedded in Programs 123
Organizing Projects into Programs 124
Measuring Program Stages 127
Summary 127
Appendix: Getting Started with Iterative Project Management 129
Embarking on Your First Iterative Project 130
Adopting an Iterative Approach Iteratively 144
Conclusion 154
Suggested Reading 157
Index 161
Preface
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.
Mike Perrow
Medford, Massachusetts
© Copyright Pearson Education. All rights reserved.