📓 Capstone Planning: The Minimum Viable Product
During the final course section of your time at Epicodus, you will craft your Capstone project, and eventually present it to your peers to showcase what you've learned. This will also act as your final independent project of Epicodus.
However, "final independent project" doesn't mean that we expect your capstone to be completely finished. The goal is to have the minimum viable product (MVP) in place.
In this lesson, we'll review MVPs and how they apply to our capstone projects.
For now, this lesson is to introduce you to the concept of the MVP, but you won't be required to submit an MVP or formal capstone proposal for your capstone until much later in the C# course.
Minimum Viable Product (MVP)​
In web development, MVP stands for minimum viable product. As the name implies, this is the minimum or most basic version of an application. The MVP must solve the problem the application is meant to address — but only in a basic form, without added bells and whistles such as styling, more advanced UI features and other stretch goals.
MVP Example​
Let's consider some examples of MVPs. For instance, consider the Wright Brothers' famous first flight in 1903 — it lasted under a minute and the Flyer traveled 852 feet — and was badly damaged in the process. The Flyer was so unstable that only the Wright brothers could get it in the air at all.
But that was the MVP — they did achieve flight, even if only for a very brief period of time.
At that point, the Wright brothers began thinking about improvements they could make to their design. How could it fly longer and higher? How could it be more stable? How could they improve the UI so others could fly their machines? These are all stretch goals beyond the MVP.
From the perspective of designing a web application that's an MVP, it's typical to go through the following process:
Build an MVP that does the thing it's supposed to do — whether it's flying or teaching customers how to make pizza.
Once the MVP is done, talk to potential users and customers. What can be done to make the product better?
MVP Benefits​
By following this MVP process to create our product, we reap two distinct benefits:
We have a functioning product completed sooner. While it may not have all the fancy features we envision, it's better to prioritize building a functioning prototype with fewer features than to add too many features at once, which can result in delays and missed deadlines. You can always add those extra features after your basic MVP is finished.
We can also gather user feedback before adding extra features. After creating an MVP, users can beta-test it and provide feedback. This allows you to determine what additional features users actually want.
The MVP Process in Your Capstone Project​
As described in the independent project expectations lesson for this week, you'll submit an idea board and an outline of your idea to your instructor. Instructors will give you feedback that will help you eventually work toward developing your MVP before integrating additional features. This will happen later in the next course, but keep this in mind for larger projects, Team Week projects, and other projects going forward to help you qualify your project. Here's what the workflow will look like:
In your proposal, you'll identify the primary goal or purpose of the application. What problem is this project meant to solve? What service is it meant to offer the user?
You will also determine the bare minimum features and functionalities your application requires to meet that goal or purpose.
If necessary, your instructor will provide feedback on your project idea and scope before the independent capstone course section.
As you begin developing your project, focus only on the MVP features you identified in your proposal.
Once that functionality is present, commit and push to main. The development process isn't over, but at this point you have a functioning version ready to go. Additional features should be developed on their own branches and only pushed to main when you confirm they're 100% functional and pass all tests.
Gather feedback. Ask potential users what features they would like to see. If you complete your MVP before the tradeshow, ask your peers or instructor for feedback, plan out next steps, and continue working. You can also use the trade show as an opportunity to gather feedback.
Continue adding features to improve your project's functionality and user experience. Take user feedback into account when deciding which extra features to implement before presenting your project to potential employers.
Don't feel ready to come up with an idea? That's okay! We will introduce ways to help brainstorm ideas before this section's independent project. And remember, you're not beholden to any ideas that you submit - you can always change your mind.