Our customer creates data management solutions for content-critical businesses. While they were working on a new cloud-based platform, they needed an experienced team of backend software developers with data management skills to support their legacy software. The Apriorit team has a lot of experience developing and supporting custom data management systems, so we were glad to help. 

During this project, we improved customer’s legacy software for data management and end users’ satisfaction with it, implemented new features for better supportability, and helped the customer prepare users for migration to a new platform.

Download a PDF version of this case study
(3 Mb)

The customer

Our customer is a US-based company that develops solutions for storing, sharing, and transferring data. They have more than 17,000 clients around the world that work in the media, construction, financial, life sciences, recreation, and other industries. For these clients, the ability to manage data securely and efficiently is crucial. 

The challenge

When the customer approached us, they were supporting a containerized Linux-based legacy solution for synchronizing data between local and cloud file storage. However, they wanted to focus on developing a new cloud-based platform.

That’s why they were looking for an outsourced development team that could take over maintenance of the legacy system and solve several legacy system modernization challenges:

  • Integrate the team into the customer’s workflow and infrastructure
  • Reduce the number of escalated tickets from end users
  • Develop custom features requested by end users
  • Improve software supportability
Legacy data management software project challenges

Our approach

To solve the challenges of this project, we formed a team that included a project manager (PM), several expert backend software developers, and QA specialists.

Project team and technologies

Our project manager (PM) ensured that our development team worked in sync with the customer’s teams, which were distributed across several countries. The PM implemented elements of Scrum and Kanban methodologies in the workflow and organized two-week sprints and weekly meetings with the customer’s managers and other team members. This approach improved the project’s visibility for our customer, kept the customer’s team up to date on our activities, and helped us prioritize tasks within sprints.

Our team works hand in hand with the customer’s development and support specialists in order to improve user satisfaction with the legacy software. 

  1. We started with refactoring the legacy code and revamping the existing documentation.
  2. We also handled tickets escalated by users by fixing challenging bugs and implementing custom features.
  3. Finally, we improved the supportability and flexibility of the software by porting it to a new operating system, adding new features, and testing new frameworks.

The result

During our cooperation, we helped the customer keep end users satisfied with the legacy software by fixing issues reported by end users and developing custom features that users requested. As a result, we reduced the number of escalated tickets and reached the fewest user complaints ever for this project.

Our support for this software allowed the customer to focus on building a new cloud-based platform, since their developers didn’t have to spend time on bug fixes and legacy software system modernization. Finally, our customer rolled out a new product and ensured smooth migration to it. Since they were satisfied with our services, we continued our partnership after the release.

Related services

Data Management Solutions

How we did it

During this project, our main tasks were fixing bugs in the legacy system and processing escalated tickets — issues reported by end users that the customer’s support team was unable to resolve.

Our activities on this project

Modernizing the legacy software

Working with our customer’s outdated system was challenging because of the great amount of undocumented legacy code. Over the years, the software had been developed by different teams using three languages: Python, Golang, and C.

We needed to sort out all the legacy code to fix current issues and simplify future support activities. To do that, we:

  • refactored legacy code
  • ported core software from legacy operating system to new operating system
  • migrated components from Python 2 to Python 3
  • added security patches
  • reworked old functionalities
  • improved the documentation

Thanks to refactoring, we improved the software’s performance, reliability, and supportability and resolved numerous escalated tickets.

Resolving escalated tickets

We had to handle two types of escalated tickets: requests to fix existing functionality and requests to develop new functionality.

To solve existing issues, we refactored and reworked code. By the end of the project, we had reduced the number of escalation tickets to the lowest rate ever for this software.

Some end users requested adding custom features to the product in order to simplify their work. We implemented many custom features, including:

  • Simple Network Management Protocol (SNMP) integration. The SNMP protocol enables agents to send information about the system to third-party monitoring services. This way, users don’t need to log in to the software’s Web UI to check the status of and manage each device individually.
  • Deselected folder management — This feature automatically manages space on the users devices. When the user no longer wants to access data synchronized to their on-premise device, the software deletes it after ensuring that all updates are saved to the cloud and there is no data loss. It also helps our customer save cloud storage space and reduce network traffic.

