Case Study
8 minutes

You’ve probably experienced enough to confirm Murphy’s Law: “The chance of the bread falling with the buttered side down is directly proportional to the cost of the carpet.” But what to do if it is not a carpet but your custom software? Can you afford system failures due to cyber attacks or software bugs? What about human errors – is it possible to reduce them? Is the system prepared for a high volume of network traffic? Well, you can’t predict everything but it is possible to reduce risk to a minimum if you are working with a proper team you can trust – especially if you are offshoring or outsourcing your software development to vendors in other parts of the world, to get the work done faster and in a cheaper way.

Custom Software Development Problems

The Most Common Problems

Based on our experience, as well as the experience of our clients, we can say that most of the problems associated with software development arise from lack of expertise and understanding the underlying technology, wrong identification of the problem and its solution, insufficient or improper communication and/or an unreliable contractor. 

Lack of Expertise/Experience

The main risks related to software development result from the lack of experience in the domain or with the technologies used. This is a problem for many teams, especially with regard to custom software development. Someone could say that technologies are changing all of the time. In fact, in some cases it is not even possible to be experienced with some innovative emerging technologies, such as blockchain. So what should be the most important is the creative team with the ability to adapt and grow. 

It is considered1 that software developers should be evaluated based on the following qualities (in accordance with the following order):   

  1. Ability to analyze a problem and determine how to solve it
  2. Raw programming capability
  3. Experience analyzing problems and determining how to solve them
  4. Experience in the domain
  5. Knowledge of a particular programming language

Wrong Definition of the Problem/Solution

Software development is usually regarded as the process of defining requirements, writing code, testing it and deploying. Before that happens the problem needs to be precisely defined2 – the goal of problem analysis is to gain a better understanding, before development begins, of the problem being solved.  

Someone had a good idea for a piece of software that would provide real value to a business. The programmers are working hard on the code. They are implementing what they believe will best suit the users. And yet, while they know they’re going to ship some software solution in the end, they also know the project will fail because that software doesn't do what the business needs it to do.

Problem analysis includes the problem specification, identification of higher order goals and their importance, and identification of constraints and even people involved in the process. All functions, inputs and outputs should be considered, as well as potential technologies. Typically during problem analysis new issues occur. The more reliable the analysis, the less potential gaps in the software. 

Insufficient Communication 

It has been known for years that ineffective communication has a negative impact on successful project execution. 

Companies risk $135 million for every $1 billion spent on a project and new research indicates that $75 million of that $135 million (56 percent) is put at risk by ineffective communications, indicating a critical need for organizations to address communication deficiencies at an enterprise level.

If or when employees don’t talk with each other or don’t talk openly – about their needs, concerns, expectations at work, as well as about the project, problems (even small ones) are not discussed and over time they become a disaster that affects the whole project. It is even worse when only the team knows about alarming issues and the client, fed with positive information, does not expect any problems.  This can have serious consequences, such as delays, increased costs and/or software defects. 

Unreliable Provider

Have you ever worked with the wrong software provider? If so, you will certainly know about these possible issues: increased costs, lost revenue, missed sales opportunities and/or lost reputation. Vendors just like every other company are focused on making money. Your business goals are not going to be at the top of the list of your supplier's prime objectives and priorities. Not always and not every partner can succeed to the same extent. How to prevent this? Ask your friends, ask for recommendations, think twice and be prepared!
 

1. Bohem B. W. (1981). Software Engineering Economics [Prentice Hall].