Contenu principal

Mener au changement

lundi 03 juillet 2023

Aujourd’hui je vais vous partager quelque chose de diffĂ©rent de d’habitude. Vous n’aurez pas d’exemple de code ni de prĂ©sentation d’une librairie qui vous veut du bien. J’espĂšre que vous en retirerez quand mĂȘme quelque chose que vous pourrez appliquer dĂšs demain dans votre boulot.

Je vais vous parler de mon expĂ©rience Ă  SINGULART. Plus particuliĂšrement je vais me concentrer sur ce qui s’est passĂ© ces deux derniĂšres annĂ©es qui a permis de faire Ă©voluer la codebase, donner plus d’autonomie Ă  l’équipe front et amĂ©liorer notre efficacitĂ© au quotidien.

Pour mieux comprendre le contexte, SINGULART est une galerie d’art en ligne, une espĂšce de marketplace pour des artistes curatĂ©s (= sĂ©lectionnĂ©s). Cela rend le domaine mĂ©tier particulier, mais au niveau du code on est trĂšs proche d’un e-commerce relativement classique.

Je parlerai plus en dĂ©tail de mon rĂŽle et de ce que j’ai constatĂ© au quotidien. Ce qui a marchĂ© ou n’a pas marchĂ©. Il s’agit principalement d’un retour d’expĂ©rience et des leçons que j’en ai tirĂ©. Cependant, gardons en tĂȘte que chaque situation est diffĂ©rente et que tout ne sera pas forcĂ©ment applicable Ă  la vĂŽtre. N’hĂ©sitez donc pas Ă  piocher et Ă  l’adapter Ă  votre contexte.

De plus, rien n’est possible en restant seul dans son coin. C’est un travail d’équipe Ă  tous les niveaux et mĂȘme si je parle de mon expĂ©rience, c’est le cumul de plein de facteurs qui ont rendu cela possible .

Situation initiale

Je dĂ©barque Ă  SINGULART en avril 2021, en tant que premier dĂ©veloppeur purement front-end (mĂȘme si je me considĂšre comme un full-stack sur pas mal de sujets 😁). Un an plus tĂŽt, l’entreprise a fait une levĂ©e de fond de 10M € et en novembre 2021 fera une levĂ©e de 60M€. La taille de l’équipe tech, elle, a mis beaucoup de temps Ă  grandir comparĂ© au reste de l’entreprise. Lors de mes entretiens, pour environ 80 personnes il y avait 3-4 dĂ©veloppeurs.

Une grande majoritĂ© de l’intĂ©gration avant mon arrivĂ©e est faite en HTML/Less par le graphiste freelance qui est prĂ©sent depuis le dĂ©but de l’aventure. L’intĂ©gration n’est pas sa spĂ©cialitĂ© mais ça permet de bien avancer le travail. C’est ensuite repris par les dĂ©veloppeurs back/full-stack. A cette occasion, le code est transformĂ© en Twig pour y ajouter les variables qui vont bien et gĂ©nĂ©rer les pages au sein de Symfony. On ajoute une petite couche de jQuery lĂ  oĂč on en a besoin et ça part en prod.

Cette mĂ©thode a trĂšs bien fonctionnĂ© pendant 3 ans, notamment parce que ça permettait d’avancer sur les projets, tester des nouvelles choses et Ă©volutions rapidement. C’est certainement une des raisons du succĂšs. Cela dit, chaque Ă©tape du projet a ses propres complexitĂ©s.

Notamment l’objectif aprĂšs la levĂ©e de fond est de faire monter l’équipe technique Ă  ~30 personnes en deux ans. Cependant, avec une telle croissance ça commence Ă  avoir ses dĂ©savantages :

  • Si on ne connaĂźt pas bien le scope du projet, il est difficile de savoir quelle modification impacte quelle page. Et tant de nouvelles tĂȘtes, pas grand monde connaĂźt le scope du projet.
  • TrĂšs peu de rĂ©utilisation possible avec du code copiĂ©/collĂ© entre les pages : sans bien connaĂźtre le projet, il est difficile de savoir comment rĂ©utiliser sans casser ce qui se passe Ă  cĂŽtĂ©
  • D’un point de vue purement technique, ce n’est pas trĂšs vendeur, on doit rĂ©apprendre pas mal de bonnes pratiques qui nous avaient poussĂ©s Ă  utiliser des frameworks plus modernes

