Ten years ago, the company I worked for faced a problem. We ran a Supervisory Control And Data Acquisition (SCADA) server that enabled the monitoring and control of natural gas wells in the Four Corners region. For a decade, we hosted 1200+ wells for nearly a dozen clients, some too small to afford the server/infrastructure on their own, a few larger entities that didn’t care to invest in running it themselves, and a couple that used ours as a testing ground/proof of concept before setting up their own SCADA system.
Over time, various difficulties with the SCADA system vendor led to difficulties receiving updated versions of the software. In addition, updates and changes to Windows, and Internet Explorer especially, started creating a host of compatibility and security issues. Then too, most clients had embraced mobile devices, which could not be leveraged to interact with their wells. The nail in the coffin was when the SCADA vendor began to move in the direction of self hosting (using a Citrix terminal server paradigm), intending to eliminate hosting services by smaller companies such as ours.
Most of our clients depended on us and the real time monitoring and control we offered. And now it looked like we would have to discontinue that service to them.
This is a case study of how a detailed analysis of the entire system, methodical and careful experimentation, test applications and mockups, and regular customer feedback eventually gave that service new life, allowing it to meet the needs of our customers for years after that.
That old SCADA server was finally retired just a couple years ago, but not before being used to the full.
The lessons, though, were not lost. In my current job, we are still using legacy software that is nearly 25 years old. Maintaining and integrating legacy code- through console based batch processes written in Java and C#, design and deployment of cloud services, integration with Microsoft Dynamics, ArcGIS Javascript API driven web applications, and a host of backend SQL/DB based vectors- has allowed us to continue to use these systems (and even enhance them) until such time as they are replaced.