I based this post on a Quora question I was requested to answer.
Estimates are mostly guesswork, based on previous experience, research and thus 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, 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 demand a detailed estimation, including:
- A best-case 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%, 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 & trusted tech teams here at Trustshoring).
These – often small – improvements can significantly improve the quality of your estimate, and save unnecessary iterations and frustrations down the road.
Use the Estimation Template Sheet
To help you, I have created a spreadsheet template to send your developers along with your documentation, which contains all rows necessary:
Good luck, and feel free to comment or reach out with any questions!