Chapter 14. Estimating at the right level with the right people
Estimating software is a mystery for most teams. Teams can spend huge amounts of time breaking down features to create their estimates, but the actual time needed is usually a vastly different number. The issue lies in two areas: techniques and expectations.
Most teams use traditional estimation and capacity-planning techniques. Traditional techniques are dependent on constants and repetitive work. A traditional planning process wants to know how much time it takes to build a widget, how many machines are available to build the widgets, and how many hours a day the machines can be used for building the widgets.
As you probably know, each piece of software is unique, and it’s difficult to estimate something that is being built for the first time. We never build the same widget twice. It’s also hard to treat a developer like a machine and predict their output on a daily basis. Communicating this to sponsors and stakeholders is also challenging; many experienced software professionals still believe incorrect estimates are more closely tied to incompetence than to the realities of software development.