Project estimation may seem a rocket science for software developers. All the details that need to be taken into account are hard to keep track of. We can assure that there is nothing too complicated about estimating projects. However, there are certain pitfalls you need to avoid before even starting the estimation of Blockchain and AI/Machine learning projects. Beware the situation when you do not have enough information or some details of the project are not clear. These issues need to be resolved before project estimation through clarification calls, precise and detailed technical documentation on the stage of analyzing the client’s business.
Once the details of the project are clarified, you need to choose the model of work that is going to suit your team and this project. Agile software development has been a popular choice for quite a long time. Basically, the project development process is divided into a certain number of short sprints that last from 1 to 4 weeks. At the end of a sprint, the team presents a viable release to the product owner and upper management. Each new release is built on the basis of the previous one.
Agile approach to project estimation & management requires the team to be cross-functional. This means that the team is responsible for performing all the tasks from project planning to acceptance testing. Thus, project estimation should fall under the development team’s responsibility as well.
As the development consists of sprints, so does the estimation process. Agile estimation leaves some space for re-assessing costs at the beginning of each sprint. It can be used for both small- and large-scale projects, although in case of the latter it may be quite difficult to assess the effort (and, therefore, the costs) in the very beginning. That’s why estimate can be revised multiple times.
Besides, the Agile methodology has proven to be effective not only in terms of cost for project estimation but also in terms of planning the whole project which is crucial for such complex projects as the ones based on Blockchain and AI/Machine learning. Agile also comes in handy when the team is required to implement new changes to an already existing product.
Agile Project Estimating Techniques
There are plenty of project estimation techniques that you can find out there. However, not all of them are frequently used for a number of various reasons. In this article, we are going to present you four most popular estimating methodologies that have already proven to be effective and are widely used by development teams.
This technique is arguably the most popular one in the Agile community. When using this technique, the team votes for each estimation with a card that has a certain number written on it. Voting is repeated until all participants reach a consensus.
- it fits small-scale estimations of 2 to 10 items;
- all participants are required to reach a consensus which helps avoid arguments afterwards.
- it doesn’t suit projects with a large number of items that need to be estimated at once (more than 10);
- it fits only small teams.
The Bucket System
This technique is quite similar to Planning Poker. Estimation is done by placing the items in buckets, each bucket representing an estimate, in several smaller groups.
- it can be used for large groups;
- it is faster than Planning Poker;
- it encourages group accountability;
- it suits estimating 50 to 500 items at once.
- some participants may not get fully engaged in the process.
All items to be estimated are listed on a flipchart. Each participant gets a certain number of dots that he or she can put next to the items. The more dots there are next to a certain item, the more effort it is going to require.
- it is fast;
- it suits larger teams.
- it can be used only for a small number of items;
- it is less precise than the previous two ones.
In this technique, regular t-shirt sizes (XS, S, M, L, XL) are used as categories for estimation. They symbolize the sizes of stories, from extra-small to extra-large. After the participants put all the items into different categories, those categories can be given a more usual numerical estimate. The decisions are made via discussions and, sometimes, voting to ensure the whole team agrees.
- the voting process is easier as the number of options is smaller;
- it suits teams that are beginners in the world of Agile.
- it may be less precise as there are no numerical estimations involved.
5 Tips For Trouble-Free Agile Project Estimation
1. Estimation Should Be A Team Effort
Agile is all about the development team that is self-sustainable. It is all about teamwork. Surely, product owner and upper management can and should be involved to deliver their vision of the final product. However, keep in mind that developers who are actually going to be doing the work are the most competent people to estimate the work effort that is required to implement the project.
2. Consider Your Past Estimates
A precise estimate must be based on the previous development experience. Each team member (and, therefore, each team) works differently and may overestimate or underestimate the required effort to deliver on a certain task. Thus, you need to introduce project management software that would track how much time it took to develop certain features. This would allow you to see how accurate previous estimates were and what pitfalls to avoid during the next estimation.
3. Don’t Estimate Hours
If you estimate hours, you do not take into account any daily activities that are inevitable (calls, emails, meeting), and, therefore, your estimate can’t be accurate. Instead, estimate the effort required to deliver on a certain item from the backlog. Most development teams use story points to assess how much work needs to be done to do a certain task. Mainly, they use a Fibonacci-like format to estimate the relative effort: 0, 1, 1, 2, 3, 5, 8, 13, 21 (here, every number is the sum of previous two terms in sequence).
4. Involve Those Who Have Done This Work Before
As we have mentioned above, developers with relevant experience are way more likely to give an accurate estimate of the relative effort. Listen closely to what they have to say. If the product owner wants to add a certain feature, ask the developer who has implemented such a feature before for his or her opinion on how much effort is required to develop it.
5. Update The Estimate Regularly
Agile methodology is iterative. In case of complex projects that take months to be developed, iterative cost assessment is inevitable unless you are satisfied with an inaccurate outdated estimate. There is a huge number of reasons why the estimate that was done at the beginning of the project may become outdated: the product owner may want to add new features in the middle of the software development, or acquiring some new software or technology may become necessary. Thus, do not hesitate to revisit your estimate regularly.
It is up to you which technique to use. Keep in mind that they are just techniques, so they can be adapted or changed every sprint to ensure that estimating is a trouble-free process for all parties. In addition to those mentioned above, there are plenty of other techniques you can find on the web. Feel yourself completely free on that matter.
Still, using Agile for Blockchain and AI/Machine learning project estimation certainly has its advantages that you shouldn’t miss out on. It provides you with an accurate estimate which you need to revisit from time to time to make sure it is not outdated. What is more important, all stakeholders are involved in the estimation process and are on the same page which makes the development process more efficient.