In exploring the different strategic techniques that can be used on software development projects, Ould focuses on three methods. Technical planning provides the information necessary to choose strategy, methods, and tools. Quality planning is designed to help define the verification strategy to be used for software development. Resource planning takes the outputs of technical and quality planning and produces a costed resource plan for the software development project. This resource plan takes all risks and uncertainties into account.
The first part of the book delves into technical planning by introducing different process models. These models, although based on the universal development life cycle of requirements, design, development, implementation, and maintenance, offer variations that are based on control of risk. The V process model involves a single pass through the development life cycle. The VP process model adds a prototype process to the development life cycle. In the evolutionary model, full functionality is achieved through multiple iterations of the development life cycle. In the incremental model, full functionality is developed over several iterations. The mixed process model achieves functionality by combining the first four models into a unique delivery model. The appropriate model is selected based on an evaluation of risk and uncertainty, which are typically found in one or more of the following areas:
Quality planning involves matching risk to the process model or, as the author puts it, “grasping the snake.” For software development, this means paying attention to the three aspects of quality: quality achievement, quality control, and quality assurance.
Understanding and controlling these three dimensions depends on yet another family of models, the system models. The user model covers those aspects that interest the user: requirements statements, system specifications, acceptance test specifications, and user guides and manuals. The architectural model captures the software architecture of the system in terms of the logical structure of its control mechanisms and data. The build model describes how the programs are built, and the implementation model specifies how the system is implemented. Together, these system models provide detailed input to the resource plan by identifying the deliverables and the task activities required to produce those deliverables.
The technical and quality plans yield the raw data necessary to produce a costed project plan. In the final step, resource planning, the task activity times are estimated and costed, and then scheduled according to the task or any outside activity dependencies.
This book is well written. Each chapter ends with a summary, and a final chapter summarizes the entire book. A project example demonstrates the book’s principles, and exercises reinforce each chapter’s concepts. The bibliography is extensive. Ould has written an excellent basic treatment that explores the relationship between planning and quality in the system life cycle.