I based this post on a Quora question I was requested to answer.
Estimates are mostly guesswork based on previous experience and research and, as such, they are rough predictions.
However, you can drastically improve the estimations of the software company you’re working with.
What makes estimates inaccurate?
First, let’s understand what makes estimates inaccurate:
- Experience risk: the company does not have experience with the technology involved
- Technology risk: technologies, libraries or third-party integrations are used that are unstable or not well documented
- Documentation risk: the documentation provided to the software company is not very clear and leaves room for interpretation
Many companies estimate by jotting down a number of hours next to every task you give them. Or, even worse, make just one bulk estimate for the whole project. This way, you receive no information whatsoever about any potential risks involved.
What should developers include in estimations?
For every task, you should insist on a detailed estimation, including:
- A best and worst-case estimate: the wider the gap, the higher the developers’ uncertainty. Use this valuable information to improve the estimate!
- A risk assessment: if the uncertainty is lower than 70 per cent, ask the developers to comment on why they include such a substantial safety margin. Is it a lack of experience, a risky technology, or poor documentation?
How can you improve your estimations?
Use this valuable information to your advantage and make better decisions:
- If the documentation is sparse, improve it! Give more details, explain use cases, deliver wireframes or a clickable prototype, and get on a call. Make sure the developers understand what they’re supposed to build and have them re-estimate
- If the technology is risky, reconsider using it! Can you use a different API, library or framework? Or is this feature necessary at all right now; can it be postponed?
- If the company is inexperienced, reconsider using them! You can either use a technology the company is more experienced in or look for a different provider altogether (we match you to tried and tested tech teams here at Trustshoring)
These often small improvements can significantly improve the quality of your estimate, and save unnecessary iterations and frustrations further down the road.
Use the Estimation Template Sheet
To help you, I have created a spreadsheet template to send to your developers along with your documentation, which contains all the rows necessary:
Good luck, and feel free to comment or reach out with any questions!