The IPFS Project is developed by multiple teams formed by multiple organizations and ponctual or continuous invidividual contributors. A structure was developed (and continues to evolve) around Working & Research Groups, OKRs and PM best practices that were designed to support the already large and growing group of people, to coordinate among eachother at a global scale.
This document captures the Team Structures that emerged and that led to the many of the sucesses within the IPFS project, namely: Working Groups & Research Groups. At the end of this document, you will find pointers to Teams and Projects that have growned to become their own entities, namely: IPLD, libp2p and Multiformats.
Working Groups
Working Groups are teams of people that are appointed to research, develop and deploy work under the scope that the working group is focused. This structure is designed to provide clarity and direction to the project, enabling individual contributors to focus their time and energy on the areas they are most interested.
Each Working Group is free to experiment with setting their own pace, tracking work and defining priorities. The only requirements are that the Working Group exposes its focus through OKRs to the rest of the org (common interface), that it assigns a Captain, creates an entry point repo and has at least 2 full time contributors dedicatted to it.
Each contributor shouldn't carry responsibilities accross multiple working groups. This is not forbidden by any means but it is greatly disencouraged as it will disable the contributor from achieving full focus.
Research Groups
A set of people focused on exploring a specific vertical and output possible research surveys, tools, experiments and other types of knowledge that can inform and help the work done by the Working Groups or spark the creation of new Working Groups all together.
Some great examples from this structure are: research-pubsub which led to the implementation of PubSub by the IPFS/libp2p teams; and research-crdt which lead to the creation of the Dynamic Data & Capabilities Working Group which todays tackles many of the challenges of building DApps on the Distributed Web.
A Research Group doesn't require a Captain or OKRs to be formed and having individuals that subscribe to multiple Research Groups isn't considered harmful.
As a byproduct of both of these team structures is that achieve another important goal, making it simply for new users and contributors to subscribe to updates and get ramped up quickly to the current project focus.
Develop js-ipfs.
Responsibilities include:
Develop go-ipfs.
Responsibilities include:
Making IPFS GUIs simple, accessible, reusable and beautiful.
Responsibilities include:
Tools and systems for the IPFS community.
Responsibilities include:
The QA, Testing and Dev Team Enablement Working Group focuses on building developer tools, CI and automated maintenance tasks to improve the Developer Experience of the many IPFS (and related) projects.
Responsibilities include:
This Working Group hasn't been formed yet.
The Community, Events & Evangelism Working Group is responsible for building a environment that fosters collaboration, innovation and inclusiveness for the IPFS community.
Responsibilities include:
This Working Group hasn't been formed yet. However, the interim Captain is Rob Brackett
The Documentation, Education and Websites Working Group creates the Documentation and Education materials that help more users and contributors get on board to the IPFS project.
Responsibilities include:
The Integration with Web Browsers Working Group designs and implement Browser integrations, Web Extensions, Service Workers and any other strategy that contributes to IPFS being integrated with the Web today.
Responsibilities include:
Research and development of building blocks that enable collaborative applications, providing solutions for security, identity, access control, concurrency, synchronization, offline and near-real-time collaboration. This WG was born out of the results created by the CRDT Research Group.
Responsibilities include:
The IPFS Cluster Working Group is the team implementing IPFS Cluster.
Responsibilities include:
The list of existing research groups is: