MVP, in the software development context does not stand for Most Valuable Player it actually stands for Minimum Viable Product. It is the road less travelled in South Africa, especially in corporate and consultant firms. This is partly because it is not understood, even partly.
So now we have a...
Pragmatic Approach to Minimum Viable Product
Forget the theory and words. Let us use Minimum Viable Product in a real life example and possibly produce a Most Valuable Player.
So let us start with the idea, the thing that is the spark behind all software projects hopefully.
I have always had trouble determining how long I should boil an egg for to create a perfect soft boiled egg. So in the Eating your own Dog Food mindset, I want to create a mobile app timer for this purpose.
There is also a caveat that at different atmospheric pressure/altitude (Cape Town vs Centurion) the egg requires less or more time.
Now Let your Inner Client / Corporate Get Excited and Think of Ideas
... and I'm going to be the one to shut them down later
- Lets Get the Location from GPS on the Phone/Device, use that to get the altitude then work out cooking time perfectly based on that.
- The app can be used world-wide so we will build to the app for all possible users.
- We can crowdsource the ratings of how good the timings are, by giving a rating system after the timer has run so other users/us can see if in a specific area if timing is slightly off.
- There should be a slider of soft to hard of how hard/soft you want the egg and timing should adjust
- We will build an app for Android and iOS natively
Wow! This really is sounding like an amazing feature-filled app! - Client/Corportate Clown
Now the Pragmatic MVP Approach
What is the Minimum we need to get this app into the app store and getting users? Or rather what is the minimum the app store / play store user needs? The answer should be a single thing.
An App that has a timer for the "Perfect Soft Boiled Egg" that indicates to the user to start the timer when the water is boiling. A Notification or Sound should play when the timer ends.
That is is, that is the minimum we need for the product to be viable to a typical user.
But something that I feel should be added to the MVP (Minimum Viable Product) philosophy is that it should target the most amount of users. That is the ultimate goal for most good apps is: Lots of Users. As once you have the users, you can drive changes and make more informed decisions about the future of the product/ project.
So for me the MVP Process is Creating the Most Valuable Product with the Least Amount of Features to attract the Most Amount of Users.
Criticism of the Inner Client/Corporate Ideas
- NO! No! No! No GPS...theres too many things that can go wrong and integrating with the service is a nightmare. Then cases where people have turned off GPS and incorrect locations. As a developer I don't want this shit. Instead we will add options for: Coastal, Inland and Highveld, a selection list before the timing.
- Building the app for all possible users is good as we want more users but think of the effort required for this...internationalisation and testing local eggs in different countries. I think this is a case where keeping it local feels more worthwhile. The local experience will allow for a faster development process.
- Crowd Sourcing Ratings sounds an excellent idea. But it is another screen that has less value than the main feature. Leave it alone. Also we don't have any Users yes. So the feature is of 0% use right now. That way if no one ever uses the app we won't have created another useless feature.
- A slider for soft to hard, sounds like a lot more dev work and calculations. But having a selection of soft, medium and hard is an idea that might work.It is quick to develop and as a guess I would say it may open up more users (The hard and Medium Crowd). Good Idea.
- Building the app natively. Yeah Hell no! Never build apps natively unless it is 100% unavoidable. Why build two apps when you can have a single code base managed by a single developer when using a Hybrid App Builder
It is better to have a working product out as soon as possible and continue tinkering and making changes based on what the user actually wants, than guessing what a user wants an spending too much time creating it finding that you were wrong in the first place.
So that is the gist of it...
Concluding the Pragmatic MVP Approach
Sure your client and your shitty Project Manager won't be happy. They want Chandeliers and Persian Carpets with a Massive Release. But why do that to yourself as a business owner of developer. That is all guesswork, it's bullshit.
Remember MVP (Minimum Viable Product) fits right into most proper agile methodologies like letting users guide the work and features on the app, less is more, continuous integration
Do the minimum to get the most users and once you have a decent number of users its harder to make your product worse and easier to make it better.