Software Development 12 min read

10 Reasons Software Projects Fail (& how to avoid them)

Why software projects fail, and how Code23 avoids it: fixed scope, proper discovery and clear ownership from day one.

Why do software projects fail? Most of the time, not because of the code. It’s because nobody agreed the scope before work started, discovery got skipped to save a few days, or nobody was clearly on the hook when priorities changed halfway through. I’ve been building software for over 20 years at Code23, and the projects that go wrong nearly always trace back to one of those three things rather than to a technical problem.

The good news is all three are fixable before you write a line of code: agree a fixed scope up front, run proper discovery so the plan is based on how the business actually works rather than a guess, and make sure one person owns the decisions when something has to give. Do that, and most of the classic causes of failure below never get the chance to happen.

Contents

  1. Late Delivery
  2. Blowing the budget
  3. Insufficient planning
  4. Bad communication
  5. Not meeting original objectives
  6. Lack of quality assurance
  7. Not setting goals and milestones
  8. An inexperienced team
  9. Lack of flexibility
  10. Not focusing on the end user

1. Late delivery

If one of the first things decided about a software project is a set-in-stone deadline you’re setting yourself up to fail. That’s because the rush to meet the launch date leaves little to no wiggle room to factor in the sufficient time needed to create the design and user functionality before a single line of code is written. To avoid this, asking each department to estimate how much time they need on the project will help create a realistic timescale that you’re more likely to deliver on time.   

2. Blowing the budget

A 2012 McKinsey and University of Oxford study of more than 5,400 IT projects reported that large projects ran 45% over budget on average. (4) This budget-blowing bombshell was no anomaly. The 1994 Standish CHAOS report classified 52.7% of surveyed projects as challenged, and reported average challenged-project cost at 189% of the original estimate. The key is to ensure your budget is based on your actual requirements and with accurate input from stakeholders involved in every aspect of the project.   

Tax forms, a calculator, a pen and an envelope spread across a desk, with a phone showing a calculator app
Budgets go wrong on paperwork like this, worked through properly or not, long before anyone writes any code.
[ how projects actually fail ] One shortcut at a time, until the budget and the deadline both go
Every shortcut looks harmless on its own. Together, they're why software projects fail.

3. Insufficient planning

As the saying goes, failing to plan is planning to fail. A 2016 Innotas survey found that 55% of IT professionals had a project fail that year because of a lack of time, staff or budget. (1) This is historical evidence rather than a current benchmark; the practical lesson is to plan resources explicitly. In other words, poor planning led to a poor outcome. That’s why taking the time to consider the full logistics of a software project will give everyone direction and help ensure that the relevant resources are to hand at the relevant times.

4. Bad communication

Poor communication in the workplace doesn’t just lead to low morale, stress, and unmet expectations. Poor communication can cause missed requirements, rework and delay, and that shows up directly in the bottom line. Effective transparent communication helps ensure:

  • Everyone understands the requirements
  • Everyone can add their input
  • Keeps everyone on the same page
ESHP operations platform AI agent screen showing a weekly pipeline review, pipeline value, deals at risk, recommended actions and an approval required before accessing the finance forecast
The operations platform we built for ESHP, after mapping how the firm actually runs deals in discovery workshops before any code was written. One system, so nobody's working from a different picture.

5. Not meeting original objectives

Unclear objectives lead straight to rework, and rework is one of the most avoidable costs in a software project. One of the simplest ways to avoid this is to spend the time to define the objectives in detail early on in the project. Having a clear understanding of the business needs for the software project gives you a blueprint for what needs to happen and who needs to be involved to successfully complete the project.

Bid for Wine homepage showing a live wine lot bidding panel, market momentum stats and a browse live lots call to action
Bid for Wine, a marketplace we're rebuilding. The design was approved as a working prototype before a single line of production code was written, so the objectives were locked in early, not discovered late.

6. Lack of quality assurance

Testing is to software what Mickey is to Minnie: partners for life. Rather than simply being something that’s done at the end of the project, testing should be factored in throughout the development lifecycle to allow for any potential bugs or glitches to be resolved in a timely and cost-effective manner. The risk with leaving testing to the end of the project is that if you’re facing a tight deadline you might not have time to test which can lead to broken features, unhappy users, and project failure.

