> its implementation of a “NextGen” air traffic control system to replace the current version may not be completed until 2034, even though the project was started in 2003.
Governments (and a lot of businesses) like to look at software as a one-time purchase, but it's really better too look at it as a liability and an ongoing cost. It'd be better to have a team make continuous, incremental improvements to the system than have "NextGen" last-gen replacement vaporware.
I can say that at least one extremely large US company successfully retired their transaction processing mainframe system using exactly this pattern.
It wasn't simple, but running old+new in parallel on the same production data stream (then verifying behavior against each other) is a surprisingly powerful approach.
Most critically, because it trades temporary maintenance and infra costs in exchange for decreasing risk and flexibility around cutover date.
Kind of like black box TDD, which helps the new system team be much more aggressive with their delivery timelines.
There are examples of both. Firmware and embedded software usually is a one time purchase. Tax software requires ongoing updates. FAA software would fall somewhere in between.
It really is a binary though. Either you need to think about and deal with deploying (system-wide) updates, or you don't.
Even infrequent ~5y update lifecycles tend to be extremely painful unless there is substantial investment in treating it as an essential business process. This leads to a "kick the can" mentality that translates to show-stopping amounts of tech debt.
Five years is almost the worst case. In five years most of the people who did it last time are either in a different post or have left, meanwhile related systems have probably changed, so if they did leave documentation and if you can find it still, that may no longer be the correct process.
When Let's Encrypt was created it could have issued 3 year certificates. But it didn't because they knew that's a bad idea, the whole point of Let's Encrypt was automation, and if the certificates expire in 3 years you will say "Eh, we'll automate later" and never do the work.
Lots of firmware is upgradable these days. Some of of it even should be updated regularly, or you end up with weird novelty problems like your bluetooth earbuds being vulnerable to drive-by attacks.
They like to give contracts to connected outsiders so that they can take care of their friends and take the blame away. 30 years? quoting the venerable Sir Humphrey Appleby:
"Precisely. Months of fruitful work. Leading to a mature and responsible conclusion."
Since it takes 30 years it must be a responsible piece of software, polished to the bone.
Governments (and a lot of businesses) like to look at software as a one-time purchase, but it's really better too look at it as a liability and an ongoing cost. It'd be better to have a team make continuous, incremental improvements to the system than have "NextGen" last-gen replacement vaporware.