In our company teams are practicing Scrum, a well-established way of handling a project. Below you can find a simple explanation of how we perform backlog items estimation. Accurate estimation is crucial in both project management and cost engineering, as it ensures effective planning and resource allocation. There is a precondition that has a serious impact on the quality of the estimates. The story should meet the DOR (Definition Of Readiness) criteria. It should also answer questions: why and what? Especially the “why” is quite important to software developers because it explains the whole context of the story. In Poland, raw estimation practices face unique challenges due to varying economic and demographic factors.

Introduction

Estimating IT projects is a critical aspect of project management that can significantly impact the success of a project. Accurate estimation helps in setting realistic expectations, allocating resources efficiently, and ensuring timely delivery. However, the process is often fraught with challenges due to the inherent uncertainties and complexities of software development. Additionally, certain projects or tasks are subject to specific regulations or conditions, necessitating detailed reports and analyses to ensure compliance. In this article, we will explore various methods and best practices for estimating IT services, drawing upon our experience at fireup.pro to provide practical insights and tips.

Basics of Estimation

Estimation in IT projects involves predicting the effort, time, and resources required to complete a project or a specific task within a project. There are several methods to approach estimation, each with its own advantages and limitations. Some of the most common methods include:

  • Analogous Estimation: This method relies on historical data from similar projects to predict the effort required. It is quick and easy but may not always be accurate if the current project differs significantly from past ones.

  • Parametric Estimation: This technique uses statistical models to estimate project parameters based on historical data and project variables. It is more accurate than analogous estimation but requires detailed data and analysis.

  • Bottom-Up Estimation: This approach involves breaking down the project into smaller tasks and estimating each one individually. The estimates are then aggregated to form the total project estimate. It is highly detailed and accurate but can be time-consuming.

  • Expert Judgment: This method leverages the experience and intuition of experts to provide estimates. It is useful when historical data is lacking but can be subjective and vary between experts.

Understanding these basic estimation methods is crucial for selecting the right approach for your project and ensuring accurate and reliable estimates, as well as considering other important aspects that may influence the final outcome.

Types of Cost Estimation

Selecting the appropriate type of cost estimation is crucial for a project’s success, as different methods may better align with specific needs and objectives. Below are some common cost estimation methods:

  • Experience-based cost estimation: This method relies on the knowledge and experience of individuals involved in the project. Experts estimate costs based on their expertise and previous experiences with similar projects. While this approach is quick, it can be subjective and dependent on individual judgment.

  • Historical data-based cost estimation: This method utilizes data from previous, similar projects to predict costs. Analyzing historical data enables more objective and accurate estimations, provided that relevant data is available.

  • Mathematical model-based cost estimation: This technique employs mathematical models to predict costs based on various project parameters. These models can take into account multiple variables, such as project size, complexity, resources, and time. While this method is more precise, it requires advanced analysis and appropriate input data.

  • Function point-based cost estimation: This method assesses the size and complexity of a project using function points, which measure the system’s functionality. Function points allow for a more objective and comparable cost estimation, particularly in IT projects

 

What do we do during the Refinement meeting?

  • The Product Owner presents and explains the story

  • The development team gets familiar with the scope of a story and stakeholders expectations

  • There is a space for Grooming (questions, clarification, doubts discussion)

  • The Product Owner gets feedback from the development team (effort, raw estimation, the readiness of the story to be developed, split suggestion)

  • The team can discover tiny things to do before Sprint Planning and thanks to that speed the next sprint planning meeting up, eg: check additional specification details, contact other teams to get desired “know-how”, check dependencies to other stories released by another team and do a quick basic technical research

During the final stages of the Refinement meeting, all variables and inputs are finalized to provide an accurate estimate.

There is a tradeoff between the estimation accuracy and the time spent on estimation. The more precise estimation is the more time it requires.

You might also be interested in our article about:

The Difference Between Agile and Scrum

How do we perform estimation?

We do the estimation either during Refinement or Sprint planning (if it’s done during refinement then we just verify it during the Sprint planning).

The most important thing is that we do the estimation in relative terms instead of absolute terms. It’s a fundamental rule. Considering risks and uncertainties, accounting for random variables and their statistical properties is paramount in IT project estimation.

Relative estimation is the process of estimating task completion, not by units of time, but rather by how items are similar to each other in terms of complexity.

Considering Risks and Uncertainties

