SemApps organisation and roles

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.

Principles

  • 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.

Onboarding

Purpose

  • 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.).

Responsibilities

  • Ensure that each person is welcomed and well included,
  • Ensure that documentation for technological tools is up to date.

This role is energized by Gabriel

Technical partnership

Purpose

  • 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.

Responsibilities

  • 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

Communication

Purpose

  • 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.

Responsibilities

  • 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

DevX

Purpose

  • Ensure developers empowerment

Responsibilities

  • 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

Code quality

Purpose

  • Make sure SemApps has as few bugs as possible, is as fast and sober as possible, and match the specifications.

Responsibilities

  • 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

Instances hosting

Purpose

  • Ensure that the different SemApps demo sites and servers are and remain operational

Responsibilities

  • Manage domain names, OVH servers, etc.
  • Document what is done, to allow others to do it.

This role is hosted by Pierre, with Simon in support

Products

Purpose

  • Ensure the consistency, equity, and efficiency of the SemApps development strategy.

Responsibilities

  • Listen to the needs of different product owners, keeping in touch
  • List the needs of the various products that wish to rely on SemApps.
  • Prioritize the different functionalities to be developed.
  • Organize arbitration sessions, either at the technical level or at the governance level, to choose what goes into SemApps core (= maintained by the team)
  • Define detailed functional specifications
  • Define and develop a roadmap

This role is energized by Pierre

Facilitation

Purpose

  • Facilitate the collective dynamic around the project
  • Ensure that meetings are efficient, light and fluid

Responsibilities

  • 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 Pierre

Economic sustainability

Purpose

  • 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

Responsibilities

  • 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 Gabriel

Mediation

Purpose

  • Ensure the implementation of conditions conducive to cooperation

Responsibilities

  • 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 together by Gabriel and Pierre

Information gardening - Informational heritage

Purpose

  • 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.

Responsibilities

  • 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 Guillaume

Development

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".

Purpose

  • Technically build the SemApps software

Responsibilities

  • 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

Purpose

  • Be the link (in and out) of the SemApps team with the Virtual Assembly association

Responsibilities

  • 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 Gabriel