Qu'est-ce qu'un développeur "maintainer" chez SpaceFill ?

La team Tech de SpaceFill reprend le concept de Sofware Maintainer de l'univers Open Source.

Chez SpaceFill, depuis début 2020, certaines tâches sont résérvées aux développeurs maintainers :

  • valider des Merge Requests (le maintainer est le dernier reviewer)
  • écrire des spécifications techniques et parfois participer aux specifications produits
  • guider un nouveau développeur dont il est le parrain

Les maintainers sont "owners" d'une ou plusieurs Epics. Concrètement, cela signifie :

  • un maintainer doit veiller à la cohérence technique et produit de son Epic
  • un maintainer est le point de contact, "l'interface de communication" entre la team Tech et la team Produit ou le reste de SpaceFill pour tous les sujets qui concernent ses Epics
  • un maintainer doit aussi veiller à la bonne progression de ses Epics (en étroite collaboration avec la team Produit)

Une Feature Team peut contenir un ou plusieurs maintainers.

Un développeur peut être maintainer d'un ou plusieurs périmètres. D'un point de vu formel, il est assigné à un ou plusieurs dossiers du code source du mono repository de SpaceFill. Exemples de périmètres :

  • le dossier /databases/database-api/migrations : tout ce qui concerne les migrations d'une base de données
  • le dossier /services/frontends/packages/admin-console : tout ce qui concerne le frontend de la console d'administration de SpaceFill
  • le fichier .gitlab-ci.yml : tout ce qui concerne la CI de SpaceFill
  • ...

Pour être maintainer d'un périmètre, le développeur doit avoir sensiblement participé à ce sujet / ce composant ainsi que connaitre son historique technique et produit.

Quels sont les différences entre un Lead Developer et un maintainer ?

En pratique ces rôles se ressemblent beaucoup.

  • généralement une équipe de développeur contient un seul Tech Lead. Chez SpaceFill, en fonction des configurations, il peut y avoir plusieurs maintainers par team
  • généralement un Tech Lead est "leader" de tous les sujets de sa team. Chez SpaceFill le "leader" peut varier en fonction des domaines d'expertise du développeur (historique du projet, ses contributions…)
  • généralement un Tech Lead est "leader" dès sa prise de fonction. Chez SpaceFill une certaine ancienneté est nécessaire pour devenir maintainer