Often referred to as the “black art” because of its complexity and uncertainty, software estimation is not as difficult or puzzling as people think. In fact, generating accurate estimates is straightforward—once you understand the art of creating them. In his highly anticipated book, acclaimed author Steve McConnell unravels the mystery to successful software estimation—distilling academic information and real-world experience into a practical guide for working software professionals. Instead of arcane treatises and rigid modeling techniques, this guide highlights a proven set of procedures, understandable formulas, and heuristics that individuals and development teams can apply to their projects to help achieve estimation proficiency.
Discover how to:
Estimate schedule and cost—or estimate the functionality that can be delivered within a given time frame
Avoid common software estimation mistakes
Learn estimation techniques for you, your team, and your organization * Estimate specific project activities—including development, management, and defect correction
Apply estimation approaches to any type of project—small or large, agile or traditional
Navigate the shark-infested political waters that surround project estimates
When many corporate software projects are failing, McConnell shows you what works for successful software estimation.
Critical Estimation Concepts
Chapter 1 What Is an "Estimate"?
Estimates, Targets, and Commitments
Relationship Between Estimates and Plans
Communicating about Estimates, Targets, and Commitments
Estimates as Probability Statements
Common Definitions of a "Good" Estimate
Estimates and Project Control
Estimation’s Real Purpose
A Working Definition of a "Good Estimate"
Additional Resources
Chapter 2 How Good an Estimator Are You?
A Simple Estimation Quiz
Discussion of Quiz Results
Chapter 3 Value of Accurate Estimates
Is It Better to Overestimate or Underestimate?
Details on the Software Industry’s Estimation Track Record
Benefits of Accurate Estimates
Value of Predictability Compared with Other Desirable Project Attributes
Problems with Common Estimation Techniques
Additional Resources
Chapter 4 Where Does Estimation Error Come From?
Sources of Estimation Uncertainty
The Cone of Uncertainty
Chaotic Development Processes
Unstable Requirements
Omitted Activities
Unfounded Optimism
Subjectivity and Bias
Off-the-Cuff Estimates
Unwarranted Precision
Other Sources of Error
Additional Resources
Chapter 5 Estimate Influences
Project Size
Kind of Software Being Developed
Personnel Factors
Programming Language
Other Project Influences
Diseconomies of Scale Revisited
Additional Resources
Fundamental Estimation Techniques
Chapter 6 Introduction to Estimation Techniques
Considerations in Choosing Estimation Techniques
Technique Applicability Tables
Chapter 7 Count, Compute, Judge
Count First
What to Count
Use Computation to Convert Counts to Estimates
Use Judgment Only as a Last Resort
Additional Resources
Chapter 8 Calibration and Historical Data
Improved Accuracy and Other Benefits of Historical Data
Data to Collect
How to Calibrate
Using Project Data to Refine Your Estimates
Calibration with Industry Average Data
Summary
Additional Resources
Chapter 9 Individual Expert Judgment
Structured Expert Judgment
Compare Estimates to Actuals
Additional Resources
Chapter 10 Decomposition and Recomposition
Calculating an Accurate Overall Expected Case
Decomposition via an Activity-Based Work Breakdown Structure
Hazards of Adding Up Best Case and Worst Case Estimates
Creating Meaningful Overall Best Case and Worst Case Estimates
Additional Resources
Chapter 11 Estimation by Analogy
Basic Approach to Estimating by Analogy
Comments on Uncertainty in the Triad Estimate
Chapter 12 Proxy-Based Estimates
Fuzzy Logic
Standard Components
Story Points
T-Shirt Sizing
Other Uses of Proxy-Based Techniques
Additional Resources
Chapter 13 Expert Judgment in Groups
Group Reviews
Wideband Delphi
Additional Resources
Chapter 14 Software Estimation Tools
Things You Can Do with Tools That You Can’t Do Manually
Data You’ll Need to Calibrate the Tools
One Thing You Shouldn’t Do with a Tool Any More than You Should Do Otherwise
Summary of Available Tools
Additional Resources
Chapter 15 Use of Multiple Approaches
Additional Resources
Chapter 16 Flow of Software Estimates on a Well-Estimated Project
Flow of an Individual Estimate on a Poorly Estimated Project
Flow of an Individual Estimate on a Well-Estimated Project
Chronological Estimation Flow for an Entire Project
Estimate Refinement
How to Present Reestimation to Other Project Stakeholders
A View of a Well-Estimated Project
Chapter 17 Standardized Estimation Procedures
Usual Elements of a Standardized Procedure
Fitting Estimation into a Stage-Gate Process
An Example of a Standardized Estimation Procedure for Sequential Projects
An Example of a Standardized Estimation Procedure for Iterative Projects
An Example of a Standardized Estimation Procedure from an Advanced Organization
Improving Your Standardized Procedure
Additional Resources
Specific Estimation Challenges
Chapter 18 Special Issues in Estimating Size
Challenges with Estimating Size
Function-Point Estimation
Simplified Function-Point Techniques
Summary of Techniques for Estimating Size
Additional Resources
Chapter 19 Special Issues in Estimating Effort
Influences on Effort
Computing Effort from Size
Computing Effort Estimates by Using the Science of Estimation
Industry-Average Effort Graphs
ISBSG Method
Comparing Effort Estimates
Additional Resources
Chapter 20 Special Issues in Estimating Schedule
The Basic Schedule Equation
Computing Schedule by Using Informal Comparisons to Past Projects
Jones’s First-Order Estimation Practice
Computing a Schedule Estimate by Using the Science of Estimation
Schedule Compression and the Shortest Possible Schedule
Tradeoffs Between Schedule and Effort
Schedule Estimation and Staffing Constraints
Comparison of Results from Different Methods
Additional Resources
Chapter 21 Estimating Planning Parameters
Estimating Activity Breakdown on a Project
Estimating Schedule for Different Activities
Converting Estimated Effort (Ideal Effort) to Planned Effort
Cost Estimates
Estimating Defect Production and Removal
Estimating Risk and Contingency Buffers
Other Rules of Thumb
Additional Resources
Chapter 22 Estimate Presentation Styles
Communicating Estimate Assumptions
Expressing Uncertainty
Using Ranges (of Any Kind)
Additional Resources
Chapter 23 Politics, Negotiation, and Problem Solving
Steve McConnell is recognized as one of the premier authors and voices in the development community. He is Chief Software Engineer of Construx Software and was the lead developer of Construx Estimate and of SPC Estimate Professional, winner of Software Development magazine's Productivity Award. He is the author of several books, including Code Complete and Rapid Development, both honored with Software Development magazine's Jolt Award.