(Updated as on April 17, 2019)
- 80% admit they spend at least half their time on rework.
- 78% feel the business is usually or always out of sync with project requirements and business stakeholders need to be more involved and engaged in the requirements process.
- Only 55% feel that the business objectives of their projects are clear to them.
- Less than 20% describe the requirements process as the articulation of business need.
- Only 23% state they are always in agreement when a project is truly done.
- 75% of IT executives believe their projects are “doomed from the start.” (Source: Standish Group)
Sounds like the whole industry on the way to confusion and failed software delivery?
So, we tried to find out what are the most common reasons behind it.
Be the massive failure of Australian custom service that cost the Australian government around 250 million dollars or the £12 billion giant failure of U.K. National Health Service system, one thing is common in almost all of the software failures: they are costly! Not only in terms of money but also in terms of enterprises’ reputation, trust and customer experience.
Software development company should thus know all of the possible obstacles upfront in order to painlessly and effortlessly prevent each of them. It turns out that a lack of confidence, or rather faith in the project, is not the only factor which leads software development projects to fail on a daily basis. What are the most common reasons why software projects fail?
1. Unclear requirements
Gathering requirement is the very first step of the entire process of software development and, at the same time, the first moment where failure becomes a real potential for both parties. The vendor is required to conduct a thorough business analysis in order to determine what you actually need, but you, as the customer, are the one who should specify those needs and express them clearly. At the beginning of the project, customers tend to be so focused on the outcome that they ignore little details which, as becomes obvious later on, are crucial for the entire product. Poorly communicating the problem your company is dealing with and what you think the solution might be will influence the development.
Write down your specific requirements and prepare relevant documents upfront in order to improve the process of business analysis.
2. Unrealistic expectations
Customers may not always know what the process of software development looks like and, more importantly, how long it may last, which is why they usually ask for their project or software delivery to be as soon as possible, at the lowest cost and highest quality. No matter how unrealistic those expectations are, some companies tend to agree to such requirements as long as they win the project. What follows next is, unsurprisingly, disappointment. After all, money and time play a vital role in the eventual success or failure of a project, which is why committing to poor budgeting and scheduling before all the requirements are gathered and analyzed always ends in failure.
In 2012, only 39 per cent of all projects included in Standish Group’s 2012 Chaos report succeeded by providing timely software delivery within budget with the required features and functions. This proves how important setting a healthy expectation out of a project is, especially in terms of time and money needed for completion. Yet, it is unfortunate how many companies still push for it.
If you want your future software to be of good quality, be realistic about the budget and timing. Complex projects take time. If you have a limited budget or simply are in a hurry, choose a payment method which suits you.
3. Poor communication
When we talk about effective and seamless communication, we focus on communicating externally with customers, but internal communication between the departments is equally important, especially when they work on the same project. Not having a healthy work environment is another thing which may lead the project to failure because when the team manages to share knowledge and exchange information and ideas openly and willingly, they are more likely to create strong business relationships with their customers. However, rather than assuming things you should ask as many questions as you need in order to fully understand the situation.
Every misunderstanding may lead to software project failure. You may have no impact on how your technical partner communicates internally, but you do however play an active role in building a business relationship. Whenever you feel confused, feel free to ask.
4. The absence of a good project manager
Every team, no matter how skillful, needs a good project manager. Without one, work becomes chaotic and team members get confused. Not having a strong management guiding the team leads eventually to a mediocre product and late software delivery. Research shows that 33% of projects fail because of a lack of involvement from senior management.
A good PM has to monitor, control, estimate and plan everything from beginning to end but it takes more than that to be successful.
Hire a good Project Manager who will bring your team and client together and keeps them on the same page. Having said that, it is not always true that having more people will guarantee timely software delivery.
5. No end-user involvement
Your project may seem like a fantastic idea. The development process may go smoothly and yet the outcome still won’t be a success if the end-user involvement was not taken into consideration. When you aim to use the software within your company, it is easy to define what your employees need. However, if the software is to be used by a third party, remember to never assume anything. The success of your project depends not on the functionalities, or their complexity, but rather on how easy it is to use the software.
Try to think like a user in order to make sure the solution is user-friendly. As well as this, engaging the right users in the development process may be equally helpful as it allows you to combine your knowledge of the industry and its peculiarities with what users find comfortable and unique about your product.
6. Lack of flexibility
IT is one of the fastest growing industries, and the number of tools and methodologies which aim to improve the software development process are getting bigger and bigger every day. But still, some companies refuse to change and to, quite literally, go with the flow. This approach is understandable when a given company has already developed its own workflow. But this resistance may sufficiently slow the team down and thus lead to project failure. This is especially true when we take into consideration the fact that only a few software deliveries happen accordingly to primary requirements. Change is inevitable and often advisable to ensure the success of a product.
Depending on how clear your requirements are, you can find a vendor whose workflow suits your project. If you are still struggling to determine your needs, a company using Agile software development methodology should be your choice.
When a company struggles for timely software delivery, it’s always the testing that suffers. Tests are performed in a hurry and thus inaccurately, which results in a product filled with bugs which are not necessarily detected right away. One of the best practices which ensure customer satisfaction is to enable customer experience testing. That way, a software development company knows not only that the end product is bugless, but more importantly that the client is comfortable with the software. Additionally, it cuts the time you most probably will have to spend on learning how to use it.
If you know your product is complex, go Agile. This methodology assures testing is carried out regularly throughout the development lifecycle and not at its end. If there is a possibility of taking part in testing yourself, take it.
How do project managers deal with an overly optimistic schedule? One common response is to staff up the project. This often adds way more people than necessary for timely software delivery. Not only does this drastically increase the cost of a project, but it also decreases the quality. Having more people involved in the project increases opportunities for miscommunications and also makes it more challenging to integrate the different sections of code together. Additionally, Frederick Brooks (1975) would argue that “adding people to a late project only makes it later,” which makes sense. The people have to come from somewhere, often from other projects. This puts the other projects further behind schedule and requires time for the new staff gets caught up by veteran staff. This further decreases productivity across the board.
Thorough planning and good staffing is the key to successful projects. Overstaffing can actually backfire when you least expected it.
We mentioned earlier that embracing change is good. Well, not all changes were created equal.
Changing the project’s objectives and specifications too often can cause your team a lot of fatigue and frustration. Sometimes it could possibly derail the project altogether.
A client asking you to make major changes to the core functionality of a product one week before launch is usually a recipe for disaster.
50% of the respondents of KPMG research indicated that their large software projects failed to consistently achieve the objectives they had set out in the beginning.
Understand the request and its implications. Talk to your client and your team. Assess the plausibility and explain the reasons behind the changes. If anything, you surely don’t want to either lose a customer or get your team members frustrated and confused.
In the business world, today customer experience has become the Key Brand Differentiator. That makes it as important as, if not more than, price and product. Research shows that 74% of consumers have spent more with a brand as a result of positive customer service experiences. 68% say they’re willing to spend more with a business that provides excellent customer service. So touching bases with them will always pay off.