What's next?

Why not visit our main project management site for hundreds of articles, templates and step-by-step guides.

* *

Follow Project Smart on Twitter!

Bookmark and Share

Why Software Projects Fail and How to Make Them Succeed

By Duncan Haughey, PMP
Keys with the word success on the fob

Let's start with a worrying statistic. According to the Standish Group Chaos Report 2009, only 32% of software projects are successful, 44% challenged (that is cost overruns, budget overruns or content deficiencies) and 24% failed, the highest failure rate in a decade. This represents an improvement from the first Chaos Report in 1994, when 16% of projects were successful, 53% challenged and 31% failed, but still leaves plenty of room for improvement.

Project failure in the IT industry is still far too high. So what can we do about it?

A good starting point is by addressing some of the common reasons software projects fail.

Not Enough Time

Often the deadline date is decided prior to the project starting and is non-negotiable. This results in a headlong rush to get started on the assumption that the sooner you begin coding the sooner you'll be finished.

This is almost always the wrong approach. It is vital to spend time to create a good design. Not having a good design leads to ongoing changes throughout the development phase. When this happens time and budget are consumed at an increased rate.

Solution: Make time to create a good design. Resist the temptation to jump straight in and begin coding. Allocate time to this, and the rest of the project will run much better. It will enhance your reputation when you deliver something that fulfils the customers' expectations and works properly first time.

Insufficient Budget

Many projects have a 'lowest price most successful candidate' policy, or an unrealistically low budget, not based on the true requirements. When this happens everything tends to slow down. Resources are slow to arrive or never arrive, corners are cut and quality suffers.

Solution: Be realistic about the budget and make sure it is based on the actual requirements. Avoid basing the selection of a supplier solely on lowest price. Go with a supplier or team that has a proven track record of delivery within budget.

Poor Communication

There's an old saying, 'never assume anything', and this is especially true for software projects. Good communication is vital for project success with the customer, users and especially the development team. Does everyone in the team understand you? Do they know exactly what's expected of them or have you assumed they know? Do they communicate well with each other, with users and other departments?

Solution: Identify potential communication breakdowns now. These can lead to confusion and complications later in the project. Never assume that everyone understands. Take time to create an environment that will bring the project in on time, on budget and to the customers' expectations.

Never Reviewing Project Progress

As a project progresses things change and these changes can have a significant impact and may determine success or failure. It is important to monitor progress on a regular basis so that challenges can be overcome early and stakeholders warned of possible delays and changes to the product.

Solution: Set frequent milestones during the project when you can review progress with your team and make any adjustments necessary to stay on course. Stay close to your team so you understand what is going on and what challenges they face.

Inadequate Testing

When the pressure to deliver is on, it is often testing that suffers. All the testing is left until the end of the development cycle and only lip service paid to it. Often the result is a product filled with bugs and an unhappy customer.

Solution: Carryout testing throughout the development lifecycle, testing each module or component as it's developed. This leaves just the integration testing to be carried out at the end of the development lifecycle.

Testing in the Production Environment

It's surprising how many organisations test products in the production environment. This is a high-risk strategy that can lead to security breaches and release without testing that can disrupt the production environment.

Solution: Develop a process for quality assurance and release of new products. Provide a Quality Assurance (QA) environment separated from production for the purpose of testing.

Lack of Quality Assurance

Often in the haste to get software delivered quality assurance suffers. Code changes are not documented, the design contains fatal flaws, and implementations can be incomplete. These all lead to rework, lost time and ultimately unhappy customers.

Solution: Take the time to quality check and document software before it's released.

Not Conforming to Industry Standards

Conforming to industry standards in your software projects can prove effective by ensuring accessibility, portability, usability, robustness and reducing problems now and in the future. Bodies such as the World Wide Web Consortium (W3C) and International Organisation for Standardisation (ISO) have developed open standards that when used are hard to challenge.

Solution: Take time to introduce standards for your projects. Identify what works well and keep doing it, and what doesn't and change it. Review and update your standards on a regular basis.

Next time you run a software project, review this list first and remind yourself to take steps to ensure your success, you'll be surprised at the difference it makes.