Sometimes applications become dated and need a complete overhaul, we call this process 'Application Transmigration'.
What are the warning signs that transmigration is needed in an application? What changes and does not change with transmigration? What are the benefits of application transmigration? Keep reading to find out!
Software applications age over time and become unfit for purpose, while still holding a lot of intellectual property...
These applications need to be given a new lease of life. This can be achieved using Application Transmigration: adding new features whilst preserving old content.
What is application transmigration?
Transmigration literally means 'moving a soul into a new body'. Here we use it to refer to the transfer of an application's intellectual and functional core into a new, more functional format.
The process of 'Application Transmigration' as we call it, is not just an extension, enhancement, upgrade, or modernization of an application but a one of a kind opportunity and a systematic approach to give applications a new lease fo life.
An example of application transmigration
Below is a classic example of transmigration for a company in material handling and storage domain. In this example a set of disconnected applications to design a storage system for the customer was transformed into an integrated system that handles an end to end workflow with additional features.
The purpose of both systems remains the same: design a storage system, provide layout drawings and generate an accurate quote within a short time frame.
|Functionality||Old system||New (transmigrated) system|
|Nature of system||A set of disconnected applications||Integrated configuration system running over a single CAD platform|
|Drawing generation||CAD macros take manual inputs based on configurator export and generate 2D representations.||Integration over a CAD platform. Creates and instantly updates accurate 3D CAD models. Auto generates 2D representations.|
|Data storage||Multiple text files||Unified data storage|
|Quote generation||Manual interpretation of configurator outputs.||Auto-filling document templates.|
|Preserved features||Structural calculations Materials database||Structural calculations Materials database|
|Additions||Accurate 3D CAD model for walkthroughs Project and quotation revision control Extendible for future uses|
Yes, software applications need a new life!
Over a period of time, applications age. They become unfit for purpose, yet engineers keep them pushing -- for, these applications have provided precious service over the years and they are full of intellectual property content.
Companies keep them alive by patching up, retrofitting new functionalities, providing connectors, translators and so on. Eventually, these applications end up becoming dated, disconnected, and disintegrated.
These applications need to be significantly altered to keep up with an evolving technological landscape, changing usage patterns, and ever-increasing market demands. This transformation is not just shedding an old skin, not just getting a makeover but gaining an altogether new life!
Indicators transmigration is required
When does an application need a new life? There are specific indicators that point to the need for transmigration. They are both external and internal.
External indicators are experienced by external stakeholders; customers, users, trainers, salespeople, analysts, etc. They are:
- Diminishing returns: A new release does not provide more and more functionality
- Significant shortcomings: Lack of features and functionality to perform certain tasks
- Hurried patching up: Multiple fixes, patches, updates, and 'hotfixes'
- Customer-specific customization: Providing customer-specific features or data storage
- Lack of coherence in functionality: Different UI or differing behavior of similar functionalities
- Shrinking user base: Reduced sales and users switching to competitors
Internal indicators are experienced by internal stakeholders such as a program sponsor, technical owner, product manager, development team, etc. They are:
- High technical debt: Too many defects, regressions or change requests
- Huge product backlog: Lots of features waiting to be implemented. E.g. wanting to add features, but needing to fix defects
- Chaotic interior: Outdated technology, a huge variety of designs, broken architecture, weak process, etc.
- Lack of competency and capacity: Key developers/architects have left or moved on, unavailability of competency
- Customer-specific development: Customer-specific codebases/branches, data format, special teams
- SOS fixes: Frequent 'fire fighting'
Typically, applications that have been functioning for more than a decade, require serious consideration for transmigration.
To summarize, an application qualifies for transmigration when every stakeholder -- internally or externally -- genuinely feels that "A lot needs to be done but a lot still needs preserving!"
What changes? What does not change?
Giving a new life is not just re-writing an old application. An application has to have a new format without losing its core.
One needs to preserve the core purpose, ideology, intellectual property, and 'user connect' of an existing application. Often, applications need to gain significant additional capabilities while preserving most of the existing ones. It's important to preserve the huge amount of data generated by the application in its existing format!
However, applications require a new look and feel, new strategies for control, deployment, licensing, ownership, interoperability, etc. They need new architecture, new technologies, and so on.
Benefits of application transmigration
For external stakeholders, key benefits of transmigration can be summarized as a visible impact on the effectiveness and a significant jump in performance indicators.
Benefits for internal stakeholders include; streamlined and extendible architecture, use of the latest technologies, better maintainable code base, etc. Many other benefits can be obtained dependent on what is added.
How to go for it?
The task of transmigration is one of a kind and needs to be done in a systematic manner. It requires a thorough analysis of many aspects of the current state, as well as the target state. The methods used to implement application transmigration will be discussed in future posts. We at Engenext Software Solutions are specialized in handling such challenges and have a well-defined process in place.
Engenext Software Solutions is dedicated to CAD/Engineering software solutions. Built on two decades of experience and exposure to a variety of domains, diverse roles, multiple geographies and a number of CAD platforms, the company is confident it can provide innovative, comprehensive, and effective software solutions.