IT Services Consulting

Software Estimation: Why Estimates Slip and How to Improve Them

Software estimates slip for ordinary reasons. This guide explains why and shows how ranges, decomposition, history and re-estimation lead to better forecasts.

Published 7 min read

Illustration of a narrowing cone of uncertainty across project stages beside a checklist of better estimating habits

Short on time? Estimates slip because early information is thin, scope grows, hidden work appears and people are optimistic. Improve them by splitting work into small pieces, giving ranges with confidence levels, comparing against similar past work, counting testing and integration, estimating as a team, tracking actuals against estimates and re-estimating as you learn. Treat estimates as forecasts that change with evidence.

“How long will it take, and how much will it cost?” is the first question asked of any software project and the one that causes the most friction. Teams give a number. The project overruns. Managers lose trust and ask for more detail. Teams pad their next estimate. The cycle repeats.

Software work involves discovery, so some uncertainty never disappears. Estimation can improve, though, and a better process leads to fewer surprises and better decisions. This guide explains why estimates go wrong and what to do about it. It suits a business buying software, a product manager planning a quarter and an engineering lead preparing a quote.

Key takeaways

  • Uncertainty is highest at the start and shrinks as work proceeds, so early estimates should be ranges.
  • Common causes of overrun: unclear scope, hidden work, dependencies, optimism, multitasking and changing requirements.
  • Smaller pieces, historical data and group estimation improve accuracy.
  • State assumptions and confidence levels, and update the estimate when facts change.
  • Use estimates to inform decisions and plans. Do not use them as commitments to be used against people.

Estimate, target and commitment

Three different things are often confused:

  • Estimate: a prediction of effort or duration based on what is known.
  • Target: a desired result, such as a launch date set by the business.
  • Commitment: a promise to deliver something by a date, usually with agreed scope and resources.

Problems arise when a target is presented as an estimate. A team asked “can you do it by June?” may be pressured to say yes. Keep the three distinct. If the estimate is longer than the target, the conversation should be about scope, resources and risk.

Why estimates slip

Uncertainty at the start

Early in a project, requirements are vague, designs are undecided and technical risks are unknown. The range of possible outcomes is wide. This is sometimes shown as a cone of uncertainty that narrows as the project learns. A single number given early hides a large spread.

Unclear and growing scope

  • Requirements are incomplete or interpreted differently by different people.
  • New requests arrive during development.
  • “Small” changes accumulate.
  • Edge cases emerge late.

Hidden work

Estimates often cover the visible coding and leave out:

  • Design, research and spikes to resolve unknowns.
  • Testing, bug fixing and rework.
  • Code review and merging.
  • Environment set-up, deployment and release.
  • Integration with other systems and teams.
  • Data migration and cleaning.
  • Security, performance and accessibility work.
  • Documentation, training and handover.
  • Meetings and communication.
  • Support for earlier releases.

Dependencies and delays

Waiting for decisions, access, third-party services, hardware or other teams stretches calendars even when effort is as predicted.

Optimism and pressure

People tend to estimate the best case. Pressure from managers or customers pushes numbers down. A well-known observation, often called Hofstadter’s law, says that things take longer than expected even when you account for that.

Multitasking and interruptions

A person assigned to three projects does not deliver a third of the effort to each. Context switching and interruptions cut productive time. Estimates in ideal days ignore this.

Team and skill factors

Estimates assume particular people. Staff changes, onboarding time and skill gaps change outcomes. New technology brings learning curves.

Technical debt and legacy complexity

Old, undocumented systems hide surprises. Changing a fragile module takes longer than the visible change suggests. See our guide to legacy application modernization.

Planning fallacies and anchoring

The first number mentioned becomes an anchor. Teams reuse earlier estimates without adjusting for differences. Past projects are remembered as smoother than they were.

Techniques that improve estimates

Break work into smaller pieces

Estimating a small, well-understood task is easier than estimating a large, vague one. Decompose into pieces of a few days or less. Errors across many small items partly cancel each other out, while one big guess does not.

Use ranges and confidence

Give a best case, a likely case and a worst case, or state a range with a confidence level, for example “between eight and thirteen weeks, with eighty percent confidence”. Ranges communicate uncertainty honestly. Combine the ranges across tasks with care, since totals of worst cases overstate the risk.

Use reference classes and history

Compare with similar past work: how long did comparable features, integrations or projects actually take, including delays? Historical data corrects optimism. Keep records of estimates and actuals for this purpose.

Estimate as a team

Involve the people who will do the work, plus testers and operations staff. Techniques such as planning poker, where participants estimate independently and then discuss differences, reduce anchoring and surface assumptions. Disagreements reveal misunderstandings, which is useful in itself.

Use relative sizing for planning

