Software Estimation Without Guessing
Effective Planning in an Imperfect World
by George Dinwiddie
Version: P1.0 (December 2019)
Copyright 2019 The Pragmatic Programmers, LLC. This book is licensed to the individual who purchased it. We don't copy-protect it because that would limit your ability to use it for your own purposes. Please don't break this trustyou can use this across all of your devices but please do not share this copy with other members of your team, with friends, or via file sharing services. Thanks.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC.
Every precaution was taken in the preparation of this book. However, the publisher assumes no responsibility for errors or omissions, or for damages that may result from the use of information (including program listings) contained herein.
About the Pragmatic Bookshelf
The Pragmatic Bookshelf is an agile publishing company. Were here because we want to improve the lives of developers. We do this by creating timely, practical titles, written by programmers for programmers.
Our Pragmatic courses, workshops, and other products can help you and your team create better software and have more fun. For more information, as well as the latest Pragmatic titles, please visit us at http://pragprog.com.
Our ebooks do not contain any Digital Restrictions Management, and have always been DRM-free. We pioneered the beta book concept, where you can purchase and read a book while its still being written, and provide feedback to the author to help make a better book for everyone. Free resources for all purchasers include source code downloads (if applicable), errata and discussion forums, all available on the book's home page at pragprog.com. Were here to make your life easier.
New Book Announcements
Want to keep up on our latest titles and announcements, and occasional special offers? Just create an account on pragprog.com (an email address and a password is all it takes) and select the checkbox to receive newsletters. You can also follow us on twitter as @pragprog.
About Ebook Formats
If you buy directly from pragprog.com, you get ebooks in all available formats for one price. You can synch your ebooks amongst all your devices (including iPhone/iPad, Android, laptops, etc.) via Dropbox. You get free updates for the life of the edition. And, of course, you can always come back and re-download your books when needed. Ebooks bought from the Amazon Kindle store are subject to Amazon's polices. Limitations in Amazon's file format may cause ebooks to display differently on different devices. For more information, please see our FAQ at pragprog.com/frequently-asked-questions/ebooks. To learn more about this book and access the free resources, go to https://pragprog.com/book/gdestimate, the book's homepage.
Thanks for your continued support,
Andy Hunt
The Pragmatic Programmers
The team that produced this book includes: Andy Hunt (Publisher) Janet Furlow (VP of Operations) Dave Rankin (Executive Editor) Adaobi Obi Tulton (Development Editor) Sean Dennis (Copy Editor) Potomac Indexing, LLC (Indexing) Gilson Graphics (Layout)
For customer support, please contact .
For international rights, please contact .
Table of Contents
Copyright 2020, The Pragmatic Bookshelf.
Early praise for Software Estimation Without Guessing
I hate estimating and Im all too familiar with the anti-patterns. I was surprised by how much I liked this book. An easy read on why, when, how, and how not to estimate, with pragmatic advice both for the art of estimation itself and for handling the human behaviors that invariably surround it.
Liz Keogh |
Director, Lunivore Limited |
When I first started reading this book, I knew it was providing a good framework for software estimation. I have recommended to my boss that we buy copies for all of our senior developers who are responsible for both creating project estimation and vetting estimations, since it provides a common language for discussing those estimations as well as helping improve our estimations.
Josef Finsel |
Senior Developer, Mt Mediabox |
This book is about different aspects of the estimation process. While it wont teach you how to estimate more accurately, it does the more important stuff: explain how our estimates can be used effectively, and what to do when they arent.
Gil Zilberfeld |
Agile Consultant |
We all estimate at work. Georges book offers helpful advice on when to use which kind of estimation, regardless of the kind of work and the size of the company. Read this book to apply these approaches in your context.
Johanna Rothman |
Author and Consultant, Rothman Consulting Group, Inc. |
This is not so much a how-to-do-estimates book, but a how-to-think-about-estimation book (though it does have how-to guidance as well).
The book focuses on why people need estimates, and how that affects how one might approach any particular estimate. Context, as always, matters. If you use estimates or are asked to give estimates, this book will be valuable to you.
Esther Derby |
President, Esther Derby Associates, Inc. |
Acknowledgements
I have been blessed with help and encouragement from so many people that theres no way I can mention them all here. If I dont mention your name, its not an indication that I dont value your influence. Its a matter of time and space and my current attention focus.
First, I want to acknowledge the influence of Jerry (Gerald M.) Weinberg, who introduced me to the work of Virginia Satir. Foolishly, I did not read Satir in college, even though a couple of friends were raving about Peoplemaking . Had I done so, I might have learned earlier what I now know, and gone even further by now. I also thank Jerry for his book, Weinberg on Writing: The Fieldstone Method , the method I used to start this book. And for pushing me to go further whenever I started to settle into a new comfort zone. Jerry, I wish you were here so that I could show you my book.
Im also grateful to Esther Derby for her support and encouragement over a great many years, and especially as I wrote this book. Esther has long been my greatest mentor, believing in me when I failed to believe in myself.
Thanks also to Dale Emery, the best question-asker Ive ever met, for encouraging me to attend Amplifying Your Effectiveness, where I met Jerry Weinberg and Esther Derby. I also thank Dale for his patient feedback on the story elements. I used as much of that feedback as my writing skill could support.
I am grateful for many conversations, both online and in person, that have helped me formulate and refine my ideas. Some of these conversations were in particular reference to this book as I was writing it.Thanks to Heather Oppenheimer for a delightful conversation on various aspects affecting an estimate. I certainly would have missed some of these on my own.Thanks to David Schmaltz & John Maxwell for discussions on the nature of governance.Thanks to Sharon Marsh Roberts for sharing a long and inspiring tale of accommodating a change in the accounting laws. I ultimately didnt end up using that story in the book, but it inspired some of the stories I did use.Thanks to Troy Magennis for a sanity check on model-based estimation. And also thanks, Troy, for your inspiring keynote at the Agile 2018 Conference. That keynote reassured me that I was on the right track.Thanks to Chet Hendrickson, Ron Jeffries, and Kent Beck for telling me their memories of the C3 project. Of course, if it wasnt for the mentions of that project getting in my way when I was researching design patterns at the Portland Pattern Repository, I might not have taken the path to my immersion in agile software development at all. But when I looked at Extreme Programming instead of trying to look around it, mostly it just made sense to me.