0. Comprendre oĂč on met les pieds

Je suis donc arrivĂ© dans cette Ă©quipe en tant que 5Ăšme dĂ©veloppeur. Je n’ai pas Ă©tĂ© recrutĂ© en tant que Lead ni Staff (mon rĂŽle actuel), mais en tant que Senior. Bien qu’on m’ait recrutĂ© pour mes compĂ©tences et que je sois habituĂ© au domaine du e-commerce, je ne connaissais pas le contexte du projet et ne connaissais pas vraiment le modĂšle start-up. De plus, SINGULART Ă©tait dans une phase oĂč il fallait continuer de livrer des nouvelles choses avec beaucoup de choses Ă  tester et une levĂ©e de fond Ă  prĂ©parer. Ce qu’il a Ă©tĂ© urgent de ne pas faire Ă©tait de proposer un plan en 15 Ă©tapes pour arriver Ă  une stack moderne.

Mes premiĂšres contributions rentraient donc dans le cadre qu’on avait dĂ©jĂ  en place en me contentant de commencer Ă  extraire des petits composants ici et lĂ . Ces composants ont d’ailleurs fini eux aussi par ĂȘtre refactorĂ© mais m’ont permis de comprendre comment appliquer la philosophie de composant Ă  une stack en Twig/Less/jQuery (un prochain article de blog certainement).

En commençant petit, le but Ă©tait de commencer Ă  me familiariser avec l’équipe et comprendre oĂč Ă©taient les enjeux. Je suis un fervent croyant du fait qu’avec n’importe quelle stack on peut faire des choses de qualitĂ©. Il me fallait donc diffĂ©rencier ce qui mĂ©ritait un peu de neuf de ce qu’on pouvait garder.

1. Etablir la confiance

L’étape suivante Ă©tait de construire un socle de collaboration. Rien ne peut fonctionner si chaque personne de l’équipe oeuvre dans son sens. Et cela passe donc par commencer Ă  s’aligner ensemble afin d’avoir confiance dans le jugement de chacun·e. Ce n’est pas une Ă©tape qui a Ă©tĂ© rĂ©lĂ©chie et planifiĂ©e comme telle. Cependant, avec le recul, je pense que c’est ce qui m’a permis de façonner une forme de confiance dans ce que je pouvais apporter Ă  l’équipe et l’entreprise.

Notamment une des actions les plus efficaces a Ă©tĂ© de prendre 10 minutes toutes les semaines lors de la rĂ©union de veille hebdomadaire pour prĂ©senter des sujets front. LĂ  encore, mon but n’était pas de prĂ©senter le dernier framework Ă  la mode – ça n’aurait pas passionnĂ© grand monde avec une Ă©quipe essentiellement constituĂ©e de full-stack orientĂ©s back. Je me suis contentĂ© d’extraire les commentaires que je pouvais faire dans les PRs pour que ça bĂ©nĂ©ficie au plus grand nombre et surtout que ce soit faisable/adoptable dĂšs le lendemain.

Le scope de ces présentations était trÚs varié :

  • petits sujets tel que la prĂ©sentation des unitĂ©s en CSS (px, em, rem, ch, etc.), l’utilisation de inherit, ou des transitions
  • rĂ©daction et prĂ©sentation de certaines pages de documentation (ex: les diffĂ©rentes mĂ©thodes de chargement des images dĂ©jĂ  en place telles que lazyload, preload, redimensionnement, etc.)
  • Ă  des prĂ©sentations de bonnes pratiques que je commence Ă  vouloir pousser et qui ne reprĂ©sentent pas beaucoup de friction (BEM, Atomic Design)

