Skip to content

Latest commit

 

History

History
40 lines (25 loc) · 2.36 KB

MVP.md

File metadata and controls

40 lines (25 loc) · 2.36 KB

Minimum Viable Product

A Minimum Viable Product or MVP is the simplest possible implementation of your project that is acceptable for users.

Focus

An MVP is expected to have minimal features, and a user interface erring on the side of simplicity. This is both to help your team maintain focus, and optimize resource expenditure pre-revenue.

Quality Assurance

While a minimal feature set is standard for MVP, the release should adhere to strict development standards. It should be free of known bugs and follow code conventions.

Here are the coding conventions Deginner uses for launch of Python projects.

  • Must have unit tests covering > 95% of the lines of code.
  • Must be a versioned package.
  • Has a README.md file that covers the project purpose, installation, and usage.
  • Follow the pep 0008 style guide.
  • Package has a pylint score of 5+.
  • If controlled via command line, a full featured CLI will be provided, such as argparse generates.

To assure quality, the typical project lifecycle looks like this:

  1. Concept stage
  2. Research & Development begins (pre-alpha)
  3. Alpha (some features, but with known issues)
  4. Beta (feature complete, still some known issues)
  5. Launch MVP

It is typical at the alpha stage to share and test code across your entire internal team. Once everyone has tested and a generally high level of completion and stability are achieved, the beta phase can begin and non-team users can be invited. Finally, after the beta-testers indicate that the MVP is ready, there is a full public launch.

Launch

A good MVP will give users an easy and simple feature set to play with before deciding to commit deeper. It also gives you essential user feedback as early as possible in your development process. Be prepared to gather lots of usage data at this stage, as it will determine if and how your project evolves.

Natural Evolution

After launch, all projects should follow an evolutionary strategy. Let usage data drive decisions on what features or bugs to prioritize.

Once a platform has users, pleasing those users and leveraging that pleasure for monetization are the continuous goals. If you please your users more every day, and monetize them better, your project will succeed for the long haul.