The Case for Software Product Re-Engineering
Technology acceleration is nothing new. The concern is with businesses not matching up to it’s fast pace. It is not a secret that businesses need agile software to keep up with competition. Sadly, software systems do not remain young, and need to be renewed at set intervals.
Why do organizations endure legacy software?
However, keeping up with rapid technology advancements is easier said than done. Customers are always on the lookout for cutting-edge solutions that help them stay ahead of competition. Since many organizations base business operations on complex software, ageing systems turn out to be liabilities for them. This is a dangerous trend, and leads to customer alienation and loss of business.
The decision on legacy software
A legacy software system lacks the right pool of resources to support it. This is a major stumbling block to achieving organizational goals. In such situations, a critical decision has to be made between maintaining, replacing or rebuilding such applications. In fact, there is no right time to replace or rebuild legacy software.
Whenever there is immense pressure on the management to do something about the legacy system, is often the right time to take corrective action. Surprisingly, most organizations are reluctant to make a bold move at the apt time. Resistance to change may be a reason, although fear of costs, risks and data loss play a major role here.
So what are the choices available?
Sometimes, only a replacement of the existing software will work. Replacement however, is not always a viable option. High investment costs, along with failure risks, can be a reason. This is true for the big-bang and incremental approaches of software replacement.
If the overall benefits of replacing an existing software system do not outweigh the costs, replacement decisions need to be parked. An alternative would be to consider an innovative software design and re-building practice.
Once there is clarity on the number of resources at hand or the time period for which vendor support is available, it is natural to stay satisfied with existing software. However, maintenance is not advisable either.
Time – Even insignificant updates consume time, delays processes and reflects badly on customer experience
Losing out to competition – Competitors with agile systems and faster response times
Expensive resources – Legacy applications require a different skill set, and resources are expensive.
Hardware – Hardware to support a legacy system needs costly maintenance.
Security – The old system can no longer be considered a safe option for holding sensitive customer information
New-age technology – Legacy applications are not mobile, web or cloud ready and not accessible to users.
Regulatory costs – Old software has zero compliance with legal requirements
Risks of system crashes – Businesses such as airlines that maintain legacy systems crash without warning, causing losses to the tune of millions of dollars
Delaying innovation – Maintaining old software destroys the reputation of the organization as a lazy innovator
Operational inefficiencies – Legacy software is not optimal in operational process handling and is inefficient
The next best route is to re-engineer old software. Re-engineering involves movement to new technology platforms, as a result of which software becomes more manageable. A highlight of re-engineering is it’s cost advantage. Investment is lower when compared to developing new software from ground up. Another advantage is the reduced time span for project completion.