IT Project Management | By Duncan Haughey | Read time minutes
Let's start with some worrying statistics. Only 29% of software projects were successful, 52% were challenged (cost overruns, budget overruns or content deficiencies), and 19% failed, according to the Standish Group report in 2015. While those findings first emerged a few years ago, the results are no less true today.
Furthermore, the percentage of projects considered valuable by the customer is 59%, and of projects thought satisfactory by the customer 56%.
Unsatisfactory project results have become an IT industry norm where the customer was not satisfied with the outcome. So what can we do about it?
A good starting point is by addressing some of the critical reasons software projects fail.
Reason 1: Not Enough Time
Often, a deadline gets decided before the project starts and is non-negotiable. This deadline results in a headlong rush to get started on the assumption, the sooner you begin coding, the sooner you'll finish the project.
A rush to start coding is almost always the wrong approach. It is essential to spend the time to create a good design. Not having a good design leads to continuing changes throughout the development phase. When this happens, time and budget get consumed at a rapid rate.
- Don't be tempted to jump straight in and begin coding.
- Assign sufficient time to create a good design, and the rest of the project will run much better.
This approach will improve your reputation when you deliver something that fulfils your customers' expectations and works the first time correctly.
Reason 2: Insufficient Budget
Many projects have the lowest price, most successful supplier policy, or an unrealistically low budget, not based on the project requirements. When this happens, everything slows down. Resources are slow to arrive or never arrive; corners get cut, and quality suffers.
- Be realistic about the budget and base it on the complete requirements.
- Avoid basing the selection of a supplier solely on the lowest price.
- Go to a supplier or team with a proven track record of delivering within budget.
- Use a Supplier Selection Checklist such as the one below to find the right supplier for your project.
Reason 3: Poor Communication
There's an adage, "never assume anything", which is especially the case for software projects. Good communication with your customer, users, and the development team is critical to project success. Ask yourself three questions:
- Does everyone in the team understand you?
- Do they know what you expect of them, or have you assumed they know?
- Do they communicate well with one another, with users and with other departments?
- Find any communication breakdowns now. These can lead to confusion and complications later in the project.
- Never assume that everyone understands everything that is happening on the project.
- Take time to create an environment where communication is accessible, open and frequent.
Reason 4: Never Reviewing Project Progress
As a project progresses, things change, significantly impacting the project. It is important to keep examining the project progress to overcome challenges early and warn stakeholders of possible delays and outcomes changes.
- Always set milestones to review progress with your team and stakeholders during the project. Adjust as necessary to stay on course.
- Stay close to your team to understand what is happening and any challenges they face.
Reason 5: Inadequate Testing
When the pressure to deliver is on, testing often suffers. The testing gets left until the end of the development cycle with minimal effort expended on testing. Usually, the result is a product filled with bugs and an unhappy customer.
- Carry out testing throughout the development lifecycle, testing each module or component as it's developed.
- Only leave the integration testing until the end of the development lifecycle, which results in less stress and a better product.
Reason 6: Testing in the Production Environment
It's surprising how many organisations test products in their production environment. Using the production environment is a high-risk strategy that can lead to security breaches and accidental release without testing, disrupting the production systems.
- Develop a process for quality assurance and release of new software products.
- Provide an environment separated from the production environment for testing and bug fixing.
Reason 7: Lack of Quality Assurance
Often in our haste to deliver the software, quality assurance suffers. Documentation is incomplete for code changes, the design contains flaws, and implementations can be unfinished. These all lead to rework, lost time and eventually unhappy customers.
- Take time to quality check and document software before release.
- Review Michael L Young article 6 Success Factors for Managing Project Quality
Reason 8: Not Conforming to Industry Standards
Conforming to industry standards in your software projects can prove beneficial by ensuring good accessibility, portability, usability, robustness, and reducing current and future problems. Bodies such as the World Wide Web Consortium (W3C) and International Organisation for Standardisation (ISO) have developed open standards that are hard to challenge.
- Take time to introduce a standards approach for your projects.
- Find what works well and keep doing it.
- Change anything that isn't working.
- Review and update your standards regularly.
Next time you project manage a software development project, review this list and remind yourself what is needed to ensure success. You'll be surprised; it makes a difference.
Recommended read: The Curious Case of the CHAOS Report 2009 by Jorge Dominguez.