Steps to avoid feature creep

  1. Create a list of features for the planned product version.
    • Some people call this a specification.
    • You know you can ship when the planned features are implemented and tested.
  2. Get product stakeholders approval on specified features before implementation begins.
    • The agreement on specified features helps everybody (developers, testers, sales, marketing, customers) know what the product is supposed to do when it’s done.
  3. Create a feature wish-list to collect suggested future features.
    • The key to avoiding feature creep is to prevent the features from sneaking into the existing product specification.
  4. Implement only the features that were agreed on for a planned product version.
    • Even though it’s tempting to include little features, DON’T DO IT.
    • Once you let a feature sneak in through the back door, they’ll bring their friends.
    • Before you know it, the product will be over-time, over-budget, and out of control.
  5. Add new feature suggestions to the feature wish-list.
    • The most important thing to avoid is a product mutation.
  6. Ship the intended product version
    • If you stay focused, the intended product version will be released, then you can add new features
  7. Evaluate the feasibility of suggested features
    • Some features might be “pie in the sky,” and might not be worth the time and effort.
    • Other feature requests are “no brainers,” everybody sees the added value, it just makes sense to make the effort.
  8. Repeat steps 1 through 7

Questions:

  • Does this mean that you ignore new feature requests until a product has been released?
  • If a new feature is essential to the success of a product then what do you do?

Notes:

  • Be very careful when considering the addition of any new features.
  • Any time you are adding a feature to a planned project you should modify the product version to reflect the fact that it has been changed.
  • Any change should require stakeholder approval to ensure everyone understands the updated specifications of the product.