The Economics of Iterative Software Development
When you start reading this book, you will quickly understand that the authors are affiliated with IBM. This is nothing wrong per se, but this seems to influence too much the vision that the book proposes, ignoring approaches proposed by others. Including “iterative” in the title seems here to be only a marketing trick used to make it catchy. They don’t give you a precise definition of “iterative”, saying rather than it is a “modern method” (Tom Gilb was talking about evolutionary development 30 years ago) and that iterative management is result-based rather than activity-based. The difference between iteration and increment is not discussed. The IBM bias is visible when they state for instance that RUP is a “well accepted benchmark of modern iterative process”.
The beginning of the book describes the development process, providing a two pages description of COCOMO in the middle of it, and proposes way to improve it. The solutions focus mainly on an initial emphasis on architecture and modeling (naturally it is UML with some tools) associated with the recommendation for code reuse or component integration. I was hoping to find more useful material in the part dealing with “practical measurement for software engineering”. However the material is arranged around RUP phases and I found only one metric formula in the 50 pages devoted to this topic. There is some interesting content in this part, but it is only very high level.
This short book is close to be only a white paper for the IBM Rational Unified Process approach. It contains some interesting material for a software development manager wanting to think about introducing metrics, but its biased IBM approach and lack of directly useful content make it awkward for the experienced development professionals.
“The Economics of Iterative Software Development”, Walker Royce, Kurt Bittner and Mike Perrow, Addison-Wesley, 171 pages, IBSN 978-0-321-50935-2
The most significant way to improve economic results is usually to achieve a software solution with the minimum amount of human-generated material. Our experience shows that managing scope and raising the level of abstraction through component-based technology and service-oriented architectures are the highest leverage techniques that make a difference
External stakeholders, including customers and users, cannot expect initial deliveries to perform up to specifications, to be complete, to be fully reliable, or to have end-target levels of quality or performance.