AWS Bites Podcast

55. How do you build an MVP on AWS?

Sometimes people talk about an MVP and then say "yeah but we deploy manually" or "we don't have tests yet". Is that really an MVP or is it something else? And what it takes to build a successful MVP when using AWS? In this episode, we discuss the differences between a prototype, a proof of concept, and an MVP. Then we debate about what's the minimum amount of work you need to put in place to have an MVP on AWS. We debate on whether our weshare.click is an MVP or just a prototype and why. Finally, we provide a list of previous episodes that can help to acquire the foundational AWS knowledge that is needed to be able to build an MVP successfully.

Some of the resources we mentioned:

Let's talk!

Do you agree with our opinions? Do you have interesting AWS questions you'd like us to chat about? Leave a comment on YouTube or connect with us on:

Eoin
00:00:46

I see this quite a lot and maybe it's a bit of a bugbear of mine, but we see teams embarking on a new project and the term MVP gets used a lot. So often this term means a lot of different things to different people. And the lines are kind of blurred between what's an MVP and what's a proof of concept and what's a prototype. I think it's a good idea to break these terms down and just figure out what the different differences are between them before we talk about how to build an MVP and make sure you set it up for success. So a prototype is not a product. It's like a rough idea used to demonstrate some capability and it's something really useful, but it's ultimately a communication tool that you can use to show others what a product might be like, or just to get buy-in or even to get funding. So it's like a decision-making tool. Then on the other hand, you have a proof of concept or a POC, and that's typically designed to validate some assumptions, to test a hypothesis, or to just evaluate whether a technology is going to work for what you want to do. So for a POC, you should have a clear question you're trying to answer, or like a risk you're trying to remove, and you should know at the end of it whether you can proceed or not. So neither of those two things, prototype or POC, neither of them are really a product and they don't even have to become the nucleus of a product or grow into a product. They're just part of the assessment and discovery phase of a project that you might do at the start. So you could even throw away the code when you're finished, right? That's kind of what you should expect with those things. So they might be minimal, but they're not a product and they're not viable either.

Eoin
00:05:49

Okay. Well, if we take the M and the P first, let's say you... Let's assume that you've got the right minimal set of features from the beginning and then you've got at the product side a system to gather feedback and iterate on the product. Then in the middle, I'd say if you're building a technical solution on AWS, you should try and put in the minimal fundamentals to make it viable. And those would be things that you and I have talked about on the show a lot over the past 50 or so episodes. So we're talking about infrastructure as code, unit tests, end-to-end tests, automated deployment, some level of observability with like centralized logs, metrics, alerting, traces, some security fundamentals, of course, because otherwise you've got a business risk that might really compromise your viability. Having the right skills within your team is also something that makes your thing viable. So maybe, especially in a startup scenario or even in a migration scenario while you're adopting the cloud, there might be a huge risk to supporting these workloads if you just kind of completely wing it and don't have the skills in place or at least a plan to address skills gaps. So even think about stuff like that as part of your MVP early on. And then of course, like documentation for onboarding and troubleshooting from the start, right? So you can bring people in, new people as the team grows, et cetera, and you don't have to kind of, I suppose, train everybody up manually or rely on them to kind of somehow assimilate all of the ideas that are in the code base. It's a good idea to have some documented principles and training in place for people too.

Help us to make this transcription better! If you find an error, please submit a PR with your corrections.