Software brittleness

From Wikipedia, the free encyclopedia

Software brittleness is the humorous term that describes the increasing difficulty of fixing older software. The term is derived from analogies to metalworking.

When software is new, it is, essentially, infinitely malleable; it can be formed to be whatever is wanted by the implementors. But as the software in a given project grows larger and larger, and develops a larger base of users with long experience with the software, it becomes less and less malleable. Like a metal that has been work hardened, the software becomes a legacy system, brittle and unable to be easily changed without fracturing the entire system.

There are many reasons behind this brittleness:

  • Users expect a relatively constant user interface; once a feature has been implemented and exposed to the users, it's very difficult to convince them to accept major changes to that feature, even if the feature was not well designed to begin with or the existence of the feature blocks further progress.
  • A great deal of documentation may describe the current behavior and would be expensive to change. In addition, it is essentially impossible to recall all copies of the existing documentation so users are likely to be referring back to obsolete manuals anyway.
  • The original implementors (who knew how things really worked) have moved on and left insufficient documentation of the internal workings of the software. Many small implementation details were only understood through the oral traditions of the design team and many of these details eventually are irretrievably lost, although some can be re-discovered through the diligent (and expensive) application of software archeology.
  • Patches have probably been issued throughout the years, subtly changing the behavior of the software. In many cases, these patches, while correcting the overt failure for which they were issued, introduce other, more subtle, failures into the system. These subtle failures make subsequent changes to the system far more difficult.

It is common for software systems to become slightly brittle within, say, five years and nearly unmaintainable within fifteen years. It is a rare, very-well-managed software project which can be sustained for a longer time than that. More often, the old code base will simply be abandoned and a brand-new system started from scratch; the new system can be free of many of the burdens of the legacy system.

Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.