

How to Avoid Feature Creep - spencerfry
http://gigaom.com/2008/08/17/fr-how-to-avoid-feature-creep-with-your-software-apps/

======
DarkShikari
The worst kind of feature creep is the kind mandated by your own customers.

And not "we want a menu here" but "we need a transcoding mode that allows us
to specify the stream PIDs directly, and if we don't get it, we're not
buying".

And when a million dollars is on the line, even if nobody else will use that
feature, you can't really refuse.

~~~
joshwa
The best you can do in that instance is to code it (and bill it!) as a
'customization' that is maintained separately from the core code. That way
code to satisfy the cranky customer doesn't have to affect (infect?) your
other customers' experience.

~~~
DarkShikari
Maintaining code branches is its own nightmare--far worse than including it in
the main code, in my experience, since you have to backport all future fixes
in some fashion.

~~~
joshwa
Not a code branch-- a extension/plugin.

(and then you can bill the customer again to port it to the latest version)

~~~
briansmith
Then you have to maintain the plugin interface. It is usually better to just
use a hidden setting (see about:config in Firefox) to control access to these
things. K.I.S.S.

------
DenisM
The fun part is that if you are possessed by feature creep you don't know
about it. I have had many a conversation where someone would say "we must ship
absolute minimum of features in v1" and then turn around and argue for some
favorite toy feature in the same breath. Looking back I see myself doing the
same. This is one thing I wish i could undo, it would have saved us months off
development time.

Makes me wonder if I am still possessed, and oblivious.

------
ojbyrne
A tip I remember from somewhere goes something like "if a feature provides
more value than the effort required to learn how to use it (for the average
user) then its a good addition." Admittedly there's some unknowns in there.

