Monday, August 25, 2008

7 habits of an highly effective estimator...

Software Estimation, as most people believe, involves breaking down requirements into functional components, weighing them and then assigning numbers to each line item based on their complexity, hoping in mind that the numbers are correct and then presenting it to the customer. While it does involve technical know-how about the technology used, estimation methodologies adopted and (in) experiences of knowing the right amount to wager, it is also heavily dependent on the subtler habits of the estimator.

Today, I do not wish to speak to you about the science of estimation but the finer art of it. And unlike science, every art can be mastered if you practice enough and of course live long enough to master it.
Imbibing these habits, I believe, will make a good estimator a better one.

  • Don’t do it for others – Don't waste your time estimating for projects, if your primary purpose is to please others. Most people indulge in the act of estimating (yes, it does sound shallow) simply because they are told to do so – either by their bosses/organizations or their customers and if they do not, they possibly might tick them off.

Remember, that estimating in software projects is more of a benefit to you than it is to your customers. Yes, it does help your customer to allocate their budgets or make a selection; but more importantly, it allows you (or your organization/team) to know if the endeavor that you are planning to undertake is a feasible one or not. It also allows you to plan your projects better, period!

  • Do it for others – In almost all cases, the estimator is not the person who faces the brunt of bad estimation. Without offending anyone, these are usually people higher up in the food chain such as the managers. If the estimation does go wary, it is the lines-men who will have to pay dearly by working harder, faster and longer.

Do these guys a favor. Do the estimate in a way that these folks do not pay the price that your customer refused to pay for.

  • Ask for time – "Easier said than done", is what is on your mind right now and it doesn't take a psychic to figure that out. Most of the times, we deliver under unrealistic time pressures just because we are afraid to say "No".

Understand this; it is the prerogative of the customer to demand haste. That is what all of us do when we are wearing the customer’s shoe; but we do realize that if we want quality service or product, waiting a little while longer can be fruitful. Americans or British (or for that matter, customers across the globe) are no different than you and I. If you can convince them that by giving you extra time (I’m not saying ask for a millennia to give them an estimate), you can provide them with a more realistic estimate and fruitful service, they are more often than not, willing to give it to you.

  • Build Confidence – Well, this habit should chronologically come before the previous one, but I felt that our bigger problem was time-crunch rather than trust.

The first and foremost thing that a customer does with the estimate is to look at the bottom of the page. And depending on the number s/he sees there, one of these three impressions is formed:

“This guy has no clue of what needs to be done” – in the case where the estimated figure is much below expected
“This guy is a con!” – in the case where the estimate is way too high
“Maybe this guy just got lucky!” – in the case where the estimate is realistic and to his/her liking

In either case, you are damned from the word "go"! To explain to them why you put the numbers you put, will take time. Take time to do it right so that you can justify the numbers when they give you the time to explain.

  • Stop and smell the roses – This phrase usually means seeing the finer (and beautiful) details (by taking out time). That is what you should do when you are in the process of estimating.

Take the extra time that you asked for to see finer details in the requirements. Ask questions instead of assuming. Listen to the answers given by the customers. Gather as much data as you can. And then, only then, start your analysis.

  • Stand up straight – Don’t lean forward and do not bend backwards.

What I mean by this is that you will need to be assertive in your observations and reports. Don’t be aggressive; there-by forcing yourself down the customer’s throat. Don’t be submissive; there-by underestimating. If you have done it right, you will not feel the need to be offensive or defensive in the situations. Your work will speak for itself.

  • Believe – in yourself, in the organization and in the team.

The first rule of selling is to believe in the product/service that you are selling. It might not make a difference when you have a quality since birth that enables you to sell spectacles to a blind man; but if you are average Joe – you must believe in what you are selling.

This confidence in the product comes when you believe that you have a team that will back you up on it. Belief in the team and their ability to achieve will help you make realistic actual estimates without the need to pad up your estimates.

All the habits that I have mentioned here are linked to each other. You cannot succeed at one without succeeding equally at others. And remember the golden rule of estimation – "Bad estimates will haunt others and you for a very long time to come". Okay, I made it up, but it’s still true, isn't it?

No comments: