Legacy Application Modernization: A Case Study in Rebuilding a Production Workflow App

Posted on : 23 Feb, 10:00 PM

Legacy Application Modernization

Services

Web development

Technologies

Angular 7, Java 11, Spring (Boot, Security, Data), Microsoft SQ Server, Kafka, Postgres (PostgreSQL)

Project Locations

Egypt, France, Italy

Industry

Manufacturing

Size

$2-5 Billion

Customer Since

2017

 

Company Summary  

Our client runs a global manufacturing company with outlets in Europe, Asia, and South America. The company uses an application to track and monitor the steps in the manufacturing process, from the material movement of raw materials to the processing and assembly of the final product. Their app also tracks their products' boxing, palletizing, and shipping.

Modernize Legacy Applications

This client approached us to help revamp and modernize legacy applications belonging to the company for several reasons. Primarily, it was built with a legacy Java technology, Java 1.6, by a previous vendor. The architecture was no longer sustainable since it needed modern technology standards and best practices.

 

Furthermore, the client needed the application rebuilt to operate efficiently both as a Java web application and for the handheld devices that scan barcodes found on the materials and containers involved in the manufacturing process. The best possible way to do this was through legacy application modernization updates.

 

Overcoming the Challenges to Modernize Legacy Applications 

Since we were upgrading a legacy Java application responsible for the entire production lifecycle of a global manufacturing company, this project was a significant undertaking. This app tracked everything from raw materials to final shipping and was the primary workflow app. Comprised of over 200 wizards that individually contained multiple steps, our team faced several business and technical challenges throughout the project.

How to Modernize Legacy Applications

Lack of Consistent Standards

A previous vendor built the in-house, legacy application using Java 1.6, and it wasn’t built according to RESTful standards, nor was there consistent documentation. Not only was the business logic unclear in places, but since open source was not used in the legacy build, some of the files were in binary. Thus, our developers encountered a “black box” in places, requiring additional work to piece together the business logic behind the application.

Legacy Application Modernization Strategies

Database Upgrade & Migration 

Primary users of the legacy application became accustomed to a particular user experience. Hence, when revamping the app, we had to re-engineer the legacy database and upgrade it to a modern data model that would provide a new but consistent user experience that helped modernize legacy applications.

 

In other words, we needed to upgrade the database without disrupting the employee workflow. We didn’t want to introduce too many features in a short period that would require more training to learn. Therefore, adjusting the data model while preserving a familiar user experience was one of the many challenges we had to overcome during this rebuild.

Legacy Application Modernization for Your Business

Scattered Development Team

The client’s development team consisted of three back-end developers in Italy and two front-end developers in France. The Italian team had competing assignments, so for several months, our team was working by themselves on the back-end. Coordinating across three geographical domains (United States, France, and Italy) on a legacy revamp created scheduling challenges from the start of the project.


How to Modernize Legacy Applications: Our Solution 

We achieved several breakthroughs throughout our process toward legacy application modernization and technology upgrade while preserving its original functionalities. Through trial and error, our team built a series of new workflows and implemented best practices to ensure the application met client expectations and offered employees a great user experience. While this project is still being worked on and is slated for completion in 2021, our team is introducing several new solutions to the legacy app. 

Modernize Legacy Applications for Your Business

Updated Data Model

Since the original data model was inefficient, we needed to update the app to a new performance-based data model. We needed to implement a few legacy application modernization strategies to proceed with the latest update. 

 

However, remapping the database cannot happen all at once. A lack of documentation and several “black holes” in the legacy app required the developers to use trial and error to understand the application. Also, we took an iterative approach to upgrading the database since moving too quickly can create severe disruptions for users. 

 

The database currently uses Microsoft SQL Server, but we plan to migrate the system to PostgreSQL, which is open-source and free. We’ll continue updating the system iteratively, feature by feature until we have a new version with all of the features detached from the legacy app.

How to Modernize Legacy Applications for Your Business

Cross-Browser Compatibility

During our rebuild, we upgraded the system to run on modern technologies, like JavaScript, so that modern browsers would support the new legacy application modernization. 

 

This was an essential benefit since the aim to modernize legacy applications was limited by older and, in some cases, obsolete browsers. The new browser compatibility will enable more integration with HTML5 server-side and RESTful functionalities.

Applying Legacy Application Modernization Strategies

RESTful Standards

One of the main reasons we needed to upgrade the app was to implement RESTful standards to enhance the app’s reliability, performance, and scalability.

With RESTful standards in place, the system is stateless and separates the client and server as components that can be managed, updated, and reused without affecting the system. This led to many performance enhancements and efficiencies in the following areas:

 

Faster Communication 

The original application leveraged a Java-based web framework called JSF (JavaServer Faces) that used the NetBeans IDE. With this architecture, each API was coupled with the user flow and required too many dependencies; this increased latency and reduced application efficiency. 

 

