Feature creep
Feature creep is the excessive ongoing expansion or addition of new features in a product,[1] especially in computer software, video games (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.
For the project management concept, see scope creep.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.[2] Feature creep is one of the most common sources of cost and schedule overruns.[3] It thus endangers and can even kill products and projects.
Causes[edit]
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.[4] As more features are added to support each approach, cross-conversion features between the multiple paradigms may further complicate the total features.
Consequences[edit]
Expansion of scope[edit]
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[edit]
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 was planned to be a minor release between Windows XP 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 (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.
Double Fine Adventures' Kickstarter 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.[6]
Feeping creaturism[edit]
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,[7] personifying the scope-crept product as "a misshapen creature of hacks ... prowling about in the dark",[8] and the harbinger of more creep to come.[9] ("Feeping" is a jargon synonym of "beeping".)[10]