In the realm of IT project estimation, accounting for risks and uncertainties is paramount. Projects often encounter unforeseen challenges that can impact timelines and budgets. To mitigate these risks, it is essential to:

  • Identify Potential Risks: Conduct a thorough risk assessment to identify potential issues that could arise during the project. This includes technical challenges, resource constraints, and external factors such as market changes.

  • Quantify Risks: Assign probabilities and potential impacts to each identified risk. This helps in understanding the severity and likelihood of each risk materializing.

  • Incorporate Risk Buffers: Add contingency buffers to your estimates to account for uncertainties. This can be in the form of additional time, budget, or resources.

  • Regularly Review and Update Estimates: As the project progresses, continuously monitor risks and update your estimates accordingly. This ensures that your project remains on track despite any unforeseen challenges.

By proactively considering risks and uncertainties, you can create more robust and realistic project estimates that better reflect the complexities of software development.

Common Mistakes in Cost Estimation

When estimating the costs of IT projects, it is easy to make mistakes that can lead to unforeseen issues and budget overruns. Here are some of the most common errors:

  • Failing to account for all costs: It is common to overlook certain project-related expenses, leading to budget underestimation. It is crucial to include both direct and indirect costs.

  • Incorrect risk assessment: Poor risk evaluation can result in unexpected issues that impact project costs. Failing to consider potential threats may cause significant delays and additional expenses.

  • Lack of historical data: The absence of data from previous projects makes accurate cost estimation more difficult. Historical data is essential for comparison and cost prediction in similar projects.

  • Ignoring inflation: Neglecting the impact of inflation on project costs can lead to budget underestimation. Inflation can significantly affect the cost of materials, resources, and services over time.

How to Avoid Mistakes in Cost Estimation?

To avoid errors in cost estimation, it is worth applying several proven best practices:

  • Include all costs: Ensure that both direct and indirect costs are accounted for in your estimates. Regularly review and update the cost list to avoid overlooking any significant expenses.

  • Conduct a proper risk assessment: Accurate risk evaluation is crucial for realistic cost estimation. Identify potential threats, assess their likelihood and impact, and incorporate them into your estimates.

  • Use historical data: Leverage data from previous projects to inform your estimates. Analyzing historical data allows for more precise and reliable cost estimations.

  • Account for inflation: Consider the impact of inflation in your estimates, especially for long-term projects. Regularly update your estimations to reflect current market conditions.

By following these practices, you can significantly improve the accuracy of cost estimations and avoid many common mistakes that could affect project success.

 

Tools and Techniques Supporting Estimation

Several tools and techniques can support the estimation process, enhancing accuracy and efficiency. Some of the most effective ones include:

  • Project Management Software: Tools like Jira, Trello, and Asana offer features for tracking tasks, timelines, and resources, making it easier to manage and update estimates.

  • Estimation Software: Specialized tools like Function Point Analysis (FPA) and COCOMO (Constructive Cost Model) provide frameworks for estimating project size and effort based on various parameters.

  • Agile Techniques: Methods such as Planning Poker and T-shirt Sizing facilitate collaborative estimation within agile teams, promoting consensus and improving accuracy.

  • Historical Data Analysis: Leveraging past project data to inform current estimates can provide valuable insights and benchmarks, helping to refine and validate estimates.

By utilizing these tools and techniques, you can streamline the estimation process, reduce errors, and improve the overall accuracy of your project estimates.

Benefits of using story points in Fibonacci-like style (1,2,3,5,8)

  • it helps with relative estimation,
  • you don’t have to focus on how much time does it take to deliver a story,
  • it’s quick (estimation is related to already completed Product Backlog Items),
  • this keeps team members focused on delivering value, not on the time they spend on it,
  • helps to illustrate the velocity of a team,
  • it’s impossible to play politics using velocity as a weapon,
  • it’s accurate enough to plan sprints ahead,
  • story points reward team members for solving problems based on difficulty, not time spent.
fireup.pro know how to deal with raw estimation

There are many methods that can be used for estimation. We are using the Planning poker technique. It triggers the team’s activity, starts grooming discussion, and therefore allows bringing a better picture of the story to the team. In the case of raw estimation sometimes we use the Big/Uncertain/Small estimation just to quickly give feedback to the Product Owner by focusing on the raw aspects of the tasks.

At fireup.pro we work with you to recognize, understand, and help you achieve your goals. We create a feedback loop to improve quickly and effectively. We’re concerned about both the customer and employee sides of the applications you implement. For us, it’s the only way anyone can be successful in business.

At fireup.pro we work with you to recognize, understand, and help you achieve your goals. We create a feedback loop to improve quickly and effectively. We’re concerned about both the customer and employee sides of the applications you implement. For us, it’s the only way anyone can be successful in business.