Under the RESTful framework, API requests are stateless so that data can be cached and retrieved as standalone requests. The new app’s modern architecture has led to better performance and the ability to leverage more advanced functionalities included in recent versions of Java.

 

Performance Targets 

In the early stages of our legacy application modernization upgrade, the team often found itself trying to perfect certain features. In the absence of performance targets, this caused the team to take more time than necessary to complete tasks. Thus, our team established targets to limit performance enhancement to avoid wasting development cycles.

 

Information Sharing

An information gap emerged during the process of upgrading the application. Our team learned that specific terminologies were used by the original third-party vendor, which were discovered to no longer be relevant in the upgrade. 

 

By working through these issues and definitions, our team developed a shared language around the features and functions they addressed.

 

Better Sustainability 

Overall, by seeking to modernize legacy applications, we discovered that the app’s modern architecture has increased the application’s productivity and made it easier to fix issues. Working with standard frameworks and design practices has created an environment with increased sustainability and efficiency.

Applying Legacy Application Modernization

Effective Communication and the Agile Process In Legacy Application Modernization  

With a scattered development team, it can be challenging to align and ensure there are no missing links and the project can run smoothly without running into roadblocks due to things like dependencies. 

 

Utilizing Agile, our team was able to stay flexible throughout the project and tackle different aspects as needed. Daily stand-ups guaranteed the team was moving in the right direction and avoided mishaps like the same engineer working on the same user story.

 

Outcome

The legacy manufacturing revamp project for our client’s Java web application kicked off in March 2019 and was slated to be completed by 2021.

 

Our team has overcome considerable challenges and milestones over the past year. These have included: 

 

  • Establishing a set of development best practices Are solution-oriented and resourceful
  • Upgrading workflows
  • Adoption of a new RESTful architecture
  • Data modeling and plan for migration to PostgreSQL 
  • Coordination between teams in France, Italy, and the United States   

This Is How to Modernize Legacy Applications

We have developed about 15% of the 200 original wizards and continue working efficiently to develop the remaining wizards. Our framework and foundation are well-established, and we’ve achieved significant breakthroughs over the past year. 

 

As we move into the second half of this project, we look forward to building on our successes and continuing to increase our wonderful partner's everyday efficiency and productivity.

 

Contact us today to discover how we can partner together on your next project!

Thanks for subscribing!

Legacy Application Modernization: A Case Study in Rebuilding a Production Workflow App

Posted on : 23 Feb, 10:00 PM

Legacy Application Modernization

Services

Web development

Technologies

Angular 7, Java 11, Spring (Boot, Security, Data), Microsoft SQ Server, Kafka, Postgres (PostgreSQL)

Project Locations

Egypt, France, Italy

Industry

Manufacturing

Size

$2-5 Billion

Customer Since

2017

 

Company Summary  

Our client runs a global manufacturing company with outlets in Europe, Asia, and South America. The company uses an application to track and monitor the steps in the manufacturing process, from the material movement of raw materials to the processing and assembly of the final product. Their app also tracks their products' boxing, palletizing, and shipping.

Modernize Legacy Applications

This client approached us to help revamp and modernize legacy applications belonging to the company for several reasons. Primarily, it was built with a legacy Java technology, Java 1.6, by a previous vendor. The architecture was no longer sustainable since it needed modern technology standards and best practices.

 

Furthermore, the client needed the application rebuilt to operate efficiently both as a Java web application and for the handheld devices that scan barcodes found on the materials and containers involved in the manufacturing process. The best possible way to do this was through legacy application modernization updates.

 

Overcoming the Challenges to Modernize Legacy Applications 

Since we were upgrading a legacy Java application responsible for the entire production lifecycle of a global manufacturing company, this project was a significant undertaking. This app tracked everything from raw materials to final shipping and was the primary workflow app. Comprised of over 200 wizards that individually contained multiple steps, our team faced several business and technical challenges throughout the project.

How to Modernize Legacy Applications

Lack of Consistent Standards

A previous vendor built the in-house, legacy application using Java 1.6, and it wasn’t built according to RESTful standards, nor was there consistent documentation. Not only was the business logic unclear in places, but since open source was not used in the legacy build, some of the files were in binary. Thus, our developers encountered a “black box” in places, requiring additional work to piece together the business logic behind the application.

Legacy Application Modernization Strategies

Database Upgrade & Migration 

Primary users of the legacy application became accustomed to a particular user experience. Hence, when revamping the app, we had to re-engineer the legacy database and upgrade it to a modern data model that would provide a new but consistent user experience that helped modernize legacy applications.

 

In other words, we needed to upgrade the database without disrupting the employee workflow. We didn’t want to introduce too many features in a short period that would require more training to learn. Therefore, adjusting the data model while preserving a familiar user experience was one of the many challenges we had to overcome during this rebuild.

Legacy Application Modernization for Your Business

