Feature creep is the excessive ongoing expansion or addition of new
features in a product, especially in
computer software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
,
video games
A video game or computer game is an electronic game that involves interaction with a user interface or input device (such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device) to generate visual fe ...
(where it should not be confused with
power creep) and
consumer and business electronics. These extra features go beyond the basic function of the product and can result in
software bloat and over-complication, rather than simple design.
The definition of what qualifies as "feature creep" varies among
end users, where what is perceived as such by some users may be considered practical functionality by others. Feature creep is one of the most common sources of
cost
Cost is the value of money that has been used up to produce something or deliver a service, and hence is not available for use anymore. In business, the cost may be one of acquisition, in which case the amount of money expended to acquire it i ...
and schedule overruns. It thus endangers and can even kill products and projects.
Causes
Feature creep may arise from the desire to provide the consumer with a more useful or desirable product in order to increase sales or distribution. Once a product does everything that it is designed to do, the manufacturer may add functions some users might consider unneeded (sometimes at the cost of efficiency) or continue with the original version (at the cost of a perceived lack of improvement).
Feature creep may also arise as a result of
compromise from a committee implementing several different viewpoints or
use cases in the same product, even for opportunistic reasons. As more features are added to support each approach, cross-conversion features between the multiple paradigms may further complicate the total features.
Control
There are several methods to control feature creep, including: strict limits for allowable features, multiple variations, and pruning excess features.
Separation
Later feature creep may be avoided by basing initial design on strong software fundamentals, such as logical separation of functionality and data access, e.g. using submenus that are optionally accessible by
power users who desire more functionality and a higher verbosity of information. It can be actively controlled with rigorous
change management and by delaying changes to later delivery phases of a project.
Variations and options
Another method of controlling feature creep is maintaining multiple variations of products, where features are limited and reduced in the more basic variations, e.g.
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
editions. For software
user interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine fro ...
s, viewing modes or operation modes can be used (e.g. basic mode or expert mode), between which the users can select to match their own needs.
Both in many
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
s and
command-line interface
A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
s, users are able to opt in for a higher verbosity manually. In the latter case, in many command-line programs, adding a
-v
or
--verbose
option manually, does show more detailed information that might be less relevant to minimal users, but useful to power users or for debugging and troubleshooting purposes.
Because the ever-growing, ever-expanding addition of new features might exceed available resources, a minimal core "basic" version of a product can be maintained separately, to ensure operation in smaller operating environments. Using the "80/20 rule", the more basic product variations might fulfill the needs of the majority (e.g. ~80%) of the users, so they would not be subjected to the complexity (or extra expense) of features requested by the advanced 20% of users. The extra features are still available, but optional and ready to be utilized for those who solicit them, but they have not been implemented into the basic versions of the products.
Modularity
Another solution for feature creep is
modularity
Modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use. The concept of modularity is used primarily to reduce complexity by breaking a system into varying ...
. Power users who require more functionality can retrofit needed features by downloading software modules,
plug-ins, add-ons (also known as add-ins) and custom themes to match their personal requirements.
Pruning
At some point, the cost of maintaining a particular subset of features might become prohibitive, and pruning can be used. A new product version can omit the extra features, or perhaps a transition period would be used, where old features were
deprecated before eventual removal from the system. If there are multiple variations of products, then some of them might be phased out of use. One major example is the
Samsung Galaxy S6, released March 2015, of which significantly many software/menu features and also some hardware features were pruned. A “more functional” variation of it hasn't been released.
Consequences
Expansion of scope
Occasionally, uncontrolled feature creep can lead to products that surpass the scope of what was originally intended; this is known as
scope creep. A common consequence of feature creep is the delay or cancellation of a product, which may become more expensive than was originally intended.
Delays
Often, a reasonably feature-complete software project, or one with moderate amounts of feature creep, can survive and even thrive through many iterations, but its successor release may suffer substantial delays once a decision is taken to rewrite the whole code base in addition to introducing new technologies. For example, Microsoft's
Windows Vista
Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, released five years earlier, which was then the longest time span between successive releases of Microsoft W ...
was planned to be a minor release between
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct successor to Windows 2000 for high-end and business users a ...
and its successor codenamed
Windows "Blackcomb" (released as Windows 7), but after adapting more and more features from Blackcomb (many of which were eventually cancelled), Vista turned out to become a major release which took five years of development.
A similar fate was suffered by
Netscape 6, which was originally supposed to be
Netscape 5. The 1998 decision by Netscape Communications to open-source its Netscape Navigator browser and Communicator Internet suite (both code-named Mozilla) soon made it obvious that the underlying code was too difficult, and required a complete rewrite of Mozilla, which fostered the creation of the
Mozilla application framework. This caused significant delays, Netscape 5 was skipped, and the company was purchased by AOL. The subsequent release of Netscape 6.00 in 2000 was widely criticized as alpha-level code, and the project reached stability by Netscape 6.1 in 2001, three years after the decision to rework the Internet suite. By that time, Microsoft's Internet Explorer browser had long-eclipsed Netscape in usage share, which had diminished to single digits.
Even after reaching stability and attaining some necessary new features, the open-source
Mozilla Application Suite
The Mozilla Application Suite (originally known as Mozilla, marketed as the Mozilla Suite) is a discontinued cross-platform integrated Internet suite. Its development was initiated by Netscape Communications Corporation, before their acquisition ...
(then named just Mozilla), on which AOL built Netscape, was viewed as "
bloated". Just a year later, a group of Mozilla developers decided to separate the browser component, which eventually became
Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curr ...
.
Double Fine Adventures'
Kickstarter
Kickstarter, PBC is an American Benefit corporation, public benefit corporation based in Brooklyn, New York City, that maintains a global crowdfunding platform focused on creativity. The company's stated mission is to "help bring creative project ...
project ''
Broken Age'' is another example of a project being delayed by feature creep. Originally supposed to have a release date of October 2012, the first half of the game was released in January 2014 while the second half followed late April 2015, and required two separate funding rounds to complete.
Feeping creaturism
Feature creep combined with short deadlines will often lead to a
"hacky solution". The desired change may be large enough to warrant a redesign of the existing project foundation, but deadline pressure instead requires developers to rush and put out a less-refined product. The
spoonerism "feeping creaturism" was coined to emphasize a developer's dislike of this situation,
feeping creaturism
2016-05-27, FOLDOC.org - The Free On-line Dictionary of Computing personifying the scope-crept product as "a misshapen creature of hacks ... prowling about in the dark", and the harbinger of more creep to come. ("Feeping" is a jargon synonym of "beeping".)
See also
* Autobesity
* Design document
A software design description (a.k.a. software design document or SDD; just design document; also Software Design Specification) is a representation of a software design that is to be used for recording design information, addressing various de ...
* Digital hoarding
* Emacs
Emacs (), originally named EMACS (an acronym for "Editor Macros"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, s ...
, a text editor
A text editor is a type of computer program that edits plain text. An example of such program is "notepad" software (e.g. Windows Notepad). Text editors are provided with operating systems and software development packages, and can be used to c ...
that has been extended to do many other tasks
* Greenspun's tenth rule
* KISS principle
KISS, an acronym for "Keep it simple, stupid!", is a design principle first noted by the U.S. Navy in 1960. First seen partly in American English by at least 1938, KISS implies that simplicity should be a design goal. The phrase has been associate ...
* Minimalism in computing
* Mission creep
* Overengineering
* Scope creep
* Second-system effect
* Software bloat
* Plug-in (computing)
In computing, a plug-in (also spelled plugin) or add-in (also addin, add-on, or addon) is a software component that extends the functionality of an existing software system without requiring the system to be software build, re-built. A plug-in ...
* Unix philosophy
The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to Minimalism (computing), minimalist, Modularity (programming), modular software development. It is based on the experience of leading devel ...
* Zawinski's law of software envelopment
* Enshittification, of which feature creep can be a component
References
External links
Creeping Featuritis
ContentCreationWiki (registered o
October 23, 1995
at the latest.)
{{DEFAULTSORT:Feature Creep
Software features
Software project management
Software requirements