
La culture de la résilience à travers le DevOps, DevPO, et DevQA
La rĂ©silience peut ĂȘtre dĂ©finie comme la capacitĂ© dâun systĂšme Ă maintenir ou retrouver ses fonctions essentielles lorsquâil est soumis Ă une perturbation.âââsource : Les Greniers dâabondance
Front, back, data, PO, ⊠La division du travail permet dâĂȘtre expert sur un sujet mais sans vraiment tout maĂźtriser. A lâinverse on peut ĂȘtre un peu bon partout sans ĂȘtre expert nulle part, nos amis anglophones utilisent lâexpression âjack of all trades, master of noneâ.
En sâattardant trop sur un sujet prĂ©cis on peut avoir du mal Ă se comprendre et employer un vocabulaire commun dĂšs lors quâon travaille en Ă©quipe, victime de lâeffet bulle, et des malentendus et des aller-retours commencent avec le risque dâĂȘtre le seul capable dâeffectuer certaines opĂ©rations.
Est-ce que lâon a bien compris le besoin, ce quâon devra tester, comment ce sera dĂ©ployĂ© ou lâarchitecture avant de commencer Ă coder ?
Yet another article about DevOps
On entend parler de DevOps depuis 2010, une Ă©ternitĂ© dans le numĂ©rique, pourtant il reste un terme plutĂŽt flou sur lequel on a du mal Ă mettre le doigt, Ă mi-chemin entre utopie et fourre-tout. WikipĂ©dia le dĂ©finit comme une pratique technique pour lâunification entre dĂ©veloppement logiciel et lâadministration des infrastructures. Donc, une histoire de collaboration avant une histoire dâorchestration de conteneurs. Câest bien sĂ»r cela qui vous vient Ă lâesprit quand on commence Ă parler DevOps, nâest ce pas ?
LâĂ©volution de la recherche âDevOpsâ : https://trends.google.com/trends/explore?date=all&geo=PL&q=DevOps
Entre travail dâĂ©quipe et guerre dâĂ©go
Certains disent que les mĂ©tiers du numĂ©rique câest essentiellement travailler en Ă©quipe, jâen fais partie, et jâai mis longtemps Ă mâen rendre compte, Ă©bloui par une soif dâapprendre et de vouloir aller toujours plus loin, mais seul.
Il y a aussi la crainte de toucher Ă quelque chose car ce nâest pas notre technologie de coeur, ou quâelle ne servira Ă rien sur notre CV. Alors que câest grĂące à ça que le produit final et lâĂ©quipe avanceraient. Bien entendu, si vous touchez Ă du PHP 5.6 depuis plusieurs mois il est temps dâaller voir ailleurs.
Travailler en Ă©quipe, câest aussi accepter de se montrer vulnĂ©rable aux autres en disant clairement que lâon ne sait pas tout faire. Quand les guerres dâego et la politique font rage dans les entreprises et que nos salaires en dĂ©pendent, il est comprĂ©hensible de ne pas vouloir montrer que lâon est dĂ©butant sur telle technologie, quâon a des points faibles et besoin de ses collĂšgues dans certaines situations pour maximiser ses chances dâavoir une promotion et ainsi augmenter son capital symbolique.
DevOpsâââou se concentrer sur le collectif
Dans une entreprise, nous sommes de la mĂȘme Ă©quipe, pourtant il arrive que lâon se renvoie les erreurs dâun camp Ă lâautre âcâest aux ops de faire çaâ, âc_âest la faute aux devs si câest bugguĂ©_â, âle product owner a mal dĂ©fini les specsâ, ou mon prĂ©fĂ©ré : le simple âça marche pas.â sans contexte et sans que la personne ait la moindre idĂ©e du pourquoi.
Quand ces phrases peuvent sâĂ©changer entre les Ă©quipes, il est urgent pour les dĂ©cideurs de lâentreprise de chercher Ă corriger le tir. En cherchant lâorigine de la culture du blĂąme, on pourrait citer les entretiens individuels annuels, oĂč lâon se fera reprocher certaines erreurs si on ne dĂ©place pas la responsabilitĂ© vers dâautres, lĂ oĂč des entretiens collectifs auraient beaucoup plus de sens pour amener de la solidaritĂ© dans le monde de lâentreprise et rĂ©duire lâindividualisme nĂ©gatif. On parle aussi dâaugmentation collective pour que ça marche đ
La compartimentation dans le travail dĂ©termine lâaffaiblissement du sens de la solidaritĂ©, lequel dĂ©termine lâaffaiblissement du sens de la responsabilitĂ©âââEdgar Morin
Ces entretiens collectifs permettraient dâassumer enfin que notre travail, notre projet, est avant tout un travail dâĂ©quipe, oĂč chacun apporte. Cela encouragerait aussi une culture du partage et de la confiance, oĂč chacun souhaite que les autres progressent avant de vouloir briller seul.
Un outil comme git est souvent dĂ©tournĂ© pour devenir lâoutil parfait pour reporter la faute sur quelquâun dâautre đŁ (et je plaide coupable de lâavoir faitâŠ)
Apprendre Ă ĂȘtre polyvalent
Quand la responsabilitĂ© passe de lâindividu au collectif, le bien-ĂȘtre et la qualitĂ© du produit final sâamĂ©liorent. Pour cela, chaque personne doit ĂȘtre responsabilisĂ©e de A Ă Z sur la livraison dâun produit, cela va du recueil des besoins au monitoring de lâapplication une fois livrĂ©e. Et la philosophie quâon connaĂźt le mieux est DevOps, mais ce concept peut aisĂ©ment ĂȘtre dĂ©clinĂ© en DevPO, DevQA pour reprĂ©senter la polyvalence et la nĂ©cessitĂ© de collaboration de nos mĂ©tiers.
âCâest aux DevOps de faire çaâ
DevOps câest avant tout casser les silos de lâentreprise : on a beau crĂ©er des postes DevOps pour changer les habitudes de notre industrie et mettre de lâagile Ă toutes les sauces, les silos de spĂ©cialitĂ© existent toujours. Certains postes avec lâintitulĂ© âDevOpsâ ressemblent Ă©normĂ©ment aux administrateurs systĂšmes Ă la seule diffĂ©rence que les dĂ©veloppeurs disent maintenant âCâest aux DevOps de faire çaâ plutĂŽt que âCâest aux administrateurs systĂšmes de faire çaâ : belle Ă©volution des mentalitĂ©s đ
Il est autant du devoir du dĂ©veloppeur que de lâops, de pouvoir automatiser son dĂ©ploiement tout en garantissant la qualitĂ© de son application, sa surveillance et la maĂźtrise des coĂ»ts dâinfrastructure.
Hors de question dâutiliser une instance trop puissante (đž), ou pas assez (đ„), car ce nâest pas notre domaine dâexpertise, analyser le CPU ou la mĂ©moire dâune instance est Ă la portĂ©e de tous. Interdit Ă©galement de sâapercevoir que lâapplication est restĂ©e hors service pendant plusieurs jours sans avoir reçu dâalerte automatique par email ou par Slack.
DevPO, DevQA, DevOpsâ Revendiquer sa polyvalence
Etonnamment on parle surtout de DevOps depuis 10 ans, Ă croire que la norme du devĂ©loppeur est de coder, de sâoccuper de lâinfrastructure, et de suivre les instructions des tickets Jira dĂ©finis par les Product Ownerâââune sorte dâouvrier moderne. De mon expĂ©rience, câest lorsque je comprends Ă 100% le besoin que je fais des projets fabuleux. Lâavenir du mĂ©tier de dĂ©veloppeur est dans lâunification de tous les mĂ©tiers du logiciel : du recueil des besoins jusquâau monitoring. La gestion de projet ne doit ĂȘtre rĂ©servĂ©e Ă des personnes ââretraitĂ©es du codeâ.
Jâai actuellement une casquette dâexpert Kafka, et je dois avouer que si je ne lis pas la documentation tous les 6 mois je deviens aussi novice que le premier des dĂ©butants. On peut en conclure quâau bout de 5 ans sans coder on peut difficilement comprendre la technique, et le dialogue inter-Ă©quipe devient forcĂ©ment problĂ©matique, lĂ oĂč la communication est la clĂ© pour le succĂšs des projets…
Pour le succĂšs de ces derniers, il faut que les dĂ©veloppeurs sâapproprient le recueil des besoins, la gestion de projet, pour sortir de leur rĂŽle de col bleu et pour amĂ©liorer la perception des dĂ©veloppeurs en France.
Sur ce sujet, Emilien Pecoul rĂ©sume bien la situation avec cette phrase dans son article âLa France gĂąche son talent numĂ©riqueâ
Tel analyste financier ne comprenant pas pourquoi les Ătats Unis crĂ©aient des GAFAM pendant que nous crĂ©ons des CapGemini et des Atos.
Toyotismeâââun Ă©quilibre Ă Â trouver
NĂ©anmoins, en allant trop loin dans ce toyotisme, cet auto contrĂŽle poussĂ© pour ainsi dire, on risque de se culpabiliser de ne pas aller assez loin dans la dĂ©marche, de ne pas ĂȘtre excellent partout, et de finir par sâĂ©puiser au travail : il nây a pas meilleur exploiteur que soi-mĂȘme.
Appliquer tous ces principes de tests, communication, surveillance, lâinfrastructure comme code dans un contexte collectif peut paraĂźtre clairement intimidant, surtout car on doit livrer rapidement trĂšs souvent sans que toutes les problĂ©matiques aient bien Ă©tĂ© pesĂ©esâââla culture du sprint dans laquelle nous sommes privilĂ©gie la quantitĂ© plutĂŽt que la qualitĂ©. Devenir expĂ©rimentĂ©.e dans son mĂ©tier veut dire savoir ralentir les cadences, recentrer les prioritĂ©s techniques, prendre du temps pour lâarchitecture technique de lâapplication, la partager, expliquer les nuances, changer les rituels qui ne marchent plus, mettre en place les tests, lâintĂ©gration et les dĂ©ploiements continus, pour ensuite Ă©conomiser du temps de façon exponentiel tout le long de la vie de lâapplication pour le consacrer Ă lâamĂ©lioration du projet et du service client.
Facteur vĂ©loâââLe danger de la personne clĂ©
Si vous avez dĂ©jĂ passĂ© plus dâune heure sur un projet avec moi, il se peutâââet jâen suis dĂ©solĂ©âââque jâai pu Ă©voquer 3 fois le facteur vĂ©lo, une dĂ©clinaison du facteur dâautobus. Si vous nâavez pas la chance de le connaĂźtre il sâexplique par le fait quâavec lâabsence dâinfrastructure cyclable et une sociĂ©tĂ© accro Ă la voiture, une personne derriĂšre son volant peut me blesser, moi sur mon vĂ©lo. Que se passera-t-il si je suis la personne clĂ© dâun projet ? Beaucoup, beaucoup de retard. A moins que lâequipe ait dĂšs le dĂ©but du projet pensĂ© Ă partager, automatiser les tests, documenter entre plusieurs personnes. Avoir ce principe en tĂȘte lorsquâon est sur un projet permet de partir en vacances serein, dâavoir moins de problĂšmes en astreintes, car nous avons confiance en nos collĂšgues pour gĂ©rer toutes les situations. Cela construit une rĂ©elle coopĂ©ration, bref je ne peux que vous le conseillerâ ainsi que de rouler Ă vĂ©lo.
Une culture de la résilience
Quand une culture de la rĂ©silience basĂ©e sur lâautomatisation et le partage est créée, les erreurs humaines sont rĂ©duites et lâentraide et la confiance commencent Ă ĂȘtre naturelles. Cette culture permet dâassurer une meilleure disponibilitĂ© de la plateforme pour rĂ©pondre au service attendu par les clients et au meilleur coĂ»t.
Dans ces conditions, lâaccueil des nouveaux est aussi facilité : des documentations Ă jour, moins de procĂ©dures orales grĂące Ă lâautomatisation et des outils comme Docker et Docker Compose pour automatiser le lancement des stacks.
La culture de la résilience, ou celle du roseau (credit unsplash)
Les reverts de lâexcellence technique
Les capacitĂ©s Ă sâentraider peuvent ĂȘtre nĂ©gligĂ©es au prix dâexpertises techniques et dâexploits individuels apprĂ©ciĂ©s par certains chefs dâentreprises responsables de nos primes et de nos augmentations. Il est souvent plus facile de remarquer les exploits dâune personne plutĂŽt que quelquâun qui met en avant lâĂ©quipe. Avec ceci, câest la culture du Stakhanovisme qui sâinstalle, Ă base de dĂ©veloppeurs rockstars.
Ces personnes peuvent plomber lâambiance et la productivitĂ© dâune Ă©quipe Ă trop vouloir briller seules sans se soucier de qui passera derriĂšre elles. Un manque de respect peut aussi apparaĂźtre envers les membres de lâĂ©quipe en allant jusquâau harcĂšlement : quand on est le seul Ă connaĂźtre comment fonctionne un projet on se sent vite protĂ©gĂ© par un statut dâintouchable.
Pourtant, lâentraide est un facteur dâinnovation chez le vivant dans son Ă©volution depuis 3.8 milliards dâannĂ©es, la nature nous apprend que seuls les plus coopĂ©ratifs survivent, mise Ă part quelques exceptions comme les Tardigradeâââun nom alternatif pour les dĂ©veloppeurs rockstars ?
Bien sĂ»r, il faut savoir trouver lâĂ©quilibre entre performances individuelles et collectives, il y aura toujours des meneurs dans les Ă©quipesâââqui doivent apprendre Ă parfois sâeffacer pour voir les autres Ă©voluerâââet il faut aussi savoir se remettre, ou lâorganisation, en question si on passe plusieurs longues rĂ©unions ou rituels Ă ĂȘtre passif.
Les directeurs et managers qui suivent ce principe rendent leur entreprise rĂ©siliente dans les pires crises et sâassurent de longues carriĂšres ou du moins se construisent un rĂ©seau fiable de personnes qui souhaitent travailler avec elles.
Le dilemme du prisonnierâââou, encore une bonne raison de travailler de façon coopĂ©rative
Pour nous aider Ă enfoncer le clou sur la collaboration, on peut citer les sciences sociales avec la thĂ©orie des jeux et le dilemme du prisonnier. Ce dilemme, citĂ© dans plus de 5 000 articles scientifiques, nous explique que des acteurs en concurrence sur une longue pĂ©riode, nos chers Stakhanovsâââou Tardigrades, choisissent toujours la pire solution, alors que ceux collaboratifs arrivent Ă la meilleure. En bref, le collectif est plus efficace que lâindividualisme.
Dire cela peut paraĂźtre naĂŻf, simpliste voir utopiste, mais on a tendance Ă oublier Ă quel point notre sociĂ©tĂ© est coopĂ©rative Ă travers le bĂ©nĂ©volat, le don, et tous les gestes gratuits du quotidien. MĂȘme dans des temps extrĂȘmement durs, la guerre de tranchĂ©es 14â18 a mis en lumiĂšre la coopĂ©ration. Certains soldats ennemis appliquaient le principe de âlaissez vivre pour vivreâ, notamment Ă NoĂ«l ou lors des ravitaillements.
La coopĂ©ration devrait ĂȘtre Ă notre portĂ©e nous qui sommes tranquillement installĂ©s Ă nos bureaux.
Pour mettre en pratique ce principe vous pouvez jouer à la théorie des jeux ici (durée 30 minutes) : https://ncase.me/trust/
Par oĂč on commence ?
ReconnaĂźtre la prĂ©sence de silos de dĂ©veloppeurs, testeurs, ops, product owner⊠pour mieux les casser est la premiĂšre Ă©tape pour crĂ©er une culture de collaboration et de la rĂ©silience. Demander Ă lâautre quâest ce quâil trouve compliquĂ© ou mystĂ©rieux dans notre Ă©quipe, lui expliquer de la maniĂšre que lâon aurait aimĂ© entendre lorsquâon a commencĂ© notre spĂ©cialitĂ©, et citer les sources qui nous ont aidĂ©es Ă y voir plus clair.
Jâaime revendiquer que mes compĂ©tences ont Ă©tĂ© acquises grĂące Ă dâautres, et que je suis redevable de transmettre leur savoir. Je ne serais pas le mĂȘme ingĂ©nieur si je nâavais pas connu Martin Kleppman et ses travaux, Jepsen, certains collĂšgues que jâai cĂŽtoyĂ©s ou que je cĂŽtoie toujours, ou tant dâanonymes sur Stackoverflow et ailleurs. La citation qui suit illustre tout cela:
Des nains sur des Ă©paules de gĂ©antsâââBernard de Chartres
La seconde Ă©tape doit venir des experts et de la direction de lâentreprise, ces personnes doivent montrer lâexemple, communiquer et dire quâils ne savent pas tout. En posant des questions sur des channels publiques ou en rĂ©union, en rĂ©pondant aux questions en citant un maximum de sources pour montrer leurs mĂ©thodes de recherche, et en indiquant les endroits dans le code oĂč la comprĂ©hension est difficile pour eux. Il faut aussi pousser pour que le potentiel de chacun puisse grandir en responsabilisant du recueil des besoins au monitoring, en sâeffaçant, en laissant lâautre faire, mais ĂȘtre lĂ en soutien si un blocage perdure.
Dans un Ă©change intellectuel, celui qui donne ne perd rien et celui qui reçoit prend mais ne dĂ©possĂšde pas son interlocuteur.âââBernard Maris
La troisiÚme étape dépendra de votre maturité DevOps, qui faura faire évoluer vers du DevPO et DevQA pour avoir de la polyvalence dans les équipes.
Donnant, donnant
Il sera considĂ©rable pour les experts, surtout en pĂ©riode de crise, de ne pas Ă avoir Ă porter seuls le poids de leur spĂ©cialitĂ© en pouvant compter sur dâautres. Ces autres qui Ă©taient peut-ĂȘtre totalement novices sur leur techno 3 mois avant.
Du cĂŽtĂ© de lâĂ©quipe, elle pourra devenir rĂ©siliente, elle saura demander de lâaide plus facilement, le savoir sera mieux diffusĂ©, la rivalitĂ© et le stress seront rĂ©duits ainsi que les futures erreurs liĂ©es Ă celui-ci, et le plus important notre bien-ĂȘtre au travail sera amĂ©liorĂ©.
Enfin, la derniĂšre Ă©tape dĂ©pendra de votre culture dâentreprise et de votre vision de lâagilitĂ©, mais il nây aura jamais de recettes miracles dâorganisation. Cependant, le bien-ĂȘtre, avec lâinstauration de la semaine de 4 jours par exemple, semble ĂȘtre un excellent levier Ă utiliser en tant que dĂ©cideur pour augmenter la productivitĂ© de lâentreprise.