Dans une startup on grandit vite, on sort rapidement de nouvelles fonctionnalités et de nouveaux projets. Les équipes tech & produit passent la majorité de leur temps sur ces nouveaux sujets pour toujours répondre au mieux aux besoins des clients.
Il ne faut cependant pas nĂ©gliger la maintenance de lâexistant pour bĂątir de solides fondations. Plus les fonctionnalitĂ©s et projets sâaccumulent, et plus le temps Ă accorder Ă la maintenance devient important. Câest pourquoi chez Indy nous avons mis en place ce que lâon appelle les Caribous đŠ.
Le Caribou quâest-ce que câest ?
Le Caribou est la personne en charge de la maintenance. Câest elle qui, en prioritĂ©, doit se charger de :
- répondre aux tickets sur le support interne
- débloquer ses collÚgues (au support notamment) en cas de problÚmes
- surveiller les alertes remontées par notre monitoring (ex: issues Sentry*) et alerter les équipes en cas de gros pépin
- vĂ©rifier et rĂ©gler les incohĂ©rences de donnĂ©es trouvĂ©es par nos algorithmes dâaudit
- sâassurer de la bonne santĂ© de nos tĂąches asynchrones (ex: envoi des liasses Ă lâadministration fiscale)
Quel intĂ©rĂȘt ?
LâintĂ©rĂȘt de dĂ©dier une personne Ă ces tĂąches est notamment de soulager les autres devs de lâĂ©quipe. En effet, avant que nous ne mettions en place ce systĂšme de Caribou, chaque dev avait lâobligation dâactiver ses notifications slack sur nos diffĂ©rents channels dâalerte, et donc Ă tout moment pouvait ĂȘtre interrompu dans son travail. Et vous savez, comme moi, Ă quel point cela peut ĂȘtre difficile de changer de contexte rĂ©guliĂšrement !
Aujourdâhui, quand nous ne sommes pas Caribou, nous pouvons nous concentrer pleinement sur les tĂąches en cours, tout en sachant que les problĂšmes seront bien traitĂ©s ! Bien sĂ»r il nâest pas non plus interdit de donner un coup de main au caribou entre deux tĂąches đ !
Chez Indy, et plus particuliĂšrement dans mon Ă©quipe ScaleOps, le Caribou a Ă©tĂ© un vĂ©ritable tournant dans lâorganisation de lâĂ©quipe. Cela a permis Ă notre PM de se dĂ©charger dâune grosse part du temps quâil passait Ă rĂ©pondre aux tickets. Cela a aussi permis Ă tous les devs de lâĂ©quipe de se sentir investi Ă©quitablement dans les tĂąches de maintenance et de soutien aux autres Ă©quipes.
Comment ça fonctionne ?
Chez Indy, libre Ă chaque Ă©quipe de mettre en place ou non le systĂšme de Caribou et de la maniĂšre quâelle le souhaite.
Chez ScaleOps, nous avons Ă©tabli un planning sur lâannĂ©e pour attribuer le rĂŽle de Caribou Ă tour de rĂŽle chaque semaine Ă un dev diffĂ©rent. En cas de vacances ou dâabsence, on sâorganise dans lâĂ©quipe pour modifier lâordre dâattribution.
Le Caribou occupe le rĂŽle pour une semaine entiĂšre, ce qui permet aux autres de vraiment se concentrer sur leurs tĂąches de dĂ©veloppement, et en mĂȘme temps ne dure pas trop longtemps, pour Ă©viter au Caribou de se lasser des tĂąches de maintenance et de trop couper avec les sujets de roadmap en cours.
Organisation du Caribou chez ScaleOps
Dans mon Ă©quipe, le Caribou sâorganise de la maniĂšre quâil le souhaite. Nous avons cependant un ordre de prioritĂ© Ă accorder aux diffĂ©rents sujets.
En effet, nous cherchons en priorité à régler les alertes remontées sur Sentry, car elles peuvent potentiellement impacter plusieurs utilisateurs (voire tous). Ensuite, nous nous attelons à traiter les tickets internes, qui concernent généralement un seul utilisateur.
Pour ce qui est des audits (jobs qui tournent en tĂąche de fond afin de vĂ©rifier la cohĂ©rence des donnĂ©es de nos utilisateurs) nous regardons quâils tournent correctement quâune fois par semaine, le volume dâerreurs Ă©tant faible nous nâavons pas besoin de plus.
AprĂšs avoir vĂ©rifiĂ© tout ça, sâil reste du temps dans la journĂ©e du Caribou, celui-ci peut attaquer le dĂ©veloppement des correctifs pour rĂ©gler Ă la racine des problĂšmes remontĂ©s par les alertes Sentry, ou bien sâattaquer Ă de petits sujets de roadmap !
Points dâattention
Comme nous lâavons vu, le rĂŽle du Caribou est dâĂȘtre la vigie de lâĂ©quipe, et donc dâintervenir en premier en cas de problĂšme. Par consĂ©quent, sâil ne connaĂźt pas assez le domaine concernant un de ces problĂšmes, il se doit de prĂ©venir et de voir avec la personne compĂ©tente la meilleure maniĂšre dâaborder la situation.
Notons aussi quâil faut garder une bonne communication avec son PM, notamment lorsquâil sâagit de problĂšmes nĂ©cessitant un dĂ©veloppement plus consĂ©quent. En effet, tous les problĂšmes ne sont pas Ă traiter dans lâinstant. Il arrive que certains demandent plus de rĂ©flexion sur la maniĂšre de les solutionner, et donc il faudra sĂ»rement intĂ©grer ça dans la roadmap avec le PM.
Un point trĂšs positif de ce systĂšme est quâil permet de partager la connaissance facilement. Le Caribou aura Ă cĆur de documenter un maximum les actions quâil prend face Ă un problĂšme (ex: mĂ©thode dâinvestigation et de rĂ©solution, diffĂ©rentes requĂȘtes utilisĂ©es, etc.) dans ce que nous appelons la Caribase. Cela permettra aux prochains dâĂȘtre plus efficaces face Ă un mĂȘme problĂšme. De plus, lorsque nous accueillons de nouveaux collĂšgues, assister le Caribou est une excellente maniĂšre dâaborder la plupart des sujets de lâĂ©quipe !
Et vous, comment fonctionnez-vous ? Que pensez-vous de notre systĂšme de Caribou đŠ ?
- Sentry : solution de tracking des erreurs (https://sentry.io/welcome/)