Though we were working on legacy software, fixing bugs and implementing new features called for frequent software updates. Since updating this software was a time-consuming process, we discussed several improvements with the customer.

Related services

Custom Data Processing Solutions and Technologies

Improving the platform update process

We needed to improve the software’s supportability to help end users with their requests and simplify maintenance. That’s why we implemented the following changes:

  • Improved software flexibility with a new operating system. The software was initially based on CentOS, a Linux-based operating system that didn’t afford flexibility. CentOS made patching vulnerabilities and updating software challenging, not to mention that CentOS support will end in 2021. For the sake of rolling out updated and new features, we discussed the need for a more flexible operating system with the customer.In the end, we ported the software to Debian and implemented a feature for migrating data with little involvement of end users. 
  • Added several update channels. Initially, the client’s software had only one update channel. Adding two more allowed us to control which end users get which updates and gradually roll out new product versions. We added support for three update modes: old stable, stable, and beta.
  • Automated the testing process. Before our customer contacted us, their QA specialists tested any code for their legacy software manually, which was time-consuming. We implemented two automated frameworks, one for regression testing and one for upgrade testing. The first was based on a ready-to-use framework. For upgrade testing, we created a new framework from scratch. These frameworks helped us greatly speed up the testing process by automating certain tests.

The impact

With the help of Apriorit’s data management and processing specialists, our customer ensured efficient support of their legacy software while concentrating on developing a new platform. We put all our efforts into making sure that end users had a flawless user experience when working with the legacy solution.

As a result of our cooperation, our customer was able to smoothly migrate to their new platform while keeping all end users.

Working on your own data management software? Benefit from our experience and skills!

Our customer is a manufacturer of virtual reality (VR) equipment used for industrial purposes. They wanted to create a new device and needed a team with expert driver development skills to develop the drivers for it.

A US-based healthcare center asked us to develop a robust AI-based system that could track ovarian follicles across video frames, detect them in ultrasound images, and measure them.

Our client wanted to create an enterprise MDM solution for securely managing Android tablets. The Apriorit team developed a custom MDM solution with enhanced data security and an admin panel for centralized management of all tablets connected to the client’s system. This allowed our client to deliver their services to Android users and maintain the needed level of data security.

Our client is a large US-based provider of property management software who had a monolithic SaaS platform written in Ruby. To attract new customers, optimize platform maintenance costs, and make it easier to implement new features, they decided to improve the platform design and replace their monolithic solution with a flexible solution based on microservices.

Our client is a US-based SaaS vendor that provides a cloud platform for gathering, consolidating, analyzing, and presenting data received from user devices.

The platform collects information from monitored mobile devices and desktops using installed agents and provides users with web-based dashboards to track geolocations, online activities, sent and received data, and other details.

Apriorit was hired to enhance our client’s existing solution by gradually improving its performance while extending its functionality and scalability.

Our client is a cybersecurity services provider offering SaaS solutions for detecting and protecting against known vulnerabilities and zero-day exploits. They wanted to enable delivery of their services via the Internet Content Adaptation Protocol (ICAP). The Apriorit team researched possible approaches to creating an ICAP server for sanitizing files that our client can use to extend the possibilities of their proxy servers and build such a solution.

Our client is a US-based company that provides cybersecurity solutions for IT companies. While working on a network security analysis solution, they approached us with the task of Windows USB WiFi driver development.

A medical transportation company had previously developed and maintained a customer relationship management (CRM) system with the help of an outsourcing team. When they required developers with deeper expertise, they contacted Apriorit.

Our client is a US-based provider of data backup and recovery solutions for mobile devices and computers. They initially developed software for Windows but then decided to make it cross-platform and develop versions for macOS, iOS, and Android.

Tell us about your project
Send us a request for proposal! We’ll get back to you with details and estimations.

Browse
By clicking Send you give consent to processing your data

Book an Exploratory Call

Do not have any specific task for us in mind but our skills seem interesting?

Get a quick Apriorit intro to better understand our team capabilities.

Contact Us

  • +1 202-780-9339
  • [email protected]
  • 3524 Silverside Road Suite 35B Wilmington, DE 19810-4929 United States
  • D-U-N-S number: 117063762