Comment gĂ©rer votre dette technique ? (Un refactoring Ă  200.000€ expliquĂ© par un DĂ©veloppeur Senior)

SdĂ­let
VloĆŸit
  • čas pƙidĂĄn 12. 06. 2024
  • đŸ‘šđŸ»â€đŸ’» DĂ©marrer votre carriĂšre de DĂ©veloppeur Professionnel :
    www.angularsenior.fr/apply
    ***
    Êtes-vous souvent confrontĂ©s Ă  la "dette technique" dans votre code ?
    Si c'est le cas, aujourd'hui j'ai décidé partager avec vous ma roadmap en 3 étapes simples pour mettre en place un "Backlog Technique".
    Cela sera bien vu par votre client et votre employeur...
    Mais SURTOUT vous allez enfin pouvoir corriger le code qui vous fait mal Ă  la tĂȘte, et sauver votre santĂ© Ă  moyen terme.
    (Comme toujours, tout ce que je donne comme conseil a été d'abord testé dans la vraie vie.)
    Bon visionnage,
    Simon.
    ***
    00:00 : Introduction
    00:15 : La question de la "dette technique"
    01:21 : Le paradoxe du Refactoring
    02:14 : Le mauvais code vs. le bon code
    03:11 : Comment créer un Backlog Technique ?
    03:26 : [Pillier n°1] CUT Adding Legacy
    06:46 : [Pillier n°2] CLEAN Existing Code
    11:31 : [Pillier n°3] CONSTRUCT Needed Abstraction
    15:23 : Un Backlog Technique sur une feuille A4
    15:31 : La Newsletter du Code Senior

Komentáƙe • 51

  • @vbarr67
    @vbarr67 Pƙed 2 měsĂ­ci +3

    Je dirige une Ă©quipe de dev sur des produits legacy et j'approuve Ă  100% tout ce que vous dites, et j'encourage tout le monde Ă  suivre ces conseils. Robert "Uncle Bob" Martin est effectivement un rĂ©fĂ©rence et ses vidĂ©o et livres sont vraiment utiles. Je mesure la qualitĂ© de code avec des "WTF" (what the fuck), et je dĂ©couvre avec plaisir l'Ă©quivalent français "accroc mental" bien plus reprĂ©sentatif. Merci pour la vidĂ©o, je vais la recommender (surtout le dĂ©but) Ă  certaines "parties prenantes" qui ont besoin de comprendre l'intĂ©rĂȘt d'Ă©viter la dette technique comme la peste et le cholĂ©ra.

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci +2

      À votre service pour continuer la propagande sur ce sujet. 👍

    • @Cracky541
      @Cracky541 Pƙed 2 měsĂ­ci +2

      Ce livre est en effet la Bible du développeur. D'ailleurs j'ai mis dans mon prompt entre autre "Tu as lu clean code de Robert Martin et tu appliques tous les grands principe du livre dans tes réponses en particulier les bonnes pratiques de nommage et de factorisation du code"

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci

      @@Cracky541 Haha pareil, j'ai tendance à mettre tout ce qui me semble des bonnes pratiques dans un prompt/custom model ChatGPT. 👍

  • @user-de8bt9co8c
    @user-de8bt9co8c Pƙed 2 měsĂ­ci +2

    Je te remercie pour ton excellente vidéo.
    Le vrai problĂšme n’est pas d’avoir conscience de devoir refactorer et de vouloir faire l’effort mais de savoir comment le faire pour aboutir Ă  un rĂ©sultat qui change vraiment la donne.
    Les points que tu mets en avant sont tout Ă  fait pertinents, mais que il s’agit de les appliquer c’est difficile pour beaucoup de dĂ©veloppeurs, dĂ©butants et expĂ©rimentĂ©s, car cela reste souvent trop abstrait ou sujet Ă  interprĂ©tation.
    La clĂ© c’est effectivement de rendre les choses simples. Pour cela il faut faire la distinction entre l’expression de l’intention avec un language le plus naturel possible genre vehicule.roule() et le code exprimant comment cette intention est rĂ©alisĂ©e avec peut ĂȘtre un language plus technique.
    Attention au couplage, donc attention aussi Ă  la factorisation. Vouloir factoriser a tout prix peut amener Ă  un code trĂšs complexe , difficile Ă  modifier ou du moins error prone. Quand c’est presque pareil c’est des fois juste diffĂ©rent.
    Les nouveau framework Ă  la mode ne vous sauvera pas, seule la structure de votre code pourra le faire.
    Rendre simples les choses compliquĂ©es n’est pas facile. Ça demande d’essayer et essayer encore d’une autre.
    Et celui qu’il faudra vaincre c’est vous mĂȘme, il faut dĂ©passer la vision purement technique et syntaxique de la programmation et y trouver comme un moyen d’expression. On pourrait faire l’analogie avec l’écriture d’un livre avec des lettres et ponctuations. Ce ne sont dĂ©finitivement pas les lettres et les ponctuations que vous utilisez qui en fera un chef d’Ɠuvre


    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci

      Je plussoie votre commentaire, notamment :
      1/ Attention au couplage, donc attention aussi Ă  la factorisation => VRAI.
      2/ La clĂ© c’est effectivement de rendre les choses simples => VRAI.
      3/ Les nouveau framework Ă  la mode ne vous sauvera pas, seule la structure de votre code pourra le faire => VRAI

  • @olispirit6100
    @olispirit6100 Pƙed 2 měsĂ­ci

    J'approuve à 100% ta présentation. souvent la dette technique s accumule, jusqu'a ce que ce ne soit plus maintenable (version du framework à l'abandon, vulnerabilité critiques) et qu il y ait une refonte complete du systeme sur une pile technologique plus récente.

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci

      Exactement... d'oĂč la fameuse "techno miraculeuse"... et on relance la roue !

  • @christophe_agoero
    @christophe_agoero Pƙed 2 měsĂ­ci

    Tout à fait d'accord avec toi. Il y a en plus un effet négatif quasiment jamais abordé, c'est l'aspect RH. En effet, ayant participé au processus de recrutement notamment les entretiens techniques et bien je peux dire que sur des projets avec des technologies obsolÚte il est difficile de trouver des candidats et je les comprends... Finalement, faute du nombre de candidats tu prend celui qui veut bien venir et c'est pas forcément le meilleur.

  • @ctrl_fj
    @ctrl_fj Pƙed 2 měsĂ­ci +2

    Hello Simon, une nouvelle fois merci pour cette vidĂ©o instructive ! J'ai achetĂ© Clean Code Ă  Cultura le weekend dernier, ta vidĂ©o me donne envie de l'attaquer dĂšs maintenant ! 👀
    Une question traßne dans mon esprit depuis un petit moment : je ne sais plus dans quelle vidéo, mais je me souviens t'avoir entendu dire que tu avais beaucoup accroché avec le frontend, et ce malgré un bagage en PHP assez important. Or, quand je regarde tes vidéos, j'ai l'impression que l'écosystÚme frontend dans lequel tu gravites est finalement assez proche du backend : consommation d'API, design pattern, tableaux/objets, architecture d'un framework front...
    J'ai aujourd'hui le sentiment d'ĂȘtre plus proche de l'aspect graphique du dev : design, interface, intĂ©gration... bien que j'adore le JavaScript, je me demande si prendre de la distance avec le CSS me stimulerait autant au quotidien. As-tu dĂ©jĂ  eu ce sentiment ? Et d'une maniĂšre plus gĂ©nĂ©rale, as-tu le sentiment d'ĂȘtre "dĂ©veloppeur frontend" ? Ce terme semble englober tellement de concepts...
    Au passage, j'adore le format type "podcast" de tes vidĂ©os, elles permettent de se concentrer sur ce que tu dis 🙂

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci

      Effectivement, je viens d'un background backend sur Symfony (PHP). Mais on ne s'ennuie pas non plus cÎté frontend, il y a de quoi faire aussi finalement.
      Concernant ta question, effectivement, on pourrait redĂ©couper le terme "dĂ©veloppeur frontend". Disons que je me focus sur la logique qui permet de faire tourner une application web, sans ĂȘtre spĂ©cialement proche du CSS ou des APIs du navigateur. Une sorte d'intĂ©grateur Angular, ou via un autre framework. Je ne sais pas si ça rĂ©pond Ă  ta question...
      Aussi, qu'est-ce que tu appelles le format "podcast" des vidéos ?

  • @ChiKhami
    @ChiKhami Pƙed 2 měsĂ­ci +5

    TrÚs bons conseils. En revanche, interviewer des employés de Google ou Netflix ne va pas donner une représentation réaliste du métier en France.

    • @bryanfrancois1899
      @bryanfrancois1899 Pƙed 2 měsĂ­ci +1

      Il faut Ă©couter les meilleurs pour devenir meilleur. Il faut aussi pas ce focaliser que sur la France, le monde est grand il y a de la place partout.

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci +1

      Merci pour la réponse, c'est un peu ce que j'allais dire.
      Ce n'est effectivement pas reprĂ©sentatif d'une ESN moyenne en France, mais ce n'est pas pour ça qu'il ne faut pas interviewer des experts. Que ce soit dans le code dans un autre secteur d'activitĂ© d'ailleurs. 👍

    • @bryanfrancois1899
      @bryanfrancois1899 Pƙed 2 měsĂ­ci

      @@codeursenior en effet, bonne continuation à vous pour votre projet de devenir expert google (ce qui sera une formalité pour vous je pense)

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci

      @@bryanfrancois1899 OulĂ  rien n'est sĂ»r, je ferai le malin quand je serai de l'autre cĂŽtĂ© ! 😅
      Bon code Ă  vous,
      Simon.

  • @mohamedkraiem1693
    @mohamedkraiem1693 Pƙed 2 měsĂ­ci

    Salut Simon ! J’aime beaucoup ce que tu propose. Peux-tu faire une vidĂ©o sur quelques conseil de lecture allant du dĂ©butant Ă  l’expert stp merci 👍

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci +1

      Hello, oui, je me suis notĂ© de rĂ©aliser cette vidĂ©o, mais je ne pourrai pas la produire avant plusieurs mois. J'ai envie de passer du temps sur cette vidĂ©o, car les livres m'ont vraiment beaucoup aidĂ© Ă  progresser, donc je veux leur rendre hommage en quelque sorte. 😀

  • @toonpomme5178
    @toonpomme5178 Pƙed 2 měsĂ­ci

    j'ai rien a dire je com pour la visibilité et recensement. tres quali pouce bleu

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci

      Merci pour votre contribution Ă  l'effort de guerre !

  • @tolstoievski4926
    @tolstoievski4926 Pƙed 2 měsĂ­ci

    Code that feats in your head, bonne référence, d'ailleurs l'auteur du livre Mark Seemann a un blog ou il écrit des articles.

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci

      Yep, j'adore son livre, au top.
      Bon code,
      Simon.

  • @maloukemallouke9735
    @maloukemallouke9735 Pƙed 2 měsĂ­ci

    TOP

  • @rickyrick6901
    @rickyrick6901 Pƙed 19 dny

    On peut Ă©galement ajouter le nerf de tous les problĂšmes : aprĂšs le RedĂ©coupage, la GESTION DES DÉPENDANCES : de quel classe/module/package doit VRAIMENT dĂ©pendre la mienne/le mien, pour rĂ©aliser ce dont il est responsable, ni plus ni moins.

    • @codeursenior
      @codeursenior  Pƙed 19 dny +1

      Oui vous avez tout à fait raison ! Limiter le coupling au strict minimum.. et organiser les dépenses par ordre de stabilité. Bon code !

  • @saaalut
    @saaalut Pƙed 2 měsĂ­ci

    6:18 oui, le code dot ĂȘtre optimisĂ© pour le lecteur: donc si le vocabulaire mĂ©tier est en français, alors le code doit ĂȘtre Ă©crit en français, pas en anglais pour l'offshore Ă  l'autre bout du monde ...

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci

      Hello, point de vue intéressant. Codant uniquement en anglais, je ne me suis jamais posé cette question !

  • @CS-cn9oq
    @CS-cn9oq Pƙed měsĂ­cem

    Ce que je vois encore trop souvent, ce sont des clients qui ne comprennent à la notion de dette technique et qui vont virer un tech lead compétent pour le remplacer par un pisseur de features jusqu'au point de non-retour.

  • @AdamSouquieres
    @AdamSouquieres Pƙed 2 měsĂ­ci

    J'ai le sentiment qu'en microservjce on Ă©vite vachement plus ce genre de soucis non ?

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci

      Je dirai que "oui" si le microservice est bien fait, et "non" si le microservice est mal fait. En fait, ma démarche est de croire plus dans les compétences que dans les technos, méthodologies ou autres frameworks.

  • @wilonweb
    @wilonweb Pƙed 2 měsĂ­ci

    Parmis t’es livrĂ© tu en a un prĂ©fĂ©rer ?

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci

      J'aurais du mal Ă  choisir, je dirai "Code That Fits in Your Head" de Mark Seeman.

  • @bayakoma4598
    @bayakoma4598 Pƙed 2 měsĂ­ci +1

    🎉 Bonjour bonjour, je lancĂ© un pavĂ© dans la marre. Je fuit ma petite veille quotidienne, et je constate qu'une majoritĂ© de personne qui travaillent au sein de esn , ne font pas attention au tremblementaire AI. Tout ees gens continue Ă  vaencquer Ă  leur occupation sans prĂ©ocuper de l'AI. Je Ă©tonnĂ© simon que toi tu n'en iarle ou que tu ne l'as pas intĂ©grer dans tes vidĂ©os. Je suis partie voir ce qui si passe chez les gros ESN et ça va etse un carnage lorsque certains esn leader dans lAI vont se dĂ©ployer au pres de leur client.

    • @olive1782000
      @olive1782000 Pƙed 2 měsĂ­ci +7

      Correction par AI : "Bonjour bonjour, je lance un pavĂ© dans la mare. Je fuis ma petite veille quotidienne, et je constate qu’une majoritĂ© de personnes qui travaillent au sein des ESN ne font pas attention Ă  l’intelligence artificielle (IA) sismique. Tous ces gens continuent vaillamment leur occupation sans se prĂ©occuper de l’IA. Je m’étonne, Simon, que toi tu n’en parles pas ou que tu ne l’aies pas intĂ©grĂ©e dans tes vidĂ©os. Je suis allĂ© voir ce qui se passe chez les gros ESN, et ça risque d’ĂȘtre un carnage lorsque certains leaders dans l’IA vont se dĂ©ployer auprĂšs de leurs clients."
      L’intelligence artificielle est en effet un domaine en pleine expansion, et son intĂ©gration dans les entreprises est un enjeu majeur. EspĂ©rons que davantage d’ESN prendront conscience de son potentiel et sauront l’utiliser de maniĂšre bĂ©nĂ©fique pour leurs clients. ;-)

    • @bayakoma4598
      @bayakoma4598 Pƙed 2 měsĂ­ci

      @@olive1782000 😁😁 bien jouĂ©, bonne initiative. Revenons Ă  des choses sĂ©rieux, si je dis ça c'est qu'en 2007 Ă  la sortie de l'iphone beaucoup de personnes pensaient que Nokia aller continuĂ© Ă  dominer le monde de la tĂ©lĂ©phonie avec leur N95 N 100 etc. Et on connait la suite des Ă©vĂ©nements. La, situation se reproduit avec l'AI. Et je vois le drame arrivĂ© dans les Esn. On auras plus besoins de dev devops ops sre etc, on voudras des prompt engineering , des manager spĂ©cialisĂ© IA etc..

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci +1

      Bonjour, le sujet de l'IA n'est pas mis sur le cÎté, au contraire j'invite tout le monde à se familiariser le plus tÎt possible avec ces outils. J'ai réalisé une vidéo sur ce sujet si cela vous intéresse : czcams.com/video/slvvttdgmXo/video.html&ab_channel=SimonDieny-CodeSenior.

  • @henochangemichaellonzokoff6036
    @henochangemichaellonzokoff6036 Pƙed měsĂ­cem

    possible d'avoir un projet web react de A à Z comment ça se passe en entreprise ?

    • @codeursenior
      @codeursenior  Pƙed měsĂ­cem +1

      Hello, pour React non. Pour Angular oui, ce sera l'objet de la formation que je rendrai publique quand j'aurais atteint 100.000 abonnées. Bon code !

    • @henochangemichaellonzokoff6036
      @henochangemichaellonzokoff6036 Pƙed měsĂ­cem

      @@codeursenior donc je partage au max la page đŸŽŠđŸ”„

    • @codeursenior
      @codeursenior  Pƙed měsĂ­cem +1

      @@henochangemichaellonzokoff6036 🚀

  • @tntg5
    @tntg5 Pƙed 2 měsĂ­ci

    Je ne sais pas qui a dit un jour qu'un bout de code est obsolĂšte dĂšs qu'on l'a Ă©crit.

    • @codeursenior
      @codeursenior  Pƙed 2 měsĂ­ci +1

      Ce n'est pas faux. D'oĂč l'intĂ©rĂȘt d'avoir une CI (Continous Integration) pour vous assurer que votre code se base sur des dĂ©pendances Ă  jour, passe les tests unitaires, le linter et le formater. Cela vous aidera Ă  avoir du code moins "obsolĂšte" dans le temps. 👍

  • @DadoRAM
    @DadoRAM Pƙed 2 měsĂ­ci

    Ta rĂ©flexion est trĂšs juste IMO maintenant il faut expliquer cela Ă  la secte agile et devops 😂 car tu dois ameilliore ton code le rendre Ă©volutif corriger le bug apporter des nouvelles fonctionnalitĂ©s vit et avec joie đŸ€ŁđŸ€ŁđŸ€ŁđŸ€Ł

  • @CS-cn9oq
    @CS-cn9oq Pƙed měsĂ­cem

    Il y a sûrement d'excellents tech leads chez Google, il y en a sûrement aussi beaucoup qui sont moins bons que toi.

    • @codeursenior
      @codeursenior  Pƙed měsĂ­cem

      C’est trĂšs flatteur mais ils doivent ĂȘtre rares quand mĂȘme. 😆