Problem 2: Underestimating

Note: if you are under-accounting, you need to fix that before you fix underestimating.

Whether estimating with Fibonacci points or in days, engineers are pretty notorious for underestimating work.

How To Identify Underestimating

As a manager, evaluate your team.

  • Are you missing project milestones?
  • “Miss” is relative to the complexity and timescale of the project or task. In a multi-month project, are you off by a few days or a few weeks?
  • Are you missing milestones and sprint goals consistently?
  • People make mistakes, and no one is a perfect estimator, but if your team is almost always off the mark, you have a problem.
  • If you are using sprints, the end of a sprint is a natural check-in point. Are you missing on sprint goals?

With points or time-based estimates, you can identify underestimation by spot-checking a few tasks each sprint. Are the relatively smaller point tasks taking the same time as larger ones? Smaller point tasks should be less complex, which generally translates to less time. So if something you expected to be extremely simple took five uninterrupted days, it is worth asking why.

How To Address the Problem

Know your engineers. Some engineers always underestimate. Some engineers estimate assuming they will do 100% of the work and forget the team is around. Figure out what factor they tend to be off by and multiply their estimates by that number.

No one is perfect. Even as your engineers get really good at estimating, stuff goes wrong, and things come up that block launch or require engineering time away from the project. Add a buffer to your overall project estimates.

If you are not using milestones in a project, try it out. A few high-level milestones I use are:

  • Feature complete
  • Bug Hut (aka Bug Bash)
  • Code complete
  • Launch preparation
  • Post-launch support

There should be project-specific milestones leading up to feature completion, especially for larger, more complex projects. For example:

  1. Milestone 1: Build the API
  2. Milestone 2: Build the UI
  3. Milestone 3: Integrate the API and the UI

For each milestone, identify your dependencies. What would block you from starting this work? In the example above, milestone 3 is blocked on milestones 1 and 2.

Back to blog

Leave a comment