Our team's organisation is inspired by sociocracy and shared governance.
The core team has described the first roles after a few iteration in May 2020 - you may refer to the original pad (in french) Those role have a purpose and accountability besides a referent which is elected by consent.
The objective of this organisation is to be very inclusive, evolutive and open to collective intelligence.
- The mission described here are not supposed to be performed by the person who host it - People elected are referents who supervise the mission.
- A role can be very energized, or not very much. The important thing is that there is a person who remains vigilant, and who can be mobilized when necessary.
- It's OK to have more roles than contributors.
- A role can be energized by a circle or a single person, but there is always a single person identified as a referent.
- Roles are allocated by election by consent (no candidate)
- A role is autonomous to act and take decision within its own perimeter.
- Facilitate the inclusion and ease the self-autonomy.
- Help to appropriate the culture and the SemApps framework, as well as the tools that allow us to work together (Riot, Roam Research, but also tools such as decision by consent, Agile methods, etc.).
- Ensure that each person is welcomed and well included,
- Take care of the departures
- Ensure that documentation for technological tools is up to date.
This role is energized by Guillaume, with Yannick in support
- Ensure that SemApps integrates into the existing software ecosystem.
- Ensure that SemApps provides the highest possible interoperability with other software.
- Facilitate the decompartmentalization of software.
- Maintain relationships with other players in the semantic web, in France and abroad.
- Ensure that W3C standards are respected.
- Make a technical watch.
This role is energized by Simon, with Thomas F. in support
- Make SemApps known to as many people as possible
- Encourage the popularization of technical terms, so that the philosophical ideas behind the semantic web can be understood by a non-technician.
- Have sufficient communication supports
- Garden the website (except for the technical documentation)
- Watch on news, events in which we can participate
- Coordinate with Virtual Assembly to organize events, meetup, etc.
- Ensure a newsletter is sent at least every 3 months
This role is energized by Pierre
- Ensure developers empowerment
- Ensure that the documentation is of high quality and up to date, that each new PR comes with documentation.
- Be the interlocutor in case of difficulties of new developers.
- In major architectural choices, keep in mind the use, ease, and sobriety of the technologies chosen.
- Suggest code conventions to facilitate the work of new developers
This role is energized by Sébastien
- Make sure SemApps has as few bugs as possible, is as fast and sober as possible, and match the specifications.
- Ensure that all bugs are reported to developers
- Inform users when bugs are fixed
- Ensure that the test coverage is sufficient
- Setup indicators to verify that code conventions are respected
- Setup performance tests (benchmarks)
- Make visible and archive sobriety indicators
This role is energized by Sébastien
- Ensure that the different SemApps demo sites and servers are and remain operational
- Manage domain names, OVH servers, etc.
- Document what is done, to allow others to do it.
This role is hosted by Yannick, with Sébastien in support
- Ensure the consistency, equity, and efficiency of the SemApps development strategy.
- Listen to the needs of different product owners, keeping in touch
- List the needs of the various products that wish to rely on SemApps.
- Organize arbitration sessions, either at the technical level or at the governance level, to choose what goes into SemApps core (= maintained by the team)
- Inform the SemApps team and in particular the Development role of priorities when they are funded
- Define detailed functional specifications
- Define and develop a roadmap
This role is energized together by Guillaume and Pierre
- Facilitate the collective dynamic around the project
- Ensure that meetings are efficient, light and fluid
- Ensure that the principles of agility are well respected
- Guarantee the sprint process ("scrum master")
- Make sure there is a facilitator at each important meeting
- Introduce new facilitation methods
- Train other people in facilitation methods
This role is energized by Sébastien, with Pierre, Guillaume and Jérémy in support
- Guarantee the material conditions allowing the contribution of contributors
- Ensure that the contributors to the project feel fairly compensated
- Maintain maximum clarity and transparency on financial flows, so that financial problems do not disrupt human functioning.
- Is responsible for the co-payment process or a similar method which will have to be defined later
- Keep available to all documents allowing to know the financial state of the project, in the short and medium terms.
- Inform the coordination circle when there is an opportunity or a financial risk
This role is energized by Simon, with Jérémy and Yannick in support
- Ensure the implementation of conditions conducive to cooperation
- Ensures that the confidence / comfort framework is respected.
- Be vigilant that there is an atmosphere conducive to cooperation
- Listen to people who have relationship difficulties with other members of SemApps
- Be the referent of regulatory processes (to be established)
This role is energized by Pierre, with Guillaume in support
Information gardening - Informational heritage
- Ensure that the wealth produced in our meetings, exchanges is stored, accessible and well presented, and that it remains available over time to any contributor, including beyond the life of the project.
- Ensure that the minutes of the meetings are made, that they are accessible and that they remain accessible over time.
- Structure and highlight the decision records, so that continuity is assured.
- Whether using Roam Research, YesWiki or CodiMD, garden this tool so that it remains consistent and that everyone respects good practices.
- Ensure that the rules around Riot salons are respected
This role is hosted by Jérémy, with Yannick in support
The role is assumed by the circle and the referent is the privileged interlocutor of this circle. It is not a role of "Lead developer".
- Technically build the SemApps software
- Setup collective times to think about the overall architecture of the code
- Be the technical contact for other roles concerning architecture, specifications, etc.
- Understand, interpret and advise the Products role
- Ensure that the requested features are produced on time, according to the specifications, and if not warn others
- Ensure the maintenance of the SemApps core so that it remains operational over time
This role is energized by Simon
Virtual Assembly coordination
- Be the link (in and out) of the SemApps team with the Virtual Assembly association
- Represent SemApps team in the Virtual Assembly association
- Propose votes if what we do is outside the scope of the project
- Forward the information to the AV
- Link with other AV projects
- Fill out the AV newsletter
This role is energized by Sébastien, with Guillaume in support