Shim Marom provides thought provoking posts. The one on Estimates and Not Estimates was a perfect straight line requesting a response.
- Are cost estimates required in order to manage software projects? - without some estimate of how much the project is going to cost, it's going to be hard for those providing the funds to have any confidence that the project will stay on the budget needed to meet their target Return on Investment. ROI = (Value - Cost)/Cost. If those funding the project are in the business of making a profit (or operating within the budget they've been assigned), knowing the estimated cost is important to their success.
- Are cost estimates an effective tool for controlling costs? - controlling costs is a crtical management issue in every domain. Without an estimate of costs we have no target cost for the project management control processes. Without a target, we have an open loop control system. No target, no feedback, no corrective actions. With a target we have a closed loop control system, where feedback against the target (the error signal) is used to take corrective actions in support of #1.
- Do estimates stifle creativity and kill innovation? - creativity must be driven by the needed capabilities from the customer, the design basis from the requirements are derived from those capabilities, and the resulting products and services that emerge from the implementation of the requirements. Estimating the work effort (cost and duration) provide the steering inputs needed for the creativity process. Creativity must support the needed customer capabilities. It's not about the developers, it's about customer need. Without understanding how long and how much, the customer cannot make a decision about the priority of the needed capabilities and the features that implement that capability. It's back to a core concept. You can't know the value of something until you know its cost. You can't decide the proiroty of a feature until you know its value in support of a capability and the cost to implement that value. A moderate value high cost feature demands a different decision that a low cost high value feature. The notion of deciding without knowing the cost of thet decision is simply bad business.
- Do people need estimates? And if so, why? - this depends on Who the people are. If it's the people providing you money, yes. If you are a consumer of the money, you need some estimate of the planned duration of your work so you can inform the decision makers when you will be delivering the value they have asked for. The purpose of the estimates is to establish a steering vector for the project's management. Without the steering vector - direction and speed there is only open loop control can be applied. You want closed loop control. This is fundamental to the success of all projects. Using Keny Beck's quote - optimism is the disease of software projects, feedback is the cure. That feedback is used to take corrective action to keep the project headed in the right direction at the right speed to provide the needed (planned) value to the customer on or near the need date at or near the planned cost. The customer is in business to stay in business, and cost control is a crtical success factor for all business - even the business of government.
- Is the very act of estimation results in the creation of uncertainty? - Yes. An estimate is probabilistic. This understanding is fundamental to the estimating process. Without this understanding the conversation becomes confused. Estimates are not guesses. OK, bad estimates are guesses, but stop making bad estimates. Estimates are not point values. They are Most Likely values with a probabilistic confidence range defined by a Probability Distributon Function for all the possible value the estimnate can take on. Anyone guessing either needs to stop guessing or find someone who knows how to estimate to help them.
- Is estimation a practice still hanging over from the Waterfall era? No, estimating anything in any domain is required to make decisions about the future cost, schedule, risk, impact and most importantly Value. How long will it take us to deploy Sharepoint to 11 sites across the nation with 250 total users and 12TB of documents? We need an estimate. Never said what method will be used. Doesn't matter. If we really believe management is about making informed decisions, then management needs to know how much, how long and what. They can't wait till the project is over to find this out. They need an estimate upfront of cost, schedule, and technical performance.
- Is No Estimation better than Bad Estimation? This is a nonsense question (no offense Shim). Do we really want to NOT know cost, schedule, risk and technical performance and most importantly to possible value before starting a project and improve that knowledge as the project proceeds? Really?
- Is Estimation really just a form of Guessing? Only if you were asleep in the high school statistics class, and didn't pay attention in your analytical methods class in Computer Science school. Anyone suggesting estimates are guess must have done that. I know that's rude, but come on figure this out. Those suggesting estimates are guess have no idea how the probabilistic and statistical processes of the world work. Here's a short intro to the difference between probability and statistics.
- Are estimates necessary for Governance? Is it reasonable to require estimates for the purpose of pacifying governance needs? - the notion that governance needs to be pacified suggests a lack of understanding where the money comes from. Governance is not be pacified. If that's the paradigm, those suggesting this clearly don't work in a domain where they are spending other peoples money. This appears to be an anti-mamnagement point of view. Governance is about the proper use of resources for the betterment of the firm. Being good stewards of your firms resources. The answer is yes. Legally, public firms must state their obligations for cash flow and commitments to pay. Estimates support this. Non-public firms still have an obligation to spend wisely.
- Is there any point in providing estimates when it is known that many projects fail due to lack of credible estimates? And aren't estimates a tool used to apportion blame afterwards anyway? - the notion of value at risk drives the estimating processes. If estimates are used to blame than that is simply bad management, not a reason to not estimate. Confusing bad management and bad processes as the reason to change the processes is in itself a waste, since you have not identified the Root Cause of the dysfunction. But first suggesting estimates are the cause of project failure is a red herring. Bad Management is usually the cause in the IT world. But doing the root cause analysis first before stating the cause is hard work. It means not concluding what the solution is, maybe even concluding not even knowing what the real problem is. The somewhat naive approach of five whys is a start. But these is plenty of guidance on the web about Sic Sigma Root Cause Analysis. Using the phrase 5 Whys without referencing some guidance shows that the supposed dysfunctions have yet to be identified.
- Is costing a necessary tool for determining business value? - You can't know the value of something without knowing its cost. It's that simple and it's that complex. This is fundamental to all business processes. This is the basis of the balanced sheet. On the left are costs and obligation (out flow) on the right is benefit or income. Income or benefit should always be larger than cost or outflow, if you're going to stay in business over the long haul. Since writing software for money starts and ends with the business process, knowing the cost of that software is needed. Not at the end, but before authorizing the project to spend the companies money for the delivered value.
- Does the scope drive the budget or does the budget drive the cost? - this is a contract or business process question. Depends what the customer wants it to be. Internal IT in small firms have more flexibility than larger firms. Governance based firms - insurance, health care, telecommunications, have less flexibility than lawn sprinkler suppliers. Building software for the Air Force has much less flexibility than building software for a plastic shoe manufacturer.
- If estimates are required in order to support decisions, can decisions be made without estimates? Invert the question. What information do you need to make a decision? Do you need to know the cost of the work, the cost of the impact of deciding one way or the other. The cost of the impact of not deciding.
So some other thoughts:
- If it's not your money behave appropriately.
- If you don't write down what DONE looks like in units of measure meaningful to the decision makers, you'll never recognize it until you run out of time and money.
- Done starts with a set of capabilities the customer needs to put to work to solve a business problem. Knowing the cost of those capabilities is part of the business decision making process.
If No Estimates is about making decisions, then No Estimates better come up with the cost of outcomes of having made that decision or that statement is completely bogus. Time to start looking for business value from our work efforts in building software for money. That means know the cost of our efforts to some degree of confidence before and during the project. Knowing afterward is simple and worthless, that horse ran away and know we're saying how much it costs.