There are two general methods for software estimates, time-based and point-based. Here are some tips on when to choose either one.
Time-Based Estimates
Time-based estimates can be tricky. They are the simplest style of estimate and that simplistic nature lends engineers to treat them flippantly. Just about every engineer has said “That’s easy, it’ll take 15 minutes” about something trivial, and then spent a full workday working on it. Time-based estimates get a bad rap from engineers, because they feel punished for missing them. Project managers like them because planning work is simpler.
Time-based estimates work best for near immediate-priority bug fixes / feature requests, and costing and budgeting breakdowns.
Point-Based Estimates
Points-based estimates are a common model in Agile shops, and are largely the same except in terms of flavor when they are requested in terms of t-shirt sizes or Fibonacci series values. They are meant to be quick estimates that give a sizing gauge for the feature without the negativity associated with a missed estimate. Points-Based estimates get a bad rap from project managers, because the statistical approach to ‘backing into’ the time something takes is not accurate enough to get an ‘on-time’ delivery of anything. Engineers like them because they don’t feel as beholden to them.
Point-based estimates work best for high-level estimates of long-term work, or as a quick way to gauge consensus between engineers.
When To Use Them
A project team will generally follow a particular methodology (Agile, SAFE, Waterfall), so you may be held to the preferences and norms of that group, but in general, follow these guidelines for successful estimating.
- When to use a Points-Based Estimate
- The amount of time dedicated to estimating is low.
- The priority on the work is variable; your product owner will use your estimate to assist in determining its priority.
- Engineers have substantively different approaches to the work, or the work is largely exploratory.
- Your dev-to-release cycle is fast.
- When to use a Time-Based Estimate
- The work is your next immediate priority item.
- You will use the estimate to directly assess cost.
- There is an understood and correct way to do the work, and will not drastically change if done by one engineer or another.
- Your release cycle is slow, or singular.