Projects estimate the work effort up front to discover the balance between technical performance (i.e. scope & quality), cost and schedule. This helps hire the right number of people, set stakeholder expectations and make portfolio investment choices.
Alternatives to up front estimating are to time-box the solution with a view to cutting or extending the investment on an as needs basis. Another alternative is to fixed price (low value, exploratory) or fixed scope (regulatory compliance) the project up front.
Finding the balance
Estimating is done to help assess the balance between cost, duration and technical performance of the target solution. It is used as a tool to negotiate the sliders on those dimensions. One pass at up-front estimating is typically not enough for the smart money, as you'll have an all-or-nothing approach to the solution. That is, in the process of estimating assumptions are made about how to prioritise fast, cheap, of "solution rich." What you need to do in these scenarios is to revise the estimates until the sweet spot between the project performance factors is discovered.
Once an estimate is discovered it can be taken to portfolio management boards and assessed relative to other project proposals based on value generated, cost and risk. But, why on earth are we doing so many projects that deliver such marginal value? Surely a project is worthwhile or it isn't?
- Conclusion 1: Too many trivial projects are created where the work would be better managed as operations.
- Question: What makes people 'projectize' work when it's not special, unique, and all that project 101 stuff?
- Hypothesis: Lack of systems thinking, expertise, complex taxation rules and accounting practices.
- Conclusion 2: Ongoing estimating has to be the default mode of doing business. If you aren't revising your estimates at every steering committee meeting there is something suspect in your reporting.
Fixed resource (money & people)
Much software development, especially operational work, is done in a fixed resource way - essentially fixed pricing the work. In the fixed resource (cost) model estimating helps understand team capacity and plan releases.
If you have made the commitment to fixed resources you can park estimating activity and focus on short cycle times to ensure as much value is generated as possible. Focus on flow to increase delivery and you'll get more out. Estimate and you'll waste energy and time (a finite resource) on analysis that adds no value. Improving your estimating won't help you ship more.
- Conclusion: If you are fixed resource, there is no value in estimating.
I have another point as well, where you take a people or team centric view of the project, planning the work around existing teams. We've gone on for long enough so I'll hold it over for a post next week.