Jan 30th, 2020
Best Practices
Minimal Testable Features
  Written by: Craig Vosper, Chief Delivery Officer
I’m guessing you’ve heard of (or already use) the concepts of Minimal Viable Product (MVP) and/or Minimal Marketable Feature (MMF). These are common ways of thinking about how to deliver something of value to your customer; depending on where you are in the lifecycle of a project or piece of software.
These concepts are key in how we develop project roadmaps, but we’ve also learned that we need one more layer of slicing to ensure we get the MMF right for our customers. This has led us to the concept of Minimal Testable Features (MTF’s). The basic idea of an MTF is to create use cases or scenarios that implement a small vertical slice of your solution but also result in something that business users and stakeholders can see, use, and test.
This isn’t earth shattering stuff by any means, but too often we see our customers and ourselves falling into old habits where we write stories that align to the functional decomposition of the solution, rather than the business scenarios we need to support.
For instance, we’re currently working on a project in which the team is refactoring service calls for a mobile application to sync data more efficiently and timely. Instead of breaking down stories that are solution based, we are creating scenarios that use a small number of API changes. This allows us to ensure that those changes are tested at the business level, which mitigates risk and helps ensure that our design works the way we want it to.
We have realized three distinct benefits doing this:
- Removal of architectural risks early in a project.
- This allows us to tackle the hardest problems and implement the most critical features first. It also helps us react to changes and implement appropriate refactoring to build the right solution.
- This allows us to tackle the hardest problems and implement the most critical features first. It also helps us react to changes and implement appropriate refactoring to build the right solution.
- Increased quality.
- This is due to our teams and customers testing new features both early and often.
- This is due to our teams and customers testing new features both early and often.
- Demonstrate and provide value faster.
- This ensures we are building what the customer needs and that the solution will provide the expected value.
If these benefits interest you, let us know! We’d be happy to help you deliver projects in the same fashion to your customers.