Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Sur le chemin de la qualité - GDG Lille

2 189 vues

Publié le

"Ç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 automatisés.

Mais vos collègues n’en font pas. Ou vous-même, vous avez essayé, mais sans en faire systématiquement. Parce que « c’est trop cher on n’a pas le temps », « ça ne marchera pas chez nous »...

Après cette conférence, quand vous reviendrez sur votre plateau projet, vous aurez des é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 ! ;-)"

Publié dans : Technologie
  • Soyez le premier à commenter

Sur le chemin de la qualité - GDG Lille

  1. 1. Sur le chemin de la qualité Sur le chemin de la qualité : en équipe et dès demain Julien Jakubowski - @jak78 GDG Lille
  2. 2. 2Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Qui suis-je ? Julien Jakubowski Consultant-codeur OCTO Nord @jak78
  3. 3. 3Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Pourquoi cette conférence ? @JeromeAvoustin & @superalienninja
  4. 4. 4Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski DISCLAIMERS ☉C’est mon vécu ☉Ca sera dur ☉Contexte : > Equipe < 10 personnes colocalisée > L’équipe souffre de la non-qualité > Non applicable avec manager intrusif
  5. 5. > Donc vous voulez changer les choses ?
  6. 6. 6Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Attention à la condescendance
  7. 7. 7Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Adopter la bonne posture ☉Humilité, au service de l’équipe ☉Bien connaître ce que l’équipe veut améliorer > Ce que vous allez proposer ensuite doit être aligné avec les objectifs de l’équipe
  8. 8. 8Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Un problème de qualité ? ☉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
  9. 9. 9Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Impacts de la non-qualité ☉Time to market plus long ☉Indisponibilités accrues ☉Désengagement des développeurs
  10. 10. 10Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski "If you can not measure it, you can not improve it. » - Lord Kelvin
  11. 11. 11Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Mesurer ☉Nombre d’anomalies par fonctionnalités/User Story ☉Nombre d’anomalies détectées avant une MEP/une livraison
  12. 12. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Phase d’observation et d’imitation – 1 semaine ☉Observer en binômant ☉Faire comme fait l’équipe et taire ses réflexes ☉Récupérer des symptômes et des dixits
  13. 13. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Phase d’observation et d’imitation – symptômes > Des commits le soir voire la nuit > Une moyenne de 5 livrables par itération > Nombre de bugs dans le backlog en augmentation #DevoxxFR #TechLead @damienbeaufils
  14. 14. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Phase d’observation et d’imitation – exemples de dixits > « 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 » #DevoxxFR #TechLead @damienbeaufils
  15. 15. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Phase d’observation et d’imitation - buts > Trouver les plus grosses douleurs > Connaître ce qui a déjà été essayé et les blocages rencontrés #DevoxxFR #TechLead @damienbeaufils
  16. 16. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Par où commencer ? è Par ce qui peut résoudre des problèmes concrets observés par l’équipe Amélioration continue : petits pas 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
  17. 17. >Amélioration continue
  18. 18. 18Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Management visuel 16 17 15 8 35 32 17 47 46 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. 19. 19Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski 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. 20. 20Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Management visuel - exemples de board
  21. 21. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Rétrospective
  22. 22. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski L’appli a planté
  23. 23. 23Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski 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
  24. 24. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Un mois plus tard…
  25. 25. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski 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
  26. 26. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski 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 ? L’argument sendDate n’est pas typé èContre-mesure : donner un type Date à sendDate èCode review ? Tests ? Standards de code ?
  27. 27. > Les pratiques de développement de qualité
  28. 28. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Comment j’ai introduit chaque pratique ☉En lien avec des problèmes observés ☉Exemplarité : je commence par me l’appliquer à moi- même ☉Alliés, first-follower ☉Communication sur ce que je fais et sur les résultats > Nb de défauts trouvés… > « j’ai apprécié » > Rétrospective
  29. 29. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Pratiques collaboratives : souvent en premier ☉Exemples: > Revues de code > Pair programming > Live-codings, dojos… ☉Pourquoi en premier ? > Trouvent beaucoup de bugs > Montrent ce qu’on fait de nouveau
  30. 30. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski La revue de code
  31. 31. 31Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Trouver un maximum de défauts au plus tôtCoûtdecorrection Correction en : dev recette production
  32. 32. 32Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Chez Raytheon ROI de 4 pour 1 Chez CISCO : 50% de réduction des défauts Le R.O.I. de la revue de code
  33. 33. 33Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Le R.O.I. de la revue de code
  34. 34. 34Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski 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 formats de revue A
  35. 35. 35Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski « oui mais pendant qu’on revoit, on ne code pas, on perd du temps » Combien de défauts a-t-on évité en contre-partie ? Combien de temps prennent les défauts « coder à 2 c’est aller 2x moins vite » On mesure ? Moins de choses à revoir « critiquer mon code, c’est me critiquer moi » Dur avec le code, doux avec les gens Revue de code et pair programming - objections
  36. 36. 36Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Dur avec le code, doux avec les gens 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
  37. 37. 37Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Dur avec le code, doux avec les gens ☉Je donne l’exemple > Je commence par faire revoir mon code > Je travaille mon feedback ☉Revue collective : puissant, mais peut être intimidant au début
  38. 38. 38Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Mesures des revues ☉Nombre de défauts trouvés ☉Nombre de lignes revues
  39. 39. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Pair programming, MOB programming, katas ☉Ce que ça a amélioré > Nombre de retours en revue > Partage de connaissances, first-follower ☉Comment j’ai commencé > Par des demandes d’aide > Devenir une habitude > Puis : MOB
  40. 40. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Tests unitaires automatisés - pourquoi ☉Temps de tests manuels ☉Temps de debugging ☉Feedback rapide ☉Design du code
  41. 41. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Tests unitaires automatisés – comment j’ai commencé ☉Montrer le geste TDD : plus facile avec un minimum de pratiques collaboratives ☉Sur du code existant sans tests, on n’écrit pas de tests sans raison > Chaque bugfix est une opportunité ☉J’écris le code neuf systématiquement en TDD
  42. 42. 42Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski « écrire des tests, ça prend trop de temps » Combien de temps coûtent les bugs ? Les tests et le debug manuels ? « ça prend trop de temps d’ajouter des tests sur tout le code qu’on a déjà » Oui, c’est vrai : faire évol par évol / bugfix par bugfix « mon code n’est pas testable » Techniques: livre "working effectively with legacy code", katas… Essayer en timebox Tests unitaires automatisés – objections reçues
  43. 43. >Gérer la motivation
  44. 44. 44Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Gérer la motivation ☉Savourer les petites victoires ☉Observer les mesures ☉Se reposer sur les alliés
  45. 45. 45Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Ecouter l’équipe ☉Respecter le rythme de l’équipe > Observer comment elle intègre chaque pratique > Constater l’impact > Les résistances sont une information utile ☉Je n’ai pas le monopole des bonnes idées > Le changement peut venir de chacun
  46. 46. 46Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski L’essentiel Posture au service des objectifs de l’équipe Amélioration à 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 accompagnement ☉Si le manager ne suit pas : vous m’invitez en BBL ;-) ☉Tenez-moi au courant de vos essais ! è @jak78

×