Goal of This Book

The goal of this book is not to make you an expert at estimation. Estimation is a tool rather than a goal in itself. Maintain focus on the real goals: the outputs, the outcomes, and the impact of the system you’re building. Estimation is a tool for achieving these goals more reliably in an uncertain, error-prone world. Estimation lets you see into the future and make decisions about the path you’re on, before you reach the endpoint. We’ll also take note of some other ways that estimation can help us, as an organization working together, achieve common goals and fulfill the responsibilities of our various roles.

Steve McConnell in Software Estimation: Demystifying the Black Art [McC06] and Capers Jones in Estimating Software Costs [Jon07] approach estimating as getting an answer most close to the eventual actuals. Looking at it another way, they try to estimate a duration and cost that project managers can meet. To do that, they recommend such things as collecting data from past projects and making sure the work being estimated is clearly defined. These preliminaries may be beyond your ability in your current context.

This work is focused on helping you make the most of what you have available. It’s about being able to make prudent choices for a successful project rather than winning a prize for coming closest to guessing the number of jellybeans in the jar. It defines a successful project by the desirable outcomes achieved rather than by conformance to prior plans. The view of this book is biased toward iterative projects that are started with the knowledge that information is incomplete and are steered toward desired outcomes as they are developed. Estimates are a valuable tool for learning more as you proceed.

To be honest, plan-driven projects, which “plan the work and then work the plan,” tend to start with known incomplete information and are steered toward desired outcomes as they are developed. The difference is that on plan-driven projects, the iterative work is generally hidden from official view. During implementation, design corrections are made. During testing, implementation corrections are made. Throughout, new or clarified requirements affect all stages of work. The plan-driven bookkeeping hides these iterative cycles performed in the “wrong phase” of the life cycle, or it calls them errors. I call them reality.

Approximations

People often expect estimates to give them precise and accurate values that match the future, as if they are a process of calculation rather than estimation. This leads to disappointment in the results, and often induces people to make bad decisions along the way. There is a simpler and healthier path you can take.

Before I got into software development, I worked in electronic repair, and then electronic design. The book that taught me how junction transistors worked was Transistor Circuit Approximations [Mal68]. What made this book work so well for me is that it starts with the concepts of an “ideal transistor” (or “ideal diode”) for a first approximation of circuit analysis. Sometimes second-order effects are included for a “second approximation.” These approximations are good enough to understand how a circuit works. In reality, there is much variation from one transistor to another, so transistor circuits are designed to make the circuit performance almost independent of the transistor characteristics. In Malvino’s words, “exact formulas for transistor circuit analysis are of limited value to most of us because the exact characteristics of a transistor are seldom known.”

This is an excellent way to think about estimation, too. Ignore the second-order effects until you need them. Most of the time, the first approximation will do most of what you need. This book has no magic for giving you precise and accurate predictions of the future under unknown conditions. Instead, it gives you methods to get “close enough” to understand what’s going on. And it gives you tools to calibrate those methods for your own specific context. Along the way, I suggest some ways of working to make your outcomes less sensitive to the vagaries of inaccurate estimates—ways of achieving success despite the uncertainty of the path to get there.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.216.190.18