Undocumented features are frequently found in computer software releases. Sometimes the documentation is omitted through simple oversight, but undocumented features are often elements of the software not intended for use by end users, but left available for use by the vendor for software support and development.
Since the suppliers of the software usually consider the software documentation to constitute a contract for the behavior of the software, undocumented features are generally left unsupported, and may be removed or changed at will and without notice to the users. This makes using undocumented features a double-edged sword.
Sometimes such a feature (for example, the ability to change the switch character in MS-DOS, usually to a hyphen) is included for compatibility (in this case with Unix utilities) or future-expansion reasons, but the software provider changes their mind or goes out of business; the absence of documentation makes it easier to justify the feature's removal.
New versions of software might omit mention of old (possibly superseded) features in documentation but keep them implemented for users who've grown accustomed to them.
In other cases, software bugs are referred to jokingly as undocumented features. ("It's not a bug; it's an undocumented feature!")  This usage may have been popularised in some of Microsoft's responses to bug reports for its first "Word for Windows" product. (James Gleick, What Just Happened, ch.1), but doesn't originate there. The first reference on Usenet that survives dates to 5 March, 1984. Between 1969 and 1972, Sandy Mathes, a systems programmer for PDP-8 software at Digital Equipment Corporation (DEC) in Maynard, MA, used the terms "bug" and "feature" in her reporting of test results to distinguish between undocumented actions of delivered software products that were unacceptable and tolerable, respectively. This usage may have been perpetuated.
Ironically, undocumented features themselves have become a major feature of computer games. Developers often include various cheats and other special features ("easter eggs") that are not explained in the packaged material, but have become part of the "buzz" about the game on the Internet and among gamers. The undocumented features of foreign games are often elements that were not localized from their native language.
Closed source APIs can also have undocumented functions that are not generally known. These are sometimes used to gain a commercial advantage over 3rd-party software by providing additional information or better performance to the application provider.
Full article ▸