Some people believe the best way to estimate a project is to produce detailed requirements and design documents for every feature before writing a line of code. It sounds professional. It sounds thorough.

In practice, it usually turns out to be wrong. Requirements change. Priorities shift. The detailed estimate you spent weeks producing becomes irrelevant halfway through the project.

That effort becomes wasted inventory – time and resources that could have been spent building something useful instead.

Do rough estimates early. Refine them as you learn more. Only go detailed when the schedule allows and when you understand the value and priority of what you’re estimating.