Feature creep

Last updated

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.

Contents

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] [ verification needed ] 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. [4] 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. [5]

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 editions. For software user interfaces, 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 interfaces and command line interfaces, 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. 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.[ citation needed ]

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.[ citation needed ]

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 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

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]

See also

Related Research Articles

<span class="mw-page-title-main">Netscape Navigator</span> Web browser by Netscape released in 1994

Netscape Navigator is a discontinued proprietary web browser, and the original browser of the Netscape line, from versions 1 to 4.08, and 9.x. It was the flagship product of the Netscape Communications Corp and was the dominant web browser in terms of usage share in the 1990s, but by around 2003 its user base had all but disappeared. This was partly because the Netscape Corporation did not sustain Netscape Navigator's technical innovation in the late 1990s.

Netscape Communications Corporation was an American independent computer services company with headquarters in Mountain View, California, and then Dulles, Virginia. Its Netscape web browser was once dominant but lost to Internet Explorer and other competitors in the so-called first browser war, with its market share falling from more than 90 percent in the mid-1990s to less than one percent in 2006. An early Netscape employee Brendan Eich created the JavaScript programming language, the most widely used language for client-side scripting of web pages and a founding engineer of Netscape Lou Montulli created HTTP cookies. The company also developed SSL which was used for securing online communications before its successor TLS took over.

Jamie Werner Zawinski, 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 XScreenSaver. He is also the proprietor of DNA Lounge, a nightclub and live music venue in San Francisco.

Gecko is a browser engine developed by Mozilla. It is used in the Firefox browser, the Thunderbird email client, and many other projects.

<span class="mw-page-title-main">ActiveX</span> Software framework by Microsoft introduced in 1996

ActiveX is a deprecated software framework created by Microsoft that adapts its earlier Component Object Model (COM) and Object Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from the World Wide Web. Microsoft introduced ActiveX in 1996. In principle, ActiveX is not dependent on Microsoft Windows operating systems, but in practice, most ActiveX controls only run on Windows. Most also require the client to be running on an x86-based computer because ActiveX controls contain compiled code.

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 user-perceptible improvements or suffering from feature creep. The term is not applied consistently; it is often used as a pejorative by end users (bloatware) to describe undesired user interface changes even if those changes had little or no effect on the hardware requirements. In long-lived software, perceived bloat can occur from the software servicing a large, diverse marketplace with many differing requirements. Most end users will feel they only need some limited subset of the available functions, and will regard the others as unnecessary bloat, even if end users with different requirements require those functions.

<span class="mw-page-title-main">Screen reader</span> Assistive technology that converts text or images to speech or Braille

A screen reader is a form of assistive technology (AT) that renders text and image content as speech or braille output. Screen readers are essential to people who are blind, and are useful to people who are visually impaired, illiterate, or have a learning disability. Screen readers are software applications that attempt to convey what people with normal eyesight see on a display to their users via non-visual means, like text-to-speech, sound icons, or a braille device. They do this by applying a wide variety of techniques that include, for example, interacting with dedicated accessibility APIs, using various operating system features, and employing hooking techniques.

<span class="mw-page-title-main">Browser wars</span> Competition between web browsing applications for share of worldwide usage

A browser war is a competition for dominance in the usage share of web browsers. The "first browser war," (1995–2001) consisted of Internet Explorer and Navigator. Browser wars continued with the decline of Internet Explorer's market share and the popularity of other browsers, including Firefox, Google Chrome, Safari, Microsoft Edge and Opera.

In computing, the User-Agent header is an HTTP header intended to identify the user agent responsible for making a given HTTP request. Whereas the character sequence User-Agent comprises the name of the header itself, the header value that a given user agent uses to identify itself is colloquially known as its user agent string. The user agent for the operator of a computer used to access the Web has encoded within the rules that govern its behavior the knowledge of how to negotiate its half of a request-response transaction; the user agent thus plays the role of the client in a client–server system. Often considered useful in networks is the ability to identify and distinguish the software facilitating a network session. For this reason, the User-Agent HTTP header exists to identify the client software to the responding server.

This is a comparison of both historical and current web browsers based on developer, engine, platform(s), releases, license, and cost.

<span class="mw-page-title-main">Netscape Browser</span> Internet browser

Netscape Browser is the eighth major release of the Netscape series of web browsers, now all discontinued. It was published by AOL, but developed by Mercurial Communications, and originally released for Windows on May 19, 2005.

<span class="mw-page-title-main">Minimo</span>

Minimo was a project to create a version of the Mozilla web browser for small devices like personal digital assistants and mobile phones.

Mozilla Firefox has features which distinguish it from other web browsers, such as Google Chrome, Safari, and Microsoft Edge.

