Synopses & Reviews
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.
A practical guide for software developers and development teams, this book--written by an award-winning author--features effective and understandable formulas, procedures, and heuristics to help organizations improve their project cost estimates.
About the Author
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.
Table of Contents
Welcome; Art vs. Science of Software Estimation; Why This Book Was Written and Who It Is For; Key Benefits Of This Book; What This Book Is Not About; Where to Start; Acknowledgments; Equations; Figures; Part I: Critical Estimation Concepts; Chapter 1: What Is an "Estimate"?; 1.1 Estimates, Targets, and Commitments; 1.2 Relationship Between Estimates and Plans; 1.3 Communicating about Estimates, Targets, and Commitments; 1.4 Estimates as Probability Statements; 1.5 Common Definitions of a "Good" Estimate; 1.6 Estimates and Project Control; 1.7 Estimations Real Purpose; 1.8 A Working Definition of a "Good Estimate"; Additional Resources; Chapter 2: How Good an Estimator Are You?; 2.1 A Simple Estimation Quiz; 2.2 Discussion of Quiz Results; Chapter 3: Value of Accurate Estimates; 3.1 Is It Better to Overestimate or Underestimate?; 3.2 Details on the Software Industrys Estimation Track Record; 3.3 Benefits of Accurate Estimates; 3.4 Value of Predictability Compared with Other Desirable Project Attributes; 3.5 Problems with Common Estimation Techniques; Additional Resources; Chapter 4: Where Does Estimation Error Come From?; 4.1 Sources of Estimation Uncertainty; 4.2 The Cone of Uncertainty; 4.3 Chaotic Development Processes; 4.4 Unstable Requirements; 4.5 Omitted Activities; 4.6 Unfounded Optimism; 4.7 Subjectivity and Bias; 4.8 Off-the-Cuff Estimates; 4.9 Unwarranted Precision; 4.10 Other Sources of Error; Additional Resources; Chapter 5: Estimate Influences; 5.1 Project Size; 5.2 Kind of Software Being Developed; 5.3 Personnel Factors; 5.4 Programming Language; 5.5 Other Project Influences; 5.6 Diseconomies of Scale Revisited; Additional Resources; Part II: Fundamental Estimation Techniques; Chapter 6: Introduction to Estimation Techniques; 6.1 Considerations in Choosing Estimation Techniques; 6.2 Technique Applicability Tables; Chapter 7: Count, Compute, Judge; 7.1 Count First; 7.2 What to Count; 7.3 Use Computation to Convert Counts to Estimates; 7.4 Use Judgment Only as a Last Resort; Additional Resources; Chapter 8: Calibration and Historical Data; 8.1 Improved Accuracy and Other Benefits of Historical Data; 8.2 Data to Collect; 8.3 How to Calibrate; 8.4 Using Project Data to Refine Your Estimates; 8.5 Calibration with Industry Average Data; 8.6 Summary; Additional Resources; Chapter 9: Individual Expert Judgment; 9.1 Structured Expert Judgment; 9.2 Compare Estimates to Actuals; Additional Resources; Chapter 10: Decomposition and Recomposition; 10.1 Calculating an Accurate Overall Expected Case; 10.2 Decomposition via an Activity-Based Work Breakdown Structure; 10.3 Hazards of Adding Up Best Case and Worst Case Estimates; 10.4 Creating Meaningful Overall Best Case and Worst Case Estimates; Additional Resources; Chapter 11: Estimation by Analogy; 11.1 Basic Approach to Estimating by Analogy; 11.2 Comments on Uncertainty in the Triad Estimate; Chapter 12: Proxy-Based Estimates; 12.1 Fuzzy Logic; 12.2 Standard Components; 12.3 Story Points; 12.4 T-Shirt Sizing; 12.5 Other Uses of Proxy-Based Techniques; 12.6 Additional Resources; Chapter 13: Expert Judgment in Groups; 13.1 Group Reviews; 13.2 Wideband Delphi; Additional Resources; Chapter 14: Software Estimation Tools; 14.1 Things You Can Do with Tools That You Cant Do Manually; 14.2 Data Youll Need to Calibrate the Tools; 14.3 One Thing You Shouldnt Do with a Tool Any More than You Should Do Otherwise; 14.4 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; 16.1 Flow of an Individual Estimate on a Poorly Estimated Project; 16.2 Flow of an Individual Estimate on a Well-Estimated Project; 16.3 Chronological Estimation Flow for an Entire Project; 16.4 Estimate Refinement; 16.5 How to Present Reestimation to Other Project Stakeholders; 16.6 A View of a Well-Estimated Project; Chapter 17: Standardized Estimation Procedures; 17.1 Usual Elements of a Standardized Procedure; 17.2 Fitting Estimation into a Stage-Gate Process; 17.3 An Example of a Standardized Estimation Procedure for Sequential Projects; 17.4 An Example of a Standardized Estimation Procedure for Iterative Projects; 17.5 An Example of a Standardized Estimation Procedure from an Advanced Organization; 17.6 Improving Your Standardized Procedure; Additional Resources; Part III: Specific Estimation Challenges; Chapter 18: Special Issues in Estimating Size; 18.1 Challenges with Estimating Size; 18.2 Function-Point Estimation; 18.3 Simplified Function-Point TTTTTTechniques; 18.4 Summary of Techniques for Estimating Size; Additional Resources; Chapter 19: Special Issues in Estimating Effort; 19.1 Influences on Effort; 19.2 Computing Effort from Size; 19.3 Computing Effort Estimates by Using the Science of Estimation; 19.4 Industry-Average Effort Graphs; 19.5 ISBSG Method; 19.6 Comparing Effort Estimates; Additional Resources; Chapter 20: Special Issues in Estimating Schedule; 20.1 The Basic Schedule Equation; 20.2 Computing Schedule by Using Informal Comparisons to Past Projects; 20.3 Joness First-Order Estimation Practice; 20.4 Computing a Schedule Estimate by Using the Science of Estimation; 20.5 Schedule Compression and the Shortest Possible Schedule; 20.6 Tradeoffs Between Schedule and Effort; 20.7 Schedule Estimation and Staffing Constraints; 20.8 Comparison of Results from Different Methods; Additional Resources; Chapter 21: Estimating Planning Parameters; 21.1 Estimating Activity Breakdown on a Project; 21.2 Estimating Schedule for Different Activities; 21.3 Converting Estimated Effort (Ideal Effort) to Planned Effort; 21.4 Cost Estimates; 21.5 Estimating Defect Production and Removal; 21.6 Estimating Risk and Contingency Buffers; 21.7 Other Rules of Thumb; 21.8 Additional Resources; Chapter 22: Estimate Presentation Styles; 22.1 Communicating Estimate Assumptions; 22.2 Expressing Uncertainty; 22.3 Using Ranges (of Any Kind); Additional Resources; Chapter 23: Politics, Negotiation, and Problem Solving; 23.1 Attributes of Executives; 23.2 Political Influences on Estimates; 23.3 Problem Solving and Principled Negotiation; Additional Resources; Appendix A: Estimate Sanity Check; Scoring; Appendix B: Answers to Quiz, ""; Appendix C: Software Estimation Tips; Chapter 1; Chapter 2; Chapter 3; Chapter 4; Chapter 5; Chapter 6; Chapter 7; Chapter 8; Chapter 9; Chapter 10; Chapter 11; Chapter 12; Chapter 13; Chapter 14; Chapter 15; Chapter 16; Chapter 17; Chapter 18; Chapter 19; Chapter 20; Chapter 21; Chapter 22; Chapter 23; Bibliography; Appendix : Steve McConnell;