|
Software brittleness is the ironic term that describes the increasing difficulty of fixing older software. The term is derived from analogies to metalworking. Metalworking is the craft and practice of working with metals to create parts or structures. ...
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. Malleability is a physical property of matter, signifying its capability of deformation, especially by hammering or rolling. ...
A legacy system is an antiquated computer system or application program which continues to be used because the user (typically an organisation) does not want to replace or redesign it. ...
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 orginal 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 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. The user interface is the part of a system exposed to users. ...
In general terms, documentation is any communicable material (such as text, video, audio, etc. ...
Oral history is an account of something passed down by word of mouth from one generation to another. ...
See also |