The history of the Mozilla Application Suite began with the release of the source code of the Netscape suite as an open source project. Going through years of hard work, Mozilla 1.0 was eventually released on June 5, 2002. Its backend code base, most notably the Gecko layout engine, has become the foundation of a number of applications based on Mozilla, including the Mozilla Foundation's flagship product Mozilla Firefox and Mozilla Thunderbird. While the suite is no longer a formal Mozilla product, its development and maintenance is continued as the SeaMonkey community project.

<span class="mw-page-title-main">Mozilla Application Suite</span> Discontinued Internet suite

The Mozilla Application Suite is a discontinued cross-platform integrated Internet suite. Its development was initiated by Netscape Communications Corporation, before their acquisition by AOL. It was based on the source code of Netscape Communicator. The development was spearheaded by the Mozilla Organization from 1998 to 2003, and by the Mozilla Foundation from 2003 to 2006.

<span class="mw-page-title-main">Netscape (web browser)</span> Family of web browsers

The Netscape web browser is the general name for a series of web browsers formerly produced by Netscape Communications Corporation, which eventually became a subsidiary of AOL. The original browser was once the dominant browser in terms of usage share, but as a result of the first browser war, it lost virtually all of its share to Internet Explorer due to Microsoft's anti-competitive bundling of Internet Explorer with Windows.

Companies whose business centers on the development of open-source software employ a variety of business models to solve the challenge of how to make money providing software that is by definition licensed free of charge. Each of these business strategies rests on the premise that users of open-source technologies are willing to purchase additional software features under proprietary licenses, or purchase other services or elements of value that complement the open-source software that is core to the business. This additional value can be, but not limited to, enterprise-grade features and up-time guarantees to satisfy business or compliance requirements, performance and efficiency gains by features not yet available in the open source version, legal protection, or professional support/training/consulting that are typical of proprietary software applications.

A web browser is a software application for retrieving, presenting and traversing information resources on the World Wide Web. It further provides for the capture or input of information which may be returned to the presenting system, then stored or processed as necessary. The method of accessing a particular page or content is achieved by entering its address, known as a Uniform Resource Identifier or URI. This may be a web page, image, video, or other piece of content. Hyperlinks present in resources enable users easily to navigate their browsers to related resources. A web browser can also be defined as an application software or program designed to enable users to access, retrieve and view documents and other resources on the Internet.

<span class="mw-page-title-main">Software feature</span> Distinguishing characteristic or capability of software

In software, the term feature has several definitions, which are often distinct from the more general definitions of the term. The Institute of Electrical and Electronics Engineers (IEEE) defines the term in IEEE 829 as a "distinguishing characteristic of a software item ".

Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting exclusively free software and open standards, with only minor exceptions. The community is supported institutionally by the non-profit Mozilla Foundation and its tax-paying subsidiary, the Mozilla Corporation.

References

  1. J.M. Sullivan (8–10 June 2005). "Impediments to and incentives for automation in the Air Force". Proceedings. 2005 International Symposium on Technology and Society, 2005. Weapons and Wires: Prevention and Safety in a Time of Fear. ISTAS 2005. pp. 101–110. doi:10.1109/ISTAS.2005.1452719. ISBN   0-7803-9284-1. S2CID   21079766.
  2. Featuritis (or creeping featurism). January 2024.
  3. Davis, F.D.; Venkatesh, V. (February 2004), "Toward preprototype user acceptance testing of new information systems: implications for software project management", IEEE Transactions on Engineering Management, 51, 51 (1): 31–46, doi:10.1109/TEM.2003.822468, ISSN   0018-9391, S2CID   1204079
  4. 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. hdl: 11311/1228318 . ISSN   1943-5479. S2CID   250326876.
  5. Kenneth S. Norton (2001), Applying Cross-Functional Evolutionary Methodologies to Web Development, paper in Web Engineering: Managing Diversity and Complexity of Web published by Springer, ISBN   3-540-42130-0
  6. Double Fine splits Broken Age in half to fund completion, By Kris Ligman, 2013-07-02, Gamasutra
  7. feeping creaturism, 2016-05-27, FOLDOC.org - The Free On-line Dictionary of Computing
  8. Raymond, Eric S.; et al. (December 29, 2003). "feeping creaturism". The Jargon File. Ver. 4.4.7. Retrieved June 20, 2017.
  9. Raymond, Eric S.; et al. (December 29, 2003). "feeping creature". The Jargon File. Ver. 4.4.7. Retrieved June 20, 2017.
  10. Raymond, Eric S.; et al. (December 29, 2003). "feep". The Jargon File. Ver. 4.4.7. Retrieved June 20, 2017.