Friday, August 22, 2014

Is the Minimum Viable Product Methodology a Synonym for Low Quality Development?

The minimum viable product methodology (MVP) is an evolved methodology that our industry has arrived at in recent years. I used the word 'evolved' here to emphasize that it came from real world application.

Using the minimum viable product methodology in shipping software applications can increase the chances of success dramatically, if understood and applied correctly. I have seen many teams think that they're applying MVP when what they were really doing is giving themselves an excuse to ship a low quality product under the disguise of a new cool acronym.

The minimum viable product philosophy is rooted in the universal iterative development methodology with a quality factor added to it. That quality factor is real world input and validation from the user. Therefore, from a technology view, broken down, the minimum viable product methodology is a combination of two components: Iterative methodology plus Quality methodology.

From a business view, minimum viable product gives the bonus of quickly getting to market which makes the investors happier showing something for their money and getting to market fast with whatever business advantages that brings with it.

How to implement the minimum viable product methodology correct? MVP is not about qualitatively degrading the product but about quantitatively decreasing the feature set to a core one. So it is not wide and shallow but it is more focused and beautiful. To start with, pick a few core uses cases that are supposed to add value to the user and deliver those core use cases with high quality, usability and convenience. This core feature set is what the word 'minimum' in MVP is referring to.

In teams, the real tough challenge is to resist piling on features upon features and to stick the bare minimum feature set. It takes discipline and good project management skills.

Once the first version is shipped, now is the time to listen to the user and adjust in iterations, in essence, letting the user design most of the application. At the end, you'll have a usable/convenient product that really serves your users well creating loyalty. Not to mention that your investors are happy seeing results.