[I am reposting this April article because it seems to have captured the attention of a few people at the FAA and in the aviation industry.]
The FAA Is at it Again
According to an Associated Press article, the FAA's NextGen air traffic control system is being delayed on account of glitches in a $2.1 billion crucial software subsystem. Why am I not surprised? Many years ago, I contacted the FAA about my ideas on software reliability and they treated me like I was a filthy bum in Beverly Hills. I am not callous enough to say that the FAA's current troubles serve them right and I am not one to say 'I told you so' but I did. It's kind of funny that both Lockheed Martin and Raytheon, who are major contractors to the FAA for NextGen, have visited my blog many times over the years. Somehow I doubt that either of these giant defense firms have incorporated my ideas into NextGen. That's too bad.
Why NextGen Will Fail
I predict that NextGen will fail. And it will fail miserably (and maybe even catastrophically) unless the FAA has the guts to do the right thing. Why will it fail? Because the baby boomers have shot computing in the foot in the last century. That's why. The hacker culture of the boomer generation is usually credited with launching the computer revolution in the early eighties but nothing could be further from the truth. What launched the revolution was the introduction of a highly empowering new technology called Very Large Scale Integration (VLSI). The Von Neumann architecture was already well-known in those days. Opportunistic computer geeks were suddenly free to fully abandon discrete transistor technology and began using VLSI to create all sorts of cheap processors and computers based on Von Neumann's old ideas.
What the boomer geeks really gave us is the cult of Turing. They forced everyone in the business to worship the Turing machine as God's gift to humanity. The result is that we are now faced with a nasty problem known as the parallel programming crisis. This is on top of the software reliability and productivity crises that have been wreaking havoc from the beginning. So now, with the old geeks still in charge of computer science and the computer industry, the FAA, Toyota and the rest of society are paying a heavy price for their mess.
There is a Solution
It is not too late for the FAA to do the right thing. There is a way to build bug-free code regardless of complexity. Just don't ask the boomer geeks because they don't know how. They're too busy worshiping the ground Turing walked on. And they're liable to lynch you if you say anything against their hero. But guess what? Turing's antiquated ideas are useless in the search for a solution. In fact, the Turing computing model is the problem, not the solution. It's time for the boomer geeks to admit that they have failed. They should gracefully retire and let a new generation have their turn at the wheel. Click on the links at the end of this article for more on how to build reliable software applications.
What the FAA Should Do
There is no question that the FAA's NextGen effort will fail because of their chosen software model. Current approaches to software construction are crap, primarily because deterministic timing is not an inherent and fundamental part of the programming model. As a result, complex software systems used for automation become unreliable as their complexity increases. Since NextGen falls into the category of extremely complex software systems, it's a guarantee that it will be riddled with bugs, including potentially dangerous and/or costly bugs. However, I would not advise the FAA to abandon their current overall design.
I believe that most of the current NextGen software and design documents can serve as the specs for a new reliable system based on the COSA software model. Every safety-critical NextGen application, including all avionics software, should be (re)programmed in COSA and hosted on a computer running the COSA OS. Existing non-critical applications can continue to run on existing computers plugged into the network as a way to keep costs down, if desired. With the right team in place, I believe that the entire NextGen system, as it stands, can be rebuilt within five years. The new COSA-based NextGen system would be fully and easily upgradeable without fear of introducing new bugs into the system and would provide rock-solid operation for years to come. There is no doubt in my mind that it is possible to use COSA to fully automate air traffic control before the end of the decade. Even the aircrafts can become self-piloting, as they should be. Let us hope that FAA administrators can read the writing on the wall. But I am not holding my breath.
How to Construct 100% Bug-Free Software
How to Solve the Parallel Programming Crisis
The COSA Software Model
Why Software Is Bad and What We Can Do to Fix It