This framework aims to define the concepts, the activities and the processes for the design of products that people can modify and develop, thanks to an ecosystem of digital services, shared documentation and open licenses. The framework reflects on the integration of a human centred design approach into the open source culture, and it proposes a framework for designing innovative open source products.

1. Define the project idea
What do you want to make? Which existing open source projects are you interested in developing?
2. Define the key requirements
By answering the questions, define the requirements that make your project:
◆ Programmable: other people can have access to the code and parts and reconfigure them;
◆ Reproducible: other people can recreate your project in another place;
◆ Generative: other people are enabled to create multiple and diverse derivatives out of your project parts, thanks to the information you shared and the solutions you designed.

3. Understand the users’ attitudes and motivations
Once the requirements are defined, understand whom you are designing for and their motivations when interacting with your solutions. The five attitudes describe the orientations of potential users of your project; the eight motivations describe why potential users would interact with your project.

1. Maker: a person who is interested in developing prototypes of projects by accessing online resources and collaborative spaces
2. Professional technician: a person who has the technical knowledge of a specific domain (i.e. software developer)
3. DIY amateur: a person who develops projects for the fulfilment of a personal need
4. Consumer: a person who has low technical knowledge and buys a solution to fulfil a personal need
5. Entrepreneurs: a person who focuses on the strategic and marketing aspects of a project to develop a business

1. Customize: to customize the style of a product in terms of forms and functionalities
2. Repair: to repair or fix hardware or software parts
3. Improve: to optimize parts in order to make them more stable or usable
4. Build upon: to implement new projects based on existing ones by eventually changing their main purpose
5. Expand: to implement new functionalities and parts for an existing project
6. Produce: to manufacture a project on a self-production, small or industrial scale
7. Distribute: to define the channels for distributing a project at a local or global scale
8. Promote: to communicate a project for media exposure or sales

4. Ideate and sketch
What is the key requirement of your project: programmability? Reproducibility? Generativity? What are the main functionalities and objectives? How do the people interact with it? What technologies are used?
5. Development phase: design, prototype and document
After the release of your product, you can continue designing, prototyping and documenting it according to the feedback of the actors that interact with your project. The result of this process is the development of products-platforms that are open artefacts that people can program, reproduce and develop as a derivative, by accessing the knowledge and the tools you made publicly available.