Parfois, elles Ă©taient trop succinctes et ont fait Ă©mergĂ© plus d’incomprĂ©hensions qu’autre chose (👀 inherit).

Mais quelle que soit votre situation et votre niveau dans l’entreprise c’est quelque chose qui vous sera bĂ©nĂ©fique et qui sera apprĂ©ciĂ© de vos collĂšgues : vous ĂȘtes obligé·e·s de vuglariser vos pensĂ©es, diffĂ©rencier ce qui est important de ce qui ne l’est pas et commencer Ă  prĂȘcher pour ce qui vous semble ĂȘtre la bonne direction. Cela Ă©tablira aussi des conversations avec d’autres et gĂ©nĂ©ralement vous en apprendrez autant voire plus que les personnes en face de vous.

Ce qui m’a le plus aidĂ© pour ĂȘtre Ă  l’aise sur ce genre de prĂ©sentations, ce sont :

  • les sĂ©ances de pair : comprendre comment l’autre fonctionne et apprendre Ă  expliquer un concept en quelques mots
  • ce blog : faire le tri entre le dĂ©tail et l’important, visualiser le cheminement de la pensĂ©e pour ne pas perdre l’autre en cours de route
  • les pages de documentation (notamment quand j’étais Ă  Front-Commerce) : rĂ©aliser que chaque information nĂ©cessite son propre format (un Guide ne s’écrit pas de la mĂȘme façon qu’une doc d’API)
  • les confĂ©rences en meetup : pour comprendre l’importance des slides et des dĂ©mos pour capter l’attention des gens

C’est d’autant plus vrai qu’à mes premiers essais, tout cela me prenait un temps dĂ©raisonnablement long. Mais Ă  force de pratique, je peux maintenant improviser la plupart des prĂ©sentations techniques ou Ă©crire certains articles ou pages de documentation d’une traite.

Ainsi, en faisant ces prĂ©sentations Ă  SINGULART, ça m’a donnĂ© une visibilitĂ© au sein de l’entreprise et m’a permis d’établir un Ă©change avec tous les devs (au dĂ©but on n’était pas beaucoup mais on est rapidement montĂ© Ă  une vingtaine de personnes rĂ©parties en 4 Ă©quipes). Quand il fallait commencer Ă  se pencher sur des sujets front plus complexes, les gens ont commencĂ© Ă  venir vers moi parce qu’à leur yeux j’étais le sachant. En vrai c’est juste qu’on rĂ©flĂ©chissait ensemble et je n’avais pas forcĂ©ment la rĂ©ponse Ă  toutes les questions, mais c’est ce qui fait que j’ai pu emmagasiner un maximum de contexte.

2. Collaboration inter-équipe

Pendant les premiers mois nous ĂȘtions tous dans la mĂȘme Ă©quipe. Mais dĂšs que l’équipe a commencĂ© Ă  grossir, il y a eu une sĂ©paration en 2 puis 4 squads diffĂ©rentes (a.k.a. Ă©quipes ou Product/Feature Team). Au maximum nous Ă©tions 6 dĂ©veloppeurs purement front, et une petite dizaine de full-stack Ă  travailler de temps Ă  temps sur le front.

DĂšs qu’il y a eu 2 squads, nous avons commencĂ© Ă  avoir besoin de nous synchroniser entre fronts. C’était d’autant plus nĂ©cessaire qu’on commençait Ă  extraire des composants qu’on allait rĂ©utiliser entre nous. Si personne n’était au courant du composant, c’était comme s’il n’existait pas. Alors il fallait qu’on se parle :

  • des nouvelles choses qu’on mettait en place dans la codebase qui pouvait ĂȘtre utile aux autres
  • des problĂ©matiques qu’on avait au quotidien avec peut ĂȘtre un composant/outil qui mĂ©ritait d’émerger ou un manque de synchronisation sur certaines pratiques de code
  • des Ă©lĂ©ments de veille tech

