Software used by companies is critical to their business and will continue to provide return on investment. Companies will try to maximize this for as long as possible. Some maintenance is required to these software systems which satisfy business and customer needs and address technical debt that accrues over time. Maintenance works well for short term needs but as time progresses, the systems become increasingly complex and out of date. Eventually maintenance will no longer be efficient or cost-effective. At this point, modernization is required to improve the system’s maintainability, performance, and business value. It takes much more effort to accomplish compared to maintenance. If a software can no longer be maintained or modernized, it will need to be replaced.
The risks of modernizing legacy systems primarily come from
missing documentation. Legacy systems seldom have a complete documentation
specifying the whole system with all its functions and use cases. In most
cases, the documentation is badly missing which makes it hard to rewrite a
system that would function identically to the previous one. Companies usually
couple their legacy software with their business processes. Changing legacy
software can cause unpredictable consequences to the business processes that
rely on it. The nature of replacing legacy systems with new ones is risky,
since the new system can be more expensive on a total cost of ownership basis
and there can be problems with its schedule of delivery.
There are at least three strategies for dealing with legacy
systems: scrap the legacy system, keep maintaining the system or replace the
whole system. Companies generally have limited budgets on the legacy systems,
so they want to get the best return on the investment. Scrapping the system can
be an option if the value has diminished sufficiently. Maintenance can be opted
into when it is cost-effective. Some improvement is possible by adding new
interfaces to make the system easier to maintain. Replacement can be attempted
when the support has gone, the maintenance is too expensive, and the cost of
the new system is not too high.
Both technical and business perspectives are involved. If a
legacy system has low quality and low business value, the system should be
removed. Those with low quality but high business value must be maintained or
modernized depending on the expense. Systems with high quality can be
left running.
Modernization is a more extensive process than maintenance
because modernization often incorporates restructuring, functional changes, and
new software attributes. Modernization can be either white-box or black-box
depending on the level of abstraction. White box modernization requires a lot
of information about the internals of the legacy system. Contrary to that, the
black box modernization only requires external interfaces and compatibility.
Replacement is an option when neither approach works.
Software modernization is also an evolution of systems.
White box systems are more popular than black box systems which might be
counter-intuitive to the notion that black-box modernization is easier than
white-box modernization. The tool for whitebox methods could have become better
to help with the shift. Legacy systems are harder to integrate. Software
integration allows companies to better control their resources, remove
duplicate business rules, re-use existing software, and reduce cost of
development. The effort needed to keep legacy systems running often takes
resources away from other projects. Legacy systems also suffer from diminishing
ownership and knowledge base which makes changes difficult to make. On the
other hand, their business value makes them appear like rare diamonds even when
they cost a lot.
No comments:
Post a Comment