Here's some thoughts on the economics of software development using other people's money, after 3 weeks of working a proposal for a major software intensive system of systems using Agile.
- With the advent of Agile, the linear spend planning and delivery of capabilities was altered to iterative and incremental spend and delivery planning.
- Time boxed, drip funding, fixed budget are funding profiles that might be added to the economic model once they've been verified and validated in practice to provide better approaches to managing funding in the presence of uncertainty.
- Core business processes are still in effect, no matter the funding profiles
- Money consumed provides capabilities produced.
- Capabilities enables value from the use of money.
- Capability defined by the user through some form of value assessment, not by the provider.
- Emergent needs can be addressed.
- When we merge business value with development cost without monetizing that business value, we've lost the ability to make economic decisions.
- Both the business value and the development cost operate in the presence of uncertainty.
- This uncertainty is always present.
- To make those economic decisions, we need to estimate both business value and development cost.
- There is no way out of this in any credible development environment.
- Monetized value allows the decision process to use ROI, IRR, Analysis of Alternatives.
- Without monetized value cost and value decisions are simply made up and are arbitrary.
So to come full circle
Why Do We Need Estimates?
- It's not the developers that need the estimates - they take the money and turn that money into value.
- They should estimate if the needed value can be produced by that money.
- But if the developers decided they don't need to estimate, then they'll be subject to the whims of management, just like Dilbert.
- The developers are certainly closed to the work and have the information needed to best contribute to the estimate.
- Estimates are primarily used to support decisions.
- Product margin.
- Cost target for business management.
- ROI, IRR, AOA.
- Staffing, release date, launch date - literally and figuratively.
- Knowing the cost of a product or service produced is a fundamental piece of information needed by the business if they intend to stay in business.
It can't be any clearer than this - if you don't know what something costs or is going to cost in the future, you can't make a business decision about it's value
When you read estimates are a waste, estimates are non-transferable, estimates are wrong, estimates are temporary think again. Go ask those paying if they need estimates to make decisions for the business. If they don't, then continue to spend your customers money. If they do, they may consider looking for someone who knows the difference between willful ignorance of how to estimate software development and someone who can provide that information needed to stay in business. On our proposal team, this would get you a 2nd place prize in the estimating capabilities contest - which is a one way trip home with weekends off.