Creeping featurism
From Wikipedia, the free encyclopedia
Creeping featurism, or creeping featuritis, is a phrase used to describe software which over-emphasizes new features to the detriment of other design goals, such as simplicity, compactness, stability, or bug reduction. The term is often spoonerized as feeping creaturism, a term intended to bring the image of the encroaching features as small, seemingly benign animals that creep into a program, making their trademark noises and demanding their own space, soon taking over the entire project.
Creeping featurism is often accompanied by the mistaken belief that "one small feature" will add zero incremental cost to a project, where cost can be money, time, effort, or energy. A related term, feature creep, describes the tendency for a software project's completion to be delayed by the temptation to keep adding new features, without a specific goal.
Creeping featurism is an example of an anti-pattern.
Creeping featurism is usually associated with marketing, sales, or program management roles. However, developers are not immune to letting features creep in to a software product; many people criticize Emacs as being a prime example of creeping featurism. Emacs proponents, however, tout Emacs' all-in-one nature as one of its primary benefits. Multi-paradigm languages such as C++ have also faced such criticism.
Creeping featurism can endanger and even kill entire projects. Apple Computer's Copland software is an example of this, as feature creep continuously delayed the project. This is also given as a reason for the long development time for Windows Vista.
[edit] Related quotes
"The cheapest, fastest, and most reliable components are those that aren't there." — Gordon Bell
"There are two ways of constructing a software design; one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." — C. A. R. Hoare
"A designer knows when he has reached perfection, not when there is nothing more to add, but when there is nothing left to take away." — Antoine de Saint-Exupéry
"Make everything as simple as possible, but not simpler." — Albert Einstein
"In Jeet Kune Do, one does not accumulate but eliminate. It is not daily increase but daily decrease. The height of cultivation always runs to simplicity." — Bruce Lee
[edit] See also
- Functionality creep, when a physical document or other non-computer related procedure ends up serving unexpected or unplanned purposes.
- Scope creep, when the features of a project gradually increase.
- Software bloat, the inefficient use of memory and storage space.
- Design document, which should prevent feature creep (if done well)
- Mission creep, similar phenomenon in the military
[edit] External links
- The Interaction-Design.org Encyclopedia entry on Creeping Featurism (Featuritis)
- Creeping Featuritis article from the Pattern Repository's Wiki