Estimating Software-Intensive Systems: Projects, Products, and Processes
Many software projects fail because their leaders don't know how to estimate, schedule, or measure them accurately. Fortunately, proven tools and techniques exist for every facet of software estimation. Estimating Software-Intensive Systems brings them together in a real-world guidebook that will help software managers, engineers, and customers immediately improve their estimates -- and drive continuing improvements over time.
Dr. Richard D. Stutzke presents a disciplined and repeatable process that can produce accurate and complete estimates for any project, product, or process, no matter how new or unusual. Stutzke doesn't just describe formal techniques: He offers simple, easy-to-use templates, spreadsheets, and tools you can start using today to identify and estimate product size, performance, and quality--as well as project cost, schedule, and risk reserves.
Drawing on 40 years of experience, Stutzke shows how to quickly "get your arms around" users' problems and requirements, the structure of a solution, and the process needed to deliver it. You'll learn how to choose the most appropriate estimating techniques and tools; collect accurate data, track progress, and update estimates; and recalibrate estimating models to improve estimation accuracy.
Stutzke's techniques apply whether you're creating custom in-house business software, purchasing or customizing "off-the-shelf" technology, or constructing complex, one-of-a-kind military, industrial, or commercial systems. These techniques apply to small and large projects, and to all project life cycles: agile to plan-driven. This book will help you plan, estimate, budget, schedule, purchase, design, build, test, deploy, operate, and maintain software-intensive systems. It explains how to size software, identify all cost components, calculate the associated costs, and set a competitive price. A separate section covers topics of interest for large projects: designing an appropriate Work Breakdown Structure, collecting data from cost accounting systems, and using Earned Value Measurement.
An accompanying CD-ROM contains templates, supplemental notes, and Microsoft Excel spreadsheets to estimate and track projects, product characteristics, and processes. It contains an extensive bibliography and links to Web resources on software estimation, measurement, and related topics. You'll find updates and even more information on this book's companion Web site, http://www.sw-estimation.com.

Review By: Robin F. Goldsmith, JD
10/07/2005In "Estimating Software-Intensive Systems," Richard D. Stutzke presents 918 readable, comprehensive pages. He includes a CD as well as additional papers and spreadsheets embodying various estimating calculations.
The author describes the basic linear method, which multiplies number of units of core work by the cost/effort/duration per unit, with non-core work calculated as percentages of core work. He describes various methods for measuring size and productivity and for producing and refining estimates of both new development and maintenance. Stutzke repeatedly emphasizes that, before preparing any estimate, one must understand the “six precursors of estimating.” He encourages using key diagrams that provide an integrated view of the goal to be accomplished.
Using a "software iceberg" analogy to highlight all the work in addition to the primary functions, Stutzke explains several different techniques for estimating software functional size, including four function point types of counts and COCOMO measures based on lines of code, for both new and modified code. Five different life cycles also are described with respect to their effects on how work is done and estimated. Processes for producing required products/sizes lead to work breakdown structure, bottom-up resource, and effort estimates, which then are turned into schedules via task-dependency networks.
Top-down estimating and allocation is the second key method and involves mathematical functions relating to gross total project measures, such as modeling project staffing versus time. Parametric models are the third key method and involve taking into account the statistical effects of numerous contributing variables, which must be calibrated to one’s own environment. Commercial estimating tools employ parametric models and tables of representative historical measurement data. Regardless of the initial estimating method, it is essential to measure actual time, effort, cost, output, and quality. One can identify trends and repeatedly adjust predictive estimates.
It's unlikely that many people will read such a massive tome cover-to-cover. I didn't sense any strong overall estimation strategy, which might warrant reading in sequence. Consequently, some readers would not necessarily find a clear workable direction among the numerous techniques. It's hard to assess how well the book lends itself to selective spot reading of specific topics. Considerable prior knowledge may be necessary to know which topics to pursue; I think the book could have benefited from a more evident coherent strategy overview, positioning the respective techniques.
My hat's off to Stutzke for making a potentially dreary topic readable. I highly recommend this valuable reference, which gathers in one place seemingly every known estimating technique. I especially appreciate the many mathematical formulas, possibly familiar in usage, but seldom known as far as underlying calculations.