Successful Software Development, 2nd Edition
Introduces a model for a mature software development process that accommodates flexibility, focusing on policies and procedures that define how software development is performed, and technologies available. Tells how to sell the business case for software process improvement, how to establish dialogue between developers and customers, and how to manage multiple constituencies, personalities, and issues. Shows how to create plans that reflect the need for change, and how to write clear contracts and statements of work. Donaldson has 25 years of software engineering experience. Siegel has been in the software industry since 1970.

Review By: James T. Heires
03/06/2003This book presents a thorough description of how to establish and use a successful software development process that makes business sense. The process point of view is carried throughout the book to establish a business case for changing the way companies develop software. The concept of a systems engineering environment is introduced as a combination process and technology development infrastructure.
Advice is given by the authors to enable an organization to create a development process to satisfy their business case. Effectively planning software development projects and managing changes to them are described as risk management techniques that every project should use. A software systems development process is described along with the change control board process. Product and process reviews and measurement are emphasized as a way to enhance the “goodness” of software systems. Finally, the cultural and practical issues associated with process definition and improvement are described.
This eight-chapter book weighs in at a hefty 745 pages, with more than 200 figures and diagrams! It has a lengthy index, annotated bibliography, and handy key facts imprinted on the inside front and back covers. The authors have gone out of their way to put together this high-quality reference. This beautifully finished book shows integrity and grace.
Although intimidating at first, this lengthy volume contains a fair amount of repetition. This makes it most suitable for reference or learning purposes, but less appropriate for browsing. The authors provide numerous data collection forms, reports, checklists, and policies to help get you started. This book would make a very serviceable college textbook for a software engineering program of study if proper teaching aids were supplemented.
The contents of this book focus on the management issues faced by commercial software development organizations. Concepts from the Software Engineering Institute’s Capability Maturity Model take center stage throughout the book. Issues such as configuration management, peer reviews, quality assurance, and measurement receive especially detailed treatment.
The chapter on change control is quite complete, presenting both the developer and customer points of view. The notion and purpose of a Change Control Board (CCB) is introduced and a decision mechanism and process are refined. Although Configuration Management is central to the CMM at level 2, it was not covered in enough detail to provide a working knowledge of the subject.
Reviews are presented as a means to provide management visibility into the state of both the product and the process. Standards, requirements, designs, and the organization’s standard development process are all compared with the project’s behavior to establish this visibility. This chapter includes the concept of a Quality Assurance function, which carries out some of the audits and reviews described here.
In the chapter on Measurement, the authors describe a trademarked measurement methodology they call Object Measurement (OM). OM is a generalized technique for measuring product and process integrity (e.g., “goodness”) by using a set of quantitative and qualitative attributes for each.
The final section of the book is dedicated to developing what the authors call a Systems Engineering Environment (SEE). The SEE is a process definition and improvement framework based upon the concepts presented in the earlier chapters.