dev notes

software development craftsmanship

/ home [ / blog / letter / springer link / brain / relaunch / time for money, money for time / first steps with rasmus / connect the dots / get in touch with vue / Alternative content management system approach / A database gate keeper / Generate a ERM from a PostgreSQL database schema / Working with immutable data in Postgres / Automatically update MIT licenses / Moving ORM Mapping towards the database / providing test data for databases / using pandoc filters to create graphs with hakyll / get in touch with react / six months in new job / days left / minimum viable product / Repository ownership / getting better / git cleanup ]


minimum viable product

According to User Story Mapping, 44ff there are several ways to grow a product. You can take the requirements as given and build a product peace by peace. Finally you deliver it all, or try to build working products with each iteration.

Henrik Kniberg revisit this topic in a resent blog post in a more detailed way.

When you are developing a new product, what is your skateboard? If you develop a todo application for example, maybe a simple textbox with a resulting textfield may be your skateboard.

You are able to insert todo items and revisit them later. On the next iteration you may delete items.

This could be your mvp. You have a product, some early adopters can work with.

Depending on the market other features may become relevant.

When you try to keep these iterations as small as possible, with every iteration a user can help workout a better solution. The possibility to work against the customer is minimized dramatically.

If you create a product by your own, you can either choose to build a product until you have your 100%, or grow your application step by step, and integrate others into your ideas.

If you are working on a project, the customer must play along. There are contracts to fulfill and often there are several parties in the game.

When you decide for a mvp approach for a non trivial application, you have to decide how to iterate throw the production cycle. Among other things you have to care for your data over all iterations, what becomes more complicated on a multilayered application.