Estimation is hard because software is full of unknowns. The goal isn't false precision, it's a realistic, honestly-communicated range that helps the business plan. Good TLs estimate ranges, surface risk, and re-forecast as they learn.
How to estimate better
✓ Break work down — small tasks estimate far better than big ones
✓ Estimate as a RANGE or confidence ("2-4 weeks, 70% confident")
✓ Include the invisible work — testing, review, deployment, unknowns
✓ Use history — what did similar work actually take?
✓ Involve the people doing the work — not just you
✓ Separate ESTIMATE from COMMITMENT (deadlines are negotiated, not guessed)
A concrete example
Asked "how long for the new dashboard?", don't say "two weeks." Say: "The known work is about two weeks. There's an unknown around the reporting API, if it's clean, two weeks; if not, closer to four. I'll know more after a one-day spike."
