18 September 2022

Reduce your support cost through Modernization.

1. Introduction

Any technology solution becomes obsolete with the passage of time. Such a solution needs continual support and upgrades, which can be both difficult and expensive. To stay relevant in the fast-changing world, the customer needs to keep innovating their products and services offerings. This can be achieved by leveraging out the strengths of technologies available currently in the market, however aligned with the vision of the company.

Application modernization

Business owners should aim to migrate their products to a mainstream technology and a newer platform (in other words: re-engineer it). The need for software re-engineering becomes an integral part of improving the quality and the longevity of products. Let’s look at a product re-engineering closely with the help of a real example.

Decos Cartracker is a fleet management solution. It helps in managing the fleet with help of real time tracking of vehicles on the map (GIS), which makes it easier to seek support in case of a breakdown. This is an IoT solution which includes a device that is fitted in the vehicle. The hardware and the firmware are part of the solution along with a desktop application for fleet management company.

Technologies that were used to develop the solution involved C++ (for firmware), VC++, C# .NET and MySQL.

Business need

Key pain areas that forced us to re-engineer the product, were -

  1. High maintenance and support cost: Existing solution relied on high number of VMs to support its operation. Due to its single tenant architecture, it took significantly more time to roll-out critical bug fixes and enhancements leading to increase in support cost.
  2. Low scalability: It was based on Windows Service and tray bar applications acting as services. A single ‘client’ communication service could only handle safely up to ~180 vehicles for a customer. To acquire new and bigger customers and to retain growing customers, we needed solution to support over 1000s of vehicles for a customer.
  3. Old look ‘n’ feel: New products having better look ‘n’ feel led to higher competition; new users were not very happy with the visual appeal and experience of the application
  4. Technical resources: As of technology, it became difficult to find and attract new talent to work on the obsolete technology
  5. Frequent breakdowns

Re-engineering became necessary to acquire and retain customers, to reduce support cost and making the application scalable enough to address the increased user base.

2. Solution Implemented

The process to re-engineer a solution encompasses a combination of sub-processes like reverse engineering, forward engineering, reconstructing, etc. Forward engineering based on the results of the evaluations from reverse engineering and restructuring also is part of re-engineering process.

There are multiple ways a product can be re-engineered like new product can be made beside the legacy product, legacy product can be upgraded component by component, in case of n-tier application a tier can be upgraded at a time, etc.

Following steps are followed in the re-engineering process -

  • Assess and gain knowledge of the product and its domain to be re-engineered/migrated
  • Check the feasibility of migration and choose the technologies and platform that needs to be supported.
  • Migration plan is created based on the business continuity and criticality of the product. Necessary documentation is made as we make progress with re-engineering

Step-1: This being a Decos product, we already had the product knowledge and domain expertise.

Step-2: Team made PoCs to evaluate various technologies that could be used to re-engineer the product. Basis the outcome of PoCs, following technologies and platform were chosen:

C++ (no change in firmware)                         VC++

C# .NET                                                            AngularJS

WebAPIs                                                          Azure Cloud Service

Azure Storage                                                 MySQL

Step-3: Components were identified, and the migration plan was put in place to implement these and rollout gradually into the production. To ensure the business continuity, components were released one after another. The releases were made silently with no disruption for business of the customers.

Components identified:

  • New look ‘n’ feel: replacing front-end layer first due to its higher business value
  • GIS solution: Business and front-end layer
  • New features: all layers; from forward engineering perspective
  • Upgrading data layer & business layer, moving services to Azure Cloud
  • Data migration tool: to move data from old application to re-engineered application
  • APIs for 3rd party application integration
  • Migrating the admin portal

The solution now supports OAuth 2.0, uses mix of storage technologies tailored to contain both relational data, as well as blob storage for large data set. The solution is now multi-tenant and uses Azure cloud as platform.

Agile Scrum was adopted as process to develop the new pieces of software. Components were prioritized for the development. Once they were ready, in the order, they were rolled out on production, one by one.

During this entire process, no disruption was caused to the end users.

3. Benefits Derived

Some of the key benefits of this big modernization project, were

  1. Saved the support cost by 52% through new robust solution, centralized logging and reduced the risk of breakdown.
  2. New look and feel resulted in better adoption by the end user and led to 100% customer retention
  3. Application scalability, enhanced security, and support for mobile devices, not only improved the current customer satisfaction but also helped in acquisition of big new customers which earlier was not possible.
  4. Support for mobile devices aided real time fleet management
  5. Security designed in & ISO 27001 compliant

This project highlights the importance of modernizing ailing legacy applications. If the necessary steps are taken in the timely manner, modernized application can be a boon. Modernization gave Cartracker a much-needed life. Reengineered product helped not only in retaining disgruntled customers but in the acquisition of big ones also.

Contact us today to explore how re-engineering can enhance your product's performance, reduce costs, and position your business for sustained success in the rapidly evolving tech landscape.

Get in touch with our team

Discover more

Success story - cloud
Cloud <-> Intranet Gateway Design
Introduction As business priorities shift, modern cloud-enabled technologies are more critical than ever in healthcare. However, scaling cloud can be complicated. Healthcare is at a...
Read more
Perforce to Git migration
Introduction Perforce and Git are two different types of source control systems that help developers track and manage changes to software code. Perforce is a...
Read more
Deep learning
Protecting Privacy Using Deep Learning
1. Introduction A government customer required grievances/incidents redressal management system. To maintain the transparency the customer was required to keep this data accessible to their...
Read more