Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposed governance structure #6

Closed
wants to merge 26 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
79828fd
Create solid-team.md
Mitzi-Laszlo Jun 9, 2019
abce5b5
Update solid-team.md
Mitzi-Laszlo Jun 9, 2019
aaa815e
Update solid-team.md
Mitzi-Laszlo Jun 9, 2019
e498524
Create solid-panel.md
Mitzi-Laszlo Jun 9, 2019
26fe461
Create decision-making.md
Mitzi-Laszlo Jun 9, 2019
e23ccc3
move solid team composition and governance to solid/culture
justinwb Jun 11, 2019
f5b4698
rename to solid-panels.md
justinwb Jun 11, 2019
cd1a822
move solid-panels and governance to solid/culture
justinwb Jun 11, 2019
3bb4eb5
change panel initiative to panel project
justinwb Jun 11, 2019
78d0e05
add panel nominee requirements
justinwb Jun 11, 2019
24335b8
simplify decision making steps
justinwb Jun 11, 2019
33e48bd
keep solid team decision making in solid-team.md
justinwb Jun 11, 2019
bb95207
add community panel
justinwb Jun 11, 2019
7e8a3bd
Merge branch 'Mitzi-Laszlo-patch-1' into proposed-governance-structure
justinwb Jun 11, 2019
f912603
Merge branch 'Mitzi-Laszlo-patch-3' into proposed-governance-structure
justinwb Jun 11, 2019
a569f88
add rationale for a solid team
justinwb Jun 12, 2019
4b6b58a
add rationale for solid panels
justinwb Jun 12, 2019
2e5be54
clarify solid team role
justinwb Jun 12, 2019
658b65a
update rationale with projects
justinwb Jun 12, 2019
c4eb3f2
relative links and solid panels
justinwb Jun 12, 2019
e618381
update rubens responsibilities
justinwb Jun 12, 2019
33f6cfa
Update solid-team.md
Mitzi-Laszlo Jun 16, 2019
5128844
incorporate feedback from @ericprud
justinwb Jun 24, 2019
c72bfd8
avoid en-us vs en-gb by path of least resistance
justinwb Jun 24, 2019
95d1116
move decision making sections
justinwb Jun 24, 2019
f8150df
only solid leader can change governance or team
justinwb Jun 24, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
@@ -1,6 +1,6 @@
This document defines the culture of how decisions are made about Solid, and [records how this has changed over time](https://github.com/solid/culture/blob/master/history.md).
This document defines the culture of how decisions are made about Solid, and [records how this has changed over time](https://github.com/solid/culture/blob/master/history.md).

Currently, [Solid decision making](https://github.com/solid/culture/blob/master/decision-making.md) is based around the [Solid Team](https://github.com/solid/culture/blob/master/solid-team.md) who may also consult the [Solid Panel](https://github.com/solid/culture/blob/master/history.md) (also referred to as Solid Community) for direction via a vote on occasion.
Currently, [Solid decision making](decision-making.md) is based around the [Solid Team](solid-team.md) who may also consult one or more [Solid Panels](solid-panels.md) for direction on occasion.

Solid decision making should be written collaboratively in public over several weeks on the Solid GitHub account and communicated clearly at the weekly W3C Solid Community Group meetings before being presented to the Solid Leader for final approval. The Solid Leader needs to approve any decision-making processes via completing the final merge for it to be legitimate.

Expand Down
33 changes: 33 additions & 0 deletions decision-making.md
@@ -0,0 +1,33 @@
# Decision Making

## Solid Team

Transparency in the decision making process is important. Decisions will be documented along with the rationale and considerations taken into account around a given decision. The Solid Team always strives to operate in a manner that aims for team consensus without the need for formalized voting.

For any substantial decisions where consensus cannot be reached, the Solid Team votes. As the Solid Leader, Tim Berners-Lee can always veto the voting outcome. Every Solid Team member must either vote or explicitly abstain. Passing requires a strict majority of non-abstaining Solid Team members. Stalemates are resolved by the Solid Leader, Tim Berners-Lee.

The Solid Team utilizes this [Decision Making Process](#decision-making-process).

## Solid Panels

Solid Panels are expected to use this [Decision Making Process](#decision-making-process), to be transparent in work being conducted under their mandate, and to provide regular status updates through established channels.

Solid Panels should always strive to operate in a manner that aims for consensus without the need for formalized voting. When voting is necessary, stalemates are resolved by a majority vote of the Solid Team. The Solid Team reserves the right to raise any decisions made or in-process within a Panel to a vote by the Solid Team.

## Decision Making Process

We employ a framework for making decisions on the Solid Team and across Solid Panels. As a general rule, this framework should be applied to any substantial choices at a Team or Panel level to ensure informed and thoughtful decisions.

This process may take place on or across different mediums. Wherever it transpires, what is most important is that the process is inclusive for those individuals that have a part in making the decision, and transparent for those who would be impacted by the same.

1. __Identify the Problem__ - The problem and the reason why the problem needs to be solved must be well understood. This includes an understanding of how solving the problem supports the Solid Roadmap.

2. __Lay out Options__ - Detail reasonable paths forward, including pros and cons for each option. This is important to ensure that informed decisions are made.

3. __Invite Conversation__ - Ensure that decision makers and (in most cases) affected parties have reviewed the material and have the ability to provide their input. Oftentimes, this occurs within Github, but can extend out into group calls, group chats, community meetings, and more.

*If you'd like to add this to the agenda of an upcoming community group meeting, you will need to get a W3C account and join the W3C Solid Community Group, then request that it be added to the weekly call agenda. By adding the item to the agenda all members of the W3C Solid Community Group will be automatically notified, and therefore are able to review and/or comment ahead of the call.*

4. __Reach Consensus or Vote__ - Decision makers should strive to reach a simple consensus. When consensus cannot be reached, they should conduct a vote by simple majority.

5. __Document and Communicate__ - Once a decision is made, the reason why should be documented, and then included as part of a notification through established communication channels (as appropriate).
100 changes: 100 additions & 0 deletions solid-panels.md
@@ -0,0 +1,100 @@
# Solid Panels

Solid Panels are individual groups focused on a specific technical or non-technical domain that are sanctioned by the Solid Team. For example, a Security Panel could be tasked with evaluation and advancement of the Solid security model. A Specification Panel could be tasked with evolution of the Solid Specification. Proposed, Active, and Archived Solid Panels are listed below.

### Active Solid Panels

No Solid Panels have been activated yet.

### Proposed Solid Panels

The following Solid Panels have been proposed and are currently pending a majority vote by the Solid Team. The proposed names, initial projects, and mandates may be subject to change prior to voting.

#### Solid Specification Panel

The purpose of the Specification Panel is to ensure that the Solid Specification is complete, robust, and evolves in alignment with the Solid Roadmap, and to provide advice and guidance to those looking to create specification compliant implementations. The first proposed project, to be started immediately, is for this panel to commence with the creation of the v1.0 Solid Specification.

Nominees for this panel are required to have extensive background and experience in creating, curating, and applying the existing Solid Specification, and/or one or more of the standards that the existing Solid Specification incorporates.

#### Security Panel

The purpose of the Security Panel is to ensure that the Solid security model is well-documented, comprehensive, and constantly evolving, as well as to provide security-related advice and guidance to other panels, and to the Solid Team. The first proposed project, to be started immediately, is for this panel to commence with the creation of an in-depth documentation of the Solid security model.

Nominees for this panel are required to have demonstrable background in some combination of application security (server-side or client side), network security, system/device security, and/or data privacy. They must also have a working knowledge of Solid and a clear understanding of its patterns of use.

#### Interoperability Panel

Interoperability of data across applications is crucial to the core value proposition of Solid. The purpose of the Interoperability Panel is to ensure that Solid is always capable of delivering robust interoperability, and that tooling and resources are available to foster the same. The first proposed project, to be started immediately, is for the panel to commence with a proposal for data discovery by client applications in a Solid Pod.

Nominees for this panel must have extensive background in Solid patterns of use, and experience developing applications with linked data models. They should also have working knowledge of data shapes (via ShEx and/or SHACL).

#### Community Panel

The purpose of the Community Panel is to establish a diverse group of individuals representative of the different stakeholder groups in the Solid Community, from developers and pod providers to users and experts in the field. The Community Panel becomes a vehicle for consultation by the Solid Team or other Solid Panels when community perspective is needed as part of decision making.

Nominees for this panel must be at least one of the following:
- Solid Team Member
- former MIT Solid Project Team Member
- Active Identity Provider
- Active Pod Provider
- Active Solid Application Developer
- Active Solid User - who show a minimum engagement of having a WebID, Pod, and use at least one Solid app
- Experts in a field relevant to Solid

### Archived Solid Panels

No Solid Panels have been closed and subsequently archived yet.

## Rationale

*Why do we need Solid Panels?*

It is our collective responsibility to evolve Solid into a mature, world class set of standards and technologies that are stable, versatile, and reliable. Solid must work perfectly whether it's powering one personal pod, or driving an ecosystem with millions of pods and thousands of applications.

To realize this we need in-depth focus, research, and collaboration in very specific subject domains. This requires us to join together subject matter experts who can bring an equally deep level of expertise to the table in those specific areas. There is no single person that can cover the diversity of technologies and subject areas related to Solid. Furthermore, no single expert in one domain can cover all perspectives. Solid Panels are our answer to this.

Furthermore, we need a way to take this combined expertise in a given subject area, and mobilize it. We use projects to focus the members of a given panel on deliverables that move the needle for Solid.

The Solid Team's role in all of this is to ensure that we're organizing the right people around the right problems, at the right time. Following that, to make sure that they are working together constructively, actively, and in a way that supports the Solid Roadmap. In cases where progress is stalled, impasses reached, or where decisions are made that could have adverse impact on the advancement of the Solid Roadmap, the Solid Team may need to intervene to keep things on track.

Ultimately, Solid Panels are where the organized work gets done, and are instrumental in advancing the Solid Roadmap.

## Solid Panel Governance

A new Panel is sanctioned by a majority vote of the Solid Team. Requests for the formation of a new Panel may be submitted to any member of the Solid Team. To be considered, a Panel must be able to demonstrate a clear and substantial benefit to the Solid Mission, and must maintain that trajectory to remain active. Benefit and trajectory are measured by the Solid Team. Not all Panels will be expected to persist indefinitely.

All Solid Panel members need to demonstrate a firm grasp of the philosophy of the Solid Project and the Solid Roadmap. They must demonstrate a track record of being constructive and collaborative, and a willingness to dedicate time to advance the Solid Mission through their work on the Panel.

The Solid Team may consult one or more Panels for advice on occasion when an internal Solid Team vote is not sufficient. Sufficiency is judged by the Solid Team. The Solid Team can request a vote on issues that they feel are important to open up to one or more Solid panels.

### Panel Mandate

Every Solid Panel is expected to actively contribute to the evolution of Solid in a way that supports the Solid Roadmap and the healthy growth of the Solid Ecosystem. Panel members are expected to act as custodians of Solid, within and outside of the community.

Every Panel will have a stated purpose that can be mapped directly to the Solid Roadmap, and the Solid Team may task that Panel with specific projects to be completed as part of the fulfillment of its mandate. For example, the Specification Panel could be tasked with an project to complete the next major version of the Solid Specification.

### Panel Nominations

An individual can be nominated to a Panel by:
- A Solid Team Member
- A member of the Panel in question
- A member of another Panel
- Self-nomination

An individual's experience and skillset must clearly align with the Panel they are nominated to. Positive contribution to existing Solid project work is weighed heavily in their favor, but not required.

Panel members must be approved by a majority vote of the Panel (if already established), and a majority vote of the Solid Team. An individual may belong to more than one Panel. A Solid Team member may participate as a member of a Panel.

### Vacancies

A Solid Panel member may resign their position at any time. Whenever there is a vacancy in a Solid Panel, a new Panel member may be nominated and selected through the [Panel Nomination](#panel-nominations) mechanism detailed in this document.

### Conflicts of Interest

Solid Panel members are trusted to act in the best interests of Solid rather than themselves or their employers. Violation may result in removal from the panel through a vote of no confidence.

### Vote of No Confidence

In exceptional circumstances, a Panel may need to be dissolved by a majority vote of the Solid Team.

It may also be necessary to remove someone from a Solid Panel against their will. For example, due to egregious and ongoing code of conduct violations. Removal of a Solid Panel member must be supported by a majority vote of the Solid Panel in question. The Solid Team also reserves the right to remove a Panel member, or to veto the removal of a Panel member, through a majority vote of the Solid Team.