You should estimate at multiple key stages of a project to ensure accuracy and adaptability. Estimation is important:
- At the proposal stage to prepare initial cost and time estimates.
- During the contract stage to finalize detailed estimates before commitment.
- At the beginning of the engagement to validate and refine initial estimates.
- When there are changes to the project scope to revise the estimates accordingly.
- During project execution to track progress and update estimates as new information or risks arise.
Thus, estimating is an ongoing process throughout the project lifecycle rather than a one-time task.
In agile frameworks like Scrum, estimation can be done during backlog refinement or sprint planning to help the team commit to achievable goals for the upcoming sprint. It involves continuous reassessment rather than a single event.
Effective estimation usually involves breaking down complex tasks into smaller parts, collaborating with multiple team members, considering uncertainties, and revisiting estimates iteratively as the project progresses.
Therefore, the best approach is to estimate initially and continue estimating throughout all stages of the project to ensure realistic planning, resource allocation, and responsiveness to changes.