CTO Fraction

A diverse team of software developers in a modern office, collaboratively discussing and comparing task sizes during an estimation meeting, illustrating Relative Sizing in Software Development.

The Power of Relative Sizing in Software Development Estimates

Relative sizing in software development is a technique that enables teams to estimate task effort by comparing it to other tasks. This approach streamlines the estimation process, allowing development teams to prioritize work more effectively and allocate resources efficiently. By focusing on the relative effort required for tasks rather than absolute measures like hours or points, relative sizing helps teams quickly gauge the complexity and effort involved in their projects. This method is particularly beneficial in agile environments where rapid decision-making and adaptability are key.

 

What is Relative Sizing in Software Development?

Relative sizing in software development refers to the practice of estimating the size of tasks by comparing them to other tasks rather than assigning absolute values like points or hours. This method allows development teams to gauge the effort required for various tasks in a more intuitive and relative manner.

In essence, the size of a task is determined in relation to another task. For example, a team might decide that Task A is twice as big as Task B, or that Task C requires half the effort of Task D. This comparative approach simplifies the estimation process and helps in quickly assessing the workload.

Relative sizing in software development is particularly useful because it streamlines the prioritization of tasks. Instead of getting bogged down in the specifics of how long each task will take, teams can focus on understanding the relative effort involved. This makes it easier to prioritize tasks, allocate resources, and plan product roadmaps effectively.

 

Why Use Relative Sizing in Software Development?

Relative sizing in software development offers numerous advantages that make it a preferred method for many development teams. One of the primary benefits is its efficiency. Compared to traditional sizing methods that use points, hours, or other units, relative sizing is much quicker. This speed is important in agile environments where time is often of the essence.

Another significant advantage of relative sizing in software development is its effectiveness in prioritizing work items. By understanding the relative effort required for each task, teams can make informed decisions about which items to tackle first. This is especially useful when planning a product roadmap, as it provides a clear view of which tasks will require the most or least effort.

Relative sizing in software development also simplifies the estimation process. Teams do not need to dive into the details of each task’s specifics. Instead, they can make comparisons based on their collective experience and knowledge, which speeds up the process and leads to quicker consensus.

Finally, relative sizing helps in creating a more collaborative and cohesive team environment. Since team members are involved in comparing tasks and discussing their relative sizes, it encourages communication and shared understanding. This collaborative approach ensures that everyone is on the same page, leading to more accurate estimations and better project outcomes.

 

How to Implement Relative Sizing in Software Development?

Implementing Relative sizing in software development involves a straightforward process that begins with establishing reference points. These reference points act as benchmarks against which other tasks are measured. Here’s a step-by-step guide on how to effectively implement this method:

  1. Identify Reference Tasks: Start by selecting the largest and smallest tasks in your project. These tasks will serve as the baseline for comparing all other tasks. The largest task is your “high effort” benchmark, while the smallest task is your “low effort” benchmark.

     

  2. Compare Other Tasks: Once you have your reference tasks, compare each new task to these benchmarks. Determine whether a task is larger, smaller, or about the same size as your reference tasks. This comparative approach simplifies the sizing process and helps in quickly categorizing tasks as small, medium, or large.

     

  3. Involve the Team: Implementing relative sizing in software development is most effective when done collaboratively. Engage the entire team in the sizing process to leverage their collective experience and knowledge. This not only leads to more accurate estimations but also creates a sense of ownership and consensus within the team.

     

  4. Use Consensus-Based Estimation: When comparing tasks, encourage discussions among team members to reach a consensus. If there are differing opinions on the size of a task, have a discussion to reach agreement. This collaborative approach ensures that all perspectives are considered and leads to a more accurate estimation.

     

Challenges of Relative Sizing in Software Development

