Charte de la communauté IGO

Mission

Supporter le développement et l’évolution de la solution IGO afin de répondre aux besoins des utilisateurs, notamment en diffusant les données géographiques produites par le gouvernement du Québec et ce, dans le respect des hauts standards internationaux en matière de géomatique.

Structure et parties prenantes

La communauté IGO est composée d’utilisateurs et de contributeurs appuyés par une structure de gouvernance dont l’objectif est de définir les orientations et la stratégie d’évolution du projet et d’organiser le développement et l’évolution de la solution.

La structure de gouvernance se décline en trois comités :

  1. Le comité directeur (CD) qui émet des orientations d’ordre stratégique (financières, matérielles et humaines)
  2. Le comité de pilotage (CP) qui est responsable de la bonne compréhension des besoins métier et de la satisfaction des utilisateurs
  3. Le comité technique (CT) qui assure le leadership technique du projet dans son ensemble et s’assure de l’arrimage avec les besoins des utilisateurs.

Schéma de la structure de la communauté

Schéma

Les utilisateurs ou les développeurs peuvent devenir contributeurs, qui peuvent à leur tour devenir membres de comités, s’ils ont un intérêt dans la prise de décisions concernant l’évolution de la solution et que leur implication ou leur contribution dans la communauté le justifie.

Notons que tous les acteurs de la communauté ont de l’importance pour la bonne santé de la communauté et qu’ils sont tous régulièrement informés des décisions des différents comités.

Comité directeur (CD)

Le comité directeur a comme mandat de superviser l’ensemble des activités de la communauté IGO. Il est composé de gestionnaires (ou de leurs représentants) provenant de tout organisme qui a fourni au cours de la dernière année, ou qui s’engage à fournir pour l’année en cours, une contribution concrète au noyau de l’application IGO. Le CD a les responsabilités suivantes :

  • Assurer un apport financier, humain et matériel;
  • Entériner les recommandations proposées par les comités de pilotage et technique et approuver le calendrier de réalisation (feuille de route stratégique);
  • Gérer la relation avec les organismes publics et les partenaires extérieurs;
  • Établir le code de conduite et statuer sur le choix de la licence;
  • Produire un bilan annuel (ou à une autre fréquence, selon les besoins).

Le comité directeur se réunit deux fois par année (ou à une autre fréquence, selon les besoins).

Coordonnateur du CD

Le coordonnateur du comité est élu par les membres du comité directeur. Ses responsabilités sont les suivantes :

  • Organiser les rencontres du comité et rédiger les comptes rendus;
  • Représenter le comité directeur lorsque sa présence est sollicitée par d’autres instances.

Comité de pilotage (CP)

Le comité de pilotage est responsable de la bonne compréhension des besoins métier et de la satisfaction des utilisateurs. Il est formé de personnes issues des organismes contributeurs pour représenter les utilisateurs de la solution. Le CP a les responsabilités suivantes :

  • Consolider les besoins des utilisateurs et les présenter aux autres comités;
  • Étudier les demandes de changement et d’évolution en concertation avec le comité technique;
  • S’assurer que les modifications apportées à la solution informatique sont conformes aux attentes initiales;
  • Suivre les déploiements et recueillir le retour d’expérience des utilisateurs;
  • Animer, informer et maintenir active la communauté;
  • Fournir un suivi des activités au comité directeur en collaboration avec le comité technique.

Le comité de pilotage se réunit aux 4 mois environs (ou à une autre fréquence, selon les besoins), en général préalablement aux rencontres du comité technique.

Coordonnateur du CP

Le coordonnateur du CP est nommé par les membres du CP (sur une base annuelle). Ses responsabilités sont les suivantes :

  • Organiser les rencontres du comité et en rédiger les comptes rendus;
  • Siéger aux comités directeur et technique à titre de représentant du CP.

Comité technique (CT)

