Software feature

In software, the term feature has several definitions.[1] The Institute of Electrical and Electronics Engineers defines the term in IEEE 829 (a now-defunct standard for software test documentation) as a "distinguishing characteristic of a software item (e.g., performance, portability, or functionality)".[2]
Background
Even before the advent of electronic computers in the mid-to-late 20th century, a device having distinguishing features was often considered important. For example, the British Royal Navy's HMS Dreadnought (1906) was considered an important milestone in naval technology because of its advanced features that did not exist in pre-dreadnought battleships.[3]
Feature-rich software and feature creep
A piece of software is said to be "feature-rich" when it has many options and functional capabilities available to the user. One popular mechanism for introduction feature-rich software to the user is the concept of progressive disclosure, a technique where features are introduced gradually as they become required to reduce the potential confusion caused by displaying a wealth of features at once.[4]
In some cases, a piece of software being feature-rich can be considered a negative attribute. The terms feature creep, software bloat, and featuritis (a reference to the common usage of the suffix -itis to refer to an inflammatory disease) can be used to refer to software that is overly feature-rich.[5] This type of excessive inclusion of features is in some cases a result of design by committee.[6]
In order to counteract the tendency of software developers to add additional, unnecessary features, the Unix philosophy was developed in the 1970s by Bell Labs employees such as Ken Thompson and Dennis Ritchie. The Unix philosophy can be summarized as stating that software programs should generally only complete one primary task and that "small is beautiful".[7][8]
See also
- Feature-oriented programming
- Product family engineering
- Software design
- Software testing
- Application lifecycle management
References
- ^ Apel, Sven; Kästner, Christian (August 2009). "An Overview of Feature-Oriented Software Development". Journal of Object Technology. 8 (5): 49-84.
- ^ IEEE Std. 829-1998
- ^ "How the Dreadnought sparked the 20th Century's first arms race".
- ^ User centered system design: new perspectives on human-computer interaction. Norman, Donald A., Draper, Stephen W. Hillsdale, N.J.: L. Erlbaum Associates. 1986. ISBN 0-89859-781-1. OCLC 12665902.
{{cite book}}
: CS1 maint: others (link) - ^ "Featuritis (or creeping featurism)".
- ^ Krystallis, Ilias; Locatelli, Giorgio (2022-09-01). "Normalizing White-Collar Wrongdoing in Professional Service Firms". Journal of Management in Engineering. 38 (5): 04022049. doi:10.1061/(ASCE)ME.1943-5479.0001079. ISSN 1943-5479. S2CID 250326876.
- ^ Doug McIlroy; E. N. Pinson; B. A. Tague (8 July 1978). "Unix Time-Sharing System: Foreword". The Bell System Technical Journal. Bell Laboratories: 1902–1903.
- ^ "The Unix Philosophy".