Why Do We Need To Estimate?
Do you enjoy estimating your work items? Chances are that you find it at best a bothersome overhead, at worst a downright dumb idea and a waste of time and energy, since most estimations are no better than reading tea leafs.
It begs the question – why do we need to estimate? Isn’t there a better way of doing software?
The answer is simple really, we need to estimate because our customers need to plan and budget.
Of course, it doesn’t feel good at the receiving end of this ask, because we know how inexact estimations really are, and how often it can go wrong, however, customers usually take the first number we give to them, and hammer us with it if we don’t meet it! We are caught between a rock and a hard place!
Yeah it’s definitely not an easy task, and it’s understandable why we dislike it and think why Business just doesn’t get it. However, if we switch roles with them, we would ask for exactly the same thing.
Imagine you go to a restaurant to order some food, and you asked the waiter, “when will the food arrive and how much would it cost?”
If the waiter tells you, “we don’t know, it will be ready when it’s ready, and it’s going to cost whatever it’s going to cost.” What would you think? Do you think the waiter is speaking sense, or would you want to shake him a bit and say, “I need a more precise answer than that, I have places to go after dinner! And I can’t agree to pay for something when I don’t know what it’s going to cost. How do I know you won’t rip me off?”
Your customers have plans, and they are checking with you to see whether working with you fits into their plan, and they have a budget and want to know whether they can afford your services. If they can’t get answers to these questions, there won’t be a purchase. If there isn’t a purchase, you don’t make money.
Bottom line, your need to make money is why you need to estimate, so there can be a purchase.
And because estimates are tied to planning and budget allocations, customers therefore think of it as commitments – i.e. if you say it’s going to cost X dollars and takes Y days, they will flip if it turns out to cost 3X dollars and take 4Y days.
It is therefore important for you to recognize that customers aren’t asking you for estimates – they are asking you for commitments. The estimates you give are what they take intuitively as what you are asking them to pay, and in return they ask you to commit to delivery.
This is the true nature of estimation – it’s a quoting and proposal process. If you think of it as simply estimations, you will keep getting burned. Your task is to really understand its true nature, and find ways to meet the challenge head on.
Do not despair, it’s not an impossible activity once you understand its intricacies. We will cover more on how to properly do software estimation in upcoming posts. Stay tuned.