Download Our AI Solutions Brochure


Subscribe

Join our rapidly growing community and receive free advice on outsourcing best practices to save cost and reduce risk.


Share Post

What Are The Warning Signs Of A Failing Software Project?

A failing software project shows up in evidence, not atmosphere: no access to the source control repository, no test environment you can open yourself, and a completion figure that has not moved in weeks. Two or three of those together justify an independent look at the code, whatever the status report says.
Image15 July 2026
ImageRichard Hill
21 mins

If you are reading this, you probably already know. Something about the last three status calls did not add up.

Software projects rarely collapse in one moment. They drift, one reassuring update at a time, until the gap between what has been reported and what exists is too big to close.

The scale of the problem is not in doubt. DSIT’s State of Digital Government review found that only 9% of central government digital and data programmes were rated Green, and that they were 60% more likely to be rated Red than the wider project portfolio.

The signs below are deliberately physical. Each is something you can check this week without a technical background, and none of them can be talked around on a call.

Why Do Software Projects Fail Quietly Instead of All at Once?

Projects fail quietly because the reporting and the working software drift apart. Status is produced by people, builds are produced by machines, and only one of those two has a reason to be optimistic.

How Reporting and Reality Drift Apart

It starts with a sprint that slips and a summary that rounds up rather than down. By month four the summary is the only version of the project anyone has looked at.

Nobody lies. Each individual update is defensible, and the accumulated picture is fiction.

The antidote is boring and effective: measure delivery rather than effort. The GOV.UK Service Standard is built around working software in front of users, which is exactly the test a drifting project cannot pass.

Scale Does Not Protect You

Big organisations with real governance get this wrong too. The National Audit Office reported in November 2025 that NS&I’s business transformation programme had risen from an estimated £1.7bn in 2020 to around £3bn, with completion pushed back four years to March 2028.

The pattern repeats across the portfolio. Of 189 projects in the NISTA Major Projects Annual Report 2025-26, 34 were rated Red at 31 March 2026, roughly one in five.

The historical cost anchor still holds as well. A McKinsey and University of Oxford study of more than 5,400 large IT projects found average overruns of 45% on budget while delivering 56% less value than forecast.

Related: What Are the Signs That a Software Project Is in Trouble?

Which Red Flags Mean a Software Project Is Genuinely in Trouble?

The signs worth acting on all have physical evidence behind them: repository access, a running build, a reachable test environment, a bug trend, and written acceptance criteria. Everything else is atmosphere.

Ten signs follow, in the order they usually appear. Score yourself as you read, because the next section turns the count into a decision.

1. You Still Do Not Have Access to the Source Control Repository

If you are paying for code you cannot see, you do not know it exists.

Every professional team uses Git or something very like it, and giving a client read access takes about two minutes. A supplier who delays it for weeks is usually protecting the commit history, not the intellectual property.

That history shows who has worked on your project and whether last month’s invoices match last month’s commits.

2. The Demo Only Ever Shows the Same Screen

Ten sprints in, if you are still being shown the dashboard, there is probably only a dashboard.

Demos are curated by definition. A healthy one moves around the product and gets driven by whoever asks the awkward question.

So ask to click. If it is suddenly easier for them to share their screen, the rest of the product is not in a state you are allowed to see.

3. It Has Been “90% Done” for Three Months

Percentage complete is an opinion. Once it stalls above 85%, it usually means the remaining work was never sized.

The last tenth is integration, error handling, edge cases, performance and deployment. It is the hardest part, which is why it swallows schedules whole.

Ask a different question. What is left, itemised, with an owner and a date on each line?

4. There Is No Test Environment You Can Reach Yourself

If the only way to see the software is a scheduled call, the software may only work on one developer’s laptop.

A staging environment with a URL and a login is standard and costs very little. It is the difference between reported progress and progress you can check yourself.

  • No staging URL after the first month of build.
  • The environment is “temporarily down” on the day of every review.
  • Test data that never changes between demos.

5. Velocity Gets Reported, but a Working Build Never Appears

Story points are an internal planning tool. They can climb steadily while nothing ships.

Watch for the burndown that looks healthy every fortnight while the release date moves every quarter. Points measure effort, and deployments measure delivery.

The number worth tracking is how often something reaches an environment you can open. If that is zero, velocity is decoration.

6. The Team Keeps Changing and Nobody Tells You

Silent turnover is one of the most reliable predictors of a date that is about to slip again.

New names on calls, no handover mentioned, questions you answered in month one asked again in month five. Each replacement costs weeks of ramp-up at full rate.

Usually it means your project has become the one people get moved off, not onto.

