We have 4013 guests and 7 members online
Home > Articles > Columns > Articles > FEATURED BOOK: The Economics of Iterative Software Development

FEATURED BOOK: The Economics of Iterative Software Development

E-mail
Written by Brad Appleton   
Monday, 06 July 2009 00:00
july-09-economicsbigby Walker Royce, Kurt Bittner and Mike Perrow

The Economics of Iterative Software Development: Steering Toward Better Business Results is an important text for anyone trying to persuade management to "go iterative" as well as to anyone needing to measure & track the kinds of business results that management needs to see for a software development project.


I'll be perfectly honest: I was expecting this book to be an extremely dry and boring read, albeit full of lots of useful information densely packed in mathematical models and formulas, perhaps reminiscent of past college days reading a huge tome on socio-political economic theories. It wasn't as bad as I'd feared. Yes - it is a bit dry in places, but those are the exception rather than the rule. And there are lots of "war stories" sprinkled throughout that hold your interest and stop your eyes from glazing over.

The book is only ~160 pages long, making it a relatively light read that you could take for your next long plane flight or the next time you're stuck waiting more than a few hours for those service-repair people to show-up "anytime" between 10am-4pm.

ba0709-1There are three parts to the book and part one is "The Software Driven Economy."  It takes us on a brief journey of traditional waterfall-style projects, the CHAOS report, the problems with the waterfall model, and how the nature of software development has inherent, unavoidable risk and uncertainty. While those things should be nothing new to readers of the Agile Journal, they are covered very quickly and concisely. (Here, many readers may prefer the more comprehensive and compelling stories from Craig Larman's Agile and Iterative Development: A Manager's Guide.)

In chapter 2, Achieving Results, the case for software economics, the authors basically argue that Hollywood movie production is a more suitable way of thinking about modern software project management (as opposed to the waterfall-way). This is because software development is a creative/inventive endeavor of knowledge-creation and learning.

It should be made clear that this book is not specific to Agile development, and refers to iterative development in general. It uses the Rational Unified Process (RUP) as its standard benchmark and definition of an iterative process, and even applies the RUP phases of Inception, Elaboration, Construction, and Transition when discussing and proposing means of tracking and measuring iterative projects.

Chapter 3, Trends in Software Economics is available online from the publishers website for the book and it begins part two Improving Software Economics which is where the real "meat" of the book begins. In part two we have a tour of 40 years of software engineering, and we learn about software economic models, Cocomo and Cocomo-II, and other models and measures. The subsequent 4 chapters cover reducing project size/complexity, improving the development process, team proficiency, automation, and even accelerating culture change. These are all covered very concisely with good stories and examples and good explanations using their economic model.

Note however that anyone expecting to see a lot of rigorous math and conclusive data will be disappointed - the book doesn't attempt to provide such purely objective incontrovertible, exhaustive mathematical proofs. It merely provides supporting models with some evidence and theory. So don't expect to take this to your management and say "see - the math and data clearly shows that ..." Instead, you are given an economic model that focuses on your management's most pressing concerns about your projects: business-results, net-present value, progress and risk. This will help you communicate with impact using vocabulary and terms your manager cares about instead of being lost in technical jargon and technical concerns.

Part three of the book is all about What to Measure for Software Engineering. It is "the main course" and my favorite part of the book. It is also the part that is of the most practical and applicable use. Whereas the previous chapters provided some background, and framed the vocabulary and discussion for talking to management, this chapter gives pragmatic, tangible advice for what to track and measure and how to report it and use it. You'll see recommendations for what to measure for each phase in RUP.
  • For iterations during the Inception phase, financial viability and business befits are recommended to be measured in terms of Net Present Value (NPV).
  • In the Elaboration and Construction phases, they recommend various measures of progress, rework trends, risk reduction, project backlog growth/shrinkage, test coverage, and build stability.
  • In the Transition phase, the recommended measures focus on product releasability and suitability for deployment.
  • All throughout the project, various measures of requirements stability, risk stability, estimated versus actual effort, etc. are also recommended.
There are other measures and recommendations too. You'll have to go read the book to see all of them and the details of each.

While there is no "Part four", there is an appendix devoted how to get started with iterative project management, and even taking an iterative approach to adopting iterative development.

All in all, The Economics of Iterative Software Development is a solid-book that is a relatively light/quick read with lots of good, practical advice on how to apply an economic model of thinking and measurement for managing and tracking business-results of an iterative project. If you need help doing that, or with communicating to your management about the need and benefits of an iterative approach, then you need to read this book!



About the Reviewer
Brad Appleton is an enterprise SCM/ALM solution architect for a Fortune 500 technology company. Currently he helps projects and teams adopt and apply agile development & SCM practices. Brad also author's the Agile CM Environments blog, and is co-author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration, the "Agile SCM" column in CMCrossroads.com's CM Journal, and is a former section editor for The C++ Report. Since 1987, Brad has extensive experience using, developing, and supporting SCM environments for teams of all shapes and sizes. He holds an M.S. in Software Engineering and a B.S. in Computer Science and Mathematics.

Comments (0)Add Comment


Write comment

You must be logged in to post a comment. Please register if you do not have an account yet.

busy
Last Updated on Wednesday, 08 July 2009 12:46
 

Agile Marketplace - Announcements and Special Offers

Webcast:  Moving Build and Code Quality Upstream
This interactive panel discussion moderated by Bob Aiello, Editor-in-Chief fo the CM Journal brings industry experts Anders Wallgren, CTO of Electric Cloud and Gwyn Fisher, CTO of Klocwork together for a candid discussion of the cost savings, productivity and quality benefits that can be achieved by stabilizing builds and code quality as early in the development cycle as possible.
Register Now!

Collabnet -TeamForge 5.3
CollabNet TeamForge 5.3 includes Dynamic Planning—providing flexibility to model release scope and timeline in a single view. Now, you can easily manipulate/adjust release data.
Download Your Free Trial

Requirements-based testing (RBT) can help to ensure comprehensive test coverage, reducing the risk of failure and improving software quality. This white paper details how application lifecycle management can be used to more effectively implement RBT processes, offering greater collaboration, traceability and control.can help you increase efficiency, reduce project risk, and improve overall software quality. Learn how MKS Integrity for application lifecycle management enables RBT, delivering full lifecycle traceability to help ensure that project requirements have complete test planning and execution coverage.
Download the Requirements-Based Testing whitepaper

PureCM –SCM for Agile Teams
PureCM helps you to manage development in short iterations: keeping track of changes, supporting automated builds and preserving frequent snapshots of your projects.
Get the free trial now