Feature creep
From Wikipedia, the free encyclopedia
Feature creep is the proliferation of features in a product such as computer software.[1] These often go beyond the basic function of the product and so can result in baroque over-complication rather than simple, elegant design.
Contents |
[edit] Causes
The most common cause is the desire to provide the consumer with a more useful or desirable product, in order to increase sales. However, the point often comes where a product does everything it's expected to do, leaving the manufacturer with the choice of adding unneeded functions or sticking with the old product.
[edit] Examples
This section does not cite any references or sources. (May 2008) Please help improve this section by adding citations to reliable sources. Unverifiable material may be challenged and removed. |
Watches are a good example. Originally there were only 12-hour mechanical watches. The expansion of function to include a 24-hour clock, waterproofing, battery power, digital LCD displays, quartz crystal timing, and lights and/or glow-in-the-dark displays were certainly helpful in telling time. Further additions such as adding alarms, stopwatch functions, calendars, and phases of the moon were less applicable to the core function of telling time, but at least still related. Some watch makers then went further and included calculators and video games on watches, which are far from the basic function of a watch. Furthermore, these functions don't work well on a watch, since the buttons and display must be tiny relative to normal calculators and video games, making them second-rate at those functions.
[edit] Characteristics
Feature creep is the most common source of cost and schedule overruns.[2] It thus endangers and can even kill products and projects. Apple's abandoned Copland operating system is an example of this.
[edit] Control
Feature creep may be actively controlled by rigorous change management and by delaying changes to later delivery phases of the project.[3]
[edit] See also
[edit] Mitigation
- Keep It Simple, Stupid
- Design document, which should prevent feature creep (if done well)
- Unix philosophy
- Software extension
- Minimalism
[edit] References
- ^ J.M. Sullivan (8-10 June 2005), Impediments to and incentives for automation in the Air Force, pp. 101-110, <http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1452719>
- ^ Davis, F.D. and Venkatesh, V. (February 2004), Toward preprototype user acceptance testing of new information systems: implications for software project management, vol. 51 issue 1, IEEE Transactions on Engineering Management, ISSN 0018-9391, <http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1266852>
- ^ 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 3540421300, <http://books.google.co.uk/books?id=Ak5slktYul8C>