• Cases
  • Our task was to enhance the existing company’s software written in Delphi. We simplified and restructured the source code, as well as improved its quality.

Our task was to enhance the existing company’s software written in Delphi. We simplified and restructured the source code, as well as improved its quality.

  • Industry

    IT

  • Project type

    Desktop

Description

On this project, we worked with a company that provides a suite of software solutions for food and beverage manufacturers. The range of the offered products helps businesses transform their processes by increasing transparency and changing their approaches to supply chain management. As a result, users of such solutions can achieve increased revenue, optimized production costs, accelerated time to market, and better global regulatory compliance. Among the users of the company’s software products, there are leading food and beverage manufacturers from Switzerland, Germany, and other countries, whose brands are known all over the world.

We got a request from this client to help them solve the issues in the performance of their digital product that fulfills a row of tasks related to creating food recipes, calculating proportions, and determining the caloric content of ingredients.

It was Delphi software written on DevExpress. And with the solid expertise in Delphi accumulated over the years of work with this technology, our team became a good partner for this project.

The main issue they approached us with was the fact that the solution exceeded the maximum number of GDI objects in memory, which negatively affected its performance and stability.

Client`s pain and concern

Our solution exceeds the maximum number of GDI objects in memory, which leads to the app’s instability and performance degradation.
We are not fully satisfied with the speed of loading and rendering of forms. Moreover, the stability and performance of our key tool on the HTML5-RDP client leave much to desire. They are significantly lower than on Windows native RDP.
Today, we test our solutions mostly manually. But we would like to explore the possibility of automating the testing process with the help of the Ranorex framework.

Project Team size

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

Solutions

When we started the process of the software research, we detected a large number of issues that indicated the necessity of code refactoring and optimization.
At the very beginning, we searched for memory leaks and fixed errors causing exceptions. The plan was to separate the logic and display forms as at that time, everything was mixed together. This step was expected to simplify further maintenance of the program and, if necessary, allow the code to be ported to other programming languages and technologies. The task turned out to be very difficult to implement and was comparable to a complete rewrite of the program. This could have taken a lot of time and human resources. That’s why we halted the research and new development process.
After abandoning global changes, we took a course on working with the program and became part of the application’s support team. Our work was limited to fixing various errors related to calculations and displaying correct data on the user side. In general, we solved the tasks of the support team and simultaneously improved the code so that it could meet the accepted standards. Here, we needed to demonstrate our solid experience and diligence.

Certain peculiarities of the code made it difficult to maintain it and resulted in increased troubleshooting time. There was also a growing risk of program malfunction. And moreover, some parts of the code looked cluttered and сomplicated.
However, in general, the software was functional and was kept up to date. The existing code was constantly being refined, and new functionality was always added in accordance with the development rules.
That’s why we didn’t see any necessity to conduct a one-time reworking, which could require a lot of time and huge costs.
Instead, we offered to conduct a step-by-step parallel reworking of the basic forms (14 of them) with different levels of complexity and integration.
After that, we planned to rework modal forms with their functionality.
Refactoring and optimization tasks had to be solved along the way.
With this approach, the outdated code was gradually replaced, and the developed implemented structures were updated.

The work on the project involved supporting two versions of the program: 11.x.x, which used Orpheus components before the migration to DevExpress, and 12.x.x, which relied on the DevExpress components. Both versions had the same functionality. All new solutions were implemented in both versions. The company could not abandon the old version because many clients were still using it.
When the owner of the company changed, new processes and approaches to problem-solving began to be implemented. The new company’s plans included creating a new product in the C# programming language, using all modern technologies.

Solutions
Book a free consultation with our experts
Book a call

Technologies

  • Used in the project
  • Delphi Delphi
  • MS SQL Server MS SQL Server
  • DevExpress DevExpress
  • TMS VCL UI Pack TMS VCL UI Pack

Outcome

  • We successfully addressed the existing issues by simplifying and restructuring the source code, as well as improving its quality.
  • We facilitated the program maintenance, as well as the process of finding and eliminating bugs. According to client’s estimates, the maintenance costs have been decreased by 75%. We also helped the client introduce automated testing for their software.
  • Thanks to the conducted work, it became possible to enhance the operation of the program itself, increase the speed, and optimize the rational use of memory resources.
  • The better performance of the program made it more attractive for end users. The company reported an approximate 25% increase in the number of active users
  • Moreover, thanks to code refactoring, it became easier to implement new methods and technologies in the further refinement of the software, as well as migrate it to other programming languages, components, and databases, if necessary.
  • Later, we continued cooperation with this customer and helped the company fix bugs and enhance the functionality of the solution. The estimated developer productivity increased by 45%.

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