According to wikipedia, the term minimum viable product, MVP, is a term coined by Frank Robinson, and popularized by Steve Blank, and Eric Ries. I find this to be a very powerful idea, and one that works hand in hand with using a PHP framework, such as Laravel 5.1 and Yii 2.
So what is MVP? It’s easy to mischaracterize MVP as a product with limited functions and features because while it typically does have less features than the typical enterprise application, the goal is not minimalism.
The idea with MVP is that you stand up the minimum number of features you need in order to collect data back from the users, so you can validate your business model as you develop it. You build just enough to allow yourself to follow the breadcrumbs of data, then follow that data like a compass to determine your sense of direction.
The speed at which you prototype and process this early feedback is important. The idea is to incorporate the customer feedback into the build itself, and you can only do that if you are testing and validating often enough.
One thing that’s great about this process is that it eliminates the old arguments between creative people about what will work. Instead, we simply let the customers decide.
The good news for those of us who use PHP frameworks is that they can really facilitate the MVP process, and that’s how we should think about it, as a process.
It’s a process that maps to the processes being adopted by entrepreneurs and lean startups.
Eric Ries defined 5 principles that drive the Lean Startup process:
- ENTREPRENEURS ARE EVERYWHERE
- ENTREPRENEURSHIP IS MANAGEMENT
- VALIDATED LEARNING
- INNOVATION ACCOUNTING
The last one, build-measure-learn really encapsulates MVP. You might be tempted to quantify your job as programmer to simply program what the entrepreneurs ask you to do, and shuffle off the build-measure-learn concept as their problem, but doing so makes you less valuable to them.
On the other hand, if you take the time to plug yourself into their process, you’ll find yourself becoming invaluable to the enterprise. You’ll be part of the team that provides insight and clarity to the objectives, based on the intersection of design patterns and application usage patterns, the latter being provided by the customer feedback. The concepts developed in the code and the concepts of the enterprise fuse into a single entity and you will find yourself being a facilitator of this.
Leveraging the strength of a php framework can be an integral part of this process. For example, you might work for a company that doesn’t know the difference between building user RBAC from scratch and using or extending the options that are readily available to them from Laravel, Yii, and other frameworks. You can help guide them through these strategies and implementations. And if you can do it quickly, you will be their hero.
That takes us back to our php frameworks. When you study these frameworks, you can’t help but fall in love with them. There’s almost always core functionality or a plug-in to cover your requirements, so you can prototype very quickly.
The main thing to understand in a MVP approach is that it’s development on the fly, objectives change with the inflow of data, and decisions and implementations must be made rapidly. In the midst of this kind of environment, there is no difference between your love for PHP frameworks and the other tools that are available to you, such as Bootstrap, jQuery, and love of the enterprise itself. Your passion for development will help drive the enterprise.
I’m going to leave it at that. This article is meant to be a brief introduction to MVP. I recommend reading the wikipedia article and perhaps The Lean Startup by Eric Ries. I need to get a copy myself. Although I practice many of the principles, I have never actually read the book. Isn’t that so typical?
I can however vouch for build-validate-learn, though I would modify it to build-validate-succeed. Learning is not enough. Sometimes you only learn that you didn’t succeed. Those lessons are always valuable, but the real objective is success. Keep testing/validating until you succeed or pivot into something else.
Anyway, I hope you enjoyed this post. Please comment, share, and like if you can, thanks!