Skip to content

Latest commit

 

History

History
39 lines (25 loc) · 1.5 KB

File metadata and controls

39 lines (25 loc) · 1.5 KB

Estimating

TL;DR. What to say when asked for an estimate? I'll get back to you.

Tip: Estimate to avoid surprises

To some extent, all answers are estimates. It's just that some are more accurate than others.

The units you use for estimation matter: compare 'about 130 days' and 'about 6 months'. '130 days' probably implies a higher degree of accuracy.

Recommendation:

  • 1-15 Days
  • 3-6 Weeks
  • 2-6 Months
  • 20+ Think hard before giving an estimate

A basic estimating trick that always gives good answers: ask someone who's already done it.

Estimating project schedules

PERT (Program Evaluation Review Technique) - every task has an optimistic, a most likely, and a pessimistic estimate.

  • How long will it take to paint the house?
  • Well, if everything goes right, and this paint has the coverage they claim it might be as few as 10 hours. But that's unlikely: a more realistic figure is closer to 18 hours. And, ofc, if the weather turns bad, that could push it out to 30 or more.

Eating the elephant (one bite at a time)

Practice incremental development, repeating the following steps with every piece of functionality:

  • Check requirements
  • Analyze risk (and prioritize riskiest items earlier)
  • Design, implement, integrate
  • Validate with the users

The refinement gets better and better each time, and you can refine your initial guess on the number of iterations.

Iterate the schedule with the code

References:

  • The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition)