Estimation Techniques

Estimation Techniques

I have outlined product development phases recommended by Disciplined Agile Delivery & different models to capture requirements at each phase in my previous article. I will cover an overview of different estimation techniques that can be used in each phase in this article.

Let me summarize product development phases for quick reference:

Inception: The goal of this phase is to build consensus among all stakeholders on scope of release, high level requirements, to define baseline solution architecture and to derive release plan

Construction: The primary goal of this phase is to iteratively release working product to get early feedback.

Transition: The goal of this phase is to ensure the product is production ready and to deploy it in a production environment.

In subsequent sections, I would cover the overview of estimation technique for Inception and Construction phase but prior to that let's understand estimation from Business and Engineering team perspective.

Estimation from Business & Engineering Team Perspectives

Business Perspective:

Estimation provides two key inputs to Business - Cost & Timeline

  • Cost helps to evaluate ROI(return on investment).
  • Timeline helps to align important Business milestones.

Engineering Team Perspective:

Usually, the Engineering team becomes very conscious when estimates are requested. The underlying reason could be the feel of holding accountable for the numbers provided.

In order to provide high level estimation also, good enough detailing of requirements is needed, which helps the Engineering team to get a sense of complexity.

Quality of requirements i.e. how well it is documented covering all scenarios is key to provide better estimate.

To Summarize:

  • It helps Engineering teams to see the whole by understanding Business's perspective of need of estimation. 
  • Similarly, it helps Business to support the Engineering team with all required details for estimation by understanding the Engineering team's perspective.
  • An open conversation where Business explains the need of estimation and the Engineering team helps Business deriving the same helps to achieve common goal effectively. It also helps to foster transparency.

Inception Phase - Estimation Techniques

The high level requirements and the scope are defined in this phase working closely with all stakeholders. Once requirements are defined, the next step is to derive a release plan based on high level estimations. Below estimation techniques help to provide high level estimates without spending too much effort.

T-Shirt Size

It is widely used by many Agile teams to quickly estimate product backlog. It is a relative estimation technique and the aim is to categorize product backlog items in T-Shirt size of XS, S, M,L and XL. Usually, the T-Shirt size is tagged with man-days, weeks or story points.

Example: Below story map captures high level requirements identified for mobile app. Each tasks are estimated with T-Shirt size estimation with T-Shirt Size indicating below range:

XS : 1 to 3 man-days, S: 4 to 8 man-days, M: 9 to 15 man-days, L: 16 to 24 man-days

No alt text provided for this image

It's relatively easy to compare features or PBI(product backlog item) and categorize in T-shirt size with the range provided above. "OTP based 2 factor verification" is more complex than the "Fill the required details" feature.

The total estimation for above scope is 79 to 131 man-days efforts. This gives Business a tentative estimate in terms of best case and worst case scenario.

Traditional Ballpark Estimation

It's a traditional way of estimating features in the form of either man-days or weeks. Each feature is estimated based on high level requirements. The buffer is added to overall estimation to cover complexities identified later or to cover unknown.

Example: The ballpark estimation for features identified for MVP for e-commerce website. The total ballpark estimation is 114 man-days including buffer.

No alt text provided for this image

To Summarize:

  • The estimation provides detail of efforts required i.e. Cost.
  • The velocity of the team defines the timeline of completion.
  • Usually, the team's velocity details are not available during the Inception phase so it is better to consider team capacity for initial release plan and keep updating plan during the Construction phase.
  • It is very important that Business expectations are managed for criteria considered to derive estimation and release plan, as both are likely to change during the Construction phase.

Construction Phase - Estimation Techniques

The high level requirements are further discussed in detail and usually captured in the form of user stories. The requirements are more clearly defined in this phase as those are implemented during iterations/sprints. Story Points and Man-days or Hours are two main estimation techniques widely used by Agile teams.

Story Points

Story Points is a relative estimation technique where each product backlog item is tagged with specific story point by comparing with the base user story identified for the specific iteration/sprint. The relative sizing is mainly based on past experience and complexity.

Large number of Agile teams use Fibonacci series (1,3,5,8,13..) for Story Point estimation. Planning Poker is a method to build consensus among all team members while estimating user stories for specific iteration/sprint. This method can be used depending on the context.

Man-days/Hours

This is traditional way of estimation technique where user story is further break down in tasks (i.e. API creation, QA, Business logic implementation etc.) and each task is estimated in hours or days. The estimation of each of these tasks rolls up to total estimation of the user story.

To Summarize:

  • Definition of Done helps to create a shared understanding of all required activities to be considered while estimating specific user stories. Example - Coding standards, Unit Testing, Automated Test cases etc.
  • Irrespective of estimation techniques, breaking down the user stories into small chunks of tasks helps to identify dependency and complexity which ultimately helps to estimate better.
  • Team velocity is a very important metric. Capturing and having velocity details handy helps with a number of aspects like deriving team productivity and impact on timeline.

Summary

  • Prioritization of features is key so that important features are delivered first. The estimations are likely to change as requirements evolve over a period of time with frequent feedback loop.
  • It brings synergy between the Engineering team and Business if they can share and understand each other's perspective of estimation.  This helps both to work towards a common goal effectively.
  • Affinity Estimation, Bucket Estimation are few other estimation techniques used by Agile teams. Select the estimation techniques which works for team and Business.

References:

Quite informative. In T-shirt size estimation it vary from 79 to 131'days , this is not double but near to double. Do you think stackholder understand this ? Sometime i hear task of reducing estimation. How it works ? Are there any paramter in that area ?

Like
Reply

To view or add a comment, sign in

More articles by Sejal Desai

  • DevOps: Beyond CI/CD

    CI/CD has added considerable value to software development life cycle, perhaps it has become synonym of DevOps…

  • Product Development: Requirement Modeling

    In my previous article, I covered the overview of Scrum, XP and Kanban and some key learnings. These frameworks mainly…

  • Scrum, Kanban & XP: Overview, Interesting Facts & Key Learnings

    In this article, I will cover an overview of Scrum, Kanban & XP. Also, I will share some interesting facts I have…

Others also viewed

Explore content categories