Scattered Development Team

The client’s development team consisted of three back-end developers in Italy and two front-end developers in France. The Italian team had competing assignments, so for several months, our team was working by themselves on the back-end. Coordinating across three geographical domains (United States, France, and Italy) on a legacy revamp created scheduling challenges from the start of the project.


How to Modernize Legacy Applications: Our Solution 

We achieved several breakthroughs throughout our process toward legacy application modernization and technology upgrade while preserving its original functionalities. Through trial and error, our team built a series of new workflows and implemented best practices to ensure the application met client expectations and offered employees a great user experience. While this project is still being worked on and is slated for completion in 2021, our team is introducing several new solutions to the legacy app. 

Modernize Legacy Applications for Your Business

Updated Data Model

Since the original data model was inefficient, we needed to update the app to a new performance-based data model. We needed to implement a few legacy application modernization strategies to proceed with the latest update. 

 

However, remapping the database cannot happen all at once. A lack of documentation and several “black holes” in the legacy app required the developers to use trial and error to understand the application. Also, we took an iterative approach to upgrading the database since moving too quickly can create severe disruptions for users. 

 

The database currently uses Microsoft SQL Server, but we plan to migrate the system to PostgreSQL, which is open-source and free. We’ll continue updating the system iteratively, feature by feature until we have a new version with all of the features detached from the legacy app.

How to Modernize Legacy Applications for Your Business

Cross-Browser Compatibility

During our rebuild, we upgraded the system to run on modern technologies, like JavaScript, so that modern browsers would support the new legacy application modernization. 

 

This was an essential benefit since the aim to modernize legacy applications was limited by older and, in some cases, obsolete browsers. The new browser compatibility will enable more integration with HTML5 server-side and RESTful functionalities.

Applying Legacy Application Modernization Strategies

RESTful Standards

One of the main reasons we needed to upgrade the app was to implement RESTful standards to enhance the app’s reliability, performance, and scalability.

With RESTful standards in place, the system is stateless and separates the client and server as components that can be managed, updated, and reused without affecting the system. This led to many performance enhancements and efficiencies in the following areas:

 

Faster Communication 

The original application leveraged a Java-based web framework called JSF (JavaServer Faces) that used the NetBeans IDE. With this architecture, each API was coupled with the user flow and required too many dependencies; this increased latency and reduced application efficiency. 

 

Under the RESTful framework, API requests are stateless so that data can be cached and retrieved as standalone requests. The new app’s modern architecture has led to better performance and the ability to leverage more advanced functionalities included in recent versions of Java.

 

Performance Targets 

In the early stages of our legacy application modernization upgrade, the team often found itself trying to perfect certain features. In the absence of performance targets, this caused the team to take more time than necessary to complete tasks. Thus, our team established targets to limit performance enhancement to avoid wasting development cycles.

 

Information Sharing

An information gap emerged during the process of upgrading the application. Our team learned that specific terminologies were used by the original third-party vendor, which were discovered to no longer be relevant in the upgrade. 

 

By working through these issues and definitions, our team developed a shared language around the features and functions they addressed.

 

Better Sustainability 

Overall, by seeking to modernize legacy applications, we discovered that the app’s modern architecture has increased the application’s productivity and made it easier to fix issues. Working with standard frameworks and design practices has created an environment with increased sustainability and efficiency.

Applying Legacy Application Modernization

Effective Communication and the Agile Process In Legacy Application Modernization  

With a scattered development team, it can be challenging to align and ensure there are no missing links and the project can run smoothly without running into roadblocks due to things like dependencies. 

 

Utilizing Agile, our team was able to stay flexible throughout the project and tackle different aspects as needed. Daily stand-ups guaranteed the team was moving in the right direction and avoided mishaps like the same engineer working on the same user story.

 

Outcome

The legacy manufacturing revamp project for our client’s Java web application kicked off in March 2019 and was slated to be completed by 2021.

 

Our team has overcome considerable challenges and milestones over the past year. These have included: 

 

  • Establishing a set of development best practices Are solution-oriented and resourceful
  • Upgrading workflows
  • Adoption of a new RESTful architecture
  • Data modeling and plan for migration to PostgreSQL 
  • Coordination between teams in France, Italy, and the United States   

This Is How to Modernize Legacy Applications

We have developed about 15% of the 200 original wizards and continue working efficiently to develop the remaining wizards. Our framework and foundation are well-established, and we’ve achieved significant breakthroughs over the past year. 

 

As we move into the second half of this project, we look forward to building on our successes and continuing to increase our wonderful partner's everyday efficiency and productivity.

 

Contact us today to discover how we can partner together on your next project!

Thanks for subscribing!

footer-img

Integrant’s Vision is to transform the software development lifecycle through predictable results.

Subscribe

To get our newsletter & stay updated

© 2023 Integrant, Inc. All Rights Reserved | Privacy