- Kirill, what is your personal attitude to software modernization projects? Are they really as challenging as many developers believe?
- Let’s consider a hypothetical situation. A client turns to Softacom with a request “to do something” with a legacy system. How do you think which solution will be offered with high probability: modernization or development from scratch?
- Can you briefly explain why businesses may need to modernize their solutions, especially if their software is still working?
- How is it possible to understand that it is already high time to modernize an app? For example, are there any age criteria?
- Okay, let’s imagine the following situation. A company has started noticing some of these indicators. What should the management do?
- If you work with legacy software quite often, can you say that software modernization is always accompanied by some challenges? In general, is it a seamless process?
- What are the best ways to get over these pitfalls?
Quite often developers admit that they do not like software modernization projects. They explain it by describing these projects as too boring and time-consuming. Nevertheless, as Softacom, we have an absolutely different opinion. We sincerely believe that such projects have significant importance for businesses and that’s why we decided to focus our attention on them.
To tell you more about our experience in software modernization and our approach to overcoming all the related challenges, we’ve decided to communicate with one of our experts – Kirill Zhuk. Kirill is a Project Manager, Business analyst, and ICP Agile professional. For over 10 years of his career, he has participated in 23 successfully realized projects.
Kirill, what is your personal attitude to software modernization projects? Are they really as challenging as many developers believe?
Actually, as for me, software modernization is just a part of our work and my attitude to it is just the same as to any other project. Of course, such modernization tasks can be rather challenging they require strong practical skills and deep theoretical knowledge of various technologies. Moreover, for developers, it any be rather difficult to work with the code written by another team.
Nevertheless, software modernization can help businesses avoid a lot of risks and problems related to the use of obsolete systems. It can be a good solution in many cases as it will be much more sensible and feasible to modernize software instead of building it from scratch. And I believe that it is cool to see that your work and your efforts can bring real value to customers.
Let’s consider a hypothetical situation. A client turns to Softacom with a request “to do something” with a legacy system. How do you think which solution will be offered with high probability: modernization or development from scratch?
It is absolutely impossible to provide any precise answer without knowing the exact situation. Before making any conclusions and offering any solutions, we need to deeply analyze the case. We should know the exact tech state of the software product, the used technologies, its functionality, and its role in the business processes. We also need to know who, how, and when interacts with this product and what plans the company has for it in the future.
I’d like to highlight that all our solutions are always based on the results of our analysis. Even when a client comes with a precise request, it doesn’t mean that we will achieve the set goals by fulfilling all the tasks that the client initially had. I remember quite a lot of cases when customers contacted us because they wanted to replace their legacy solutions with new ones. But after analyzing their cases, we offered other ways out like migrating their apps to the cloud or to a newer version of the used technology.
Our work is not about performing tasks. Our work is about reaching goals. And sometimes our clients are surprised that we offer absolutely new ways to address their pains. But what is more important here is that they are happy when they see the results. That’s amazing that our clients trust us and can change their opinions after considering our arguments.
Can you briefly explain why businesses may need to modernize their solutions, especially if their software is still working?
The biggest mistake that a company can make is to rely on a legacy app till the moment it fails. The use of obsolete apps is associated with a row of issues and with time flow their volume and number are only growing. They won’t disappear if you do not address them correctly and one of the most efficient ways to do it in many situations is software modernization.
So, why should businesses think about modernization? Legacy solutions require a lot of expenses for their support and maintenance. And the problem is that one day it can turn out that you need to invest in such services more than your solution brings to you. Moreover, when you spend practically all your IT budget on supporting an obsolete app, you can’t invest in innovations.
Another important issue is related to the security of your solutions and the protection of your sensitive data. Many years ago, there were other standards and security tools and now they can’t cope with modern threats.
And the third problem that I want to highlight is the dynamic nature of the labor market. It is absolutely natural that young developers want to study the most promising and highly demanded programming languages and frameworks. It means that today it is getting more and more challenging to find experts who will be able to work with some apps built 15-20 years ago. Moreover, their services can be quite expensive.
In other words, software modernization can become a great way to optimize your expenses and allocate your budget wisely.
How is it possible to understand that it is already high time to modernize an app? For example, are there any age criteria?
All solutions are unique. That’s why I can’t name any strict parameters that can be used for estimating the necessity to modernize your apps. However, there are some alarming signs that can definitely indicate that you should pay attention to the state of your software.
For example, our customers typically come to us when their solutions do not cope with the set tasks, when the software can’t stably work under the increased load, or when there are too many failures, errors, and further tech issues that lead to downtimes.
Moreover, if your apps, especially those that are intended for external audiences, look or feel old-fashioned, it is a bright indicator that something should be improved. Old-fashioned solutions pose a threat to your business reputation.
One more point that I should mention is the lack of integration of your software with external tools and services.
Among other signals, there is the growth of cybersecurity threats, the lack of possibility to access your app from different devices, increasing maintenance costs, and difficulties in enriching your app with new functions.
Okay, let’s imagine the following situation. A company has started noticing some of these indicators. What should the management do?
The first thing is to admit that the problem exists and the second – is to turn to a reliable company that works with legacy solutions.
When we receive a request from a company, we always need to listen to the opinions and needs of a customer and analyze the situation, as well as the state of the software, on our own. Only after that, we can offer a solution that will help to overcome the existing issues.
If you work with legacy software quite often, can you say that software modernization is always accompanied by some challenges? In general, is it a seamless process?
As I’ve already stated, software modernization is always a quite challenging task and the project team should be ready for all the possible difficulties. And yes, there are some pitfalls that always should be discussed. As a rule, all the challenges are related to improper planning or the lack of understanding of what is happening and what should be achieved.
The first pitfall is the companies’ desire to modernize all their apps, to do it quickly, and to make all the changes just at once. As a result, they hire different teams who will work on the modernization of different apps, and what will they get? Just chaos. That’s why it is very important to set realistic goals and to bear in mind that all the changes can become devastating if they are not managed correctly.
The second challenge is time. Modernization can really take long, especially when we have to deal with huge enterprise systems. Companies just should be ready for it. When it is possible, we always try to make the implementation of new solutions smooth and “painless” for business processes.
And the third pitfall that I’d like to talk about is the choice of the wrong approach. The brightest example of this point is a case from our practice. The company turned to us after an unsuccessful trial to modernize its app. That firm had a solution built in Delphi 6 and the management decided to modernize it by migrating it to Delphi 11 which was just presented at that time. The company’s inner team started doing it but later they understood that it was too early to move their software to the latest Delphi version. Some of its components were not compatible with other used technologies and there were some other tech issues that made it impossible to implement all the functionality of the original app in its modernized version. We analyzed the case and offered to migrate the app to Delphi 10.4 which was already a more stable technology and turned out to be a significantly better option in that case.
What are the best ways to get over these pitfalls?
To work with experienced specialists who know for sure what and how should be done!
I believe that our team perfectly corresponds to this description. Our developers really love what they do. And it is really pleasant to see that we can help businesses to fully open their potential with their modernized software. Some of our customers stay with us for years and it’s excellent proof for us that we are on the right way.