There are 2 problems with grades:
- they take a certain amount of time (and it happens that there is really a lot)
- they are still very approximate (and in fact no one knows how to make them better)
The idea is to break the work down into relatively small tasks. This requires design. Knowing the number of such tasks, we can understand the cost/timing of the project and make a decision whether it makes sense or not. In other words, “Plan is nothing, planning is everything.” (D. Eisenhower). Already during the implementation of the project, you can determine the speed by the number of tasks and predict the deadline for a specific team.
It was invented by Vasco Duarte. He has a book, but the 45-minute video is enough (there are several options for different years) for a general understanding.
Overall, the concept is impressive. And he answers well enough how to evaluate it.
For initial evaluations (when there is no team yet, etc.) I use a slightly different scheme, but the idea is about the same: the project is divided into supplied artifacts (conditional forms in the UI and API in the backend) and each such task takes 4 hours (it may vary slightly from project to project). This makes it clear the relative size of the project.
It is clear that it is possible to estimate calendar deadlines without a team that has worked together for at least a couple of weeks, but this is just a finger in the sky.
To create a list of tasks, I usually first allocate roles, assign user scripts to the roles, and then to the task scripts.
Again, do not forget that an assessment is not an obligation. In projects, the commitment is primarily assumed by the project manager - this is his task, by definition, to cope with a variety of problems and successfully complete the project. Various risks are usually added to the development estimates. This causes the initial estimate to increase 3-10 times.
There are no projects in Agile, an assessment is given on the product / functionality in order to understand whether it is approximately profitable or not. Then there is already a movement towards this functionality, which stops at any moment when business goals are achieved (for example, a higher priority functionality has appeared, and this one is already working a little and all the “cream” has been removed).