Feature creep is the excessive ongoing expansion or addition of new
features
Feature may refer to:
Computing
* Feature (CAD), could be a hole, pocket, or notch
* Feature (computer vision), could be an edge, corner or blob
* Feature (software design) is an intentional distinguishing characteristic of a software item ...
in a product, especially in
computer software
Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.
At the lowest programming level, executable code consists ...
,
video games
Video games, also known as computer games, are electronic games 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 gener ...
and
consumer and business electronics. These extra features go beyond the basic function of the product and can result in
software bloat
Software bloat is a process whereby successive versions of a computer program become perceptibly slower, use more memory, disk space or processing power, or have higher hardware requirements than the previous version, while making only dubious use ...
and over-complication, rather than simple design.
The definition of what qualifies as "feature creep" does vary among end users, where what is perceived as such by some users may be considered practical functionality by others.
Causes
The most common cause of feature creep is the desire to provide the consumer with a more useful or desirable product, in order to increase sales or distribution. However, once the product reaches the point at which it does everything that it is designed to do, the manufacturer is left with the choice between adding functions some users might consider unneeded (sometimes at the cost of efficiency), and sticking with the old version (at the cost of a perceived lack of improvement).
Another major cause of feature creep might be a
compromise from a committee which decides to implement multiple, different viewpoints or use cases in the same product, even for opportunistic reasons. Then, as more features are added to support each approach, it might be necessary to have cross-conversion features between the multiple paradigms, further complicating the total features.
Characteristics
Feature creep is one of the most common sources of
cost
In production, research, retail, and accounting, a 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 ...
and schedule overruns. It thus endangers and can even kill products and projects.
Control
There are several methods to control feature creep, including: strict limits for allowable features, multiple variations, and pruning excess features.
Separation
Temptation of later feature creep may be avoided to some degree by basing initial design on strong software fundamentals, such as logical separation of functionality and data access, e.g. using submenus which are optionally accessible by
power user
A power user is a user of computers, software and other electronic devices, who uses advanced features of computer hardware, operating systems, programs, or websites which are not used by the average user. A power user might not have extensive tec ...
s who desire more functionality and a higher
verbosity
Verbosity or verboseness is speech or writing that uses more words than necessary. The opposite of verbosity is plain language. Some teachers, including the author of ''The Elements of Style'', warn against verbosity; similarly Mark Twain and Er ...
of information. It can be actively controlled with rigorous
change management
Change management (sometimes abbreviated as CM) is a collective term for all approaches to prepare, support, and help individuals, teams, and organizations in making organizational change. It includes methods that redirect or redefine the use of ...
and by delaying changes to later delivery phases of a project.
Variations and options
Another method of controlling feature creep is to maintain multiple variations of products, where features are kept limited and reduced in the more basic variations, e.g.
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
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 f ...
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
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
s and
command line interface
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
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 Pareto principle states that for many outcomes, roughly 80% of consequences come from 20% of causes (the "vital few"). Other names for this principle are the 80/20 rule, the law of the vital few, or the principle of factor sparsity.
Manage ...
", 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. 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 could simply 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
The Samsung Galaxy S6 is a line of Android-based smartphones manufactured, released and marketed by Samsung Electronics. Succeeding the Samsung Galaxy S5, the S6 was not released as a singular model, but instead in two variations unveiled and ...
, 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 far beyond the scope of what was originally intended; this is known as
scope creep
Scope creep (also called requirement creep, or kitchen sink syndrome) in project management refers to changes, continuous or uncontrolled growth in a project’s scope, at any point after the project begins. This can occur when the scope of a pr ...
. However, a more common consequence of feature creep is a delay or cancellation of the 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, which was released five years before, at the time being the longest time span between successive releases of ...
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 upgrade to its predecessors, Windows 2000 for high-end and ...
and its successor codenamed
Windows "Blackcomb"
Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on July 22, 2009, and became generally available on October 22, ...
, 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 Netscape web browser is the general name for a series of web browsers formerly produced by Netscape, Netscape Communications Corporation, which eventually became a subsidiary of AOL. The original browser was once the dominant browser in ter ...
. 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 (then named just Mozilla), on which AOL built Netscape, was viewed as "
bloated
Abdominal bloating (or simply bloating) is a short-term disease that affects the gastrointestinal tract. Bloating is generally characterized by an excess buildup of gas, air or fluids in the stomach. A person may have feelings of tightness, pressu ...
". Just a year later, a group of Mozilla developers decided to separate the browser component, which eventually became
Firefox.
Double Fine Adventures'
Kickstarter
Kickstarter is an American public benefit corporation based in Brooklyn, New York, that maintains a global crowdfunding platform focused on creativity. The company's stated mission is to "help bring creative projects to life". As of July 2021, ...
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 just "make it work" with a less elegant approach. The humorous
spoonerism
A spoonerism is an occurrence in speech in which corresponding consonants, vowels, or morphemes are switched (see metathesis) between two words in a phrase. These are named after the Oxford don and ordained minister William Archibald Spooner, w ...
"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
* Creeping elegance
* Design document
* Digital hoarding
Digital hoarding (also known as e-hoarding, e-clutter, datahoarding, digital pack-rattery or cyberhoarding) is defined by researchers as an emerging sub-type of hoarding disorder characterized by individuals collecting excessive digital materia ...
* 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. Such programs are sometimes known as "notepad" software (e.g. Windows Notepad). Text editors are provided with operating systems and software development packages, and can be us ...
that has been extended to do many other tasks
* Greenspun's tenth rule
* KISS principle
* Minimalism in computing
* Mission creep
Mission creep is the gradual or incremental expansion of an intervention, project or mission, beyond its original scope, focus or goals, a ratchet effect spawned by initial success. Mission creep is usually considered undesirable due to how each su ...
* Overengineering Overengineering (or over-engineering), is the act of designing a product or providing a solution to a problem in an elaborate or complicated manner, where a simpler solution can be demonstrated to exist with the same efficiency and effectiveness as ...
* Scope creep
Scope creep (also called requirement creep, or kitchen sink syndrome) in project management refers to changes, continuous or uncontrolled growth in a project’s scope, at any point after the project begins. This can occur when the scope of a pr ...
* Second-system effect
* Software bloat
Software bloat is a process whereby successive versions of a computer program become perceptibly slower, use more memory, disk space or processing power, or have higher hardware requirements than the previous version, while making only dubious use ...
* Plug-in (computing)
In computing, a plug-in (or plugin, add-in, addin, add-on, or addon) is a software component that adds a specific feature to an existing computer program. When a program supports plug-ins, it enables customization.
A theme or skin is a pre ...
* Unix philosophy
The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development. It is based on the experience of leading developers of the Unix operating system. Early Unix dev ...
* Zawinski's law of software envelopment
Jamie Zawinski (born November 3, 1968), commonly known as jwz, is an American computer programmer, blogger and impresario. He is best known for his role in the creation of Netscape Navigator, Netscape Mail, Lucid Emacs, Mozilla.org, and XScre ...
References
External links
Creeping Featuritis
ContentCreationWiki (registered o
October 23, 1995
at the latest.)
{{DEFAULTSORT:Feature Creep
Anti-patterns
Software features
Software project management
Software requirements