Posts Tagged ‘MVP’

Mmp

MVP (Minimum Viable Product) – the minimum amount of features needed to validate the business hypothesis with target customers.

MMP (Minimum Marketable Product) – the minimum amount of additional features on top of MVP which will allow marketing to start growing the product.


Validated learning is one of the five principles of the Lean Startup method and the MVP technique aims to test the business hypothesis. MVP was introduced in 2001 by Frank Robinson but popularised by Eric Ries through his book The Lean Startup.

Since startups tend to work under conditions of extreme uncertainty with limited resources, validating the hypothesis with target customers early in an efficient way using a prototype, wireframes, surveys or marketing material becomes even more important if it is to avoid the scenario of spending months or years building a product which customers don’t need or want (does not have product/market fit).

Achieving product/market fit would involve multiple iterations on the MVP based on target customer feedback, but once the product/market fit is validated it’s time to build the product for real and head towards an MMP by adding features to enable marketing to start growing and scaling the product, with the first set of additional features usually focusing on MarTech and improving the core customer experience.

Now, with an Agile mindset of iterating frequently based on value, it makes the MVP technique similar to Agile product development – building a product that customers need, want and loves by frequently talking to customers/target customers and we only need to look at three of the twelve Agile principles (also introduced in 2001) to see this:

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Simplicity–the art of maximizing the amount of work not done–is essential.

Welcome changing requirements. Agile processes harness change for the customer’s competitive advantage.

Because of this, I prefer to use a broader definition of MVP: the minimum amount of effort needed to learn. This is because you can apply the MVP technique (Agile mindset) to a multitude of scenarios outside of launching a new product at a startup where you get the same benefits of reducing wasted money/effort/time by learning sooner rather than later, whether it’s a:

  • New Product – validate before building the whole product
  • New Feature – experiment rapidly before building and rolling out the full feature
  • New Process – being inclusive/gaining feedback before a full roll-out
  • Retrospective – ensure teams are empowered to make changes before having retros
  • Complex Solutions – start discussions early with assumptions before waiting for concrete answers
  • New House – view before purchasing
  • New Job – research/interview before accepting a job
  • New relationship – dating before marriage
  • New Car – test drive before purchase

Start small and fail fast!

Adding a new feature to an existing product is the most common scenario where you can use an MVP approach, but also where it’s most common for businesses to spend months building a new feature that turns out to be low value to customers. Similar to a new product, it’s important to validate new features where the projected value is uncertain by building a lightweight prototype/wireframes to validate with target customers when conducting interviews.

Saying this, if you have qualitative/quantitive data which gives high confidence that solving the problem will be valuable and time to market is important, then it’s equally effective to just develop and go live with the basics you need for the new feature to function at the right quality, then iterate in an Agile way.

When there is uncertainty, break it down, start small, test and learn quickly and it’s surprising how much easier and efficient the problem is to solve.

With tools to easily conduct remote customer interviews (UserZoom, Lookback.io), A/B testing (Firebase, Maxymiser) and prototyping (Sketch, Figma), it makes it easier more than ever for empowered product teams to efficiently conduct experiments to validate that the solution will solve the problem.

Agile

There are two main definitions of ‘Agile’ which people tend to refer to when:

  1. Delivering software iteratively and in increments rather than holding all of the software back delivering one big release somewhere down the line
  2. The business responds to change / demands rather than sticking to a long term strategy just because it was previously agreed

Both definitions of the term are valid, but in software development the first use is most common whereas everyone else in a business typically refer to the second.

Scrum is the most common Agile framework where typically the expectation is that you release code / software to live every fortnight / within the Sprint whether it uses a feature switch or setting the code live to customers. This has many benefits such as:

  1. Realising value sooner – value being delivered within the sprint off the back of the development work the team committed to during sprint planning
  2. Predictability of future software releases
  3. General team organisation – all work in the sprint will be fully done so you won’t have to deal with the previous sprints pre-production testing or release in the following fresh sprint, making it less messy and reducing the impact of context switching (Dev Ops culture – continuous delivery)
  4. Responding to customer feedback quicker adjusting scope for future iterations off the back of it
  5. Large chunks of development work won’t be sitting on the shelf collecting dust or thrown away without any customer / end user receiving any of the goods
  6. Ability to deliver the highest ROI pieces of work, so rather than having to wait until a feature is gold plated, you may find after the 3rd iteration that the majority of value has been delivered, therefore it might be higher priority to start work on another feature than fully completing the existing one
  7. Self organising, cross functional teams including UX and design

Only once you’ve ticked off all of the above can you say that you develop software in an Agile way.

The business use of the term Agile is more focused on the ability to adapt to change quickly and shuffle around priorities to meet changing core objectives within a reasonable time frame, rather than continuing to work on something which will generate half the ROI than another feature or a feature which is no longer needed. Naturally you need to include any context switching cost when changing in flight priorities and it’s recommended not to change high level priorities frequently because you may find yourself delivering very little over time and instead just causing lots of admin and frustrated developers.

Being Agile is certainly not easy to achieve, but having the ambition and desire to start delivering value in an Agile way is something which is definitely worth any necessary process or infrastructure change in order for the benefits of Agile to be unlocked.