Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sur le chemin de la qualité : en équipe et dès demain !

Sur le chemin de la qualité : en équipe et dès demain !

Ça y est ! C’est décidé ! Vous allez construire des applications de meilleure qualité. Vous êtes convaincu•e que, pour cela, certaines pratiques de développement sont fondamentales comme par exemple les revues de code ou les tests unitaires automatisés.

Mais le problème, c’est que vos collègues n’en font pas. Parce que « c’est trop cher on n’a pas le temps », « je ne connais pas », « on ne m’écoutera pas », « ça ne marchera pas chez nous », « je crains les remarques sur mon code »…

Comment aider votre équipe ?

Après cette conférence, quand vous reviendrez sur votre plateau projet, vous aurez quelques éléments à essayer tout de suite. Et peut-être de quoi élaborer un plan de bataille pour que vous et votre équipe soyez fiers de votre code et ainsi conquérir le monde ! 😉

7ca84da17d6ced13c7194db71f0c0e64?s=128

Julien Jakubowski

June 14, 2019
Tweet

Transcript

  1. OCTO Part of Accenture Digital © 2019 - All rights

    reserved
  2. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Qui suis-je ? Julien Jakubowski Consultant-codeur OCTO Nord @jak78
  3. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 ¤C’est mon vécu ¤Ça ne se passera pas comme prévu ¤Contexte : >Equipe < 10 personnes colocalisées >L’équipe souffre de la non-qualité >Pas de blocage par le management DISCLAIMERS ⚠
  4. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Donc vous voulez changer les choses ? 5
  5. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Attention à la condescendance
  6. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 ¤Humilité, au service de l’équipe ¤Bien connaître ce que l’équipe veut améliorer Adopter la bonne posture, au service de l’équipe
  7. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 ¤A quoi on reconnaît une qualité de code insuffisante ? ¤S’intéresser aux impacts de la non-qualité, ce que tout le monde voit Un problème de qualité ?
  8. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Impacts de la non-qualité ¤Time to market plus long ¤Indisponibilités accrues ¤Désengagement des développeurs
  9. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 "If you can not measure it, you can not improve it. » - Lord Kelvin
  10. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Mesurer ¤Nombre d’anomalies par fonctionnalités/User Story ¤Nombre d’anomalies détectées avant une MEP/une livraison
  11. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 >Trouver les plus grosses douleurs >Connaître ce qui a déjà été essayé et les blocages rencontrés Phase d’observation et d’imitation - buts
  12. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Phase d’observation et d’imitation – 2 semaines ¤Faire comme fait l’équipe et taire ses réflexes ¤Observer: > Fiertés et douleurs > Symptômes et Dixits Designed by Freepik
  13. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 >Des commits le soir voire la nuit >Une moyenne de 5 livrables par itération >Nombre de bugs dans le backlog en augmentation Phase d’observation et d’imitation – symptômes #DevoxxFR #TechLead @damienbeaufils
  14. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 > « Le build est rouge mais c’est normal. Relance-le et ça devrait passer » > « Tester unitairement c’est compliqué sur le projet » > « On reçoit tellement de mails de Jenkins qu’on ne les lit plus » > « Hier j’ai passé mon après-midi à essayer de corriger le build » Phase d’observation et d’imitation – exemples de dixits #DevoxxFR #TechLead @damienbeaufils
  15. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Par où commencer ? Git TDD Pair programming Continuous integration Méthodes plus petites BDD DDD « ça marche sur ma machine pourtant » Build plus rapide Moins de couplage Standards Linter Selenium "
  16. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Par où commencer ? Problème concret, observé par l’équipe Amélioration Petit pas Observation des résultats
  17. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Voir les problèmes 18
  18. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Management visuel 2 16 13 10 5 19 6 7 3 1 12 17 21 9 12 16 20 15 13 27 22 17 4 8 25 14 24 11 26 18 28 29 30 33 35 38 49 45 50 31 34 32 36 17 21 40 41 47 48 43 17 37 46 25 44 39 42 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 Où est le problème? Fig. 1 Fig. 2
  19. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Management visuel 0 100 200 300 400 500 600 700 800 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Stock de bugs
  20. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Management visuel - exemples de board
  21. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Rétrospective
  22. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Que faire quand il y a un bug ? 23
  23. L’appli a planté

  24. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 L’appli a planté – on va fixer… Les utilisateurs n’ont plus accès à l’application Les requêtes plantent en NullPointerException La propriété nodeparams.country est null. è Pourquoi ? è Pourquoi ? è OK on va fixer
  25. Un mois plus tard…

  26. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Ce qu’on aurait pu faire Les utilisateurs n’ont plus accès à l’application Pourquoi ? Les requêtes plantent en NullPointerException Pourquoi ? La propriété nodeparams.country est null. Pourquoi ? Elle n’a pas été précisée lors du déploiement Pourquoi ? On l’a oublié Pourquoi ? è Contre-mesure : l’ajouter dans la checklist de déploiement
  27. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 5 pourquoi et contre-mesure Les clients ne reçoivent plus les devis par mail Pourquoi ? Le worker n’envoie plus les mails Pourquoi ? Le code échoue à parser une chaîne en date Pourquoi ? La méthode send(String body, String sendDate) a été appelée en inversant les arguments Pourquoi ? Le développeur n’a pas eu de feedback sur cette erreur Pourquoi ? èContre-mesure : donner un type Date à sendDate èPlus loin : code review ? Tests ? Standards de code ? Problème concret, observé par l’équipe Amélioratio n Petit pas Observatio n des résultats
  28. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Les pratiques de dev de qualité 29
  29. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Comment j’ai introduit chaque pratique Simple à mettre en œuvre Douleurs observées On essaie maintenant On fait un 1er pas Douleurs que vous anticipez Pas tout de suite Pas tout de suite Difficile à mettre en œuvre
  30. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 ¤Problèmes observés è nouvelle pratique ¤Exemplarité ¤Se faire des alliés Comment j’ai introduit chaque pratique
  31. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Comment j’ai introduit chaque pratique – first follower
  32. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 ¤« On a trouvé 3 bugs en revue de code » ¤« J’ai apprécié… » ¤Rétrospective Ne pas oublier la comm !
  33. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 ¤Exemples: >Revues de code >Pair programming >Live-codings, dojos… ¤Pourquoi en premier ? >Trouvent beaucoup de bugs >Communiquent >Donnent un terrain Pratiques collaboratives : souvent en premier
  34. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 La revue de code
  35. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Trouver un maximum de défauts au plus tôt Coût de correction Correction en : dev recette production
  36. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 National Software Quality Experiment: ROI de 4 pour 1 Chez CISCO : 50% de réduction des défauts Le R.O.I. de la revue de code
  37. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Mesures des revues ¤Nombre de défauts trouvés ¤Nombre de lignes revues
  38. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Revue collective Revue par un pair Pair programming Efficience (nombre de défauts détectés) Communication, diffusion Facilité de mise en oeuvre Avantages Plus d’impact sur la qualité Plus facile à démarrer Montrer les pratiques A A B B B C A B Les pratiques collaboratives A
  39. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Pair programming, MOB programming > D’abord via des demandes d’aide > Followers > Devient peu à peu une habitude > Puis : MOB https://www.flickr.com/photos/f_mafra/11118328576
  40. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Revue de code et pair programming – objections « oui mais pendant qu’on revoit, on ne code pas, on perd du temps »
  41. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Revue de code et pair programming – objections « coder à 2, c’est aller 2x moins vite »
  42. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Gérer les objections Factualiser Essayer (timebox…)
  43. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Revue de code et pair programming – objections « critiquer mon code, c’est me critiquer moi »
  44. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 « critiquer mon code, c’est me critiquer moi » X Tu as fait une erreur √ Il y a un bug quand on met une chaîne vide X Ton code c’est de la m*rde √ Je vois une méthode de plus de 30 lignes, ce n’est pas notre standard
  45. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 ¤Je donne l’exemple >Je commence par faire revoir mon code >Je travaille mon feedback: CNV, OSBD… ¤Revue collective : puissant, mais peut être intimidant au début Revue de code : comment commencer ?
  46. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Test Driven Development – comment j’ai commencé ☉Montrer le geste TDD : plus facile avec un minimum de pratiques collaboratives ☉Code existant : chaque bugfix = opportunité ☉Code neuf systématiquement en TDD
  47. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 « écrire des tests, ça prend trop de temps » « ça prend trop de temps d’ajouter des tests sur tout le code qu’on a déjà » « mon code n’est pas testable » Tests – 3 objections
  48. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Gérer sa motivation 56
  49. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 ¤Savourer les petites victoires ¤Observer les mesures ¤Se reposer sur les alliés Gérer sa motivation
  50. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 ¤Ne pas aller trop vite >Pratique bien intégrée ? >Constater l’impact >Résistances = information utile ¤Je n’ai pas le monopole des bonnes idées >Encourager les idées de changement venant de chacun Ecouter l’équipe
  51. Sur le chemin de la qualité : en équipe et

    dès demain ! @jak78 Posture au service des objectifs de l’équipe Améliorations pas à pas, à partir des problèmes observés Ne pas se contenter de fixer un bug Revue de code et pair programming FTW! ¤ Pensez aux formations et à l’accompagnement ¤ Tenez-moi au courant de vos essais ! L’essentiel @jak78 jja@octo.com