Skip to content
Delivery5 min read

Software project estimation: why estimates slip and how to make them reliable

Why software estimates go wrong, and how ranges, discovery, smaller pieces of work, honest buffers and regular re-estimates turn them into something you can plan around.

By COO, Coretus Technologies

Short answer

Software estimates slip because they are made before the work is understood. Ask for a range rather than a single number, fund a short discovery phase before you commit, and break the work into pieces small enough to estimate. Then re-estimate at each milestone, so the plan keeps up with what the team has learned.

Software project estimation goes wrong for a simple reason: the estimate is made when the least is known about the work. A reliable estimate is a range that narrows as questions get answered, not a single number fixed on day one. Discovery, small pieces of work and regular re-estimates are what narrow it.

Why software estimates slip

Slow developers cause fewer slips than people think. Most come from work nobody saw when the estimate was made:

  • Vague requirements. 'Users can export reports' could mean one download button or a scheduled report builder with filters and permissions.
  • Integration surprises. An older system or a third-party API often behaves differently from its documentation.
  • Work outside the features. Environments, security checks, test data, release steps and documentation are easy to leave out of a feature-by-feature estimate.
  • Waiting. Time spent waiting for decisions, access, content or feedback is real schedule time, even when nobody is coding.
  • Optimism. People estimate the version of the task where everything goes right the first time.

Ask for a range, not a single number

Steve McConnell's white paper on the cone of uncertainty puts numbers on this. Estimates made by skilled estimators at the initial concept stage can be out by a factor of four in either direction, a sixteen-fold spread from lowest to highest. The spread narrows as the product definition, requirements and design are settled. It only narrows if the project actually settles them.

A single number hides all of that. A range shows how much is still unknown, and a useful estimate makes the reasons visible. Ask for four things:

  • A low and a high figure for effort, cost or calendar time.
  • The assumptions behind each figure, written as plain sentences.
  • The main unknowns that explain the gap between the two.
  • What would narrow the range, such as a prototype, access to an API or a decision on a feature.

If a partner gives you a precise figure for an idea that fits on one page, ask what it assumes. Either the scope is smaller than you think, or the risk has been priced in somewhere you can't see.

Do discovery before you commit to a number

Discovery is the short phase where both sides work out what is actually being built: the users, workflows, integrations, risks and what is out of scope. It costs a little time up front and removes the biggest sources of error from the estimate.

On our project delivery work, the first step is agreeing the business outcome, users, architecture, scope, dependencies, milestones and acceptance criteria. That agreed delivery baseline is what the plan and price are built on. Well-defined work can then have a fixed price paid against milestones. Work that needs discovery first can use a capped or phased structure until the baseline is agreed.

How certain the scope is also decides which contract suits you. Our post on fixed price vs time and materials covers that choice.

Break the work down until it can be estimated

Large items are where estimates hide their errors. Break features into tasks small enough for one person to finish in a few days, and estimate those. You can't estimate 'build the dashboard' without asking what is on it, so breaking work down forces the questions out early.

It also shows the work that sits between features. Check that the breakdown includes these, because they are often missing:

  • Project setup: environments, build pipelines and access to systems.
  • Sign-in, user roles and permissions.
  • Error messages, empty screens and edge cases.
  • Automated tests and realistic test data.
  • Security and performance checks before release.
  • Release work, documentation and handover.
  • Time for your own team to review, test and approve.

Use buffers honestly

A buffer is not padding. It is an estimate of the risk you already know about. Keep it as its own visible line rather than spreading it across every task, where nobody can see it being used up.

Tie each part of the buffer to a named risk, such as 'the payment provider's test environment may not match production'. When that risk passes without trouble, release its share of the buffer. If the buffer starts running down early, treat it as a signal to talk about scope, not to ask the team for weekend work.

Re-estimate at every milestone

An estimate is a forecast, so update it as you learn. At each milestone, or every few sprints on a longer project, compare what was planned with what was finished. Then forecast the remaining work again.

Measure progress by finished, tested work, not by hours used. Half the budget spent does not mean half the work is done. A team that re-estimates regularly gives you bad news while you still have options: cut scope, move a date or change the order of the work. For the numbers worth watching along the way, see software delivery metrics for business leaders.

What to ask for when you receive an estimate

  1. A range with its assumptions. What would push it to the low end, and what to the high end?
  2. A breakdown by milestone, so you can see where the effort goes and what you could drop if the budget is fixed.
  3. The exclusions. The out-of-scope list tells you as much as the in-scope one.
  4. Your own tasks and deadlines, such as content, access, test users and decisions.
  5. When it will be re-estimated, and how you will hear about changes.
  6. How changes will be priced, agreed before the first change request arrives.

Where to start

Write down the outcome you need and the one constraint you can't move, whether that is a date or a budget. Share that, and ask for a range with its assumptions rather than a single number. If the range is wide, pay for discovery first and ask for a firmer estimate at the end of it.

A scoped Coretus project can kick off in 1–2 weeks, with agreed milestones and acceptance criteria. Book a free 30-minute call, and after it we will suggest the right team and give you a rough quote range.

Sources

  1. Software Development's Cone of Uncertainty, Construx Software

About the author

Ravi Dadhaniya, COO

COO at Coretus Technologies. Runs delivery across client projects: planning, coordination across time zones, quality and compliance.

LinkedInLeadership team

FAQ

Straight
answers

Have a different question? Ask it on a 30-minute call.

Book a call

Software estimates are usually wrong because they are made before the work is understood. Requirements are still vague, integrations hide surprises, and work outside the features, such as environments, testing and release checks, gets left out. An estimate improves only as those questions are answered, which is why early figures should be given as ranges.

In practice

All case studies
  • Franchise ServicesSaaS & Software

    Franchise network: One multi-tenant platform for every location

    We built a multi-tenant platform for a growing franchise network. Head office, franchise owners and individual locations work in one product, with data, users, settings and branding kept properly separate.

    Connected workflow
    One
    Day-to-day visibility
    Live
  • HospitalitySaaS & Software

    Hotel system integrations: 85% faster API responses

    We wrapped a hotel group's ageing PMS in a modern API layer with caching and live sync, so new guest features no longer need risky changes to the core system. It runs at 99.99% availability, with 45ms API responses.

    System availability
    99.99%
    API response time
    45ms
  • HospitalitySaaS & Software

    Privilee: A membership platform that grows across venues

    We helped Privilee split its membership platform into independent services, add instant QR entry at venues and personalise venue suggestions with AI. Sync reliability reached 99.9%, and Privilee holds a #1 market ranking.

    Sync reliability
    99.9%
    Market ranking
    #1
  • Professional ServicesWeb & Mobile

    Client collaboration: Live project updates in place of email threads

    We built a live collaboration platform for a professional services business. Clients and delivery teams discuss work, share files, get updates and track project activity without long email chains.

    Connected experience
    One
    Business visibility
    Live

Keep reading

All articles

Turn ideas like these into working software

Tell us where you are. We'll suggest the right team and a rough quote range.