7. Bugs Open Faster Than They Close

A defect backlog that grows while features keep shipping means quality has been traded for the appearance of progress.

Ask for the open bug count at the end of each of the last six sprints. The trend matters far more than the number, and any tracker produces it in a minute.

A SonarQube scan shows the same thing from the code side within hours: duplication, untested paths and a maintainability rating.

8. Nobody Can Show You Written Acceptance Criteria

If “done” is not defined in writing, every disagreement becomes a negotiation, and you will lose most of them.

Acceptance criteria are the plain sentences saying what a feature must do to count as finished. Without them, change requests appear for work you assumed was in scope, which is usually a requirements capture failure rather than a coding one.

For the vocabulary, ISO/IEC 25010:2023 sets out nine product quality characteristics including functional suitability, performance efficiency, reliability, security and maintainability.

9. There Is No Handover Documentation and Nobody Seems Worried

A team that cannot hand over is a team you cannot leave. That is a commercial position, not an engineering one.

Ask what a new developer would need on day one: a README, environment setup steps, architecture notes, and credentials held somewhere other than one person’s machine.

If handover documentation would take a month to produce, that month already sits inside your project, unbudgeted. Suppliers who follow documented development practices produce it as they go rather than as an exit tax.

10. Every Problem Is Explained as Technical Debt, With No Plan Attached

Technical debt is a real constraint. Used as a permanent excuse, it makes slow delivery sound principled.

McKinsey’s research put tech debt at 20% to 40% of the value of an entire technology estate before depreciation, so a large number on its own is normal.

Debt with no register, no owner and no repayment plan is not normal. Ask which three items hurt most and what clearing them would take, which is where a legacy modernisation conversation properly starts.

How Serious Is Each Warning Sign?

Severity reflects what the sign implies rather than how annoying it is. Critical means the deliverable itself may not exist in the form you have been told.

Warning signSeverityWhat it usually means underneath
No repository accessCriticalThe work may not exist, or ownership is being held over you
Same screen in every demoHighOne thin slice built, very little behind it
“90% done” for monthsHighThe remaining work has never been estimated
No reachable test environmentCriticalNothing deployable exists yet
Velocity reported, no buildHighEffort is measured, delivery is not
Unannounced team changesMediumYour project has been quietly deprioritised
Bug count rising each sprintHighQuality traded for visible features
No written acceptance criteriaMediumScope disputes will land on your side
No handover documentationCriticalLock-in, deliberate or accidental
Technical debt as a blanket excuseMediumExplanations in place of an engineering plan

How Do You Score Your Own Project in Ten Minutes?

Score 3 for each Critical sign present, 2 for each High and 1 for each Medium. A total of 6 or more means commission an independent audit now, and any single Critical sign on its own justifies one.

No competitor gives you a number, and a number is what gets a board to act. Fill this in before your next status call.

ScoreBandWhat it meansWhat to do this month
0 – 2HealthyNormal delivery friction on a live projectNothing beyond keeping access and the bug trend in view
3 – 5WatchDrift has started and reporting is ahead of realityPut the four evidence requests in writing, set a dated test
6 – 9InterveneThe gap between reported and actual is now materialCommission an independent code audit, review the contract
10 – 14CriticalYou cannot verify that a working system existsAudit immediately, stop milestone payments pending evidence
15+Exit planningAccess, deployability and documentation are all absentSecure IP and assets, plan a takeover or a rebuild

How to Read Your Score

The bands are deliberately blunt. A project scoring 4 is recoverable by conversation, and a project scoring 12 is recoverable only by evidence.

Weight the Critical signs above the total. Two Criticals and nothing else is worse than five Mediums, because access and deployability are the things that cannot be faked.

What Changes at Each Band

In the Watch band you are gathering evidence while continuing to pay. In the Intervene band you are gathering evidence while deciding whether to keep paying.

By the Critical band the question has changed from whether the project is late to whether it exists, which is the point at which a code rescue assessment stops being premature.

What Can You Check Without a Technical Background?

Almost all of it. Whether you can open the software yourself, whether the demo changes, whether names on the call change, and whether the invoice trend matches the progress trend are all observable without reading a line of code.

Most articles on this subject assume you know what a sprint burndown is. You do not need to.

Things You Can Observe on a Call

  • Who talks. If the account manager answers technical questions and the engineer stays silent, the engineer may be new.
  • What is not shown. Ask to see a part of the product that was not on the agenda.
  • How specific the excuses are. “Integration issues” three weeks running is a pattern, not a reason.
  • Whether anyone commits to a date in writing afterwards.

Things You Can Check on an Invoice

