Vous avez sûrement déjà croisé ces schémas humoristiques d’organisation des GAFAM :
Amusant, non ? Ce sont évidemment des caricatures, mais elles soulèvent de véritables questions en matière d’organisation, et surtout, à propos de la culture d’entreprise qu'elles reflètent.
Chez HarfangLab, nous essayons de créer une organisation où la répartition des rôles et des responsabilités favorise l’efficacité et le travail en équipe ; nous nous inspirons du modèle “intégré” proposé par Spotify pour le faire évoluer régulièrement.
Ce modèle d’organisation repose sur des petites équipes que l’on appelle des Squads : il s’agit d’équipes regroupant plusieurs corps de métier, organisées autour d’objectifs concrets pour développer des fonctionnalités dans le produit.
Cet article est un retour d’expérience sur la mise en place de cette manière de travailler, et sur les difficultés qui peuvent se présenter.
Mais avant de vous présenter certains des bénéfices du travail en Squads, parlons d’une cérémonie un peu particulière qui a lieu tous les trimestres chez nous... Le Mercato !
Le Mercato, c’est quoi ?
HarfangLab compte différents pôles de compétences métiers nécessaires en développement logiciel : développeurs Frontend (JavaScript), Backend (Python) ou Système (Rust/C), DevOps (Kubernetes...), Designers web, Ingénieurs et Chercheurs en IA, Analystes CTI, QA, et Product Owners.
Chaque trimestre, les Product Owners définissent et hiérarchisent un ensemble de fonctionnalités prioritaires afin d’améliorer le produit, en tenant compte des retours clients et de la vision stratégique à long terme.
Comment organiser la réussite de tous ces projets ? De nombreuses méthodes existent, et nous avons choisi de laisser toute l’équipe participer à l’organisation de cette réussite.
Alors le Mercato, c’est quoi ?
Le Mercato, c’est la grande réunion où tous les membres des différents pôles se rassemblent pendant une après-midi pour se répartir les projets du trimestre. Il faut voir cette cérémonie comme une sorte de forum où les équipes échangent et se partagent les missions afin de créer les Squads du trimestre qui arrive.
Les projets sont d’abord présentés à toute l’équipe. Ensuite, chaque pôle technique se réunit avec ses développeurs pour anticiper les défis techniques (connus à ce moment là) de chaque projet ; et en fonction de ses centres d’intérêts, chaque membre des pôles exprime les sujets sur lesquels il ou elle souhaite travailler.
Enfin, un Squad Lead est élu, avec la charge de s’assurer de la bonne priorisation des différents objectifs dans sa Squad.
Voilà, c'est comme ça que les Squads se forment, en étant très rapidement autonomes du fait de leurs caractéristiques en termes de composition et de fonctionnement :
- elles ont des objectifs définis pour le trimestre,
- elles sont mixtes, car composées de tous les corps de métiers nécessaires à l’atteinte de leurs objectifs,
- elles ont une taille réduite (3 à 5 personnes) afin de simplifier la gestion de projet.
En pratique, c’est environ 30 projets (fonctionnalités et évolutions purement techniques) qui sont présentés et ventilés dans une dizaine de Squads chaque trimestre.
Quels sont les avantages du travail en Squads ?
Un des avantages les plus intéressants du travail en Squads est de permettre à tous ses membres d’être acteurs de la vie d’une équipe à différents niveaux. Aussi, chaque membre est un peu l’ambassadeur de son pôle au sein de sa Squad !
Par ailleurs, une Squad étant une plus petite équipe, il est plus simple de prendre des rôles de Lead, de Secrétaire/Scrum ou d'Epic Owner tout en continuant ses activités métier (Développeur, Designer, QA...). Ne pas avoir de "chef de projet" permanent au sein de chaque Squad implique ainsi d'endosser des rôles tels que :
- Lead de Squad, pour représenter l'équipe et assurer la bonne planifications des sprints ;
- Epic Owners, qui orchestrent le suivi de l'exécution de chaque objectif de chaque Squad ;
- Scrum master, responsables de l’animation des daily meeting, et des rétrospectives.
C'est une approche qui repose sur les principes de l’holacratie, où l’organisation se construit autour de rôles qui peuvent être incarnés au cours du temps par différentes personnes.
Un second point important lié au travail en Squads est qu'il favorise la proximité entre les différents corps de métier : développer une fonctionnalité requiert très souvent la coordination de Designers, Dev frontend (TypeScript), backend (Python) et Rust pour la partie détection, et le fait d’avoir des équipes de taille réduite permet cette auto-gestion en petits groupes qui favorise les échanges au sein d’un même projet. Lorsqu’une discussion technique doit avoir lieu, les interlocuteurs sont les membres de la Squad en premier lieu ! Ce modèle simplifie la recherche d’information et accélère la résolution des problèmes. En outre, elle permet aux développeurs de prendre des responsabilités dans un projet en interaction avec différents métiers, au-delà des aspects purement techniques.
Organisation en Squads : ce qu’il faut savoir
L’un des premiers écueils à éviter : vouloir lancer trop de sujets en même temps. En effet, le travail en Squads doit permettre de traiter plus de sujets de front, mais chaque Squad doit pouvoir atteindre sereinement ses (pas trop nombreux) objectifs.
Aussi, si les Product Owners fixent le cap et que les Squads définissent les moyens à mettre en œuvre pour y parvenir en autonomie, il est important de garder un œil sur l’avancement de l'ensemble des différents projets pour pouvoir les reprioriser si nécessaire. C’est la raison pour laquelle un Squad Lead, dont nous avons parlé un peu plus tôt, est élu pour chaque Squad : afin de s’assurer du respect des priorités définies en début de trimestre par les Product Owners.
L'un des prérequis à bien avoir en tête pour s’organiser en Squads : chaque pôle de compétence doit impérativement s’appuyer sur des expertises solides, et compter des référents pour chaque expertise. En effet, les membres de chaque Squad sont souvent amenés à faire appel au référent de leur pôle de compétence, qui peut intervenir dans une Squad différente.
De plus, il faut également pouvoir s'appuyer sur des profils autonomes sachant travailler en équipe : chacun doit être capable d’exposer un problème et solliciter ses collègues, d’autant plus avec les nouveaux modes de travail (télétravail). L’entraide est une valeur fondamentale pour ce type d'organisation.
Les bénéfices concrets pour les équipes
Comme évoqué, le fait de fonctionner par Squads permet aux équipes d’être responsabilisées sur des projets dont elles voient les tenants et les aboutissants, et donc en saisir le sens.
Cette organisation garantit aussi une dynamique que tout le monde apprécie, car chacun peut changer de projet à chaque Mercato, pour mieux apprendre, développer des compétences annexes ou encore tisser des liens avec différentes équipes en interne... Elle favorise l’interaction, la curiosité et l’entraide.
Et en termes d’efficacité ? Une nouvelle version de notre produit sort chaque mois, en incluant les évolutions de toutes les Squads. A la fin du trimestre, elles atteignent entre 70% et 90% des objectifs donnés, et d’après les retours des équipes, pouvoir changer de projets tous les 3 mois est très motivant.
On peut donc affirmer que c’est une réussite !