Application Upgrade VS Re-engineering (Re-implementation) :
when we are running a version of software/Application and we realized that it is no longer resolving the evolving needs of business requirements or taking more time to implement the requirements using the current features of your software where the latest software features are off the shelf/readily available in the latest versions .
The other major aspect is Software vendors/product owners are no longer supporting the version ( Most of the project teams focus on customizing and resolving the business problems using the older version of software until the Software vendors/product teams notifies about the end of the version support )
This is the point of time where we need to think through about the options and take a decision on those options.
we have 2 options here. Upgrade and re-engineering. by default Upgrade is the first choice .
what is the key decision points to choose the Re-Engineering option.
1. Upgrade Cost (Time/effort) is more than the Re-Implementations cost.
2. After upgrade you are still not able to use latest features
a. underlying Architecture of old Version is is changed in latest versions
b. Simplified micro service Architecture
c. distributed processing
d. event based processing
3.Complex/legacy implementation are still complex and not simplified.