Top effort estimation techniques
It’s time to get to the point and have a look at some practical tips. Honestly, we all came here for it, right? There are different approaches to estimations, but their aim is the same regardless the approach.
1. Old good classic
It is most common because it can be conducted quickly, it is easy and simple for understanding. Two people need to be involved, so one is working on the app and aother one conducts the estimations. Opposite to the common idea, this second person should be the one, not related to the project.
But why should it be like that? It seems logical so the person, doing the estimation, will work on the project further. This person understands his own capabilities and other factors, so why this approach considered to be not the best one?
The thing is, when the person estimated the development process, taking into account his own abilities, he usually puts more hours, than it will take in reality. The reason is simple: people tend to work slowly and get more money as a result. Another reason is that the developer wants to have more time to make sure all the unexpected issues will be solved.
It means it is considered to be a better practice to involve another technical specialist, so he can make estimation for the person working on the project.
Of course, this specialist has to have more experience (a Senior can make an estimation for a Junior or a Middle, having more experience). The workflow can have steps like that:
- Distinguish the scope. All the tasks should be listed in any form, considered to be convenient. So they can be divided into sub-tasks if considered to be huge ones, or taken in general for smaller issues.
- While conducting the estimations for each feature, responsible person should take into account a lot of points, including productivity, experience and other characteristics of the developer, whose task will be to work on the project.
- To check the figures and see if they look realistic enough for the whole project.
- It is recommended to review the estimations with the responsible developer and make corrections if needed.
Our team also uses this approach because off it’s being extremely efficient.
Even if the estimations are written by the person, responsible for working on the project, the final figures and numbers have to be reviewed by another specialist, having more experience and being more objective.
As you can notice from our other articles, we usually divide tasks into smaller ones, so-called sub-tasks. It allows us to make our project estimates more accurate. It can be taken as a tip as well.
2. Planning poker
The previous approach works fine when you have one developer, working on one project. But in case the project is huge and there are a couple of developers involved, this approach will not work as desired. In this case development estimation time can be made jointly.
This approach is known as Planning poker or Scrum poker.
So each developer gets a card with values, for example, 0, 1/2, 1, 3, 5, 8, 13, 21, 34, 55, 89. These numbers stand for Story Points of other values, indicating the difficulty of the feature creation. These cards can later be used for voting.
An example of poker planning cards (image by Andrew Millar)
To cut it short, the estimation process can be described as a set of the following steps:
- During the conversation with the development team the product owner describes the features to be implemented or provides the developers with the User stories.
- The developers, responsible for the estimation process, clarify the details if needed by asking additional questions to the customer.
- As soon as the discussion is done, developers pick the card to estimate the feature.
- After the cards are revealed and in case all the developers picked the same card, the mentioned figure will be considered as an estimate. If there are different cards, this situation is discussed again, developers vote and check the result. This process can go over and over again until each member of the team picks the same card.
Note! All the decisions are made through discussion and consensus only. Averaging the values is absolutely inappropriate.
So why Scrum poker is so popular? What are the advantages, that having made it one of the most popular approaches in Agile teams? Let’s have a look.
- The tasks, even the most complex ones, are estimated not by one developer, but by several experts, possessing their own experience and having different background.
- The estimation becomes more accurate and precise because all the decisions are taken based on dialogue only.