10 reasons why software development projects fail
Let's begin with some fun numbers (via):
- 75% of business and IT executives anticipate their software projects will fail
- Fewer than a third of all projects were successfully completed on time and on budget over the past year.
- 33% of projects fail because of a lack of involvement from senior management.
- for 2016 it was estimated that there were 21 million professional software developers around the world.
Sounds like an industry that loves to fail, so we tried to find out what are the most common reasons why.
Here is what we got:
1. Poor Communication
Effective communication is valuable in the workplace for so many reasons. It creates a healthy environment for employees, helping them to work efficiently but it also creates a strong relationship with clients and stakeholders.
The problem with internal communication is that employees don’t know how to talk openly with each other, while working on the same project. Everybody wants to finish on time, everybody wants to deal with as few problems as possible. When a problem occurs, things remain unsaid until it’s too late. Whatever their reasons might be, this jeopardises the project.
When communicating externally, management is not transparent with the client. They always say that everything is okay so that the client doesn’t become concerned. When things get out of control, the client is faced with an even bigger failure and sometimes there’s nothing they can do about it.
Poor communication within your team and with your clients is why projects fail, your employees become frustrated and your clients unhappy.
2. Resistance to change
Resistance to change is in the human nature. Being a good project manager means resisting to the resistance to change.
There are hundreds of project management tools that can help development teams work easier and more effective. The problem is that many PMs are resistant to change and not interested in tools that will help their team deliver faster and better.
Even though it’s hard to believe, in an industry that never stops changing, managers are still not eager to implement methodologies like Agile, Feature Driven Development or lean Development. These approaches advocate for continuous improvement and evolution, rapid and flexible response and they encourages change as part of a company’s success.
Embracing change and being open to new things can have a great impact on your work.
3. Not reviewing project progress on a regular basis
Initial plans and timelines must be regularly updated. Not measuring your progress against your initial plan often enough can cause big and unpleasant surprises. Guesstimating your progress instead of doing the hard work of looking at data is equally bad.
There are several ways in which you can find out the current project status (e-mails, one-to-one conversations) but the most effective one is the project status meeting because it gives you an overall image of the development progress.
4. Unclear requirements
Not going through a complete planning exercise with your client before you start building is a guarantee for failure. After you have a clear image of what the client needs you have to see how that compares to their initial expectations so that you can offer them realistic solutions that fit their budget and time frame. At the beginning of the project we are so eager to get the client’s business that we oversee a lot of details that will eventually come back to bite us.
The devil is in the details — and not understanding exactly what the client needs will lead to disappointment because the outcome will not meet his expectations.
Try to communicate more in the first phase of the project and ask as many questions as you need in order to have a clear understanding of the project.
5. Unrealistic expectations
No one wants to set unrealistic expectations, but it happens all the time. Clients will always want their project delivered yesterday, at the lowest cost and highest quality. You don’t want to disappoint, so you assure them that everything is possible, including delivering yesterday.
Voilà , you have just set unrealistic expectations.
When the project will eventually get delayed, the client will be unsatisfied and angry.
Even if you are very excited about the upcoming project, don’t commit to an end date until you understand exactly what the client needs and what you’re expected to deliver.
6. The absence of a good project manager
Every team, no matter how skilful, needs a good project manager. Without one, work becomes chaotic and team members get confused. Not having a strong management guiding the team leads eventually to a mediocre product that is delivered too late.
A good PM has to monitor, control, estimate and plan everything from beginning to end but it takes more than that to be successful.
A good PM brings your team and client together and keeps them on the same page.
7. Working without purpose
Building software for the sake of building software is not efficient.
You and your team need to understand the project’s purpose and believe it’s something worth building. That is why, the best projects are the ones you can relate to, the ones you really enjoy working on.
This should be a major factor in your new business strategy. A team who believes in the work they’re doing is a happy and efficient team.
8. Moving the goalposts too often
We mentioned earlier that embracing change is good. Well, not all changes were created equal.
Changing the project’s objectives and specifications too often without clearly communicating a reason for it can cause your team a lot of fatigue and frustration, not to mention it could possibly derail the project altogether.
A client asking you to make major changes to the core functionality of a product one week before launch is usually a recipe for disaster.
Understand the request and its implications. Talk to your client and your team and adjust the delivery date or budget, if needed.
9. Not investing enough time and money in your team
Not knowing your team’s strengths and weaknesses can make you task the wrong people with solving the wrong problems in the wrong places. Empowering your team members by allowing them to play to their strengths can make the difference in the success of the project.
More so, not listening to your employees’ needs makes them feel ignored, unimportant and frustrated. When this happens, their work ethic declines and their output gets worse.
Many managers believe that employee trainings are a waste of time and money. These types of courses and meetings help teams get along better and understand their industry better, thus helping the company deliver better.
Keep in mind that not knowing what and how your team works, not listening to your employees and not investing in trainings can cause the failure of much more than one project.
10. Over-promising just to close the deal
This one’s so important it’s worth writing it twice.
Setting unrealistic expectations is a terrible business practice.
Any good relationship is based on trust and keeping your promises. If you overpromise just to win the contract, you’ll most likely end up under-delivering. There’s nothing more damaging to your client’s trust than broken commitments. Transparency and honesty go a long way here.
Try to under-promise and over-deliver and your clients will forever be happy.
11. Not using Specstimate
Soon, you won’t have to worry about this one anymore.
While we can’t help with all the reasons why projects fail, we can greatly improve the way you define project requirements and estimate the time and budget.
Using Specstimate will not only save you a lot of time (we know how lasting Excel estimates can be) but it will also give your clients the extra boost of trust and confidence they need to sign the deal.
With Specstimate you can plan smarter, together with your clients, so that you can deliver better.