Each business has a limited budget and wants to know the costs before they’re willing to start a project. Project estimation means looking through all available data to propose the time, cost, and resources needed to complete a project. Seems like everything is clear, but there are still some issues to discuss. In this article, you will learn all about estimation from the developer’s side.
Before each new project, there is a time for estimation. It’s a process when all team members gather to clarify 3 questions: What? How? When?
– “What” means what scope of work they will have to do;
– “How” means how much time it will take to complete it;
– “When” means when it will be finished.
To make an accurate estimate, it is necessary to know, whether this project already exists and your task is to make modification to current functionality, update or fix bugs, or you need to do everything from scratch.
In the first case, there should be time to learn the code structure, to find out if there is a staging environment, also time for testing and bug fixing.
In second – there should be time for technology stack research, creation of a staging environment, developing, testing and bug fixing.
After finding out that information, we usually discuss the scoop of work, if it is really to do that and how difficult it will be. We evaluate it in story points, not in hours because you will never know how it will be going. In the end, there always should be time for risks!
From this, we have the first client’s stereotype about the developers “These developers are terrible guys because they didn’t complete the project on time”.
People should understand that no one can give you exact terms, even after getting all this information mentioned above, because of one simple reason: one day it’s not enough to learn the project that was developing during months or years or to predict which roadblocks you will face with during developing.
Of course, our developers have years of experience and, in some cases, they can tell you about potential roadblocks in your situation, but each client has his own individual product and needs.
The biggest mistake in this process is no time for risks, testing and bug fixing. It exists in every single project and not taking time for that it’s a disservice. We always explain to our clients that these terms are not final, because something can go wrong.
As a developer, a person should inform his clients about all these issues. Don’t be afraid if they won’t agree with you, discuss it, explain it again. It always better to finish your work earlier than fail deadlines.