Hidden Business Rules in Legacy Code

There’s also the fact that once we have analyzed the legacy source code sufficiently to identify key business rules hard-coded therein, we also understand those rules well enough to rewrite the application, and that is probably an easier task.Option 4: Rewrite key applications or replace them with off-the-shelf products or network-based services. The challenge: Ensuring market-differentiating logic baked into the legacy code is not lost in translation.This post addresses the key concerns around Option 4.Reasons for HesitationClients have expressed two main reasons to me for their reluctance to delve into longstanding legacy applications..First, they don’t have many (or any) technical staff left on board who can confidently work with the code..They worry that any change will lead to a regression that they won’t be able to correct easily, if at all.Second, they worry that the mysterious source code, written in a mysterious old language, contains mysterious hard-coded business rules that provide some of the company’s competitive advantage, and that are not documented anywhere or understood fully by anyone..Replacing or attempting to update the old code may wipe out that special logic..I suspect the second reason is a corollary of the first.Some companies are in more dire straits than others..I remember one company that had re-hired a retired employee to maintain their single most mission-critical application..At the age of 78, he was the last remaining human who could work on that system..They were paying him $250,000 per year to work 2 days a week..He had accomplished the Vulcan dream to live long and prosper, but what of the company’s future prospects?On a side note: Why would a company ever build such a solution in the first place?.Remember that in the years when large enterprises were first taking advantage of early computer systems, there were no COTS packages or Internet-based services..Everything had to be written from scratch, and all of it was proprietary, so programmers could not benefit from things others had learned.That much is understandable..However, why would people go out of their way to design a solution so arcane and complicated that no one else could work with it?. More details

Leave a Reply