Skip to Content

The Trouble with Software

Revisting the software business flaws Charles C. Mann depicted five years ago.

When you drive a new car off the lot, you can assume it won’t need repairs for a long time (unless you crash it). But when you install a Microsoft program on your computer, you assume that your next step will be to download security patches and bug fixes. A July 2002 feature in these pages asked why software is so bad and wondered whether programmers shouldn’t be held to the same quality standards as other workers equally critical to our industrial civilization, such as mechanical, electrical, and civil engineers.

Shown above is the July 2002 feature in Technology Review, “Why Software is So Bad.”

That unresolved question has inspired one of software’s leading lights to propose a radical answer. As Scott Rosenberg reports in this issue (see “Anything You Can Do, I Can Do Meta”), Charles ­Simonyi, Microsoft’s chief architect during its formative years, has started a company dedicated to developing an entirely new approach to writing code. Though it’s unclear whether he’ll succeed, it is clear, as Charles C. Mann wrote five years ago, that the software business has singular problems.

Programming experts tend to agree that … disasters are distressingly common. Consider the Mars Climate Orbiter and the Polar Lander, both destroyed in 1999 by familiar, readily prevented coding errors. But some argue that software simply cannot be judged, measured, and improved in the same way as other engineering products. “It’s just a fact that there are things that other engineers can do that we can’t do,” says Shari Pfleeger, a senior researcher at the Rand think tank in Washington, DC, and author of the 1998 volume Software Engineering: Theory and Practice. If a bridge survives a 500-kilogram weight and a 50,000-kilogram weight, Pfleeger notes, engineers can assume that it will bear all the values between. With software, she says, “I can’t make that assumption–I can’t interpolate.”

Moreover, software makers labor under extraordinary demands. Ford and General Motors have been manufacturing the same product–a four-wheeled box with an internal-combustion engine–for decades. In consequence, says Charles H. Connell, former principal engineer of Lotus Development (now part of IBM), they have been able to improve their products incrementally. But software companies are constantly asked to create products–Web browsers in the early 1990s, new cell-phone interfaces today–unlike anything seen before. “It’s like a car manufacturer saying, ‘This year we’re going to make a rocket ship instead of a car,’” Connell says. “Of course they’ll have problems.” …

It is difficult to overemphasize the uniqueness of software’s problems. When automotive engineers discuss the cars on the market, they don’t say that vehicles today are no better than they were ten or fifteen years ago. The same is true for aeronautical engineers: nobody claims that Boeing or Airbus makes lousy planes. Nor do electrical engineers complain that chips and circuitry aren’t improving. As the engineering historian Henry Petroski suggested in his 1992 book The Evolution of Useful Things, continual refinement is the usual rule in technology. Engineers constantly notice shortcomings in their designs and fix them little by little, a process Petroski wryly described as “form follows failure.” As a result, products incrementally improve.

Software, alas, seems different. One would expect a 45-million-line program like Windows XP, Microsoft’s newest operating system, to have a few bugs. And software engineering is a newer discipline than mechanical or electrical engineering; the first real programs were created only 50 years ago. But what’s surprising–astonishing, in fact–is that many software engineers believe that software quality is not improving. If anything, they say, it’s getting worse. It’s as if the cars Detroit produced in 2002 were less reliable than those built in 1982.

Keep Reading

Most Popular

Large language models can do jaw-dropping things. But nobody knows exactly why.

And that's a problem. Figuring it out is one of the biggest scientific puzzles of our time and a crucial step towards controlling more powerful future models.

OpenAI teases an amazing new generative video model called Sora

The firm is sharing Sora with a small group of safety testers but the rest of us will have to wait to learn more.

Google’s Gemini is now in everything. Here’s how you can try it out.

Gmail, Docs, and more will now come with Gemini baked in. But Europeans will have to wait before they can download the app.

This baby with a head camera helped teach an AI how kids learn language

A neural network trained on the experiences of a single young child managed to learn one of the core components of language: how to match words to the objects they represent.

Stay connected

Illustration by Rose Wong

Get the latest updates from
MIT Technology Review

Discover special offers, top stories, upcoming events, and more.

Thank you for submitting your email!

Explore more newsletters

It looks like something went wrong.

We’re having trouble saving your preferences. Try refreshing this page and updating them one more time. If you continue to get this message, reach out to us at customer-service@technologyreview.com with a list of newsletters you’d like to receive.