Sometimes when you are talking to other developers or business people these words appear in conversations as a buzzword, creating confusion because they are not buzzwords and they have a meaning.
A mockup (AKA mock up or mock-up) is not a real thing. It’s something held together with duct tape and cardboard just to see if an idea or design can work or not. It usually only follows one scenario and it’s meant to be shown as a demonstration or validation. Sometimes people call them “paper prototypes”.
But the really important thing about mockups is that you throw them away. After the demonstration or the validation they have done their only job, grab feedback.
POC and MVP
POC and MVP are usually used as the same thing, and they almost are, except they are not.
Both are experiments.
Both are tests.
Both get discarded if they fail.
POC (Proof of Concept) is meant to verify if the idea can be implemented, mostly technically but also if it matches the business idea/model. it’s common to see several teams implementing the same idea in different architectures or solutions to find what way is better to implement or what makes more sense.
an MVP (Minimum Viable Product) is meant to showcase a product with just enough features to be usable by early customers. Used to get feedback in the early stages to steer the product in the right direction. But there is a limit on the steering that you can do.
If a POC or an MVP fails, learn from it, throw it and start from scratch again.
Most (if not all) prototypes start like a sandbox, a small contained thing that helps you visualize the idea. A prototype typically simulates only a few aspects of the product, and can be completely different from the final product.
A prototype is a Frankenstein Monster, you put things together to prove a point, then if the point is valid, you start improving the prototype in versions. You iterate the design and functionalities and refactor everything several times till it has the functionality and the performance you are looking for.
I personally prefer to create prototypes than POCs or MVPs it has the best of both worlds. The problem with prototypes is that refactoring gives little value to the end-user, so it can be seen as nothing has happened.