Feature Creep

The tendency to add "just another little feature" ...until the whole product is overwhelmed with them.

Examples: Perl Language, most Micro Soft products.


Since there are still people who in all seriousness suggest that adding a new feature is better than fixing a bug, on this wiki no less!, it behooves us to explain, or at least to prove beyond the shadow of a doubt, why such an attitude is backwards and antedeluvian.

The generalization of the following to all software development should be obvious. From Sensible design principles for new networks and services (www.firstmonday.org )

Our studies about the usefulness of communication services indicate that a small set of basic features is able to provide a great majority of benefits (Pohjola and Kilkki, 2004). Any additional feature, for instance a QoS mechanism, typically provides only a marginal gain that is easily lost due to the additional efforts needed to manage and operate the network. Therefore, although it may seem reasonable to develop a new capability, the following matters must be carefully considered:

Better service for a set of users does not imply better user experience in general, because better service for someone usually means worse or no service for some other users.

Better technical performance does not directly imply better business performance, because the relationship between transmitted bytes and operator profit varies vastly from case to case.

Complex methods to boost performance or service quality are likely to generate complex interactions that may seriously complicate network management, and actually cancel out any positive effects.


Being a fan of toaster ovens, I've observed bloat over the years in the front panels. The old style ones had just two sliders/knobs: temperature and duration. (Perhaps a third option, fan level could be considered.) Now they have too many buttons and too many modes, often buttons for specific foods. Newbies cannot use them without training, spending lots of time experimenting, or reading the manual. I'd rather go back to the 2 or 3 sliders, but perhaps with a digital read-out to better monitor the levels. It is easier to bump a slider up or down than push 3 buttons roughly 8 times total. We've regressed.


The worst example of this IMO are the on-screen monitor 'control panels' instead of using the obvious one-per-button control. Every monitor is different and it takes me 40x longer to adjust brightness. I used to just move a slider/button and directly adjust it. Now I have to press Menu, plus and minus buttons, option buttons, etc, navigating some arcane proprietary UI that won't exit until I wait 5 seconds.


See original on c2.com