Diving into legacy code: system update
Vaibhav Rathore
December 6, 2017

Recently, we got a project that was already built on one of the popular frameworks. We realized that the project had become a legacy application. The code was written on the initial versions of the framework, wasn’t up to date and compatible with the latest framework version. Probable guess: the initial team might be more focused on building features for the business. That happens everywhere.

Now, the functionalities over which the code was written, are now deprecated in the newer versions of the framework. The latest versions are more reliable, fast and secure. New functionalities are super cool. You don’t need to work on the logic anymore. Everything comes in-built. Just trigger that functionality and ship fast. Thinking of it always frustrates the developer working on the legacy code. Building features from scratch take more time while he could’ve used an inbuilt functionality if the system were up to date.

We proposed our client to update the system and be in sync with all latest releases. The estimate was far too high than it would have been. And the reason was genuine. Updating codebase so huge, may will have side effects and compatibility issues. And these are unprecedented issues. We provided a guesstimate based on our understanding of what those issues might be but weren’t sure. At that time, our client decided to halt and focused on building more features. As the system grew, the system started to become less responsive. The application was too slow and the cost of building features and bug fixes were constantly increasing.

The client could see that. He asked for a revised estimate, and obviously, it went up. Realizing the impact if halted again, the client decided to move ahead with the update. Luckily we didn’t put more effort than expected and updated the system. The client clearly saw the pages load quickly and everything was smooth as they were in initial days. The team was happy too with the updated codebase and many inbuilt features that it can utilize. It was a win-win situation. Had it been earlier, the cost and impact would have been way too low.