La fameuse code review, tout le monde est d'accord pour dire qu'elle est encouragée et que c'est une super bonne pratique ! Si chacun peut citer au moins l'un de ses bénéfices, dans les faits, peu de professionnels y ont recours régulièrement ou du moins en profondeur.
Trop souvent, elle va passer à la trappe à cause d'une prise de retard sur un projet ou d'autres tâches urgentes à finaliser.
Chez Skello, pour éviter que cette code review soit constamment dépriorisée face aux différentes tâches qui incombent aux développeurs, nous avons décidé de consacrer un créneau quotidien commun à sa pratique.
On dit toujours que si on veut passer du temps sur quelque chose, il faut lui faire une place claire et nette dans nos agendas. Sans quoi, son tour ne viendrait jamais. Et c'est ce que nous avons fait !
Nous avons choisi un créneau commun à tous les développeurs, quelque soit leur équipe : une heure de 14h à 15h est consacrée à la code review. Cela se fait juste après le daily standup de sorte qu'en allant lire les PR (Pull Request) ouvertes, nous ayons un minimum de contexte oral sur ce qu'on va y trouver. Ces daily se faisant par équipe, vous vous demandez probablement si nous nous limitons à la review des PR de notre propre équipe.
La réponse est : Non, toutes les PR sont review par tout le monde.
En plus du contexte dont on parle à l'oral au daily, nous pouvons retrouver nous-mêmes du contexte via les liens vers les tickets dans la PR en elle-même. De plus, plusieurs actions sont possibles même si on ne connaît pas particulièrement le projet : inspecter la propreté du code ou suggérer du code alternatif qui fait la même chose mais qui soit plus adapté ou plus optimisé en sont deux exemples.
Une PR doit être approuvée par au moins deux développeurs pour passer du statut Awaiting Feedback (ou en attente de retours) à Valid for Tech (ou valide techniquement). Chez Skello, la qualité du code nous tient particulièrement à cœur 🤓
Le revers de la médaille ? Comme une heure spécifique est dédiée pour la review, ça peut décourager les développeurs d'en faire en dehors de ce créneau. Par conséquent, cela rallonge le temps de review.
Prenons pour exemple Lili la licorne 🦄 : Lili a une PR en cours, elle reçoit des commentaires pendant cette heure par différentes personnes. Elle adapte son code mais doit attendre le lendemain pour les validations ou retours supplémentaires.
Pour contrer cet effet de bord, nous encourageons vivement Lili à relancer les personnes qui ont précédemment review. Ça accélèrera la validation et elle pourra faire avancer son ticket vers la validation produit.
En somme, le créneau dédié à la review n'est pas là pour la limiter à ce moment spécifique, mais plutôt pour assurer qu'il y en ait un minimum de manière régulière, même sur une journée particulièrement chargée. Chez Skello, on joue collectif ! On trouve le temps pour lire le code des autres et se faire des retours. Tout le monde y trouve son compte 💪🏻
Le petit bonus transparence : Créer une channel Slack (ou tout outil de messagerie utilisé chez vous) avec un bot qui l'alimente avec chaque commentaire fait contenant le lien vers la PR en question. Cela permet d'encourager les autres à en faire, de suivre les discussions qui ont lieu et d'y participer. Ou simplement, dans une logique pédagogique, vous pouvez être curieux de voir le bout de code concerné et la remarque associée !
Dans les équipes tech Skello, nous avons toujours fait de la revue de code. Mais cette idée de créneau commun quotidien est un process assez récent que nous avons voulu tester sur une période de six mois. Résultat ? Les retours sont ultra positifs ! Nous continuons donc à la pratiquer pour tout ce que cela nous apporte au quotidien : nous tirer tous les uns les autres vers le haut en toute bienveillance.