7. Not setting goals and milestones

Ask yourself: does everyone involved with the software project know what the end goal is? A Geneca survey of about 600 business and IT executives, reported in 2017, found that 55% felt their project’s business objectives were clear. (5) Setting a clear framework of the project priorities gives everyone an understanding of what success will look like, helps stakeholders input on what’s realistic to expect, and enables the project team to set checkpoints to keep everyone on course to the common goal. 

Several open laptops around a meeting table, with two people's hands resting on the desk and one screen showing a newsletter sign-up page
Setting goals and milestones works best around a shared table, not several people assuming the same brief.

8. An inexperienced team

Assembling the perfect project team is a fine art. Too many cooks can lead to the project being hindered by clashing personalities and bureaucracy (not to mention a ballooning budget), whereas an understaffed squad may not have the required experience or skills to succeed. The goal is to cultivate a team with a winning mix of technical skills and temperament where everyone has a role to play. A key factor in enabling this happy balance is the project manager who will ensure the development stays on track by acting as a channel of communication to everyone involved.

9. Lack of flexibility

If there’s one thing you can predict about any software project it’s that unpredictable issues will arise. That’s why having a flexible project plan is imperative. As unforeseen challenges arise, being flexible gives you the freedom to take new suggestions on board or utilise new tools to help get the project back on track. Flexibility helps you innovate and being open to change helps you grow as a business, so although it’s good to have a clear end goal to aim for, don’t be afraid to make changes to your route map on the way to getting there.  

10. Not focusing on the end user

Considering the needs and requirements of the end user is an integral part of every software project but none more so than at the very beginning. That’s the stage where you should be posing the question: ‘Does this software project solve a problem the end user needs to be solved?’ If the answer is no, it’s time to go back to the drawing board. Keeping the user in mind throughout the project helps you build around observed needs rather than internal assumptions.  

How to make your software project a success

Whether you're looking to kick-start a mobile app, marketplace website, or custom software project, this is exactly the kind of work we do at Code23: agreeing the scope up front, running proper discovery, and giving your project one clear owner from day one.

Frequently asked questions

What’s the single biggest reason software projects fail?

It’s rarely the code. Most failures trace back to scope that was never properly agreed: requirements that stayed vague, changed halfway through, or were never tested against how the business actually works. Agree the scope and run proper discovery before you start, and most of the classic failure points on this page stop being a threat.

Can a software project fail even with a skilled team?

Yes. Skill doesn’t fix an unclear brief or a project with no single owner making the calls when priorities clash. We’ve seen strong developers deliver exactly what was asked for, only for it to miss what the business actually needed, because nobody owned the decisions along the way. Ownership matters as much as ability.

How do you stop a software project from quietly going off track?

Tie payments and milestones to what’s actually been delivered and approved, not to the calendar. That forces regular, honest check-ins rather than one nasty surprise near the deadline. It’s why we stage every project against deliverable approval and give it a fixed scope and a named owner from day one.

References

  1. https://www.entrepreneur.com/
  2. https://www.cio.com/
  3. https://spectrum.ieee.org/
  4. https://www.mckinsey.com/
  5. https://www.geneca.com/

Next step

Most of the ten reasons above trace back to the same three gaps: scope that was never properly agreed, discovery that got skipped to save time, and nobody clearly owning the decisions once work was underway.

That’s the part of the job we take seriously at Code23. We agree a fixed price and a fixed scope before anything is built, run a proper Discovery Sprint rather than guessing at requirements, and stage every project against milestones tied to what’s actually been delivered and approved. We’ve delivered 350+ projects since 2005. That experience is why we insist on agreed scope, discovery and delivery milestones.

Plan the next release

Build the next version around the result it needs to produce.

We’ll define the scope, design the journeys and build the systems behind them with one senior UK team.

James Ansell

Written by

James Ansell

Founder & Director

James founded Code23 in 2005 and leads its AI, product and engineering work across marketplaces, SaaS platforms and websites.

Related

More from the blog

Engineering deep-dives, product updates, and notes from the team.

View all posts