Nous n’avons pas eu besoin d’attendre une Guilde, un Chapter ou tout autre terme pour dĂ©signer une Ă©quipe transverse : nous nous sommes créés un channel Slack pour initier les discussions entre front. Pour vous donner un exemple, les premiĂšres discussions Ă©taient autour du systĂšme de colonnage et la mise en place de classes atomiques pour la gestion des marges. Ca n’a pas besoin d’ĂȘtre rĂ©volutionnaire pour ĂȘtre utile.

Plus tard, nous avons dĂ©cidĂ© d’organiser un crĂ©neau hebdomadaire de 30min, ensuite Ă©tendu Ă  1h, pour faire le point et s’assurer qu’on Ă©tait toujours sur la mĂȘme longueur d’onde. Ce crĂ©neau aurait mĂ©ritĂ© d’exister dĂšs le dĂ©but, quitte Ă  l’écourter si on n’avait rien Ă  se dire.

D’un point de vue Ă©quipe c’était un temps qui permettait surtout de prendre la tempĂ©rature et de traiter les frustrations avant qu’elles ne deviennent trop grandes. Ainsi mĂȘme si on n’a jamais Ă©tabli de Roadmap sur 12 mois, on avait toujours une idĂ©e du focus pour les 2 prochains mois, au dĂ©but de maniĂšre implicite, puis de maniĂšre explicite avec une vraie Roadmap prĂ©sentĂ©e aux autres Ă©quipes.

Ce qui a fait du bien pour faciliter cette collaboration c’est la mise en place de Guildes. Nous avions conscience que le travail produit avait tendance Ă  cannibaliser beaucoup de travail tech, ce qui n’allait pas forcĂ©ment dans la rĂ©solution de la dette technique. En officialisant les Guildes, nous avions dĂ©sormais du temps dĂ©diĂ© Ă  l’amĂ©lioration de la stack, la mise en place d’outils ou l’extraction de composants.

Enfin, le plus gros avantage Ă  mon sens Ă©tait que cette collaboration transverse permette Ă  chacun et chacune dans sa squad de devenir rĂ©fĂ©rent front. Ce n’est pas forcĂ©ment Ă©vident selon les niveaux d’expĂ©rience des personnes, mais cela a permis a minima de mettre en place des relais. C’était notamment trĂšs important afin que chaque changement ne vienne pas de moi, mais de l’équipe au complet. Je n’ai ainsi jamais ressenti le besoin de forcer un changement aurpĂšs des devs car l’équipe en avait entendu parler avant mĂȘme qu’il arrive.

A noter cependant que les fronts ne sont pas les seuls responsables de l’interface du site. Beaucoup de ce travail et beaucoup des mĂȘmes problĂ©matiques se retrouvent dans le travail des Designers. Nous avons donc aussi mis en place un temps de discussion pour parler spĂ©cifiquement Design System et comment amĂ©liorer notre collaboration avec elleux. C’est d’ailleurs quelque chose que nous aurions certainement dĂ» faire plus tĂŽt : il ne peut sortir que du positif d’une collaboration Ă©troite entre Design et Tech sans nĂ©cessairement avoir tout le temps le Produit (dĂ©jĂ  dĂ©bordĂ©) dans l’équation.

3. Mettre à disposition les outils avec un bon rapport coût/impact

Un autre Ă©lĂ©ment qui a permis d’initaliser l’autonomie de l’équipe front Ă©tait la mise en place d’outils qui nous aideraient au quotidien mais qui ne seraient pas trĂšs couteux Ă  mettre en place.

  1. eslint : repérer des erreurs le plus tÎt possible
  2. webpack-dev-server : accélérer les temps de compilation en local
  3. prettier : ne plus jamais avoir besoin de faire des retours de code style dans les PRs
  4. jest : des tests unitaires sur des fonctions simples
  5. storybook : initialiser une documentation vivante des composants

