5 éléments clés pour bâtir une culture d'excellence dans votre équipe développement

Small 2a4184c59b4c9005842a51c2e834e352acced41496bdf0780ded29739fa76a63
Par Pascal Hamel
Directeur, développement logiciel

Au cours des dernières semaines, un grand nombre d’entreprises dans tous les secteurs de l’économie font le constat qu’une transformation numérique s’impose. Dans bien des cas, elles étaient déjà en réflexion ou avaient déjà débuté quelques projets numériques. Elles constatent maintenant qu’on ne peut plus se satisfaire du statu quo, il faut se commettre et accélérer ce virage, sans quoi la survie de l’entreprise sera compromise. Pour exécuter cette transformation numérique avec brio, il faut une équipe de développement logiciel qui saura prendre les idées et les concrétiser. 

Chez Mirego, nous accompagnons nos clients dans leur transformation numérique depuis plus de douze ans. Nous avons bâti une équipe de développement logiciel de haut niveau qui a la capacité d’exécuter leur stratégie digitale dans une foule de secteurs d’activité. Afin d’aider le plus grand nombre d’entreprises possibles à atteindre leurs objectifs, nous avons décidé de partager notre expertise pour bâtir une équipe du tonnerre, puisque nous croyons que tous nos clients devraient ultimement aspirer à avoir leur propre équipe de développement.

Le premier article de cette série s’intéresse à notre culture d’excellence au sein de l’équipe de développement.



Il va sans dire, toute entreprise souhaitant se réinventer via le numérique aura tôt ou tard besoin d’une équipe de développement logiciel, qu’elle soit bâtie à l’interne ou qu’elle provienne de l’externe. Elle devra bien sûr avoir des compétences techniques solides, mais c’est via son attitude et ses méthodes de travail qu’elle se démarquera dans ce domaine ultra-compétitif. Chez Mirego, nous avons développé dès le jour 1 une culture de l’excellence à laquelle tous les développeurs et développeuses qui se joignent à nous adhèrent. Cette culture se définit par cinq éléments clés que nous sommes heureux de partager : avoir le souci de la qualité, maintenir une constance, prendre le temps de réfléchir et être efficient.

1. La qualité : la responsabilité de chacun

La langue anglaise a deux mots pour lesquels je peine à trouver un équivalent en français : ownership et care. Ces deux mots sont des critères non négociables de l’attitude requise au sein de notre équipe. Par exemple, chaque membre de notre équipe de développement est fortement encouragé à utiliser l’application ou le site qu’il développe. Il est attendu qu’il ou elle donne ses opinions et suggestions, peu importe sa description de tâches ou son niveau de séniorité. Malgré la bonne volonté de nos directeurs de produit, tous les petits détails si importants au succès du produit ne peuvent pas toujours être listés dans une tâche Jira. Chaque développeur doit donc faire preuve d’esprit critique et ajouter sa propre touche d’amour au produit. S’il rencontre un bogue dans une section de l’application qu’il n’a pas développée, il ne doit pas faire de l’aveuglement volontaire. Il doit le corriger, ou au minimum le soulever au reste de l’équipe, pour que ce soit connu et corrigé. Au final, quand chaque individu de l’équipe care et fait preuve d’ownership, le produit livré dépassera invariablement les attentes du client.

2. La clé du succès : la constance

Afin de répondre aux besoins grandissants de nos clients, notre équipe de développement n’a cessé de croître au fil des ans. En parallèle, les projets numériques que nous entreprenons ne se terminent pas lors du lancement en production ; nous sommes appelés à les faire évoluer pendant plusieurs années. Avec ce nombre croissant de nouveaux projets et développeurs, le maintien d’une constance dans notre code et nos architectures joue un rôle essentiel dans notre capacité à maintenir l’ensemble de notre portfolio de produits.

