Legacy Software

July 03, 2018

I thought that Mark Headd had an interesting tweet yesterday:

This tweet gave me a few thoughts from my own experience that I shared:

After a couple legacy app rewrites (not from mainframes but old Python Django —> Rails) you quickly learn how tough it can be when the best you can do is “match” what was there before. Apple still has whiplash from Apple Maps and that was years ago…

Things I’ve discovered about legacy software:

  1. Undocumented functionality is discovered by users. Turns into an “important feature”
  2. Users map their own abstractions into the existing system as the real world system changes but software stays stagnant.

Also after writing software on a rather stressful deadline for a City of Boston project I expected it to get junked after. Instead they opted not to rewrite. It’s not the best code I’ve written, but it was battle tested. Never realized how important that was until gov’t.

Ultimately rewriting legacy software often “feels” like the right thing to do but the distance of the rewrite feels like it is less than it actually ends up being once you attempt to do it. It is not that it is never worth doing a rewrite, but the value of the rewrite often is less than you initially think it will be.

Want to get posts like this in your email?

This work by Matt Zagaja is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.