J’insiste sur l’aspect pas trĂšs couteux. S’il faut 4 jours pour mettre en place un outil, c’est peut-ĂȘtre que vous pouvez viser plus petit. S’il est impossible de le caler entre deux tĂąches, cela veut dire que ça devient un rĂ©el chantier Ă  prioriser au mĂȘme titre que le reste. Il faut alors convaincre et dĂ©fendre son outil. Toutefois, s’il s’agit d’une petite tĂąche, on peut rapidement avoir de la valeur et ainsi nĂ©gocier plus de temps a posteriori pour atteindre le plein potentiel de l’outil.

Par exemple, pour jest nous avons une stack en Twig, Less & jQuery. Pas idĂ©al pour rĂ©diger des tests unitaires front-end. Ce n’est pas grave, la premiĂšre mise en place Ă©tait uniquement sur du JavaScript pur. Plus tard, j’ai fait en sorte qu’on puisse rĂ©ellement tester les composants Twig.

Sur eslint, inutile de passer des jours à corriger le code qui est en prod depuis des années. On peut marquer les fichiers legacy en warning uniquement et forcer les erreurs uniquement sur les nouveaux fichiers.

Il y a encore d’autres outils qui nous seraient bĂ©nĂ©fiques (TypeScript, Vite
), mais chaque chose en son temps, ils viendront petit Ă  petit.

Pour vous donner une idĂ©e, si on compte uniquement la liste ci-dessus, ça n’a pas Ă©tĂ© du jour au lendemain. Il a fallu quasiment un an. Ca paraĂźt trĂšs long. Mais rĂ©trospectivement, je ne suis pas sĂ»r qu’en allant plus vite ça nous aurait aidĂ©.

4. Construire étape par étape

En effet, un des plus grands piÚges pour moi est de vouloir mettre en place tout, tout de suite. Je savais le premier jour de mon arrivée à SINGULART que des tests unitaires nous seraient utiles, Storybook nous serait utile, etc.

Mais j’avais aussi conscience que chaque chantier mĂ©ritait son propre calendrier. A vouloir tout faire passer d’un coup :

  • on bloque les avancĂ©es produit plus longtemps – ce qui peut runier la confiance durement acquise
  • la derniĂšre brique ajoutĂ©e n’est pas maĂźtrisĂ©e par l’équipe avant de passer Ă  la suivante et donc on en obtient que 20% de la valeur.
  • on ne sait pas si on est allĂ© dans la bonne direction : il vaut mieux stabiliser notre Ă©difice avant d’ajouter un nouvel Ă©tage

Les autres personnes de l’équipe vous dirons que j’ai souvent ce rĂŽle de rabat-joie : ok on veut aller vers ça, mais c’est quoi les Ă©tapes ? Est-ce qu’on a vraiment besoin de tout ça ? On pourrait pas faire plus simple pour commencer ? Dans l’extrĂȘme majoritĂ© des cas je suis trĂšs content de l’apparente lenteur qu’on a mis en place. Ca nous a permis de continuer d’avancer sur le produit et notre socle est d’autant plus stable. Deux ans plus tard, on a conscience qu’on vient de loin.

Par ailleurs, cela a permis d’osciller entre petits ajouts et grosses fonctionnalitĂ©s. En effet, je vous ai prĂ©sentĂ© plus haut uniquement les outils techniques, mais il y a aussi tout le penchant architecture :

  • comment organiser nos composants ?
  • comment amĂ©liorer la communication back/front (= Symfony/Twig) ?
  • comment gĂ©rer l’asynchrone/ajax ?

GĂ©nĂ©ralement pour rĂ©pondre Ă  ces questions, c’était un plus gros projet. Il fallait par exemple lister les problĂšmes qui nous barraient la route, expliquer comment on voulait les rĂ©soudre et aller chercher le feedback des autres dĂ©veloppeurs. Mais en ayant des premiĂšres victoires avec les petits projets, il Ă©tait plus facile d’avoir la confiance du leadership quand il s’agissait d’amener un plus gros changement. GĂ©nĂ©ralement il s’agissait plus de former la rĂ©flexion et partager nos plans qu’une rĂ©elle remise en question de la pertinence du projet.

