According to the Project Management Institute (PMI), 32% of project failures are attributed to inaccurate requirements gathering and management. This is especially the case with complex, long-term projects, since 40.4% of projects contain more than 500 requirements.
Beyond requirements management, and in the context of software project development, there are many reasons as to why a project can struggle and perhaps fail. Here we look at a few of the common, yet critical, areas that can result in failure:
Over-emphasis on budget and schedule control
Granted, budget and schedule are pretty high up on the list of project and requirement management needs (as we all know), but an over-focus can leave many of the other critical elements behind.
Stakeholder demands and the wider strategy can sometimes be left by the wayside when senior management focuses on the project being delivered by a certain time, and within a certain cost-range.
In the context of software projects, this can result in poorly captured requirements, inferior communication with the stakeholder team, coding errors, bugs, and flawed architecture.
Underestimating the importance of quality and version control
This is especially the case in large-scale software and systems project when an incredibly complex team and developer structure is in operation. Remote working and high numbers of team members can make things difficult to coordinate from a team management perspective.
Source control mechanisms are essential, and can assist software change management and protect the deliverables on an ongoing basis. The objective of any project should be to deliver the functionality as specified in the requirements, accounting and tracking future changes as things progress. In the world of software systems development, this will translate to improved debugging productivity, change history management, reproducibility, defect report tracing and many other development efficiencies.
Misunderstanding of requirements
In many cases, the client may not know what they want, or might not be able to articulate requirements in a succinct and comprehensible manner. Projects involving relatively inexperienced clients or a consultancy delivery team who perhaps doesn’t manage the client well, can result in disaster.
So much information is required from the client at outset, and on an ongoing basis. Since management and delivery are usually outsourced, it is unlikely that the project team knows exactly what the requirements are, and why. With so many stakeholders involved, communication breakdown can be fatal for a software project.
Team coordination and management
To coordinate and manage a team is a challenge at the best of times – to do it well, and to do it consistently, is another matter. All too often, the client’s needs and project requirements are focused on to such a point that the delivery team is overlooked.
When bad management and motivation are rife and thrown into an environment with excessive pressures and a lack of requirements visibility (leading to confusion and conflict)…team members may simply pack their bags and leave, or slack on the job. Work is duplicated since communication is down… you get the picture.
Putting more people on the project isn’t going to necessarily fix things or speed them up either (this seems to be quite a common misconception). Communication is always, always key. It is essential that software and systems projects are ALWAYS viewed with a collaborative mindset.
Failure to address non-functional requirements
If non-functional requirements such as performance and maintainability are not planned for (usually as a result of poor or insufficient requirements gathering at the outset), they cannot be implemented when designing the architecture. And it can be extremely challenging, time-consuming and costly to account for them at a later date.
The knock-on impact this has can go way beyond the scope of architecture. Correct testing and quality control processes will not be in place, budgets and delivery schedules will escalate, use-cases will be inaccurate, and stakeholder communication will not be the best it could, and should, be.
It’s estimated that software project failures rack up overspend (and wastage as a result of project cancellation) in the billions of dollars every year. Be sure to use the right planning and management tools on your projects to get budget, schedule and functionality deliverables spot on.