For over a decade, software process improvement (SPI) has been promoted as an approach to improve systematically the way software is developed and managed. Mostly this research and the relevant experience reports have been focussed on large software companies.
Conradi and his co-authors have collected the main results from four Norwegian industrial research and development projects on SPI carried out between 1996 and 2005, which, in contrast to other treatments, concentrated on small- and medium-sized companies, typically characterized by fast-changing environments and processes. The presentation is organized in five sections: general principles and methods of SPI, knowledge management for SPI, process modelling and electronic process guides, estimation methods, and object-oriented and component-based systems. A spectrum of empirical methods has been used, e.g. case studies, large-scale experiments, surveys and interviews, and action research.
The book mainly targets researchers and graduate students in (empirical) software engineering, and software professionals working in development or quality assurance.
Review By: Scott Brookhart 03/12/2010This book is written for researchers and graduate students of software development process improvement and for software professionals who have an interest in improving their process. The Norwegian editors of the book have chosen well-written and pertinent papers that are useful for implementing process improvement. Although published in 2006, these papers are timeless in their effect. This book starts with general principles and methods of process improvement such as lessons learned, evidence-based software engineering, and empirical investigation of factors for success. Parts of this book assist the small- and medium-sized enterprise. The other sections cover knowledge management, process modeling, estimation methods, and empirical studies. Clearly, all of the topics in this book are relevant to any process improvement discussion that may arise.
My organization is looking to revise our software development process, and we found this book useful for providing background information on different implementations that would successfully improve our processes. Many of the papers discuss the topic and then provide steps and operational recommendations for implementation. While not all of the practices may work for a particular organization, this book does provide enough information on topics where process improvement suggestions can be adapted by any organization. Without measurement of some kind, it may be difficult to indicate whether the current practices are effective. Like a moving target, software development processes can be difficult to assess, but this book provides some guidelines for assessing and presents a structure for those organizations that are lacking good software development processes.
Papers in this book are based on the teachings of thought leaders in this arena, such as Boehm, Basili, Cockburn, Deming, Juran, and Krasner. This book should be in a process improvement professional’s collection. It serves best as a reference book that helps one understand the implementation issues, and it also provides dialogue of others who have thoughtfully considered improving the processes in their organizations. Additionally, living in the United States, I liked seeing what other countries are doing and how I might learn from them. These papers point out some of the "local feel" of software organizations in Norway, which I enjoyed reading as well. I recommend this book to anyone involved in any part of the software development process.