Between 30% and 70% of software projects fail. That’s a massive spread but even on the lower end it’s still an incredibly high failure rate. What’s even more disturbing is while software tools, platforms and resources have improved and become more available projects still seem to fail at an alarmingly high rate. You may think that your project eventually got completed, it wasn’t a failure, but I’ll tell you if it’s more than 3 months late, it was a failure. Here are three simple reasons why many projects suffer.
1. Lack of planning
Would you attempt to build a house without a plan? So why do so many businesses attempt to build software without a clearly defined requirements document? For the agile and lean purists, requirements are always required, failing fast doesn’t mean you just attempt to build a product or feature without first answering the following questions:
- What does this thing do?
- What are the testable outcomes?
- How much effort is required?
- Is there already something out there that is fit for purpose?
Identifying why you’re doing something, the solution to the problem and how you’re going to implement the solution helps a lot with ensuring that projects stay on track. Limiting scope is also very important with ensuring success in software projects.
2. Not saying no
I’ve learnt that “no” is probably the most important word in software development. Saying no to a feature or request is invaluable in ensuring the success of a project. The frustration with agreeing to feature requests and scope changes before the agreed project is completed becomes amplified as time goes on. Clients need to understand that changing requirements mid-project is a bad idea. Would you take your cake out of the oven to add ingredients once it’s started baking?
3. Lack of communication
It is often true that business units and software teams have serious issues with communication. They may exchange emails, project updates and various updates but neither party truly understands what the other party is saying! It is of utmost importance that a technical project manager (TPM) is involved to ensure that updates are translated into language that is understandable by all stakeholders.
One addition to this is the importance of using a set of project management tools and protocols to which everyone has access and everyone understands. This allows everyone to review and update the project following the guidelines set out by the TPM.