Money leaves a trail that status reports do not. Line the last six invoices up against the last six status reports and look for divergence.

What you compareHealthy patternWarning pattern
Invoiced days vs commits in the repositoryBroadly proportional month to monthSteady billing, thinning commit history
Named people billed vs people on callsSame names, stable over monthsRoles billed generically, names keep changing
Spend to date vs features acceptedBoth curves rise togetherSpend rises, acceptance flatlines
Change requests raisedOccasional, tied to real scope changesFrequent, covering work you assumed was included
Milestone payments vs milestone evidencePayment follows demonstrated acceptancePayment follows elapsed time only

The last row is the one worth checking first. If your contract ties payment to elapsed time rather than acceptance, you have no bargaining position, and what should be in a software development contract explains what to change at renewal.

Discuss Your Project Today

Could the Problem Be on Your Side?

Sometimes, and it is worth ten minutes of honesty before you escalate. Absent decision makers, unowned requirements and late sign-off cause the same symptoms as a weak supplier, and they are cheaper to fix.

No competitor asks this question, because most of them are selling rescue services. It changes the answer often enough to be worth asking.

The Sponsor-Side Causes That Repeat

  • No single decision maker, so every question waits for a meeting that keeps moving.
  • Requirements that were never written down, then treated as obvious when they were missed.
  • Sign-off taking three weeks while the team is billing full time.
  • Scope added verbally and never priced, then resented when the date moves.
  • Nobody available to answer questions from a distributed team in a different timezone.

How to Tell the Difference

Look at where the waiting happens. If the supplier’s questions sit unanswered in your inbox for a week at a time, the bottleneck has your name on it.

If the answers go back within a day and the work still does not appear, it does not. Either way, a written project delivery plan makes the bottleneck visible instead of arguable.

Related: The Importance of Having an Actionable Software Project Plan

What Should You Do Once You Have Spotted the Warning Signs?

Move from feeling to evidence on a four-week clock: request access in writing, commission an independent code audit, check your contract and escrow position, then set a dated delivery test before you make any contractual decision.

Sequence matters. Acting on week four’s information in week one is how buyers end up in a dispute they cannot evidence.

WhenWhat you doWhat a healthy supplier doesWhat tells you to escalate
Week 1Email four requests: repo read access, staging URL and login, open bug list, itemised remaining scope with datesSends three within a day and explains the fourthSilence, or a meeting offered instead of the artefacts
Week 2Commission an independent code auditCooperates and offers a walkthroughRefuses access, or delays until after the next invoice
Week 3Review contract, IP position, payment triggers and escrowConfirms IP assigns on paymentIP assigns on completion, undefined, or held back
Week 4Set a two-week evidence test with three named outcomesAgrees in writing and hits two of threeRenegotiates the test rather than attempting it
Week 6Decide: continue, renegotiate, take over, or exitYou are choosing between good optionsYou are choosing how to limit the damage

Week One: Put the Requests in Writing

Email beats a call. Ask for read access to the repository, a staging URL and login, the open bug list, and the itemised remaining scope, with a date against each.

The response is the diagnostic. A team that is behind but honest sends most of it within a day and tells you why the rest is late.

Week Two: Commission an Independent Code Audit

A code audit answers the question you cannot answer yourself: is there a real system in there. It covers architecture, test coverage, security exposure and how safely a new team could change things.

A narrow code-only audit of a mid-sized codebase typically takes one to three weeks. A fuller technical due diligence engagement costs more because it covers team, process, licensing and compliance as well as the code.

Against a build that has consumed six figures, either is cheap certainty, and technical due diligence costs sets out what each scope actually buys.

Ask for the security exposure to be in scope rather than assumed. A software security assessment often finds the issues that would have surfaced later as an incident.

If the system holds personal or payment data, get that reviewed by people who do it for a living. Application security work is a different discipline from general code review, and a failing project is usually weakest exactly there.

Week Three: Check Your Contract and Your Escrow Position

Find out who owns the intellectual property, what happens to it on termination, and whether payment is tied to acceptance or elapsed time. The Intellectual Property Office guidance is a useful primer if the contract language is unfamiliar.

If you hold a software escrow agreement, this is when it earns its fee. Providers publish their release conditions, typically insolvency, sustained breach of maintenance obligations or discontinuation of the service.

Verified escrow, where the deposit is tested to confirm it actually builds, is worth the extra cost. An unverified deposit can turn out to be a zip file nobody can compile.

Week Four: Set a Dated Evidence Test

Pick three things that must be demonstrably working in fourteen days, define what working means in writing, and say the decision on continuing depends on it.

  • One feature deployed to staging that you can use unaided.
  • The open bug count flat or falling across the fortnight.
  • A written remaining-scope list with dates and owners against each line.

