Minimum structure for delivering

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 spending a lot of time making their tools “perfect” before sharing them 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
  • Finding out quickly if certain ideas/development paths are going to work or not (and correct/change paths in case they do not)
  • Getting 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 its functions (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.

Assignment: Project review

Review your project and create small actionable steps that will incrementally build it up. To do this, go back to your project vision and review your project goal. Now think back: which minimum functions are needed to achieve that goal?


next: Documenting for whom?  

Help us improve content and suggest changes to this page.