2007/03/01

The F-22 Problem Could Have Been Worse, Right?

Let's start this post with a maxim: Writing good software is hard to do. Oh sure any bozo can program, and in the heady years of the 'Internet Boom', every bozo did, but creating software that works right takes patience and discipline. Testing is key, but because of corporate pressure, software complexity, and poor training testing is often the first task to be jettisoned when the going gets rough.

And here's where the F-22 Raptor, the newest US "superfighter", enters our story. About two weeks ago, a flight of F-22's headed for Japan crossed the International Date Line and got lost. What happened? The navigation software didn't make the proper distinction between "180 degrees West longitude" and "180 degrees East longitude". In fact, the fighters were in such trouble that they had to be escorted back to Hawaii by their accompanying tanker aircraft.

Now you'd think that, at a cost of $300M per, these aircraft would have top-notch software but apparently not. Well at least the it wasn't the avionics system flipping up to down or something like that. But in that spirit here's a list of Kvatch's favorite software bugs of all time:

The Mars Climate Orbiter
Scientists at Nasa JPL use meters. Engineers at Lockheed Martin use feet. The craft plunges too steeply into the Martian atmosphere. The engines overheat and shut down prematurely causing the poor spacecraft to bore straight through the atmosphere and head back into space.

Lockheed Again - The Mars Polar Lander
Faulty sensor software informs the flight computer that the lander has touched down when in fact it was still 40 meters above the martian surface. The descent engines cut off, and the $165M lander crashes at speed into the frozen landscape.

Before Melissa There Was the Morris Internet Worm
The first worm to cripple the nascent Internet, and all because the program forgot to check if a computer was already infected before infecting it again. Computers all over the nation went down in the first major Denial of Service attack.

The End of Time As We Know It
Many of you may not realize this, but time began on 1 January 1970 and will end on 19 January 2038 when the internal clocks on many older UNIX system will simply "roll over" and reset themselves. This particular issue is a splendid example of a bug programmed into a computer system with malice of forethought. The engineers simply assumed that no contemporary computer system would ever make it to the "end-o-time" date. Let's hope not!

15 Comments:

The navigation software didn't make the proper distinction between "180 degrees West longitude" and "180 degrees East longitude"

The solution is obvious--they should have flown east to get to Japan.
I just love paying for stupidity. It doesn't say much for pilot training that they couldn't figure out how to navigate.

Lindbergh must be laughing.
Puts new meaning into the phrase "new and improved" doesn't it? The F-22 is supposed to be the best we can buy?
The solution is obvious--they should have flown east to get to Japan.

Mr_Blog! The sheer simplicity of it! Would have saved 'em a software update as well. ;-)

Deb... I think the problem with the training is that, when your somewhere between Mach's 1 and 2, you can't navigate fast enough to stay even close to on course.

Windspike...and these were expensive jets as well--not bargain basement stuff like the Tigershark (never made it into production).
I learned about that UNIX one while down in Northrup Grumman land last month, veddy entrestin...
Planning ahead isn't always easy. But these are supposed to be our best and brightest!
Fred... The "end-of-time" bug is sort of a favorite among programmers. Chances are there won't be any such systems left by the time it comes around, but look at what they said about COBOL? Thought it would be gone by the 90s, but well into that decade was the first time COBOL was surpassed by C as the world's most popular programming language.

Octavian... The F-22 bug is really sad too because it's just so damn obvious. What happened is likely to have been an attitude of, "Well...nobody would make that mistake!"
31 years until the End O' Time, eh? It'll probably shut off my oxygen tank at the Cranky Cracker Old People's Home for the Incontinent.
I know what's missing here, quality control. When did that get lost?
This is priceless. It seems that every F-22 needs to be equipped with a sextant and a compass.
It'll probably shut off my oxygen tank...

Betty...well only if your oxygen tank is attached to a 60 year old UNIX box. Now if you're a resident in a VA hospital...

PoP... QA is right. It's always the first thing to get cut back.

Knighterrant... A sextant a compass and a 35 year old UNIX box that knows the difference between 180W and 180E. Just wait until the time chance comes early.
My employer keeps telling us every time software we create has problems that there is no way to know and that there is rigorous testing. We have since found out that rigorous testing means they make sure it installs on XP systems, works with IE6, and then they hope that everything else is good
The problem is that the F-22 has an all "glass" cockpit. Meaning, no old fashioned instruments as backup. Look at that picture, and you'll see what I mean. That meant when the computer crashed, they had no way of figuring out precisely where they were headed. In this case, they just turned around, and followed the tanker back to the nearest airport.

I'm pretty certain someone got a new asshole over this one. Senior Air Force officers don't appreciate looking like idiots!!

I remember reading an article about the man who designed the sofware for the Voyager series of aircraft. He had less computing power to work with than a modern calculator has, yet look at what those two space craft were able to accomplish. It was his opinion that modern day code writers have become very lazy, writing slow, bloated programs that hog memory. (Windoze comes to mind.)
Scott... I know what you mean! And in that spirit let me say that I hate writing software for the Web.

It was his opinion that modern day code writers have become very lazy...

Haris, Well...not all of us. ;-)

The Voyager probes were astounding accomplishments--right up there with the Mars Rovers which I think may be the most astounding space exploration project of all time.
I read how they upgraded the Voyager II spacecraft after its encounter with Jupiter and extended its mission to include Uranus as well as Saturn. Among the many truly astounding fixes was the idea of using a motor in one of the tape data packs to pan the camera by inducing a very slow spin in the entire craft. The motor would be spun clockwise (say) to give the spacecraft a tiny calculated amount of counterclockwise spin. Then as the spacecraft flew by the planet left-to right, the iris of the camera was opened for a time exposure, with the planet maintaining its position in frame. Minutes later the process would be complete and the motor would be given the right amount of counterclockwise spin to return the spacecraft back to the attitude where the antenna was pointing at the earth again. All this was accomplished with no expenditure of maneuvering propellants. Awesome! This with computing power less than an old Vic-20.

Add a comment

Links to this post:

Create a Link