The art of accurate project estimation is really an art. Syndicode is experienced in the project evaluation and knows how to select a team and technology to build the processes. Every time we discuss with the client the budget in all possible details and keep all promised stages and launch happened exactly on schedule. Starting a new project, it’s essential to know how to calculate the risks and possible situations so that the client does not receive any unpleasant or unexpected surprises. By this article, we would like to reveal some of our secrets and tell how we manage to accurately estimate a project.
In custom software development most of the stages depend on a unique and dedicated person called product manager. This specialist has to be an expert in tech and management, psychology and business. And moreover, the product manager will be always responsible for all the issues and all the wins no matter the conditions. Product managers are often responsible for the strategy, roadmap, features, and tasks that bring a lot of responsibility. Project estimation is not an exception.
1. Main issues of the accurate project estimation
When getting a new project for estimation the first things you need to solve are:
- How to calculate the duration of the project?
- How to estimate a new product that we have never encountered before?
- How to evaluate a project with high-level accuracy?
- How to maintain the relevance of the estimation in case of changes in the project?
- How to evaluate in conditions of uncertainty?
- How to understand that something is wrong with the estimation provided by the team?
Frequent discussions and debates regarding the topic of project evaluation give an understanding that this problem is relevant for many project managers who faced the tasks of evaluating, sprints, releases or developing an entire product from scratch.
The mistakes caused by incorrect estimation are one of the most common reasons for problems in the projects. Revaluation of the project may lead to a loss in the tender or to mistrust of the client. Underestimation of the size and complexity of the project, incorrect evaluation of the costs and project fulfillment deadlines can result in overtime for the project team, burnout or emotional stress, as well as changes in the scope or a budget. Needless to mention, all these factors can lead to customer dissatisfaction and loss of business reputation.
Don’t forget that the right calculation also depends on the software development methodology you choose for your project. Every business should decide on organizing the work process inside the company, according to its priorities and projects in development.
Here in Syndicode, we’re Agile.
2. Project scope estimation
The accuracy of the estimation depends on several factors, such as:
- the number of assumptions in the scope of work;
- correct estimation of required resources and the right selection of specialists for the team;
- strict fixing of quality criteria.
The main advice here if before starting the project evaluation, you need to understand what is the essence of this process. If we define different stages of the evaluation, we can select the following:
- Defining the project and product Scope
Here we select one or several stakeholders who can act as the product owner, discuss the product scopes with this person, writing down what should be done, what functionality is expected, what business needs this product should cover. That’s how we create a product scope. Based on the product scope, we create a project scope. Here we define how we can implement the required functionality. At this stage, we already can pre-estimate the timing and cost of the project. It is also important to go through the non-functional requirements that can also greatly affect the final project execution time.
- Gathering a team for evaluation.
If the project is non-standard for the project manager or company, you need to gather a group of experts who can help with an estimation. The team of experts is not always included in the project team. But it’s highly recommended that the architect, technical advisor or systems analyst who are involved in the evaluation, could join the team. This will reduce the risk of re-estimating the project when the project team does not agree with the expert estimates.
The main challenges the team can face while the project is evaluated by experts are:
- Getting experts who don’t have experience in evaluating project activities.
- Optimistic experts could underestimate the complexity of the work and give low estimates.
- Some experts can overestimate the project.
It’s important to choose the team properly considering all possible risks and challenges. For this purpose, the project managers use the Discovery Session, a process supported by the session of meetings between the project team and client to understand the client’s business, its goals, strategy, how the operation process goes and so on. This is the act of gathering key project information so you can gain a high-level understanding of the project. In most cases, this is done by getting the answers to specific questions, as well as the project estimation.
3. How do you measure a project’s timeline? What do you know about story points?
Story Points are efficient measurement techniques for estimating the needed time for the team to develop a particular feature. Man-hours are usually quite easy to calculate, but some other tasks need more effort and attention. The developer who estimates a project should be the same person who completes the task, otherwise the estimate is invalid. The time varies based on a developer’s level of experience. We can use story points to have a stable index that doesn’t depend on the skills of team members, to easily track a team’s velocity, and be able to replan project release dates.
First of all, the measurement units can be different, and it is important to agree on them from the very beginning of the teamwork. At the same time, the duration of the project can be calculated using metrics such as the velocity and capacity of the team. Statistics on the average velocity of the team are usually enough to estimate what is needed to complete product development.
If we are calculating fixed-price projects, we need to evaluate the planned time in days or hours as accurately as possible. It usually takes a lot of time and you need to be prepared for this.
If we take Scrum, as the example, the entire project will be split up into timeboxes called ‘sprints’, and all the team sit together and plan for each sprint the list of tasks or user stories that need to be completed. Once the team agrees and commits to completing certain tasks in a given time frame, the development team is expected to stick to the commitment and complete all tasks within the sprint. Scrum is best suited when the cost of delay is high and deadlines should meet a minimal delay. In other words, it is suitable for projects that demand over 300 hours of development.
4. Product development stages to estimate
We can highlight the 3 main stages of product development that we usually use to estimate the project:
- Preparation of future product design.
It’s easier to evaluate the product design than to evaluate all the work from scratch, as well as to make the estimation of the development based on the finished architecture.
- Building a product or system architecture and describing functional and non-functional requirements.
At this stage, there may be enough to make estimations that can be calculated using the ROM (Rough Order of Magnitude), especially if this affects the annual planning and prioritization of the roadmap product. It is always good to keep in mind that making rough estimations, you need to focus on assumptions that can increase the duration of the project.
- Development of the product on the basis of ready-made architecture.
Remember that custom software development is an iterative process that goes through defined process stages to implement all the required features and reach the desired result. Even if we aim to create a custom product specifically tailored for the specific group of users or an organization, the development process still heavily depends on software development methodology your software development partner follows. (For example, here you can read more about Agile methodology Syndicode follows). But the main iteration stages are pretty similar.
The main custom software development stages you need to estimate are:
- Analysis and Planning
- a collection of requirements,
- changes management,
- risk management,
- software architecture.
- backend development,
- frontend development.
- Quality Assurance and testing
- Intermediate deliveries
- Maintenance (software evolution)
Here we need to determine the sequence of stages of the work (workflow). Regardless of the methodology used, we need to know the order of the performing of various types of work by our team.
5. Evaluation techniques
There are different project evaluation methods and techniques we can use in teams. We’ll pay attention to the most popular and frequently used:
- Expert review
This method is good because it is based on previous experience. That’s why it results in a more accurate estimation. It also covers a fairly wide range of projects and you can quickly get preliminary estimates.
When choosing this method, you need to find an expert in the development of similar projects. It’s even better to involve several experts and compare the results of their evaluation. The accuracy of their estimation depends here on their competence. But keep in mind that this technique is quite subjective.
- PERT method
This method is usually used in projects where it is hard to predict the duration of the project. An estimate of 3 values is used for calculation: optimistic (the best duration), expected (probable duration) and pessimistic (the worst duration). Here it is important to establish the sequence of actions and their relations. This technique is mainly used in innovative projects. But you should remember it requires a lot of time and money to keep the process up to date. The drawback of this method is that communication and sequence of actions are not always accurately displayed. We recommend to combine the PERT method with other techniques and engage experts to evaluate tasks.
- Analogous estimation method
Establishing an analogy allows using of well-known parts of the previous projects. This method is usually less expensive than other tools and is preferred when there is no detailed information about the project. It’s obvious that the evaluation in this case usually more hypothesized. The analogy cannot be used in the study of objects and control systems of fundamentally new objects, processes, situations that have no analogs in the knowledge base. This method requires taking into account both similarities and differences between unknown and known elements. It’s better to accumulate a knowledge base and described a case study. With a lack of similar projects, such statistics can help for a top-level estimation.
- Use Case Points Method
This method is convenient for describing the functional requirements of the system. It provides an opportunity to conduct a quick estimation as it is well suited for simple algorithms. But be attentive when describing non-functional requirements of the system, as it can appear to be inconvenient for these purposes. You should be familiar with the standard work scenarios. The accuracy of estimation here depends on the expert or analyst.
6. Ways to get a more precise estimation
Only a precise estimation of the project can bring you the results you want. There are several ways to make this process more precise:
- The experts claim that a breakdown of different processes to the level of tasks or activities will help improve the accuracy of estimates. In this way, it will be possible to accurately indicate the sequence of work, the cost of each work, analyze what roles should be present in the project as well as build a critical path for the process that will bring maximum benefit to the project.
- Assumptions also play an important role. This will help us to indicate how the estimates can grow under the influence of various factors. For example, if we need a computer with a specific configuration for a certain task, then we can’t start the task without the necessary equipment.
- When planning and evaluating, you should use not the maximum, but the average speed of process fulfillment, using the metrics of Agile commands. In this way, we can avoid unpleasant surprises when someone from the team needs a day off.
- You can also evaluate the project using different methods and compare the results. The average result can be used as an estimation of the project.
Remember that when you’re asking the software development agency about the estimation you shouldn’t take this assumption as the total amount of money that will be spent on a project. The thing is – the first evaluation of the work going on before the discovery session is not the final price but it indicates the estimated cost of the project. The estimate is not equal to a software development cost, but only an assumption.
7. Calculating the project’s timeline
The duration of the project can be calculated by the following algorithm:
- determine the scope of work performed in the current release;
- prioritize the execution of tasks;
- analyze dependencies between tasks;
- make a project plan taking into account the necessary sequence of tasks;
- write down all the holidays and weekends;
- distribute tasks among all team members.
While making the calculations of the project’s timeline, remember about these important actions:
- Take into account holidays and vacations;
- Count the 20% of the time we will spend on communication within the team and with the customers;
- Calculate all possible risks and take them into the calculations;
- Take into account the complexity of the tasks;
- Include the dependence on a third party.
8. Ways to reduce a budget
When all calculations are done and written, the next step is to start thinking about reducing a budget or a timeline, because we can not fit into the deadlines. Sometimes it happens that the client requires to reduce the estimations for the task or release in general. For these purposes, it is important to prepare a list of assumptions and a matrix of risks that may arise when the estimation is reduced. Then the client can decide which risks are critical.
It’s essential to determine a critical path of your project. This is a continuous sequence of tasks in a schedule from its beginning to the end that requires more time.
So, how can a budget or timelines be reduced? There are several options:
- Transfer some tasks to another release.
- Hire a stronger team to implement the project.
- Increase the team before the start of the project.
- Suggest POC or MVP.
The most often scenario is that the customer will ask to reduce the project duration to the maximum without reducing the scope and increasing the team. You need to calculate all possible options and be prepared for solutions.
9. A trusted partner to rely on
Syndicode’s team of dedicated engineers has been accumulating expertise in building custom software products and solutions. Our experience allows our full-stack engineers to tailor projects specifically for our clients and create digital products that fill their needs. And we gathered enough knowledge to provide you with a detailed custom software development consulting. We also try to be open about the costs of software development as possible.
We are experts in different technologies and industries:
- We have a team of experts in building and integrating logistics information systems and services.
- We are proud to have a deal with customers that operate in the fields of express delivery, container shipping, freight trucking.
- We also have extensive experience with the classical hardware and modern cloud-based hosting types.
- In each particular case, our architect designs a specific technological stack to support load and security requirements.
By the way, we use the latest innovations in software development and we know how they can make your business grow faster and be a strong competitor on the market. And if you are ready to delegate the work on your project to guys who wouldn’t let you down, read more about working with Syndicode!