Saturday, April 24, 2010

Why the FAA's Next Generation Air Traffic Control System Will Fail

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.

See Also:

How to Construct 100% Bug-Free Software
How to Solve the Parallel Programming Crisis
COSA: A New Kind of Programming
The COSA Software Model
Why Software Is Bad and What We Can Do to Fix It

7 comments:

Matthew said...

I think they have even bigger problems. The airline industry isn't ecologically sustainable.

Even if they could run it at a larger scale, which of course they can't as you pointed out; they will need to find a way to fly without using jet engines pretty soon.

Conzar said...

I agree with Matthew, high speed rail is the future based on Maglev.

Joshua said...

Right, let's just high speed rail all around the world. Please.

Even if one accepts the premise that we're doomed if we don't eliminate all oil (and coal) use, whatever replaces it as primary energy source to the world is likely to find a way to provide that energy to commercial aircraft as well. Necessity is the mother of invention.

However, I predict in the next 10 years, some number of technological advancements will prove capable of economically replacing oil and coal. Biofuels, Fission, Fusion, Batteries and Capacitors, or Lattice Propulsion, pick your favorite(s).

Conzar said...

"Right, let's just high speed rail all around the world. Please. "

Its already happening:
http://buildaroo.com/news/article/china-high-speed-rail-connecting-china-europe/

Vactrain technology is also being worked on which will make aircraft irrelevant except traveling to less populated and remote places that don't have rail connecting to them yet.
http://en.wikipedia.org/wiki/Vactrain

Joshua said...

"China’s goal is to build a rail network within the next 10 years that would zip across the 5,063 miles from Beijing to London in two days."

Not going to replace air travel, sorry.

Thanks for linking to a wiki article with a reference. Too bad the section with the lone reference states "The technology is similar to a vactrain."

In any case, I'm confident oil will be nearly replaced as an energy source long before this technology is cheap enough to replace air travel. But it sounds awesome, I hope I'm wrong.

Conzar said...

"Not going to replace air travel, sorry."
I agree that air travel will still exist; however, why wouldn't high speed trains be the primary mode of transportation for long distances?

Shanghai already has a Maglev train. I actually traveled on it last summer.
http://en.wikipedia.org/wiki/Shanghai_Maglev_Train

Japan has the Shinkansen (I also traveled on this several times).
http://en.wikipedia.org/wiki/Shinkansen

From my experience, using high speed rail has been much more efficient then flying. I acknowledge that air travel is the fastest mode of transportation and is the most feasible for long distance travel in most of the world especially in the USA; however, I am very excited for the plan that China has constructed and look forward to riding their high-speed rails.

Joshua said...

Nearly every mode of transportation ever invented/used by the human race still has it use today. Trains and rail lines of all types absolutely have their efficiency advantages for many purposes. But many efficiency equations must assign and include a value for time.

My main point is that perceived ecological impacts will never override major economic advantages. No country in the world is going to ban jet fuel as long as doing so would cause more people to starve. And it would.

A statement like "they will need to find a way to fly without using jet engines pretty soon" is not even wrong.