Legacy software technologists may not be in demand in quite the same way as other developers, but there’s still a pressing need for their expertise. Even as technology rapidly evolves and new languages and platforms become commonly used, legacy solutions continue to work behind the scenes, providing essential building blocks to the infrastructure of countless organizations. Having legacy systems migration and integration skills can bridge the gap between an organization's past and future, particularly with more businesses moving into the cloud. A deep understanding of how different technologies can integrate and evolve can make someone with knowledge of the more arcane elements of a company’s architecture close to indispensable. “When it comes to ‘dealing with legacy,’ there aren't that many good options,” said Michael Coté, who works for software-maker Pivotal. “We often think of legacy as software that must be changed but that we're afraid to change. Legacy has this connotation of it being risky, scary, or maybe just boring.” It’s also intensely challenging. As Coté advises, if you want to go down into the mines of legacy management, start by researching a legacy system’s background and original purpose,
what it’s currently used for, and any current stakeholders within your organization. You may be surprised to find that only incomplete answers exist to those questions. Coté has even heard of companies that have shut down their legacy applications and waited to see if any customers got in touch. That kind of opacity can make things difficult (or for the sleuths among you, really interesting). “Understanding the why, what, and who of a legacy system will tell you most of what you need to know when it comes to managing it,” Coté said. Managing a platform also means learning the underlying technologies and languages that run it.
Mainframes and other Things
At many companies, pursuing legacy technology means wrapping your head around operating systems for mainframes. These massive hulks feature stability and reliability that allow them to run without interruption for decades; industries such as retail, banking, government, financial services, and manufacturing all rely heavily on the technology and infrastructure. Whatever the actual hardware, legacy practitioners will need to build up knowledge of COBOL
, Fortran, AS/400, UNIX (and C), older versions of Windows; sometimes even unusual things like OS/2 may help, as well. “There's dozens of programming languages out there,” Coté added, “and you'll need to learn not only the appropriate ‘old’ language, but how the build, version control, and project management tools around it function.” Jessie Puls, a software artisan for Pillar Technology, observes that when developers are working with legacy systems, they often don’t have any familiarity with the subtleties of how things interact with each other. “If you're lucky enough to have reliable tests you may be able to avoid unintentional changes in other parts of the system,” she said, “but more often than not we're tasked with adding features into untested applications.” Puls added that, after gleaning whatever information you can about existing systems, focus on mastering any associated debugging tools: without that skill, it can be difficult to assess all the things taking place on a particular platform. “You're likely going to be spending a fair amount of time trying to figure out how things work that nobody involved in your project is familiar with,” she said, “and stepping through code will be the best option you have for doing that.” “Further up the management chain,” Coté advised, “having a good grasp on portfolio management is valuable, too. You should be able to prioritize any given legacy application relative to another with respect to funding and attention.” As companies continue their constant march to modernize systems and processes, much of the infrastructure remains in place—and aging rapidly. That makes legacy technology experts increasingly valuable as time goes on.