• Cases
  • We helped our client to modernize and enhance the usability of the existing Shipping Container Maintenance and Repair software by means of refactoring and bug fixing

We helped our client to modernize and enhance the usability of the existing Shipping Container Maintenance and Repair software by means of refactoring and bug fixing

  • Industry

    IT

  • Project type

    Web | Mobile

Description

Our client is the unquestioned leader in delivering Shipping Container Maintenance and Repair software solutions. But to maintain its leadership position and to serve its customers’ needs in a digital landscape, the company had to evolve. And here, it is true not only about the offered solutions but also about the organization itself and its approaches.

Initially, the firm started its business journey as a Multi-tenant Web SaaS company. It had a single codebase for the Shipping Line Maintenance and Repair system. This allowed all vendors to enter data into the Shipping line systems. When the company expanded its offering with an app for Depot Management, the architecture fragmented into different codebases.

It is a monolithic client-server app written in Delphi and JavaScript. It is tightly coupled to external databases, applications, and the enterprise infrastructure. There are several areas covered by this app, such as Estimate Writing, Estimate Submission, and Invoicing. While some functions are managed through the website, invoicing is controlled by individual console applications that rely on the invoicing rules for each of the equipment owners along with the individual rules for the vendors. If there are changes that are made for one equipment owner, these changes must be updated in all the consoles.

For other tasks, like printing or generating PDF files, there are separate .NET and Delphi apps. Most of the vendors also have individual integrations in accordance with their specific requirements.

As the growth accelerated, a decision was made to “Copy and Paste” all functionality for new customers, which led to the necessity to introduce 20+ codebases with duplicated functionality kept in different databases. All this had a negative impact on the performance of the system and the speed of its responses.

Moreover, when a new customer was onboarded, the website, invoicing application, and database needed to be replicated to provide the app’s functionality for a new customer. That was a time-consuming process, which also increased the existing technical debt.

Given all these facts, the company set a long-term goal to have all of the codebase consolidated and to make the overall logic more straightforward.
All new EDI was planned to leverage a service-oriented architecture driven through events built using microservices patterns. This will allow new functionality to be quickly developed without having to impact existing services. All integrations and cross-application communication will be maintained in a single location. This will help to avoid the isolation of improvements or updates in a single application and the necessity to further copy and paste them into the remaining codebases.

The top challenge was related to the fact that the entire enterprise architecture needed to be rebuilt into a new product platform. And even amid this process, it was crucial to retain the existing customers and ensure that they would have only positive experiences.

At the same time, it was necessary to create all the required conditions for onboarding new customers without introducing additional technical debt.
As the company’s system was initially developed in Delphi, it was required to find a team with solid expertise in this technology that would be able to cope even with the most challenging projects. It was necessary to work with huge volumes of legacy code and to write new services. With a team of the best Delphi professionals and many years of experience, Softacom turned out to be the best choice.

Client`s pain and concern

A lack of craftsmanship can be observed across all our legacy components. Applications and enterprise patterns are non-existent, and best practices are not followed for automated developer testing, deployments, and code management, to name a few.
Today, it is really difficult to support and maintain our system and the apps our clients use.
Moreover, our technology was initially written in Delphi, which is compatible only with Internet Explorer. We want to eliminate this dependency on only one browser as with Microsoft’s plan to end the support for Internet Explorer, our system can become unavailable to our clients.

Project Team size

  • Project manager
  • 3 Delphi developers
  • 2 QA engineer
Project Team size

Solutions

When the company turned to us, the first thing that we needed to do was to review the legacy software. At that time, it included 60K+ lines of code which contained a lot of bugs.
The work with this solution was really challenging and it became obvious that only professionals with the most solid expertise would be able to understand the code and deal with the set tasks. We assembled a strong team and started our work with the solution.
After the analysis of the scope of work, we understood that this project required a deep dive into its specifics, while the code had to be fully refactored. We detected a row of bugs that we fixed while working with this solution.

We also introduced DevOps for automating such processes as testing, integration, and deployment, and facilitating innovation and modernization.
One of the priority tasks was to create a clear testing procedure as previously the client’s team didn’t have it and all newly written code parts were put directly into the production environment.

Thanks to the implemented changes, new code can be tested and automatically delivered. Such practices helped to eliminate a huge part of manual work.
Another part of our tasks was devoted to some other aspects, including user stories, which presupposed the introduction of different functionalities based on the requests of the company’s clients; the main web application; the mobile version; and IDE tools.

Solutions
Book a free consultation with our experts
Book a call

Technologies

  • Used in the project
  • Delphi Delphi
  • VCL VCL
  • MS SQL Server MS SQL Server
  • .NET .NET

Outcome

  • The main result of our work is the automation of a lot of processes that earlier had to be conducted manually (like testing, deployment, and code management, etc.)
  • We implemented serious updates to the system’s logic. These changes provide a strong foundation for further enhancement of the solution and its migration to .NET in accordance with the company’s plans.
  • Instead of 20+ codebases of clients’ apps that all included 80-95% duplicated functionality in different databases, we introduced one basic app template with support for onboarding new customers.
  • Already now, it has become much easier to work with the system, implement new features, and test them. We made it possible to maintain the app with less effort, as well as timely detect and fix bugs.

Subscribe to our newsletter and get amazing content right in your inbox.

You can unsubscribe from the newsletter at any time

This field is required
This field is required Invalid email address

You're almost there...

A confirmation was sent to your email

confirm your subscription, make sure to check
your promotions/spam folder