When creating new functionalities or making changes to existing solutions, we often start with estimation. It allows you to plan work and be a determinant of the state. We expect our estimates will have a positive impact on the implementation.
Is it really so good? Don’t you get the impression that the estimates are not as valuable as they might seem? I would not like to give them up but only indicate the key aspects of the estimation principles that you can observe in your projects.
The accuracy of the estimate does not affect the work
Regardless of our commitment to having the most accurate estimate, the final work time remains comparable. We need to provide certain functionalities that take time to prepare. Our expectations regarding the delivery times of individual components create pressure. Instead of calmly executing the functionality, we constantly compare ourselves with the planned delivery map, indicating that the work is performed too slowly. It introduces additional confusion at work and increases the pressure on the team.
A team working under pressure does not necessarily deliver good quality code. There may be times when workarounds and inappropriate practices will be used to meet the scheduled deadline to make it on time.
Imposing estimates is a project’s way of disaster
I guess nothing demotivates the team more than not having an impact on the project. Suppose it comes to imposing an estimate on others. In that case, it may turn out that the team is only the software developer (the one who will only code it), and its impact on the project is limited to zero.
If, as a manager, you expect reasonable estimates, don’t let one person (even if he is an expert) impose the estimate. Use this knowledge as additional information for the task. Discuss to understand the person’s position and share their knowledge with the rest of the team.
I got the best estimates from people who were supposed to perform a given task. It also allowed to engage them in a given topic better, as they could significantly influence the design and functionalities.
Don’t trust estimations
No matter how much time we spent estimating, it’s still just a theory. We often make our estimates at the beginning of a project when we lack information. By performing complex tasks, we may discover something we don’t know yet.
We should not trust our estimates, as they arise when we do not know about the project. We make the estimate based on the best information at the time. We don’t know what we don’t know yet and what might affect the project.
Estimates are more reliable at the end of the project
Along with the implementation of the project, the estimation of subsequent changes becomes more and more accurate. However, their importance at the end of the project is diminishing. As the project progresses, we gain a better understanding of the problem domain.
However, it would be best if you watched out for overconfidence. Even when we are almost done with the project, we may discover something that will blow it up. A small change can have huge consequences.
Prepare solutions instead of talking about preparations
Everyone loves meetings. It is attractive to talk, try to carry out complex analyzes and research. You can debate and design endlessly, but most of the real problems are hidden from us until we start creating real solutions. Work on what you know to discover what is hidden.
The greatest value of estimation is a shared understanding of the problem
I’m inclined to say that the most significant value of the estimation is not the exact number; how long will the problem take. We can discover differences in expectations by discussing why we estimate a task as a specific time value. The greatest value of estimation is the creation of a shared understanding by the entire team.
Keep them simple
Simple solutions are more straightforward to prepare than very complicated ones. They are also easier to estimate. It will prevent the sudden misalignment of estimates and actual work.
But be careful and do not try to make things too simple. It can end up just like overcomplicating it. Perhaps you think breaking down the project into minor parts that will be very well estimated will allow you to finish the task faster. However, we spend time in meetings rather than working on implementation and putting the ideas into practice.
Do not fully trust estimates, as they are often made when you do not know about the project. Instead of discussions and protracted analysis and planning steps, try to implement the change. It will allow you to discover new, previously unknown problems in your project.
Remember that the most significant value of the estimation is not the value itself. It is a better understanding of the project, and a consistent view of the tasks carried out.