10 Reasons Why Software Projects Succeed
Whether you’re building an MVP for your next startup or working on an internal CRM for your company, software projects are central to companies across all industries. Gartner, a leading IT research and advisory company, predicted that the enterprise software market will grow by 7.2% in 2017, reaching $393.5 billion in constant dollars.
With that in mind, it is troubling that 31.1% of software projects will be cancelled before they ever get completed, according to the most recent Standish report. What’s even worst is that 52.7% of projects will cost 189% of their original estimates. For example, Levi’s proposed a software migration that would cost somewhere around $5 million in 2003 — by 2008, the company reported a loss of almost $200 million due to this project failure. Due to unrealistic specs and constant changes in project direction, the final cost of this project came out 40X higher than the predicted cost. This kind of phenomenon is so well-known, it was named “black swan.”
In this post, we will explore common problems companies run into when launching a software project, and how you can ensure that your software projects succeed.
Table of Contents
- What Makes Up a Failed Software Project?
- How Often do Software Projects Fail?
- 10 Ways to Avoid Project Failure
- TL;DR
What Makes Up a Failed Software Project?
Before we go on to discuss why projects fail, let’s take a look at how different companies define successful projects:
- On-time, on-budget, and on-value (McKinsey & Company)
- On-time, on-budget, and features/functions as specified (The Standish Report)
We believe that project success is not black-and-white. According to “Measurement of Project Success,” an article published in the International Journal of Project Management, there is a distinction between product/project success and project management success. While product/project success is largely determined by meeting its objectives, project management success is based on time, cost, and scope of criteria.
Therefore, a project that is not on-time, on-budget, and on-value may not be a “failed product/project.” Success should take both product/project success and project management success into consideration.
Instead of categorizing projects as either “successful” or “unsuccessful”, they can be categorized like so:
- Ideal projects: The project is completed on-time, on-budget, on-value, and with all features and functions as initially specified.
- Imperfect projects: The project is completed and operational but over-time, over-budget, below predicted value, and/or lacking features.
- Failed projects: The project is cancelled at some point during the development cycle.
Now, let’s look at some statistics regarding ideal projects, imperfect projects, and failed projects.
How Often Do Software Projects Fail?
In the 2014 Standish Report, a total of 365 respondents were surveyed, with a total of 8,380 software projects represented — only 16.2% of them turned out as “ideal projects." The following graph shows the overall breakdown of failed projects and imperfect projects. Keep in mind, the following categories are not mutually exclusive, and that over-time and over-budget were combined as they are closely linked together.
This graph shows that 31.1% of projects completely failed, while others experienced project management difficulties.
According to the same McKinsey report, on average, software projects only produce 83% of their predicted value. Additionally, on average, software projects overran their predicted schedule by 33% and predicted cost by 66%. In other words, if a project was scheduled to be completed within 3 months, it would usually take 4 months. If the predicted cost of the project was $20,000, the actual cost would be $33,200.
From these statistics, we can tell that project overrun is a common issue. Since project managers are the ones in charge of watching over the project timeline, they play a crucial role in delivering projects on-time, on-budget, on-value, and with all features and functions intact. In addition to project management related factors, there are several other factors that contribute to overall project/product success.
10 Ways to Avoid Project Failure
Running and managing software projects is a collaborative effort. Whether you’re working for a startup or an established company, working with full-time or freelance developers, there are often multiple stakeholders involved. The initial project idea is often finalized by a few key decision makers. Then, either the PM and engineering team or freelancers will then take over to turn the idea into a product.
In the ideal situation, all stakeholders will work together to deliver the project. More often than not, something will go wrong in the over-simplified process we just described. In this section, we will focus on how software projects can succeed when hiring freelance developers.
Below are ten key factors for implementing a successful software project, some of which were inspired by Alexandre Walter, founder of rrrather:
-
Clearly Define Success
As previously mentioned, there are many way to define project and product success. A successful project may not necessarily be a successful product, and not all projects generate new products. It is important to have specific ways of measuring the success and failure of a project.
-
Have Clear Objectives and Requirements
When you’re working on a project, you should have detailed project specifications and established project management methodologies (i.e. Agile, Waterfall etc.). The project should be properly scoped and broken down. This way, a more realistic estimation can be made. We would recommend involving developers to help determine the project timeline.
-
Involve End Users
Whether you’re implementing a software for internal users or external users, it is important to understand what the users need. Often, the development team is so far removed from the users and so concentrated on hitting their targets that they fail to communicate with their users. To ensure that end users’ needs are prioritized, make sure to begin the project with a strong user requirements specification and ask for user's feedback along the way. Encourage project team members to communicate directly with end users.
-
Hire Skilled Developers
A developer’s programming skill directly influences the success of his/her projects. Skilled developers are often more experienced, can create higher quality software, and be more efficient.
-
Use Effective Project Management Methodologies
Make sure you have reliable project managers and project management methodologies. For example, Agile methodologies stress the importance of developing software in iteration — each software version is tested and reviewed by stakeholders. Furthermore, make sure you always give yourself some leeway in terms of time. If a certain part of the project is set to be completed within 10 days, give developers 7 to 8 days to complete the task. As previously mentioned, if you’re hiring freelance developers, make sure the platform you use offers project management support!
-
Know What You Want
Though not necessarily always the case, clients with more experience working with freelance platforms and freelance developers are more likely to have successful projects. If you’re a non-technical founder, here are some practical advices regarding how to build your tech team.
-
Break Your Project Up
Depending on what you’re aiming to achieve, your projects’ sizes will vary. It is important to break larger projects into smaller, more manageable chunks. When projects are broken down into smaller chunks, the communication is tighter and problems are more easily dealt with. Therefore, having shorter project milestones will help projects succeed.
-
Strengthen Your Relationship with Developers
Having a strong relationship with freelance developers is directly correlated with having more successful projects. Platforms that are more involved in the process of matching clients with freelancers and project management significantly increases the success rate.
-
Help Developers Understand Your Company’s Culture
Related to the previous point, make sure the developer you hire understands your language and company culture to avoid any misunderstandings that may arise.
-
Review Finished (& Failed) Projects
An often overlooked part of project development is project review. Whether you implemented an ideal project, imperfect project, or a failed project, it is important to review what went well and what went wrong with the project.
In order to implement a successful project — regardless of what “success” means to you — you must first realize that project implementation is a holistic process. Every step of the process and every stakeholder can directly influence the project’s success and failure. The list above is by no means comprehensive; however, it does capture some of the most important factors that lead to project success.
TL;DR
On average, 1 out of every 3 software projects fail, and more than 80% of projects run over time or over budget. Successfully implementing software projects can be crucial to the overall success of your startup, company, or business. However, as the failure statistics reminds us, it is easier said than done. Here’s a list of the top 10 ways to avoid project failure:
Implementing a successful project takes more than one person and one party — it must be a collaborative effort between all stakeholders. Some of the most important factors that determine the success or failure of a project lie in successful project management and staff involvement. If you’re working with full-time employees, it is crucial to encourage all stakeholders to establish ownership of software projects.
If you’re working with freelance developers, make sure to select services that offer highly qualified freelance developers and project management support. Furthermore, if you’re managing remote developers, make sure to read this post.
We always welcome and enjoy your feedback — after all, our mission is to help you succeed!
Jennifer Fu || Marketing & Operations Specialist @ Codementor
I am a non-fiction maniac 📖 - this is why I enjoy reading, researching, and writing about tech! I'm always up for a good conversation over good cup of coffee ☕️