Accelerating Product Delivery
Build Minimal Marketable Products (MMPs) with minimal (i.e. barely sufficient) functionality and high quality that provide value to your customers. This will reduce time to market and facilitate feedback from early adopters, supporting evolution of the requirements, design, and implementation of your products. MMPs are composed of Minimal Marketable Features (MMFs), not fully baked features as typically defined by epics. Employ Software Evolution practices to progressively gain maturity and viability, while extending functionality, maintaining high quality, and solidifying your product architecture.
Always build your MMPs with high quality to avoid introducing Technical Debt right from the start. Define your quality model based on your MMP and build your Non-Functional Requirements around that model. As your product matures, so too will your quality model. Starting product development with technical debt is one of the worst things you can do to compete in any market — as it will just about guarantee ever increasing lead times.
An MMP is a product that provides value to its users, but with features that are barely sufficient (i.e. minimal) to meet their basic needs. The purpose of an MMP is to get a small number of high-value features into the hands of a small number of users (typically early adopters) to gain early feedback. MMPs often utilize Canary Releases to test markets with new product ideas. They are not feature-rich products — they offer just enough functionality to prove marketability.
An MMF is a component of an MMP that provides minimal, yet highly valuable, functionality with the goal of obtaining early feedback.
An MVP is a product used to test ideas through experimentation and data collection to pilot new product development. MVPs should be thought of as prototypes and developed with the least effort possible to learn about customer behavior and/or preferences. As such, they should be treated as throw-away products, with little attention to quality. MVPs help discover features that will be preferred by customers.
While “Minimum” refers to the least or lowest amount, “Minimal” refers to something that is barely acceptable or barely sufficient — which in this case more accurately describes these work types. We are not developing the least possible functionality, we are developing functionality that is sufficient to provide value, but no more than that.