Why Estimates Fail Before You Start

The question "How long will it take?" is inevitable on any project. Even in an Agile shop, someone will eventually commit to a date. And when that date slips, the fallout lands on whoever gave the number: management feels misled, sales has already promised customers a delivery, and the team burns out on weekend work trying to hit an impossible target. The solution is not to be more optimistic — it's to be more systematic.

Here's a technique borrowed from an Intro to Development class at Microsoft. It's deliberately non-technical: you estimate how long it takes to paint a room. No software needed, just an honest look at how estimation actually works.

Painting a Room: The Exercise

Before you read on, write down your estimate for painting a single room. Don't skip this; the point is to check it against what follows.

Actually, you can't estimate it yet — you don't have a spec. Ask questions first: How big is the room? Do we have materials on hand? Is it furnished? What color is it now, and what are we painting over? In this case, the room is 12' x 10' x 10', fully furnished, no supplies, currently painted Kermit green, and the target is light yellow. All of that matters.

The next step is a task breakdown. This isn't busywork; it exposes hidden costs. The list, in order:

  1. Confirm requirements with everyone involved. (5 min)
  2. Research the job — learn about primers, drying time, paint glosses — and re-confirm any ambiguity this raises. (15 min)
  3. Acquire materials: paint, rollers, brushes, trays, drop cloths. (2 hrs)
  4. Prototype on a small patch of wall to verify coverage — especially how the old color bleeds through, and whether primer is needed. (10 min painting, 2 hrs dry time)
  5. Move furniture away from walls, remove curtains, switch plates, and cover floors. (30 min)
  6. Wash walls and patch any cracks or peeling areas. (1 hr)
  7. Tape off baseboards, windows, doors, and anything else that shouldn't get painted. (1 hr)
  8. Prime the room. (1.5 hrs)
  9. Wait for primer to dry. (30 min at minimum)
  10. Clean and wash equipment while primer dries. (20 min, can be overlapped)
  11. Apply the paint. (2 hrs)
  12. Clean up. (30 min)

The Hard Parallels to Software

The breakdown teaches three things that apply directly to engineering. First, ambiguity in the spec is a trap. If "paint the room" quietly means a specific gloss, a single accent wall, or waterproof paint, you can easily do twice the work wrong. Second, research and prototyping are cheap insurance. It takes more time to integrate the wrong framework or the wrong process than to test it early for fit. Third, the finer the granularity, the more you discover what you'd otherwise miss. Did you forget the furniture? Then you don't have the second pair of hands you now need. Every project is like this; small tasks reveal oversight.

The task list totals around 12 hours, but a closer look shows some items are still vague. Paint and prime times in particular are guesses made without knowing the room's actual edge length or your real pace. A fresh breakdown makes this concrete:

  1. Mix and pour the paint, prep the tray. (15 min)
  2. Edge the room along ceilings and doorframes with a brush. At a rate of about 5 linear feet in 3 minutes, a room with ~210 feet of edge raises the estimate for this step to roughly 2.5 hours, including ladder repositioning.
  3. Roll the walls: roughly 10 minutes per 5-foot section, working from floor to ceiling — estimate 1.5 hours for the room.
  4. The earlier prototype sample will tell you whether you need a second coat, which multiplies the rolling and requires additional drying time.

Priming, being this same process again, doubles whatever the technique adds. The total scope now looks closer to 15 hours for a single coat, not the original 12. Add a small buffer for unpredictable things — mixing lumps, splatters, an extra trip to the store — and 17 hours is a reasonable final estimate.

You Still Aren't Done: External Factors

But you've only answered how long it takes to paint the room. The real question, the one project stakeholders mean when they ask, is how long until those walls are painted. Those two answers diverge quickly once you add laundry, a midday interruption, other commitments, or a meeting-heavy week.

Once you have historical data from previous projects, you can apply a multiplier calibrated to your own track record. Using individual, per-task micro-estimates against your actual time logs lets a system like Joel Spolsky's Evidence Based Scheduling put a fairly sharp edge on that calibration. Your own time sheets across a couple of projects will give you far better running average correction factors than any top-down projection.

Handling Deadlines You Didn't Choose

Often you aren't asked for an estimate at all — you're handed one by a manager coordinating multiple teams, or by marketing during a holiday push. The risk is anchoring: when someone sets two weeks as the target, it's easy to let that be the seed of your planning rather than testing it. Counter that by having each engineer estimate their own work from a blank slate. If your own detailed estimate doesn't hold up under scrutiny, now is the time to say so.

Pushing back against an unrealistic date isn't pessimism. The choice isn't between a schedule that works and an ambitious magical one. It's between a coordinated, realistic compromise on date and scope that the team actually meets, and a missed date routinely rescued by corners cut and quality quietly sacrificed. If leadership pushes back against evidence, the Evidence Based Scheduling article is a useful reference to share with them.

The process isn't fast, but for any project that matters it's less painful than the alternative. Even if every project differs from the last, the discipline carries over: expect to ask questions, break the work down until it's concrete, prototype early, and track reality against your estimates until your instincts have proof behind them.