March 22, 2008 The Minimal Marketable Feature (MMF)
A Minimal Marketable Feature (MMF) is a feature that is minimal, because if it was any smaller, it would not be marketable. A MMF is marketable, because when it is released as part of a product, people would use (or buy) the feature.
As a counter-example to the MMF approach: While working on an XP team, our team decomposed features into super-small stories. That way the customer (product manager) could pick-and choose from the sub-features to create the big feature. The team would present a list of each sub-feature like a grocery bill — each item has a cost. For example, the customer might decide that pagination (presenting a list of information on multiple pages) just isn’t worth it, because “hey, we only have 25 rows of data right now!”
An MMF is different than a typical User Story in Scrum or Extreme Programming. Where multiple User Stories might be coalesced to form a single marketable feature, MMFs are a little bit bigger. Often, there is a release after each MMF is complete.
An MMF doesn’t decompose down into smaller sub-feature, but it is big enough to launch on its own.
A MMF can be represented as a User Story — a short, one-sentence description.
The format of a user story is:
As a [some user],
I want [to do something],
so that [I can achieve some goal]
But in contrast to how a User Story is typically used, the team would not break down the User Story into smaller User Stories when using MMFs. Think of it this way: *Gather up all the stories that share the same so that clause — that’s your MMF*.