Episode 27: 10 Reasons Why Software Projects Fail

For this episode, we broke away from the typical Thoughtful Software Podcast format and got a little more technical.

Why do so many software projects fail?

In no particular order, here are our top reasons why software projects fail. It's not an exhaustive list by any means, just our opinion of why software products don’t ship.  

There are alarming statistics around why software projects fail. Executives admit that projects are doomed from the start. This translates into 75 billion dollars in abandoned software projects.When projects that could transform the way we live, how we interact, and how we experience everyday life, aren't shipped because of failed software, that's a problem.  

10. Absence of good Project Manager (PM)

  • If there's no Project Manager, things slip through the cracks. Features don't get announced, things are built the wrong way, and the project gets off track.  
  • The value of a good PM is invaluable. A good PM is the glue between engineering, sales, marketing, and clients. They're able to navigate unexpected issues that arise. We think we're going to see a resurgence of good PMs, who can be the cohesive movement that moves projects forward.  
  • Good PMs must have deep technical expertise to be able to be the glue, coming from design, QAtesters, etc. PMs need experience communicating between the different departments.
  • Technical people must learn how to talk and work with other people. The smarter someone is, they tend to assume that they can take on all roles when, it's more difficult to take on a role of a good PM. The industry can do better at teaching engineers the value of the business side.  

9. Setting Unrealistic Expectations

  • Everyone wants to ship and be valuable to your tribe. That means we say yes to too many things. It's important to look at not just technical time but communication time and how long it will take to roll out. That helps align expectations better.  
  • Unrealistic expectations come from missed scope and missed activities.  
  • It's up to developers and clients to work together to know what's realistic. Unfortunately, there's a lot of misinformation in the field about how long projects will take.  
  • One of the most troubling things about the software industry is that it's become a la carte. Fundamentally, software can't be built like that. There are too many things to be built off the shelf.  
  • When people are shopping for software, you should be looking at competitive advantages.  
  • Giving a time range is a better way than setting a hard date.  

 8. Fixed SoW or Scope Creep

  • We should have the opportunity to go with the flow and make changes as needed. Sticking strictly to an SoW, is a fool's game. We always add flexibility clauses. Change orders are time intensive, costly, and prohibited to having good relationships.  
  • Flexibility is how projects succeed. Projects either succeed by extreme rigidity or flexibility. Anything in the middle where you're flexible on some things and rigid on others, is destined for unmet expectations.

7. Poor Communication - Not speaking the same language

  • It all comes down to how effective your communication is with your client or PM. Communication can be improved using Domain Specific language. When you don't have a shared vocabulary, it allows you to communicate effectively. We're able to speak using our lingo without confusing each other
  • Additionally, people have to trust what each other is saying. You build rapport over time by consistency. The more we communicate the better we are at it. More frequent and consistent communication we have, helps people understand each other and help notice breakdowns in communication. It's more important to be honest than silent.

6. Lack of Talented Engineers

  • The worse your engineers are and the longer your timeline is, the more likely they are to build something unmaintainable. PMs are, again, so important because you have to manage your good engineers well. Even with good engineers, there's no guarantee that you're going to build anything good. You need good engineers plus good leadership from a project management perspective.  
  • Talented engineers know how to think through problems, how to leverage off the shelf technology, how to automate, etc. Having good engineers will 10x your project.  
  • You don't build modern solutions with an old skill sets. Internal Teams aren't always looking to try new things and innovate.
  • Top talent is hard to find and it's critical in making your vision succeed.  

5. Misaligned Goals

  • One side wants to bill as many hours as possible, the other side less. When your goals are aligned with your customers' expectations, you change the metrics that you pay attention to.  
  • As soon as the money figures itself out, don't measure it anymore. Focus on the things that really matter.  
  • A weekly standup meeting is more effective than tracking hours.  

4. Team Consistency

  • A lot of companies look at freelancers to leverage complex projects. It's difficult to keep freelancers or even your internal teams together for a long time. The consistency piece plagues everyone. It's hard to retain people in the tech industry.  
  • One approach is to use freelancers and supplement those with full time people. The Full-time people become your anchors with vested interest in your company, and stay around longer.
  • Another approach is a cultural documentation. Being very communicative of the things that you're doing. You want to automate things as much as you can so new people don't have to learn as much.  
  • Finally, get rid of toxic people on your team. You need people that want to work with clients and be on the projects.  

3. Slow Starts / Long Legal

  • For any project, one of the key factors isn't velocity, but momentum. When things run out of momentum, velocity drops off. It's hard to succeed when there's no momentum  
  • People aren't interested when things take too long to get off the ground.  
  • There are things you can do upfront like Kick-offs and workbooks to keep people engaged. That's critical for project success.  

2. No Discovery

  • You've got the requirements, but there are so many unknowns. It's so easy to detail some of the requirements. Clients tend to think that discovery will be expensive. If they take more time up front to understand the project, they'll limit re-work and have a deeper understanding of the project. It's hard to look at the un-knowns and think critically across time and put together a cohesive project plan.  
  • Andrew's rule of thumb: If you can't communicate the vision to someone non-tech, then you shouldn't build it.  
  • The time spent up front is great. No good plan survives the battlefield. With a plan, you always have something to fall back on. With a vision, you have something to use to keep the momentum going.  
  • Scoping sessions could take 1-3 weeks and will be so helpful in the long run. The people that can make a plan and stick to it, they win.  

1. Earning your Complexity

  • In the beginning of projects, you don’t know for how many users your project will serve. You It's about building the flexibility that will serve 10,000 users but build for 1 user. When you build in unnecessary complexity, it takes more to support. You can't run a lean shop on complex architecture. It's building what you need today with flexibility to get to where you want to be in the future.  
  • You're going to get complexity with success, it's how you handle the complexity, move forward, and how you lead your complexity while moving forward.  
  • The best technology leaders understand that technical debt is a business problem. Knowing how to communicate and tie technical debt back to business outcomes, that makes you a successful technology leader. It's inevitable to every project and it comes down to knowing who is going to manage it best.  
  • Read more about earning your complexity from the Skiplist Insights.

It's important for people to know about these things and do something about them. We want to transform the world through thoughtful software. We want projects to succeed whether Skiplist is a part of them or not. We want to help others succeed! If you're having project troubles, reach out to us and let us help.

Thanks for reading through! We want to share our best Thoughtful Software Practices with you in a free E-book. Grab your copy by subscribing to the Thoughtful Software newsletter.

Build Thoughtful Software
Fahad Shoukat
Written by

Fahad Shoukat

Fahad has a B.S. in Electrical Engineering and an MBA. He brings over 15+ years in Business Development, Strategy, Sales, Product, and Marketing in various industries such as software development and Internet of Things (IoT). His experiences have led him on an unwavering pursuit to meet thoughtful people and build thoughtful software.