Ca n’a pas empĂȘchĂ© que l’adoption d’un projet ne soit pas au rendez-vous ou que nous ayons besoin d’itĂ©rer sur certaines solutions. Mais ça nous a permis d’y aller petit Ă  petit, d’échouer/rĂ©ussir que sur des petites parties.

5. Tout ne doit pas ĂȘtre une rĂ©ussite

Parce que oui, il y a eu des Ă©checs. Et c’est peut-ĂȘtre la partie la plus importante : tout n’a pas besoin d’ĂȘtre une flamboyante rĂ©ussite, ou correspondre parfaitement Ă  la premiĂšre idĂ©e que vous vous ĂȘtiez faites.

Aujourd’hui encore, quand je travaille sur SINGULART, j’ai conscience qu’il y a encore beaucoup de choses Ă  amĂ©liorer, mais on y arrive petit Ă  petit. On continue notre bonhomme de chemin.

En y allant de maniĂšre incrĂ©mentale, cela permet de dĂ©marrer certains projet sous forme d’expĂ©rimentations. Chaque PR ne doit pas ĂȘtre une dĂ©cision finale de comment nous ferons les choses. Profitez des petits projets pour expĂ©rimenter certaines approches, dĂ©grossir certaines techniques. L’essentiel est que ça n’impacte pas lourdement le reste de la code base et que ce soit facile Ă  changer. Et cela vous permettra d’avoir des Ă©lĂ©ments concrets Ă  prĂ©senter le jour oĂč vous voudrez gĂ©nĂ©raliser.

Par ailleurs, cela permet aussi de rĂ©cupĂ©rer uniquement ce dont vous avez besoin. Notre maniĂšre de dĂ©velopper aujourd’hui ressemble de plus en plus Ă  ce que propose Hotwire (plus connu sous le nom de Stimulus/Turbo). Cependant, l’adoption de Hotwire reprĂ©sentait une marche trop haute pour nous Ă  un instant T. Elle l’était parce que je n’avais personnellement pas le temps nĂ©cessaire Ă  accorder Ă  son Ă©vangĂ©lisation et parce qu’il Ă©tait plus simple de proposer un petit bout de code custom plutĂŽt que l’adoption d’un framework.

Je n’ai pas encore le recul nĂ©cessaire aujourd’hui pour conclure et dire si c’était une bonne ou une mauvaise chose. Je sais en tout cas que c’est le choix qui fait que je suis moins fier de notre stack aujourd’hui. Mais est-ce que pour autant c’est un choix qui impacte nĂ©gativement nos collectionneurs et nos artistes ? Je n’en suis pas sĂ»r.

En tout cas, cela veut simplement dire qu’on a le droit de se tromper, de ne pas aller vers la vision initiale et de changer de route. L’essentiel Ă©tant de continuer Ă  avancer.

6. Célébrer les victoires

Mais qu’est ce que ça veut dire avancer ?

D’expĂ©rience, le paroxisme d’un projet est Ă  sa livraison : on a passĂ© quelques jours, voire quelques semaines, Ă  faire avancer une vision, un outil, une solution et vient enfin la date fatidique de la mise en prod. Tout le monde est content, on vient de faire la prĂ©sentation et roule ma poule, on considĂšre que ce sera adoptĂ© dans les prochaines PRs.

Le problĂšme c’est qu’à cet instant on ne sait pas vraiment si ce qu’on a fait est utile ou pas. On aura beau anticiper en Ă©tudiant en dĂ©tails les problĂšmes auxquels on fait face, si seule lae dev de la fonctionnalitĂ© sait comment ça marche, on ne les aura pas rĂ©solu.

