3.3. A minimal viable project
Minimum structure for delivering
Have completed all previous sections and modules
Pen or pencil and paper
- What are the absolute basics of your project?
- The concept of prototypes and minimal viable products
- Assignment: review your project and create small actionable steps that will incrementally build it up.
When starting a project it is quite common to think about the desired finished system. This is totally fine, as this is what gets us motivated and allows us to plan for the future. However, this also brings in the idea that only this finished system is worth of sharing/using, and so project developers end up spend a lot of time making their tools “perfect” before sharing it with others. This makes the project development journey quite lonely.
In this unit we are going to see how sharing things early and often can be beneficial for projects, and how to think about “minimal viable packages” to share things in a practical, actionable way.
What are the absolute basics of your project?
After you thought (dreamt) about your perfect finished project, take a moment to think about what is the bare minimum the project would need to have to slightly resemble the “perfect one”.
For instance, if you are creating a shirt that periodically changes colours, depending on whether it is day or night, with the use of many LED strings and a light detector, what would be the minimal thing to get something that slightly resembles your project?
In this case, you could say that it is:
- one blinking led
- one light detector
- a way for the detector and the LED work together (this could be done via software, or hardware)
- a piece of cloth where everything is going to be attached.
Thinking about this allows a project to:
- have the first actionable steps for development
- have a minimal thing for others to see and quite fast understand where the project is headed, and whether they want to contribute to it or not.
The concept of prototypes and minimal viable products
The idea of having many “smaller versions” of your final idea as incremental prototypes is really helpful as it allows:
- Big tasks to be broken down into smaller actionable steps
- Find out quickly if certain ideas/development paths are going to work or not (and correct/change paths in case they do not)
- Get a sense of project evolution as constant iteration and improvement over a working prototype is quite satisfying
- Others to join and contribute to the project as things (as mentioned above) are broken down and shared as small actionable things that can serve as entry points for collaboration.
More details on prototyping and digital fabrication will be explored in unit four, where we will focus on specific aspects of developing open source hardware projects.