Here at the frontier, the leaves fall like rain. Although my neighbors are all barbarians, and you, you are a thousand miles away, there are still two cups at my table.

Ten thousand flowers in spring, the moon in autumn, a cool breeze in summer, snow in winter. If your mind isn't clouded by unnecessary things, this is the best season of your life.

~ Wu-men ~

Wednesday, July 29, 2009

Who Needs Fiction: History's Worst Software Bugs

A friend sent me this. It's a very entertaining article, from which I've excerpted a portion below. You can read the whole article here.

History's Worst Software Bugs

Simson Garfinkel Email 11.08.05

Last month automaker Toyota announced a recall of 160,000 of its Prius hybrid vehicles following reports of vehicle warning lights illuminating for no reason, and cars' gasoline engines stalling unexpectedly. But unlike the large-scale auto recalls of years past, the root of the Prius issue wasn't a hardware problem -- it was a programming error in the smart car's embedded code. The Prius had a software bug.

With that recall, the Prius joined the ranks of the buggy computer -- a club that began in 1945 when engineers found a moth in Panel F, Relay #70 of the Harvard Mark II system.The computer was running a test of its multiplier and adder when the engineers noticed something was wrong. The moth was trapped, removed and taped into the computer's logbook with the words: "first actual case of a bug being found."

Sixty years later, computer bugs are still with us, and show no sign of going extinct. As the line between software and hardware blurs, coding errors are increasingly playing tricks on our daily lives. Bugs don't just inhabit our operating systems and applications -- today they lurk within our cell phones and our pacemakers, our power plants and medical equipment. And now, in our cars.

But which are the worst?

It's all too easy to come up with a list of bugs that have wreaked havoc. It's harder to rate their severity. Which is worse -- a security vulnerability that's exploited by a computer worm to shut down the internet for a few days or a typo that triggers a day-long crash of the nation's phone system? The answer depends on whether you want to make a phone call or check your e-mail.

Many people believe the worst bugs are those that cause fatalities. To be sure, there haven't been many, but cases like the Therac-25 are widely seen as warnings against the widespread deployment of software in safety critical applications. Experts who study such systems, though, warn that even though the software might kill a few people, focusing on these fatalities risks inhibiting the migration of technology into areas where smarter processing is sorely needed. In the end, they say, the lack of software might kill more people than the inevitable bugs.

What seems certain is that bugs are here to stay. Here, in chronological order, is the Wired News list of the 10 worst software bugs of all time … so far.

July 28, 1962 -- Mariner I space probe. A bug in the flight software for the Mariner 1 causes the rocket to divert from its intended path on launch. Mission control destroys the rocket over the Atlantic Ocean. The investigation into the accident discovers that a formula written on paper in pencil was improperly transcribed into computer code, causing the computer to miscalculate the rocket's trajectory.


Matt "Ikigai" said...

I love that moth story - it's a great example of turn-of-phrase and how it started.

Rick Matz said...

In an article about Dr. Grace Hopper, one of the pioneers of computer science,I saw a picture of that journal page with the moth attached to it.

Compass360 Consulting Group said...

The problem is that some programmers have the problem of not able to see how everything connects geometrically.

They think their code is perfect.

The SoBs also do not believe in software quality assurance. That is another story.

RickMatz said...

Fortunately, software development processes have become better. In fact having a software development process certified to a given level is often a requiste in sourcing decisions.

I myself am guily of a few spectacular bugs. 20 years ago when I worked on engine controllers, I once had the assignment to integrate the code for the external cruise controller into the engine controller. We were getting rid of the external module. So I wrote my code and gave it to a calibrator for his evaluation. On his sign off, it would make it's way into production code.

After a little while the calibrator came back to me said that we should go on a ride as there was something he wanted to show me. We didn't use a test track, we just used the local freeways and surface roads back then.

So I'm driving along wih him on I-96, watching the display on my computer, as he's about to engage the cruise control.

I get thrown back into my seat as the truck we're in takes off like a rocket. Instead of limiting the cruise control speed to 128 mph, I had set it to 128 mph.

Another time on an engine dyno, I managed to turn the engine in the wrong direction... For a brief time. The oil pump doen't work if the engine is going in the wrong direction and it seized up. I recall the mechanics weren't very happy with me that day.

Rick Matz said...

... they'll make their share of bugs. You can count on it!