Early in my career I worked on a Very Important and Very Serious project. Boy was it Important. Serious too! At least, that's what everybody said. My part was translating some ancient programs written in an obsolete proprietary actuarial modelling language, into a much more modern programming language (itself still a janky ancient thing, but at least it was still within its support contract).

This translation and migration project had been going for years before I got involved. It had been going for so long that none of the original staff that commissioned it or designed it were still around. Needless to say, the people that wrote the original actuarial programs were long departed, some retired, some no longer alive.

I inherited the task of adapting a handful of programs to run in a test environment. There was absolutely no documentation, of either the code or the programming system. We had to guess and run experiments on what particular bits of syntax did. As well as creating a like-for-like replica of the original system, we also had to fix various known issues (the promise of fixing the issues was how the project got funded by the business; the simultaneous migration to the new platform was how the project got approved by the enterprise architects). There had been attempts at writing specs for what should happen - but even the actuaries who supposedly owned the outputs of these programs didn't understand them. There were furious, intractable debates about what parts should be fixed, and what parts should remain the same. One camp argued that nothing should be fixed, because then they would have to explain to the auditors/regulators why the previous calculations hadn't been right. Mass confusion reigned, staff churned, months dragged on. Nobody thought the project was a good idea any more, but the project was uncancellable because these fixes were viewed as a mandatory resolution to a longstanding risk that the execs had on their all-powerful risk register.

The project eventually got to a state where all the new programs at least ran without errors and produced some output. I had left the project by this point, but I was still in a position where I could observe the terrible consequences.

A new financial year arrived, and it was declared that This Is It. The new programs were going live, no matter what. Of course, a big switchover was too risky, so they kept the old system running in parallel, to do various live proving tests. Some people were heroes for finally getting the project over the line. Other people were immediately drafted onto a new project: a project to fix all the problems that the previous project had deferred.

History repeated itself. The new "fix" project dragged on, and on, and on. The actuaries kept running tests comparing old and new outputs. Horrifyingly expensive consultants were brought in to complete expert analysis. Some genius exec eventually concluded that since the original project had closed, the risk must have been resolved. The "fix" project slowed, staff dissipated, and eventually it was placed on a kind of indefinite hold without ever being properly closed down.

I next encountered this a few years later, when the "new" programming environment was due to be migrated to a still-newer platform. A whole lot of money was spent migrating these Very Important live programs. Of course, the ancient system was still running, and nobody was using the outputs of the new system (but nobody would categorically sign off that they would never be used). Still, they got migrated over to the new new platform, where they ran happily for several years, consuming hours of batch time and producing hundreds of gigabytes of output each month, all unused. Eventually, they were quietly (but expensively) decommissioned .

Millions of dollars spent, man-decades of time expended. Absolutely no useful result.

Last I heard, the ancient programs were still running, with all their original flaws, and since they were concerned with long-term pension plans, they will need to keep running for several decades to come, until all the policyholders are dead.