How to do software estimations
Estimating software projects can be challenging, especially for those who are just starting out. It can feel overwhelming to estimate how long it will take to deliver a software feature that is unknown. As a beginner, you may feel pressured to provide accurate estimates, and it can be tempting to simply agree to any request from upper management or your manager.
However, it’s important to remember that estimates are just estimates.
They are not guarantees, and unforeseen issues can arise during development that can affect delivery timeframes.
To provide accurate estimates, there are some steps and tips you can follow.
1. Understand the requirements
Firstly, it’s important to understand the scope of the project and the requirements, as well as the potential risks and challenges that may arise during development. This part might require you to engage in conversations with clients, cross-functional teams, or business people. Don’t hesitate to start conversations and gather input. Keep your messages short and clear, and use everyday language. Remember to put the most important information first.
2. Break Down the Tasks into smaller pieces
Break the project down into smaller, manageable tasks. This makes it easier to estimate the time required for each task accurately.
For example,
if you’ve been asked to add “wish list cart” functionality, you can divide the task into four parts: 1. presentation, 2. adding items to the wish list, 3. storing items, and 4. retrieving items
You can then estimate the time required for each part.
Let’s say you estimate that the presentation part will take 1 day,
adding items to the wish list will take 1 day,
storing items will take .5 day, and retrieving items will take .5 day.
You can add an additional 40%(1.2) unknown factor to this estimate, which would bring the total time to 4.2 days.
You could then round this up to 4.5 or 5 days.
3. Use Historic data
If possible, leverage historical data from similar projects or tasks to inform your estimates. Look at how long similar tasks took in the past and use that as a basis for your estimations.