Le comité technique assure le leadership technique des activités de la communauté. Il est composé de développeurs experts et de spécialistes en infrastructure qui participent à la conception et à la réalisation de la solution. Les membres du comité technique proviennent des organismes contributeurs et sont fortement impliqués dans l’évolution du produit. Le CT doit compter au moins un validateur de code^1. Le CT a les responsabilités suivantes :

  • Proposer un calendrier d’évolution (feuille de route stratégique) en concertation avec le comité de pilotage et le transmettre au comité directeur pour approbation;
  • Analyser les demandes de changement, donner un avis sur les incidences de celles-ci et effectuer les recommandations aux autres comités tout en coordonnant leurs réalisations (feuille de route technique);
  • Désigner les validateurs de code et gérer les droits d’accès au code;
  • Réaliser les choix de nature techniques (langages, logiciels, etc.);
  • Établir un mécanisme de gestion des versions;
  • Rédiger les conventions et règles de codage;
  • Produire le guide de contribution;
  • Fournir un suivi des activités au comité directeur en collaboration avec le comité de pilotage.

Le comité se réunit aux 4 mois environs (ou à une autre fréquence, selon les besoins), en général à la suite des rencontres du comité de pilotage.

1 Commiter en anglais

Coordonnateur du CT

Le coordonnateur du CT est nommé par les membres du CT. Ses responsabilités sont les suivantes :

  • Organiser les rencontres du comité et en rédiger les comptes rendus;
  • Siéger aux comités directeur et de pilotage à titre de représentant du comité technique.

Contributeurs

Nous entendons par contributeur toute personne qui participe activement aux activités de la communauté, sans nécessairement faire partie d’un comité. Les principaux acteurs sont regroupés en trois catégories :

Utilisateurs ou ambassadeurs : ce sont les utilisateurs ou les promoteurs de la solution en logiciel libre de la communauté qui s’engagent significativement dans l’évolution et la promotion de la solution. Ils peuvent participer de plusieurs façons :

  • Essais et rapports de bogues;
  • Documentation d’utilisation;
  • Assistance aux autres utilisateurs;
  • Activités de promotion;
  • Coordination, charge de projet ou services-conseils.

Développeurs : ce sont en général des programmeurs en informatique ou géomatique, des intégrateurs ou des concepteurs de site web. Ils ont les responsabilités suivantes :

  • Développer le nouveau code;
  • Corriger et améliorer le code existant;
  • Concevoir l’assemblage commun de l’outil web;
  • Définir l’ergonomie et le rendu visuel;
  • Produire la documentation technique.

Validateurs de code : ce sont des programmeurs experts désignés par le CT, qui sont habilités à valider le travail des autres développeurs. Ils ont les responsabilités suivantes :

  • Approuver et intégrer le code soumis en s’assurant que les conventions et règles sont respectées.

Modes de fonctionnement

Sources de financement

Les sources de financement de la communauté se traduisent par une participation financière et/ou humaine et/ ou matérielle des contributeurs. Le CD a la responsabilité de garantir un apport financier, humain et matériel suffisant pour assurer la pérennité de la solution.

Licence et droit d’auteur

IGO est un logiciel libre utilisant la version Réciprocité de la Licence Libre du Québec (LiLiQ-R), qui vise à préserver le caractère libre des logiciels y étant assujettis. Ainsi, toute personne qui modifie et distribue un tel logiciel est tenue de le faire sous les termes de la LiLiQ et d’en permettre l’accès au code source.

Référence : https://forge.gouv.qc.ca/licence/liliq-v1-1/#réciprocité-liliq-r

Mécanismes de prise des décisions

Ces mécanismes de prise de décision ne sont pas propres à un comité en particulier. Ils doivent s’appliquer uniformément à tous les comités de la communauté. Les mécanismes suivants sont retenus :

Chercher le consensus

Comme principe général, il est préférable que les décisions soient prises à la suite d’un consensus entre les différents membres d’un comité. Si un consensus ne peut être obtenu, le vote sera utilisé.

Choix des membres des comités

Les organisations qui apportent une contribution significative (financière, matérielle ou humaine) au développement du produit qui bénéficie à l’ensemble de la communauté sont éligibles à être représentés sur les différents comités et pouvoir ainsi participer à la prise de décision.