Talk to us about a code rescue assessment

What Are Your Options Besides Hiring a Rescue Firm?

Five: renegotiate with the current supplier, bring in independent oversight, insource the work, hand it to a takeover team, or stop and salvage the assets. Rescue firms rarely mention the first three, and two of them are cheaper.

Most articles on this topic are written by companies selling option four. Here is the honest comparison.

OptionTypical costTime to effectWhen it fits
Renegotiate scope and termsNil to low2 to 4 weeksThe team is competent, the plan was wrong
Independent oversight or fractional CTO£3k to £12k a month1 to 2 weeksDelivery is real but unmanaged, and you cannot judge it
Insource with a hire or contractor£40k to £90k a year6 to 12 weeksThe work continues indefinitely and you want the knowledge
Takeover by a new supplierAudit plus rebuild of the weak parts3 to 8 weeks to productiveThe code is real, the relationship is not
Stop and salvageExit costs plus asset recovery2 to 6 weeksNo repository, no environments, no documentation

Renegotiate Before You Replace

Changing supplier costs three to eight weeks of ramp-up before anything ships. If the team can actually build and the problem is management, buying management is far cheaper than buying a new team.

That is the case for a fractional CTO, who can hold the supplier to evidence weekly without you having to learn what a pull request is.

When Walking Away Is the Cheapest Option

Sunk cost is not a reason to continue, because that money is gone under every option. The only question is which route reaches working software fastest from where you stand today.

If an audit shows no tests, no environments and no original developers, a rebuild against a clear specification usually beats an archaeology project. A structured software project takeover should tell you which of those two you are looking at before anyone quotes.

Related: How to Save a Failing Software Project

How Do You Work Out Whether to Rescue or Rebuild?

Compare three numbers: cost to complete with the current team, cost to take over and finish, and cost to rebuild the same scope from scratch. Spend to date belongs in none of them.

Most projects are recoverable when the code is real and the failure is a management failure. Stop when the codebase would take longer to understand and repair than to rebuild.

The Three Numbers That Decide It

SignalPoints to rescuePoints to rebuild
RepositoryExists with a genuine multi-month commit historyAbsent, or the history starts last week
PeopleSomeone who wrote the core code is still availableEvery original developer has gone, nothing documented
ArchitectureOrdinary and adequate, the process was the problemCannot support requirements you already have
Tests and pipelineAutomated tests exist, even partial onesNo tests, no environments, no build pipeline
Supplier behaviourWill agree to an independent audit and handoverRefuses access or blocks handover
Cost comparisonTakeover cost well under a rebuildTakeover estimate within 20% of a rebuild

If the takeover estimate lands within about 20% of a clean rebuild, rebuild. The rebuild comes with tests, documentation and a team who understand it.

Partial Rescue Is Usually the Answer

It is rarely all or nothing. A common outcome is that the data model and back end are sound while the front end is unsalvageable.

A takeover team should tell you which parts survive before quoting. Anyone who offers to rescue your project without reading the code first is a new supplier with the old supplier’s habits, which is also most of what choosing a good software development company comes down to.

Recovered projects do exist and they look ordinary afterwards. Our work with Composite Legal Expenses is the sort of outcome a stalled build reaches once someone owns the delivery.

What a Clean Exit Looks Like

Even when you are stopping, exit properly. Get the repository transferred to an account you control, take copies of environments and credentials, and collect whatever documentation exists before the final invoice is settled.

Your bargaining position disappears the moment the last payment clears. The same discipline is what keeps the next engagement out of trouble, whether you go in-house or outsource the build.

Then write down what you would do differently. Most repeat failures trace back to the same two causes, and mitigating outsourcing risk covers both.

Related: How to Save a Failing Software Project

Related: What Are the Signs That a Software Project Is in Trouble?

Related: Software Technical Due Diligence Costs Explained

Related: What Should Be in a Software Development Contract?

Related: What Is Legacy Software Modernisation?

Related: What Are the Stages of the Software Development Life Cycle?

Frequently Asked Questions

What is the earliest sign of a software project going wrong?

Loss of access, usually. Before any date slips, you notice you can no longer see the repository, the environment or the backlog without asking, and reporting starts replacing observation.

Avatar photo
Richard Hill

Richard Hill is a technology leader with extensive experience in designing, building, and delivering technology projects. He has been instrumental in driving the adoption of new technologies to improve operational efficiency and customer experiences. His expertise lies in leveraging emerging technologies to create innovative solutions that are tailored to customer needs.

Articles: 9
Software Development UK
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.