Before you go, check out these stories!

Hackernoon logo6 Signs that Your Software Project is in Danger by@sergey.valuy

6 Signs that Your Software Project is in Danger

Author profile picture

@sergey.valuySergey Valuy

Co-founder and CTO at Smartym Pro, a software development company located in Eastern Europe.

According to CIO study, 50% of software projects fail. The Global Project Management Survey conducted by PMI reports that 27% of them run over-budget. Annually, these statistics change but the overall negative trend remains the same, which makes the problem of bringing potential threats to light especially important.

There are many signs indicating that a project is slowly going down. They can be divided into 2 groups: organizational (e.g., related to the product development process, internal team communications, etc.) and technical.

Let’s first take a look at some of the most dangerous and unobvious symptoms.

Organizational vulnerabilities

1. Deadlines 

When the development team fails to comply with its own assessments of workload and deadlines, it is an emergency alarm.

Certainly, software engineers often encounter unpredicted challenges associated with implementing too complex functionality, technology limitations, or unexpected changes in the requirements. In addition, sometimes they make errors which leads to spending extra hours on development and improvement.

Example 1

In order to implement some small change, say, a new user survey form, the team had to rewrite already working parts of the system. As a result, the task completion took 3 days instead of the promised 1.

Example 2

When changing a password reset letter template, a developer’s error damaged the rest functionality. This happened because of insufficient qualification as he or she is a newbie.

A professional team is always able to prevent such risks, for example, by including them into the estimation. Make sure that you turn to real professionals: check out the company’s reviews, ratings, testimonials, achievements, awards. 

A reliable IT service vendor doesn’t assign complex tasks to junior specialists. It also employs proven practices like code review to make each piece of code great.

2. Unsatisfied team members

It’s important for every project manager to regularly ask the team members whether everything’s okay, what bothers them, what can be done to make them feel better, etc. When answers—about work or project in general, other specialists, workflow—are negative, the end result is in danger. 

Vitali Yermakou, Co-Founder at Smartym Pro, shares his experience: 

“Your team’s satisfaction and convenient working conditions are one of the most essential parts of any IT product development workflow. I have encountered a couple of situations in other companies when specialists were constantly blaming each other. Reasons were different—either some of them weren’t competent enough, or didn’t respect the effort of other team members, or didn’t perceive the responsibilities borders.
In such cases, the working environment becomes toxic, employees lose their interest and perform their duties worse. Someone might say: “Who cares about internal communications? Just do a good job.” However, it doesn’t work like this. And one of the key authorities of any project manager is to make sure everyone feels great and motivated so that the project won’t fail.” 

To prevent problems, you should monitor the product development life-cycle. This will let you instantly detect and solve technical issues such as:

  1. The process of code delivery to Dev/QA/Stage/Production environment is too durable. As a consequence, QA-specialists’ work is postponed, they can’t start their part of the job on time;
  2. The environment is too unstable. Software engineers are disturbed by the necessity to frequently stay at work for bug fixing.

What should you do if you notice signs of this kind? Try to increase the team’s interest and optimize team communications. Engagement and communication transparency is much more important than you can imagine. So, hold everyday meetings, employ task management systems, and other practices. 

One more thing to consider is internal events that can improve employees’ skills and motivation. In our software development company, for instance, we organize knowledge exchange sessions, workshops, and master-classes on a regular basis, thus keeping our experience relevant and up-to-date. 

Technical vulnerabilities

1. Lack of system monitoring

It is a huge omission when there is no constant system/website tracking, especially when it’s already been publicly released.

Without a distinct vision on what is happening, the team won’t be able to prevent arising issues and instantly fix them. When there is no continuous product monitoring, the results are the following:

  1. Since there is no data about system failures or incorrect work, users will be the first to notice bugs and errors. Since nobody enjoys receiving bad user experience, you will get numerous negative reviews and lose customers;
  2. Although users are sending messages about errors, where they indicate error time and other data, it’s almost impossible to find the root cause of the problem. 

Therefore, when hiring an IT service vendor, choose one that provides post-project maintenance. 

2. Irrelevant tech stack 

New technologies are emerging in an incredibly rapid way. No wonder that others are becoming outdated pretty fast, too. Not all programming languages that were actively employed 5 years ago are still maintained by their creators and the community. 

For instance, building a system on top of the monolithic architecture was a common method before but now businesses understand that it’s hard to scale and maintain. Microservices have provided a solution to this issue.

Several years ago Java was the main language to create Android applications. Allowing to write less code and providing full compatibility with Java, Kotlin is becoming more and more popular for this purpose. 

How can you define that your project’s technology stack is no longer relevant? Take a look at some signs:

  1. Software experts suggest migrating your system from the legacy technology stack to increase its performance, reduce cloud resource utilization, improve resilience, and save infrastructure maintenance costs.
  2. The technology vendors have officially shut down support of all the versions;
  3. Your team failed to implement some functionality because all the necessary modules are incompatible with the current version of the programming language or framework.

3. Immature technologies

It’s not always great when an IT company starts immediately employing just released or non-tested technologies to build a digital product, particularly in serious commercial and enterprise projects. In this case, developers can encounter unexpected technical challenges and not meet deadlines. 

Don’t use  languages/libraries/frameworks/databases that you haven’t yet studied, especially if there are signs like:  

  1. General inconsistency of the technical solution. Miscellaneous frameworks, approaches, programming languages used to solve problems of the same type;
  2. Neither of the development team members has any experience in successful product delivery made using this technology;
  3. There is a very small number of successful projects based on this technology in the world or none at all;
  4. You see that this programming tool or language provides many benefits but it won’t allow solving technical issues of the desired project. For instance, Golang is a great technology but PHP or Java runs the market in writing backends. Numerous world-famous websites are powered by WordPress but this is CMS, so it won’t be suitable for building a CRM system. 

A perfect way is to investigate innovative tools and try them in action. When you find truly perspective technologies that fit your project, feel free to use them for building a future-proof solution. 

4. Poor product delivery workflow

When the product delivery process isn’t lean, problems are stacking up making it difficult to deliver a quality solution on time. Take a look at the list of signs indicating that the software development process needs optimization:

  1. No one is responsible for the product release;
  2. There is no clarified scope of work;
  3. There is no documentation that describes the product delivery process;
  4. No “readme” files and efficient onboarding process, so new team members can’t deploy anything without the help of other software engineers;
  5. Development processes are not automated (e.g., there is no enabled continuous integration and continuous delivery (CI/CD) pipeline);
  6. Not enough QA tests types (unit tests, integration tests, API/UI tests);
  7. There is no clear step-by-step testing plan.

If you see some matches with your situation, we recommend carrying out an external audit to detect potential risks and existing bottlenecks. This will help you prevent problems, save time and effort, and deliver a great product within a set time frame.

An external audit should be conducted on a regular basis even when it seems that the project is in perfect condition. This way, you will always identify eventual technical or organizational complications before they inflict any harm to the final result. 

IT Project Audit enables engineers to define latent problems before they cause a negative effect. As a consequence, the client saves time and money while receiving a quality website or application. If you would like to know how to prepare for an external audit, check out a detailed check-list here

So, it’s important to pay attention to everything that happens inside and outside of your project. Take care of establishing a healthy working environment, assembling a professional team, monitoring the released product, and employing proven technologies. Remember that prevention is better than cure!  

Author profile picture

@sergey.valuySergey Valuy

Read my stories

Co-founder and CTO at Smartym Pro, a software development company located in Eastern Europe.


Join Hacker Noon

Create your free account to unlock your custom reading experience.