Nos équipes horizontales Web et mobiles ont chacune établi des lignes directrices de programmation et d’architecture à appliquer dans nos projets. Ces dernières guident l’équipe autant dans leur choix d’architecture que dans le formatage du code dans les langages que nous utilisons. Ces lignes directrices nous assurent tout d’abord le respect de nos meilleures pratiques acquises au fil des ans, et nous permettent aussi de réduire au minimum le temps de ramp-up d’un développeur au sein d’un projet. Dans un monde où la transformation numérique s’accélère et où le nombre de projets se multiplie, il est essentiel de nous assurer que nos développeurs et développeuses soient en mesure de passer d’un projet à l’autre sans une courbe d’apprentissage trop abrupte.

3. La réflexion : essentielle autant avant qu’après

En tant que développeur, je sais très bien que nous aimons nous plonger dans le code le plus rapidement possible afin de commencer à livrer des fonctionnalités. Une fois notre projet livré en production, nous avons hâte de démarrer le suivant. 

Par contre, nous nous devons de prendre le temps de nous arrêter, autant avant qu’après un projet. Avant le projet, nous devons prendre le temps de regarder le projet dans son ensemble, analyser les risques et réfléchir à notre architecture. Chez Mirego, nos projets ont généralement un sprint 0 dans lequel nous procédons à cette réflexion et tentons de mitiger les risques du projet de façon structurée. Une fois celui-ci livré, il est tout aussi essentiel de nous arrêter. Nous tenons une rencontre de post-mortem afin de faire ressortir autant les éléments positifs, que nous transportons dans nos projets futurs, que les négatifs, que nous visons à éliminer. C’est en prenant le temps de nous arrêter et de réfléchir quelques heures que nous parvenons généralement à économiser des dizaines d’heures plus tard dans le projet.

4. La fondation de l’efficience : l’automatisation

Afin de faire honneur à sa réputation d’excellence, notre équipe se doit de rentabiliser au maximum chaque heure investie dans un projet. Nous devons focaliser nos efforts sur les tâches qui apportent un maximum de valeur ajoutée ; c’est pourquoi nous automatisons les tâches qui se répètent, que ce soit au sein d’un projet ou encore d’un projet à un autre. À titre d’exemple, un membre de notre équipe a développé l’outil Dispatch qui se charge d’assigner automatiquement la révision des pull requests aux développeurs en fonction du projet, du langage et d’autres étiquettes déterminées par l’auteur. Cette initiative a économisé beaucoup de temps à notre équipe (et nos clients!), en plus d’améliorer grandement nos processus de révision.

5. La qualité : aussi une responsabilité d’équipe

Ce principe va de soi, mais il est essentiel à notre culture d’excellence. En tant que développeurs et développeuses, nous devons soumettre chacune de nos lignes de code à une revue de code effectuée par nos pairs. Chaque pull request est révisée au minimum par un membre de l’équipe de projet, ainsi que par un développeur senior d’une autre équipe. Inversement, il est attendu de tous les développeurs de réviser les pull requests des autres, peu importe leur expérience chez Mirego. Pour les plus juniors, il s’agit en fait d’une opportunité extraordinaire d’apprendre. En prime, tout le code livré est automatiquement validé au niveau des tests et du style. 

Par ailleurs, notre équipe ne s’arrête pas seulement à la révision du code. Chaque membre de l’équipe challenge les user stories lors de sessions de grooming avant le développement. Nos designers approuvent les écrans intégrés par nos développeurs. Nos spécialistes en assurance qualité apposent leur sceau de qualité sur l’entièreté du produit. Quand toutes ces étapes sont respectées, il en résulte inévitablement un produit de grande qualité, digne des standards de Mirego.



En somme, lorsque chaque membre de votre équipe a à coeur la qualité du produit à livrer, que la constance se trouve autant dans le projet en cours que dans ceux à venir, que tous s’accordent des moments pour réfléchir ensemble et que l’efficience est au centre des processus, votre équipe de développement a une chance devant n’importe quel défi. 

D’autres interrogations peuvent survenir lorsque nous désirons bâtir la meilleure équipe de développement. Comment structurer notre processus d’embauche? Quels profils devons-nous privilégier? Comment optimiser le partage de connaissances et la formation? Cette série d’articles se poursuivra avec des pistes de réponses pour vous inspirer et vous aider à mettre sur pied cette équipe exceptionnelle.