Estimates, Targets, and Commitments

Tom McLaughlin   ·  

Businesses have important reasons to establish targets independent of software estimates. But the fact that a target is desirable or even mandatory does not necessarily mean that it is achievable.

Steve McConnell, Software Estimation: Demystifying the Black Art

We need precise language about what we want, what we predict, and what we promise.

McConnell gives us 3 definitions to help us understand what an estimate even is, warning us that it tends to be conflated with two adjacent concepts - targets, and commitments.

Estimate: A prediction of how long a project will take based on available information and past experience.

Target: A business goal describing when stakeholders would like functionality delivered to meet market demands.

Commitment: A promise to deliver specific scope by a specific date, made after considering both estimates and targets.

microservices

Strategies for Estimate-Target Mismatches #

How often does sales/management/product establish the target, then solicit engineering for an estimate, having already made a commitment to the customer?

(often. it’s very often.)

Here’s my personal playbook for these situations.

Ask Questions #

  • Does this need to be built in the way the customer asked, or can we get there by other means?
  • Are there workarounds or hacks?
  • Reframe the question in terms of user tasks rather than features
  • Can we graft a workflow on top of commodity tools (email, excel)

Reduce Surface Area of Problem #

  • Separate out any “wishlist” items
  • Scale later
  • Batch Jobs and CSV
  • Acquire tech debt
  • Release incrementally

Change the Parameters #

  • Can the customer pitch in on R&D?
  • Can we buy instead of build?