Those looking for information about software development per se should look elsewhere; this book concerns itself with processes. Although it is nominally about processes for improving software development, the treatment is sufficiently general that it could apply to many types of processes. In many of the discussions, the word “software” could be removed or replaced with no loss of content. The link to software comes from the underlying standards cited, including the Software Engineering Institute’s Capability Maturity Model (CMM) and the ISO/IEC 15504 Draft Standard for Software Process Assessment.
The book is divided into five parts. The first part sets the stage by justifying process improvement. Part 2 provides a framework for the “software process environment.” This includes technical and organizational infrastructure, roadmaps, process assessment, and making an action plan. Part 3 “describes strategies and plans for planning and launching a software process improvement program in your organization.” This information concerns implementing, institutionalizing, and measuring software process improvement processes. Part 4 gives detailed descriptions of the two major emerging standards in this area, CMM and ISO/IEC 15504, and shorter descriptions of several others: Bootstrap, ISO 9000, MIL-STD-498, Trillium, and V-Model. Finally, Part 5 offers some case studies of the benefits of software process improvement and a brief overview of future directions. The book also contains a comprehensive glossary and an extensive reference list.
The text is good at delineating the various roles involved in implementing process improvements, especially the need for top management support. It is well organized and clearly written. Zahran also provides good summaries of the qualitative and quantitative benefits from the use of process improvement methods. One flaw is that the quantitative benefits, which are most likely to appeal to business managers, are enumerated only at the end of the book. Some mention of these benefits earlier in the text would get the attention of the targeted audience.
Another of the book’s flaws is redundancy. In the first few chapters, the same arguments are recast several times. This is likely to drive away impatient readers, who are common in the ranks of business management. Many of the figures and diagrams are quite good, but a number of figures are almost literally repeated in the text, reducing their value significantly. Despite its flaws, the book gets the right messages across. It will be of value to organizations seeking to improve their software development processes, and perhaps to those seeking to learn about process improvement in general.