Technology Review - Published By MIT
Log in to My.TechnologyReview.com | Register
Advertisement
[1]

Monday, January 01, 2007

The Trouble with Software

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

By Katherine Bourzac

smaller text tool iconmedium text tool iconlarger text tool icon
Shown above is the July 2002 feature in Technology Review, "Why Software is So Bad."
Credit: Technology Review

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.

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.

[1]
January/February 2007

Would you like to read more articles from the January/February 2007 issue?

This article is from the January/February 2007 Issue of Technology Review. To read other articles from this issue simply register for My.TechnologyReview.com. It's free.

Subscribe today and save up to 41% »

Comments

  • the real problem
    cretin001 on 09/21/2007 at 11:56 PM
    Posts:
    35
    Avg Rating:
    2/5
    the real problem with software is that we are runing out of ideas and no one wants to spend time thinking of some new way to distribute and process large amounts of information. In other words: humans are lazy and dam proud of it 
    Rate this comment: 12345
  • The troubble with software
    amakella on 09/22/2007 at 1:20 PM
    Posts:
    1
    The technology mistakes are doing their duty: blocking our "human-logos". Remember the current ineffective keyboard configuration(see Dvorak), OS, the huge set of bugs, and so on. In this side of the world (Bolivia) unfortunately we must to fight with this kind of tameness everyday.
    Rate this comment: 12345
Advertisement

Current Issue

Technology Review May/June 2008
An Electrifying Startup
A new lithium-ion battery from A123 Systems could help electric cars and hybrids come to dominate the roads.
•  Subscribe
Save 41%
•  Table of Contents
•  MIT News

Magazine Services

Career Resources

MIT Technology Insider

Stories and breaking news from inside MIT about the latest research, innovations, and startups--in a convenient monthly e-newsletter. Subscribe today
Advertisement

More Technology News from Forbes

Advertisement
Advertisement
Advertisement
TECHNOLOGY RESOURCES
Advertisement
MIT Massachusetts Institute of Technology