10 reasons why so many software projects fail
-BBC Digital Media Initiative (DMI) failed because of governance failure and delayed delivery. It was a project everyone had set their eyes on because it was meant to digitalise BBC’s production.
-A number of reasons caused the failure of FBI’s Virtual Case File (VCF) but unrealistic expectations was one of the main reasons. The project wasted about $104.5 million tax payer money.
How can well-planned software projects fail? Were they really well planned? Or so they thought. Sadly enough, many projects fail; in fact it has become so common an incident that people hardly talk about it, discuss it, save for the people who had had to go through the failure. In 2013, Innotas, a project management company revealed that about 50% of the businesses they surveyed had project management failures. Now 4 years, later the story is not much different. What causes software projects to fail? We have explored some of the reasons based on our observations, what do you think?
1. Unaligning business goals with project outcomes
You can say that priorities are different for different companies. For some company, the focus is on attaining business goals, while for others it is to deliver the project on time and on budget. This is the road trip where they take the wrong path and get lost. If both business goals and project outcomes are aligned with one another, chances are that the software will not fail. But doing this is not an easy task at all.
2. Not able to understand what to prioritize
Failing to prioritize which projects are important. The head of the project management sits down with the stakeholders and other authoritative heads of the company to decide on the priorities of the projects. They will then allocate the resources and the personnel, and consider the budget and time. Sometimes, things go wrong while aligning the business goals with project outcomes, and this could also be because they failed to get their priorities correct.
3. Vague requirements
One of the first steps in any software development cycle is to understand client requirements. Unless the requirements are clearly charted and okayed by the client, you may both be not at the
same page at the end of the development cycle.
4. Time constraints
Time constraints often prevent developers from getting project clarity from the client, and this could lead to a lot of rework and more resource allocation, while reflecting negative publicity for the company. So just before you actually sit down to develop a project, it is important to make a requirement analysis and make sure everyone, including the client is clear on what the end product will look like.
5. Poor schedule estimation
Developers are human beings and there is a limit to how many hours they can work in a day. Schedule the time in a logical manner so the project will be completed as expected and the developer will be still alive to take on another project.
6. Not ready to push the deadline
The project managers and stakeholders must be considerate when they put the developer team to work. Yes, an extra day of work increases the expenses, but it will be worth it in the long run.
7. Giving odd unrealistic time scale will only delay the project
Contrary to what stakeholders and project managers think, setting unrealistic time scales will only bring heavy losses to the company. Always plan the project in such a way that the expectations are reasonable, depending on the amount of work.
8. Communication gap
Poor communication is the reason for many failures in life. In fact it is so important for everyone associated with a project that undergoing professional courses on interpersonal skills will definitely be a plus point. Communication and messages must be shared properly, because conflicting views and opinions could kill a project even before it is ready to fly. The project manager is responsible for standing as a mediator between everyone associated with the team. Make sure the messages reach all, especially when it is something concerning the project outcome.
9. Not getting the right people for the job
Inappropriate staffing is another reason for project failure. You have a team of good developers. But do you think they are the “one size fits all” kind of team? Can they handle any kind of project that’s allotted to them? You may need to allocate people depending on their skills. The right set of people, even if they are expensive will prove to be beneficial. After all, the quality of the project must not suffer. Inefficient or mediocre developers will delay the project while a 10x developer will keep the reins of the project in his hand.
10. Poor testing
The software tests fail. After everything is done, you realise there is a coding problem that is yet to be fixed. If you don’t have milestones governing the code development phase, the project could fail. You can initiate automation testing whereby the tester would write scripts and use another software to test the different functionalities of the application/software. The different types of software testing are
- Unit Testing
- Integration Testing
- Functional Testing
- System Testing
- Stress Testing
- Performance Testing
- Usability Testing
- Acceptance Testing
- Regression Testing
- Beta Testing
It is time consuming, but definitely worth the effort and time. Through testing you can understand the quality of the project; it is a kind of verification and validation process.
It is important to understand the project first and then allocate resources and manpower. Give them sufficient time to work on the project, and resources as and when they need it. Follow the above mentioned tips and you are likely to hit pay dirt.
A Last word: Make sure the system requirements are defined and laid down appropriately. You cannot afford to have hiccups with the system once the software is ready to roll.
Some more information’s….
Flickr.com/ Patrizio Cuscito