Context
As technology plays key role in
enabling core business objectives, it does make sense to review the technology
portfolio periodically for possible enhancements. This will bring in better ROI
in-terms on lower running costs, increased productivity and better customer
service or scale to achieve ever-demanding business requirements.
There are many reasons why one
need to continue investing in technology – and consider regular upgrades and make
this as essential part of strategic decision. Following are few focus area one
should consider while upgrading the enterprise wide applications.
Reduced productivity
In many enterprises, most of the
application, built decade ago, lacks support of development platform, and
associated best practices. These applications not updated with latest platform
specific security patches, enhanced language/framework capabilities for
robustness and reliability. This is leading to breakdown of the applications
frequently. Hence, overall team productivity is reduced and causing challenges
around customer service.
Lack of developer community support
As technology is ever evolving
and most of the developers would prefer to work on latest breed of technology
stacks. The legacy stacks will always pose challenges to find right talents to
support such applications. It is important that, key applications would go
periodic technology upgrades to harness power of latest platform capabilities
along with good community support and availability of talents to support such
application portfolio. It will lead to boost the morale of the staff with
latest periodic technology trainings. Otherwise, many frustrated individuals
(specifically millennials) would leave the job.
Better User Experience
Most of the time legacy applications
missing good user experience. It is very important to engage the application
users with better user experience. Most of the applications lacks responsive
design with multi-channel support – like mobile devices. The strategic
decisions shall be applied to overhaul the UI layer of the key applications
with organization specific UI ergonomics / guidelines.
Unified Hosting & Release Model
Enterprise applications deployed
in heterogeneous environments. It is very important to bring all application
deployment to uniform platform – such as Azure PaaS. Also, leverage modern
application deployment architecture using frameworks such as Docker and
Kubernetes for standardized release trains. This would help release application
fixes / features in more reliable manner.
Remove On-premises Mainframe dependencies
In order to overcome the latency
issues, it is important that, tee intermediate Azure SQL / Cosmos DB shall be
designed to make periodic updates from on-premises legacy databases to Azure
environment. This will enable applications to make call natively in Azure
environment. In addition, SOAP Webservices to be remediated to REST API. Moving
towards REST based API eco system would help to modernize the service layer
with latest architectural patterns leading to better service.
Leverage modern architecture style
Most of the applications follow
old monolithic style and lacks good design specifically around long processing
jobs leading to sub optimal performance. However, apps moved to cloud but
underlying technical debts remain same. It is very important that we refactor
applications to be cloud native by taking scale and performance of azure
services to have better performing apps.
Better Maintenance
With good code refactoring of key
modules and providing comprehensive unit test suites would lead to better
diagnosis of production issues. This will increase the quick turnaround time of
production tickets, as replay of unit test suites would identify application
abnormal conditions quickly.
Streamline of knowledge
The uniform technology stacks and
deployment/release environment would help to streamline the knowledge on
applications. In addition, this would help better organize the trainings for
new joiners.