While relative sizing in software Development offers many benefits, it also comes with its own set of challenges. Understanding these challenges can help teams better prepare and adapt their estimation processes.

  1. Vagueness: One of the primary challenges is the vagueness of tasks. When tasks are too broad or vague, it becomes difficult to make accurate comparisons. Teams may struggle to agree on the relative size of a task if its scope is unclear. To mitigate this, the obvious choice is to ensure that tasks have at least some specificity to them. They do not need to be well-documented or clearly defined before attempting to size them, but cannot be too broad or vague either.

     

  2. Unknowns: Another challenge is dealing with unknowns, particularly when tasks involve new technologies or frameworks that the team has not used before. Estimating the effort required for unfamiliar work can lead to inaccuracies. To address this there are a couple of options:
    1. Pause the estimation process, do some research to remove the unknowns and finish estimations later. NOTE: In many cases this would be impractical.
    2. Estimate what is known and accept the fact that some work will remain unsized.
    3. Take a best guess for the unknown work and accept the fact that the sizing may be inaccurate.

       

  3. New Teams: For teams that are new or have not worked together for a long time, relative sizing can be particularly challenging. New team members may have different approaches to sizing tasks, leading to inconsistencies. When the team is first starting out, there is no way to fix this immediately. The team has to accept the fact that at the beginning estimations will be less accurate. The more the team does this in the long run, the better they will become.

Struggling to launch your product or scale your technology team?

As a Fractional CTO, I provide guidance and practical solutions tailored to your specific needs. Whether you need part-time leadership or interim support, my services are designed to help tech startups and small software companies overcome their challenges and achieve their goals.

Converting Relative Sizes into Project Costs in Software Development

Converting relative sizes of features, or epics, into project costs can be a valuable step in project management. In Software Development, this conversion allows teams to estimate rough budgets, which helps with prioritization and planning. Here’s how to convert relative sizes into project costs using historical data.

Option A: Converting Relative Sizes to Story Points

  1. Convert Relative Sizes to Story Points: Begin by translating the relative sizes (e.g., Small, Medium, Large) into story points. Assign a numerical value to each category. For instance, a Small feature/epic might be 1 point, Medium 3 points, and Large 5 points.

     

  2. Total the Story Points: Sum the story points for all features/epics to get the total number of points for the project.

     

  3. Examine Historical Data: Look at historical data to determine the cost associated with completing a specific number of story points. This involves reviewing past projects with similar scopes and calculating the average cost per point.

     

  4. Assign Costs to New Work: Use the historical cost per point to estimate the total cost for the current project. Multiply the total number of story points by the average cost per point to get a rough estimate of the project cost.

     

Option B: Comparing Relative Sizes to Past Work

  1. Compare to Similar Past Work: Identify past features/epics that were similarly sized. Use these as benchmarks for your current effort. For example, if a current feature is categorized as Medium, find a past feature that was also categorized as Medium.

     

  2. Examine Historical Data: Review the historical data for these past epics, focusing on the time and resources required to complete them.

     

  3. Calculate Costs: Use the historical cost data to estimate the cost for the current feature/epic. If a past Medium feature took 1 month to complete with a team of three, apply these metrics to your current Medium feature to estimate its cost.

     

  4. Assign Costs to New Work: Apply the calculated costs to the new features based on their relative sizes. This method provides a more direct comparison and can often lead to more accurate cost estimates.

     

Additional Considerations

  • Accuracy of Historical Data: The accuracy of your cost estimates depends heavily on the quality and relevance of your historical data. Ensure that the data you use is up-to-date and reflective of similar project scopes and contexts.

     

  • Adjust for Variability: Adjust your estimates to account for variability in project requirements, team efficiency, and potential risks. This can involve adding a buffer or contingency to your cost estimates to accommodate unforeseen challenges.

     

  • Regular Review: Regularly review and adjust your cost estimation methods based on new project data and experiences. Continuous improvement helps refine your estimation process and increase its accuracy over time.

     

Conclusion

Relative sizing in software development is an effective and efficient method for estimating the effort required for various tasks, but especially features/epics. By comparing tasks to one another rather than assigning absolute values, teams can quickly and intuitively gauge the relative effort involved. This approach not only speeds up the estimation process but also facilitates better prioritization of work items, which is especially useful for planning product roadmaps.

Relative sizing is a good approach to introduce estimation in general to a team who have never estimated work before. It would be a good starting point to get them thinking. This method encourages team collaboration and provides a solid foundation for understanding effort size. If, in the future, the team decides to move to story point estimations, it will be an easier transition. The familiarity with comparative analysis and collaborative estimation discussions will make adopting story points a smoother process.