Defects play a large role in most software projects, ultimately leading to deficiencies and lost revenue. The ROI from Software Quality provides the tools needed for software engineers and project managers to calculate how much they should invest in quality, what benefits the investment will reap, and just how quickly those benefits will be realized. The result of an actual and very extensive project undertaken by the author, this text provides the quantitative models necessary for making real and reasonable calculations and shows how to perform ROI analysis before and after implementing a quality practice. The book demonstrates how to collect the appropriate data and easily perform the appropriate ROI analysis.
Review By: Arnoud M. Buzing 01/12/2009Using detected defects as a measurement of software quality, El Emam discusses software quality practices used in ROI calculations, such as software inspections, risk assessment models and metrics, test driven development (TDD), and automated defect detection tools. He examines how these quality practices are adopted among industry segments around the world.
The author makes a connection between quality practices and the costs incurred by customers and developers. Customer cost is calculated as a product of four parameters: defect density, size of the product, cost per defect, and fraction of observed defects. Developer cost is calculated as the sum of pre-release costs (fixed costs, coding, defect detection, and rework costs) and post-release costs (rework, support, and new feature costs).
While there are many possible definitions of ROI, El Emam only discusses two popular ones. He also uses a “measure of savings”--the savings investment divided by the original cost--to justify investments in the previously discussed software quality practices.
El Emam concludes with an extensive chapter on the quality of open source software. He draws comparisons to closed source software and discusses how to overcome additional obstacles one might encounter while trying to make a business case based on a ROI analysis.
"The ROI from Software Quality" promises to show the reader "how to perform ROI analysis, before and after implementing a quality program." The chapters "Calculating ROI” and “Example ROI Calculations" provide a framework from which the reader can draw to perform his calculations.
The sections on sensitivity analysis and implementing multiple quality practices show that these models are necessarily subject to complex constraints and uncertain cost estimates. These sections could have been expanded within their respective chapters.
The chapter on open source software focuses on installation and support-cost decisions. This chapter, the most extensively referenced at eighty-four references, seems like a topic for another book.
Despite these criticisms, I highly recommend this book to anyone who wants to sharpen his decision-making skills. After reading "The ROI from Software Quality," you will understand how investments in quality practices translate into project savings.