It's easy to take potshots at legacy software, but the reality of all software is that what's cool today is legacy tomorrow. In fact, given the pace of technological innovation, never before has software been able to hold onto the "cool" factor for less time than now. As one industry expert observed in an enlightening O'Reilly report: "Everything becomes legacy as soon as it hits production."
The legacy you have with you always
On the one hand, that's trivially true. But it also points to the reality of enterprise computing. Anyone who bemoans lock-in and legacy code has never spent much time within an enterprise. An enterprise, almost by definition, is big and cumbersome, leading to IT decisions made today to persist for a long, long time.
As Camille Fournier stressed (in the same report), "If it's still making money or doing its task and it rarely breaks, it's not going to get replaced anytime soon. The argument for doing all of the work to move every last thing to the cloud just doesn't make obvious sense to anyone."
SEE: Special report: Riding the DevOps revolution (free PDF) (TechRepublic)
Put another way by Booz Allen Hamilton chief technologist Nirmal Mehta: "We underestimate how okay we are with 'just good enough' systems that barely hang together, and we overestimate the need to change those." As such, he doesn't believe "legacy stuff dies." Ever.
New dogs learning old tricks
But that's just old, crufty code, right? Sadly, no. We might like to pillory mainframes and relational databases (I know I do), but the reality is those were once the hot tech of their day.
So let's think about some cool trends in software systems today. How about microservices? Well, Brendan Burns, co-creator of Kubernetes and distinguished engineer at Microsoft, is almost certainly correct to say: "I suspect that the next legacy infrastructure is going to be a spaghetti ball of interconnected microservices where nobody really understands how they are connected together. This is especially true of FaaS platforms where the code itself may become widely separated."
Yes, you read that right: Microservices. Nothing could be cooler today, or more in vogue, yet nothing is more likely to leave an ugly legacy stain on many enterprises.
SEE: Special report: The cloud v. data center decision (free PDF) (TechRepublic)
What about oh-so-hot containers? According to Backplane.io CTO Casey Rosenthal:
The industry will be stuck with container platforms because these are interesting technologies that give the operators a taste of the power of running massive jobs at scale. Unfortunately, the ROI of maintaining that platform is elusive, since very few companies running these platforms will ever reach a point where they can even optimize job scheduling, and the cost of maintaining the container platform itself competes with the modest improvements in the developer's user experience.
A similar phenomenon was seen with OpenStack half a decade ago, when, in the rush to have an in-house cloud, many companies grossly underestimated the short- and long-term associated costs and are now stuck maintaining OpenStack in perpetuity for the sake of the unnamed applications running on top of it.
Well, that's a depressing thought, isn't it? But true. And why? Well, because technology change is hard. Developers and IT professionals have a hard enough time keeping up with all that is new in tech, and then we ask them to also update all that "old" stuff that used to be new? It's an impossible task.
This is why legacy software never dies, and why the pace at which we're rendering today's hot technology "legacy" is going to increase and almost certainly never get any better. Chew on that the next time you roll out your microservices architecture: It's just a mainframe waiting to happen.