Many agile teams estimate in relative units, such as story points, calibrated against previous work, and measure how much they complete in each iteration, called velocity. This helps forecast delivery of a backlog over time without pretending to precision in hours. It works best with stable teams and is not a substitute for ranges on large commitments.

Run small experiments to reduce risk

For risky or unknown items, run a short spike to learn, then estimate. A proof of concept for an unfamiliar integration can save weeks of misjudgement. Our guide to MVP development shows how to learn cheaply.

Include all the work

Use a checklist covering design, testing, integration, deployment, data work, security, documentation and management. Add explicit allowances for risk and contingency, and show them. Hidden padding erodes trust, while visible contingency can be discussed.

Estimate capacity honestly

Convert effort into calendar time using realistic availability: holidays, meetings, support duties and multitasking. Account for ramp-up for new team members.

Re-estimate as you learn

An estimate is a forecast. Update it at milestones, when scope changes or when new information appears, and share the changes early. A rolling forecast based on actual progress is more reliable than a fixed early figure.

Track and learn

Compare estimates with actuals, and discuss why differences occurred. Identify patterns, such as always underestimating testing or integration. Adjust your method.

Scope control

  • Write clear requirements and acceptance criteria.
  • Agree what is out of scope.
  • Use change control: each change gets an impact assessment on effort and time, and an explicit decision.
  • Prioritise: know what can be dropped if time runs short.
  • Deliver in increments so scope can be adjusted based on feedback.

Estimating for buyers

If you buy software development:

  • Give vendors a clear brief and the same information.
  • Ask for ranges, assumptions and what is included.
  • Compare estimates by approach and assumptions as well as the total.
  • Be wary of very low bids.
  • Choose the commercial model that fits the clarity of scope. Our guide to offshore and nearshore engagement models compares fixed-scope, time-and-materials and retainer approaches. Our checklist for choosing a software development partner covers evaluation.
  • Pay attention to how the vendor handles change.

Estimating for product managers and leaders

  • Use roadmaps with horizons, firm for now and flexible later. See our guide to strategic roadmapping.
  • Ask for confidence levels, and plan buffers at the portfolio level.
  • Protect teams from last-minute scope and pressure.
  • Celebrate honest bad news, since early warning is valuable.
  • Measure predictability and flow, such as cycle time and throughput, and use them for forecasting.

Alternative approaches

  • No-estimates and flow-based forecasting: use historical throughput and cycle time to forecast, with small, similar-sized items. It suits mature teams with steady flow.
  • Time-boxed delivery: fix time and team, and vary scope. Suits products where scope can flex.
  • Fixed budget, flexible scope: agree a budget and prioritise outcomes within it.

Choose what suits your context.

Common mistakes

  • Giving a single number early.
  • Treating a target as an estimate.
  • Leaving out testing, integration and release.
  • Estimating alone, or by the most senior person.
  • Padding in secret.
  • Never comparing with actuals.
  • Ignoring changes in scope or team.
  • Punishing honest estimates.

A practical routine

  1. Write down scope, assumptions and exclusions.
  2. Break into small items, and estimate each with a team.
  3. Add work that is easy to forget.
  4. Give a range and confidence.
  5. Convert to calendar time with realistic capacity.
  6. Review actuals each iteration, and update the forecast.

How SoftSapien approaches estimation

SoftSapien provides transparent estimates with ranges, stated assumptions and regular updates, and uses staged delivery so clients can steer scope as they learn. See our custom software development services.

To get an estimate for your project, use the contact page to chat with our team, send a message or schedule a free consultation call.

Frequently asked questions

Why do software estimates slip?

Early information is thin, scope grows, hidden work such as testing and integration is missed, dependencies cause delays and people are optimistic and multitask.

What is the difference between an estimate, a target and a commitment?

An estimate predicts effort from what is known, a target is a desired result and a commitment is a promise. Confusing them causes pressure and distrust.

How can I make estimates more accurate?

Break work into small pieces, give ranges with confidence levels, compare with similar past work, estimate as a team, include all work and re-estimate as facts emerge.

What should buyers ask vendors?

For ranges, assumptions, inclusions and exclusions, how changes are handled and how estimates are updated, comparing approach as well as the total.

Can SoftSapien provide an estimate?

Yes, with ranges and stated assumptions. Contact SoftSapien through the contact page to chat with our team, send a message or schedule a free consultation call.

Related service IT Services Consulting
SoftSapien

One partner for digital transformation, AI, cloud, and growth.

From legacy modernization and Gen-AI engineering to digital strategy and infrastructure, SoftSapien helps enterprises plan, build, and scale the initiatives that move the business forward.

Tell us what you're building and we'll get back to you within 2 business hours.

Contact Us

+1

How should we reach you?

Slide to verify you're human

Talk to an Expert