How to Estimate Better – Part 1
By Nitin G Gupta
Try doing this little interesting exercise in a group when you are looking for some fun. Estimate how long would it take to visit all tourist spots in London. Assume that everyone has enough money and only public transport is allowed. Take 2 minutes for estimation and 10 minutes for discussion in the group to revise your individual estimates.
You can do this exercise and come back later to read this further, but I can tell you the result right away.
If you are 5 people in the group, you will get 5 different answers! If you ask 1 person to estimate the same task at 5 different times, you will get 5 different answers. Interesting, isn’t it?
Well, lets accept it. Estimation is a hard exercise and if you master it, it’s one real skill. Good estimation results in better decision making and effective planning. Bad estimation results in poor planning and project failures.
In this article, I am trying to summarize our practices and cover what actually does an estimate mean, different components of an estimate, different types of estimates, root causes of poor estimation. Part 2 of this post would cover various standard estimation tools and practices, how to prepare an estimate and how to use those estimates effectively.
What Should Your Estimate Look Like
For software industry, there are 2 types really.
- Duration estimate – how much time would it take to build this software application.
- Effort or Cost estimate – how many $$ need to be spent to build this software application.
– Your estimate should NOT a number. It should be a range of numbers with a probabilistic factor associated.
– Your estimate should always include estimation method employed.
– Your estimate should always declare associated risks and assumptions.
- The Good : “Building this automated tool would take between 100 to 140 hours of coding, and 4 to 6 weeks of effort. This assumes that the class design and database schema is already frozen. The time/effort would shoot up if the requirements document is not completed 1 week before the development activity can start”.
- The Bad : “Building this automated tool would take around 120 hours of coding and around 6 weeks of effort. There may be some minor slippage in the above estimate depending on how things go”.
- The Ugly : “Building this automated tool would take 100 hours of coding and 4.2 weeks of effort. No problem, we will do it”.
Components Of Your Estimate
- Always give a range of numbers, that can bound your estimate.
- If possible, attach a probability statement to indicate your confidence from statistics perspective.
- Give a basis for your estimation, that can justify your figures.
- Always mention the associated risks and assumptions to cover up for unknowns.
Basis Of Estimation And Types Of Estimation
- Use your historical data, experience data or analysis data to prove the validity of your estimate.
- Most of the times, your estimates would be based on data collected while doing similar effort or tasks.
- Give a Rough Order of Magnitude (ROMEst) estimate when you are in scoping phase of a project. This should just be used to determine feasibility of the project.
- Give a Budgetary Estimate (BEst) when you are in project initiation phase. This should be based on requirements and work breakdown structure for the project.
- Give a Detailed estimate (DEst) prepared for each iterative cycle of development for a project. This should be based on complete approved requirements and micro level work break down structure for the project.
- ROMEst is wider and least accurate, BEst is narrower and more accurate, DEst is narrowest and most accurate.
Benefits Of Good Estimation
- You gain predictability. You can see clearly whats coming in the project.
- You gain repeatability. You know that you can only do better next time and not worse.
- You gain credibility. Your clients are happy because you mostly deliver on time. Your organization is happy because you always do right planning.
- You gain strong position to drive results since you know what is going to be delivered when.
- You gain a better decision making power. That helps you in almost every sphere of life.
Causes Of Poor Estimation
- We fail to follow a proven and defined process. We know the process but we get lazy in following the process.
- We suffer due to lack of requirements or ambiguous requirements.
- We fail to bring the assumptions and risks upfront.
- We fail to manage sufficient resources and sufficient time.
- We fail to take hidden factors into consideration, like ramp-up time, learning curves, skill development, productive time.
- Your estimate should not be a mere number.
- Your estimate should be a probability statement.
- Your estimate should be made more objective rather than subjective.
- Your estimate should be made more consistent and easier to understand.
- A good estimate is possible only by following a process consistently and using your own historical data.
[OnGraph Technologies is an Offshore Software Development company with offices in London, UK and Noida, India. OnGraph provides high quality application development services to its clients spread across USA and UK, very cost effectively with strict development and quality processes in place.]