Software Sizing, Estimation, and Risk Management
Software Sizing, Estimation, and Risk Management: When Performance is Measured Performance Improves is a practical, hands-on discussion of the software estimation, planning, and control process. This includes critical factors that impact estimates, methods for selecting and applying appropriate measures to projects, proper software sizing, and processes to identify and manage risk. The authors use their expertise in sizing, estimation, process engineering, and risk management to clearly demonstrate problems that make many estimates crumble and solutions that provide successful project plans. The book offers insight not available anywhere else, enabling readers to recognize and avoid downstream impacts resulting from poor estimates.

Review By: Cathy Bell
07/08/2010In this book, authors Daniel Galorath and Michael Evans combine basic life principles with software project management techniques. In the preface the authors stress that this is not a book on estimation theories or concepts but rather is a hands-on discussion of what critical factors should be considered when providing estimates, selecting and applying appropriate measures to a project, accurately documenting the size of your project, and identifying and managing risks.
The book is divided into four sections. Chapter 1, aptly titled "The Problem" gives an honest accounting of the many issues we face that lead to failed software projects, such as not adequately planning our resources, not having management backing, and not gathering meaningful data along the way. The authors stress that we need a solid, workable software development plan and then proceed to map a ten-step process to achieve such a plan. The value of this book is that the plan outlined has been proven to work. The steps to achieve the plan are clear, and both the steps and plan are flexible enough to accommodate projects of varying sizes and complexities.
The authors have done a good job explaining different processes that may be unfamiliar to the reader. They provide enough details to keep the discussion on target. There are plenty of checklists and document samples. One is a sample of a project task summary tool useful in determining what ancillary tasks might be necessary to complete a project but may not be tasks we would outline in our traditional project plans. The authors detail various methods to estimate and measure a project size, including counting source lines of code (SLOC), function-point counting, and methods used for object oriented (OO) development. The book details steps necessary to manage and monitor the development process so we can measure our performance along the way. There are also guidelines on how to best manage risk so that one can remove uncertainty from a project. The final two chapters of the book are an introduction to Galorath Inc.'s project-planning tool, SEER-SEM.
The authors' strive in this book is to guide us towards a repeatable process for developing and validating our software project estimates, taking into account the risks involved so that we can accurately size both the project and software deliverables. If we follow the steps outlined in this book, we are surely setting ourselves up for success. Estimate based on a solid plan, plan based on solid requirements, and then monitor and record our progress so that we can validate our estimates and our plan.