Mécanisme de vote

Le vote est utilisé si le consensus ne peut être obtenu dans le comité concerné ou si une consultation plus large est pertinente pour la décision. Les règles suivantes sont appliquées :

  • Poids du vote : un membre = une voix;
  • La notation suivante pour le vote est adoptée :
+1 Signifie « je suis d’accord et m’engage à supporter cette décision et collaborer à sa
réalisation »
0 Signifie « je m’abstiens »
-1 Signifie « j’ai une objection ». Ce vote est considéré comme étant un veto : dans ce
cas, la personne votante doit proposer une solution alternative
  • Une proposition est acceptée si elle reçoit au moins +2 (incluant l’auteur) et aucun veto (-1);
  • Si une proposition reçoit un veto (-1) et qu’il est impossible de satisfaire toutes les parties après discussion, la proposition peut être soumise pour un second vote ultime. Dans ce cas, un vote positif de la majorité absolue de tous les membres du comité sera requis pour que la proposition soit acceptée et le veto ne s’applique plus;
  • Le résultat du vote est compilé et publié.

Gestion des demandes de changements ou d’amélioration

Les demandes de changement ou d’améliorations peuvent émaner des utilisateurs (elles couvrent alors l’aspect métier) ou bien du comité technique (pour couvrir l’aspect technique). Si le changement est important (forte implication humaine et/ou financière), une demande d’autorisation est formulée et envoyée au CD pour approbation.

Demandes des utilisateurs

Les besoins de changements ou d’améliorations sont souvent exprimés par les utilisateurs. Le comité de pilotage détermine si une demande doit être réalisée ou non et précise la priorité accordée. S’ensuit une discussion avec le comité technique afin de déterminer la faisabilité et les efforts requis. Au final, les demandes acceptées sont ajoutées à la feuille de route technique.

Demande de changements techniques

Les changements d’ordre technique sont très variés : ils peuvent survenir en raison d’une évolution technologique, de la découverte d’un problème de sécurité, etc. Généralement, les développeurs vont tenir des discussions préliminaires afin de bien cerner la portée du changement. Éventuellement, une demande est formulée au comité technique. Dans le cas d’un changement impactant les utilisateurs, la consultation et l’approbation du comité pilotage sont nécessaires.

Outils de travail de la communauté

Une forge désigne un système de gestion de développement collaboratif de logiciel qui propose un ensemble d’outils dédiés au développement d’un ou de plusieurs logiciels.

Forge publique

Github est retenu comme forge publique pour IGO pour gérer le code du tronc commun d’IGO :

  • https://github.com/infra-geo-ouverte/igo2 (code assemblé pour l’application commune)
  • https://github.com/infra-geo-ouverte/igo2-lib (librairie des fonctionnalités communes de base)

Les utilisateurs peuvent soumettre des tickets (bogues ou suggestions d’amélioration) via les outils de tickets Github et ceux-ci seront révisés par les comités de pilotage et techniques. Les changements futurs et leur priorisation (feuille de route technique) sont publiés via l’outil de planification des versions Github.

Forge gouvernementale

Le gouvernement du Québec dispose d’une forge qui est à la disposition des organismes publics. Elle offre la possibilité d’y héberger du code en mode public ou privé. Plusieurs contributeurs à IGO utilisent le gestionnaire de dépôts Gitlab de la Forge gouvernementale pour le développement de la version personnalisée de leur navigateur IGO ou de services connexes.

La Forge gouvernementale est également utilisée comme outil d’interaction entre les différents comités. La planification de haut niveau des tâches est disponible via les outils de tickets de Gitlab. La feuille de route stratégique qui reflète les contributions de chacun et l’évolution sur une base annuelle ainsi que les autres documents d’intérêt à la gouvernance du projet sont publiés sur le wiki de Gitlab.

Enfin, un salon de discussion ainsi qu’une liste de distribution sont à la disposition des membres de la communauté.

Pour accéder à l’un ou l’autre de ces outils, envoyer un courriel à info@igouverte.org.

Dernière mise à jour : 8 janvier 2020