Alors pour chaque changement il est impĂ©ratif de prendre le temps, quelques semaines plus tard, d’estimer l’impact du changement. Ca passe parfois par des mesures : on a augmentĂ© la couverture de tests de 10%, et la pipeline nous a Ă©vitĂ© 13 bugs ce dernier mois. Mais la plupart du temps ce sera du ressenti avec des retours terrain : Est-ce que la nouvelle feature est utilisĂ©e ? Est-ce qu’en allant voir les devs qui l’ont utilisĂ© iels ont eu des soucis ? Se sentent-iels plus efficaces ?

Le fait de comprendre l’impact vous permettra de savoir dĂ©jĂ  si oui ou non le sujet est traitĂ©. Mais c’est aussi l’occasion pour vous de communiquer :

  • rappeler Ă  tout le monde que cette fonctionnalitĂ© mise en place il y a 3 mois a aidĂ© 2 projets et donc sera peut ĂȘtre utile pour une autre Ă©quipe
  • mettre en valeur l’impact positif afin de montrer valoriser les personnes qui ont travaillĂ© dessus et valider la pertinence de nos changements
  • consolider la confiance en montrant qu’on ne travaille pas sur ces outils uniquement parce que c’est rigolo ou pour rĂ©soudre la sacro sainte dette technique, mais bien pour avoir impact sur le produit
  • et ne pas oublier de parler de ce qui n’a pas marchĂ© pour comprendre pourquoi, ne pas rĂ©pĂ©ter les mĂȘmes erreurs et faire bĂ©nĂ©ficier aux autres Ă©quipes de notre apprentissage

Conclusion

Bref, mener au changement n’est pas de tout repos et dĂ©pend de la coordination de plein de facteurs techniques mais surtout humains. Ce que ça veut dire aussi c’est que ce que j’ai vĂ©cu au sein de SINGULART peut fonctionner pour vous, ou peut-ĂȘtre pas. 😁 C’est d’autant plus vrai que tout n’est pas forcĂ©ment entre vos mains, certaines entreprises laisseront plus d’opportunitĂ©s que d’autres.

Cependant, je retrouve pas mal des Ă©lĂ©ments que j’ai pu Ă©noncer dans cet article de Charity Majors, notamment la partie “quand je suis tech lead dans une nouvelle Ă©quipe”.

En tout cas, si je pouvais résumer ma stratégie en quelques phrases :

  • commencer en adoptant le cadre actuel afin de comprendre les tenants et aboutissants
  • privilĂ©gier dans un premier temps de simples discussions pour gĂ©nĂ©rer de la confiance
  • Ă©tablir la communication avec les personnes qui seront directement impactĂ©es
  • commencer avec des quick wins pour initier le mouvement
  • y aller petit Ă  petit pour ne pas se noyer
  • accepter les Ă©checs pour rester dans la bonne direction
  • cĂ©lĂ©brer les victoires pour pouvoir continuer

Est-ce que j’aurais pu vous dire le jour de mon embauche que j’allais exĂ©cuter cette stratĂ©gie ? Absoluement pas. Mais rĂ©trospectivement c’est ce qui s’est dessinĂ© et ce qui semble nous avoir menĂ© oĂč nous en sommes aujourd’hui.

Est-ce que vous auriez fait diffĂ©remment ? Êtes vous plutĂŽt du genre Ă  prĂ©voir une adoption incrĂ©mentale planifiĂ©e dĂšs le dĂ©part ? Ca m’intĂ©resse de savoir comment vous approcheriez la situation. N’hĂ©sitez pas Ă  venir m’en parler sur Mastodon, Twitter ou en ouvrant une issue sur GithHub.


Si vous voulez suivre mes publications, il paraĂźt que j'ai un feed RSS, Mastodon et un Twitter.

Si vous pensez à d'autres méthodes que vous voudriez que je mette en place (pigeon voyageur, avion en papier, etc.), n'hésitez pas à me les proposer :)