I had a gentleman reach out to me for assistance on a software project he is working on targeting the iOS and Android platforms. I asked what he was using for development, NET MAUI, Flutter, etc. he said he was using “MVP.”
I had to look it up. Google explained MVP as:
“In programming, MVP primarily means Minimum Viable Product, a strategy where you build the most basic, functional version of a product with just enough features to solve a core problem, release it to early users, and gather crucial feedback to guide future development, preventing wasted effort on unwanted features. It can also refer to the Model-View-Presenter architectural pattern, which separates an application’s logic for better readability, testability, and maintenance.”
Do any of you have experience with this? Thoughts? Opinions?
My guess is that he was talking about MVP (Model-View-Presenter) which is is an architectural pattern, not a development platform. It describes how you organise code (separating UI, logic, and data), but it doesn’t say what he’s actually building with.
I think he didn’t really answer your question. You want to know what framework/software development environment they will be using, and he gave you an “approach” to developing the software. Your second definition looks fairly standard, but the first one clearly involves designing a robust way to get user feedback, the ability to produce and release new versions quickly (including backend database changes) and a strong management/analytical capability to figure out which user requests can be accomplished together, which conflict, and how to build changes that don’t degrade the experience of other users who didn’t really want those changes. It’s sort of outside of the normal method of gather the specs and build the system, and presumably it has to be funded by gathering more consumers along the way. I can see it being valuable in a fast-changing, and growing, business sector where the existing players don’t entirely know what they will need, but not sure where else it would be useful.
I went to a tech group meeting a couple of years ago and they kept referring to an MVP and I had to ask what it was.
The presenters were developers, talking to groups of people who wanted various mobile apps developed and I got the impression that the presenters regarded an MVP as the first step so they could actually prove that the concept was viable and that the developers knew what they were talking about. So it gets the client to define the guts of the product they want, which also makes it easier for the developer to understand. A way of dipping your toe in the water before diving in.
It’s more a marketing technique than a development technique. The client is given a taste for a smaller initial financial commitment and the developer discovers if they really want to work with this client.
I tend to think in terms of percentages and tell potential clients that I can develop the first 80% of a project for them and that there’ll only be 80% left to complete. (Often indefinitely!) Maybe I should start talking of MVPs?