In this episode, I will talk about an MVP and why I think it's the best way to ship your application. For those of you who don't know what MVP is, we'll dive into the definition of it as well.
So let's start by defining what an MVP is. MVP stands for Minimum Viable Product. That means it's the minimal amount of effort and features needed in a project, whatever it may be, to make it shippable.
That doesn't mean not putting in essential things. It means what are the bare bones that this app needs to be entirely usable by a customer. They're going to get a feel for all the features it will have and buy into this product. That'll hopefully give you enough data to tell you, yes you now need to go ahead and make if you like the full version or expand upon this base for what you want the application to be.
The best way I can think of doing this is to give you an example. So let's say that we're going to make a word processing application. So we're going to look at it from the user's perspective, first of all, and say, what would a user expect to be able to do in a minimum set of features?
They would expect to see a screen where they can type in content and see the words appearing on the screen. They want to be able to go back and forth and edit, select, and delete the text or manipulate the text in the kind of standard ways they will expect to save their document at some point and load it back in again.
That is the absolute bare minimum set of features I could think of for a word processor, nothing fancy, nothing overblown. That is the fundamental core of what a word processing app would have. So that's my MVP right there. What's the next level up from there? So let's say that I've shipped the product, and people are buying into it, and they're saying, Hey, this is great.
Okay. So now I'm going to start adding features. That will be the next obvious set of features. So, for example, I might have a dictionary for spellchecking. I may have a thesaurus. I may want to be able to add pictures to my document. Those would be next-level features right there. Maybe I want to click a button and share these documents somewhere on a social network, and perhaps a blog site, something like that.
So I would expect there to be some mechanism to let me click and easily share this document. So that's my next level of features. And then, once I've shipped that version from there, I start to build upon iterations of different elements and improve the existing ones, plus address any concerns or requests maybe the users have.
So that's the lifecycle of getting to an MVP and then bridging the gap to the next level. If you think about every app you use or have seen or planning to build, you could look at them and strip them down to that MVP version.
An MVP is not necessarily going to be anything super original. But the other value that you get from building this MVP version is making it rock solid or solid as it can be. You don't have any stupidly crazy complex features that may bring in hard-to-fix bugs, or they may take a long time to develop.
These are all things that will prevent you from shipping that first version if that's the road you want to go down.
Waiting and shipping everything at once will significantly increase the time to market.
So that is a very high-level overview of what an MVP app is. And I thought that this was an excellent time to bring it up because we have the apple developer conference coming soon. I'm sure people will have lots of ideas for new applications, with all the features coming out.
I'd love to hear your thoughts on this.
If you like this episode, please check out others at CompileSwift Podcast. Or click the link to your favorite Podcast player.