Agile tour 2015 alliés contre les défauts
-
Upload
julien-jakubowski -
Category
Software
-
view
2.190 -
download
0
Transcript of Agile tour 2015 alliés contre les défauts
Merci à nos sponsors #AgileTourLille
Alliés contre les défautsPourquoi et comment nous relisons ensemble le code que nous produisons
Alliés contre les défauts
Pourquoi et comment nous relisons, ensemble, le code que nous produisons.
Qui sommes nous ?
Antoine Blancke
Développeur au Web Center AXA https://www.axawebcenter.fr/
Julien JakubowskiConsultant-codeur – Octo à Lillehttp://www.octo.com/
Le WebCenter d’AXA
10 équipes de développement
150 développeurs presque tous internes
Objectif : être une référence dans la qualité / maintenabilité
AXA et OCTONicolas Moreau, DG AXA France : “AXA France a pour ambition de devenir la meilleure société de services du marché”
Cela implique d’être excellent dans la qualité des logiciels produits au WebCenter.
Mise en place d’un modèle de suivi de l’amélioration de la qualité basé sur 2 indicateurs de résultat (= les KPI)
AXA et OCTO14 J de formation par développeur sur 3 mois + accompagnement de 9 mois sur ces pratiques :
●Revue de code
●Développement piloté par les tests (TDD)
●Travailler sur le code existant (legacy code)
●Standards de qualité (clean code)
●Spécification par l’exemple (BDD)
●Communication et feedback efficace
La revue de code et vous ?
● Qui fait relire son code par un collègue ?
● Régulièrement ?
● Par n’importe quel développeur ?
● Par toute l’équipe en même temps ?
Les revues de code avant…Audit de code fait par un Tech Leader à chaque fin de sprint
Pair programming / peer review pour les tâches compliquées
Relecture partielle du code : des défauts nous échappaient
Pas d’appropriation du standard : l’équipe apprend peu de ses revues
Maintenant au WebCenterChaque ligne de code est revue avant la mise en production
Toute l’équipe de dev revoit le code
Pendant les revues, l’équipe ne code pas ⇒ prend 5% du budget de dev des projets.
5% du budget ???A quelles réactions s’attendre quand on demande 5% du budget de dev ?
“t’es gentil, mais non”http://memegenerator.net/Correction-Guy
“ça va pas la tête ? On ne tiendra jamais le planning !”http://memegenerator.net/Anxiety-Cat
La revue de code... c’est trop cher !
La revue de code... c’est trop cher ?
Mais combien vous coûtent les défauts ?
Combien peuvent coûter les défauts ?
Coût d’analyse Coût de correction Autres coûts
0,25 JH 0,5 JH 0,5 JH
20 JH 2 JH 50 JH
40 JH 25 JH 20 JH
150 JH 15 JH 200 JH
0,5 JH 1 JH 100 000 €
45 JH 4 JH 10 000 000 €
Trouver un maximum de défauts, au plus tôt
Revue de code ⇒ 50% de réduction des défauts
Exemple chez CISCO :
Le R.O.I. de la revue de code
R.O.I. de 4 pour 1
Raytheon: - sans revue : 43% du coût des projets logiciels = correction
de défauts- après que les revues soient généralisées : 5% du coût
Qui le fait ?
Communication à propos du code
Qualité intrinsèque du code
Propriété collective du code
Facilite l’apprentissage
Revue collective Revue par un pair Pair programming
Efficience (nombre de défauts détectés)
Propriété collective du code
Amélioration de la qualité, évolution des standards
Facilité de mise en oeuvre
A
A
A
B B
B A
A A
Et les autres formats de revue ?
C A B
Les formats de revue
https://www.flickr.com/photos/peterkatuch/
Une pratique ancienne
Concrètement, ça se passe comment au WebCenter ?
Checklist des standards
Kanban : Développement fini
Préparation de la revue
❏Invitation de l’équipe de dév (au moins un jour à l’avance)
❏Gérer la logistique : Salle + matériels (vidéoprojecteur, grand écran)
❏Indiquer les stories qui vont passer en revue
❏Préparer le code à présenter
Kanban : Code Review en cours
La réunion de revue
La réunion de revue
Et ensuite ?
Nous statuons ensemble sur le sort du code
Les défauts sont consignés et intégrés dans notre flux Kanban
Les standards sont mis à jour au besoin
Les défauts sont corrigés et validés avec une peer-review
Kanban : Code Review - Fini
C’est bien bisounours tout ça…
Dur avec le code, doux avec les gens
Tu as fait une erreur !
Ton code c’est de la @(§"* !
Je crois que j’ai trouvé un bug quand on met une chaîne vide.
Ce code ne respecte pas nos standards, on avait dit pas plus de 30 lignes par méthode.
Le modérateur qui perd le contrôle
http://static.tvtropes.org/pmwiki/pub/images/1084894-440px_hulk_13_super.jpg
Pas de time keeper
Rétro speed boat sur la pratique de revue
Ce qui est difficile, surtout au début
Avoir peur d’être jugé personnellement
Ne pas oser le feedback sur le code
Faire des remarques peu pertinentes
Abandonner la pratique (pression projet)
Ce que nous avons appris
Critiquer le code et non la personne : changement de culture – Egoless programming
Au début, fixer le rôle de modérateur sur certaines personnes
Ne pas hésiter à échanger sur le code même avant les revues
Il faut des leaders pour maintenir la pratique tech lead
Pour conclure...
Résultats après 4 mois de pratique
Pour une release de début Février à fin Mai sur une équipe projet :
20 revues de code collectives
126 défauts remontés
Parmi ceux-là, 5 anomalies très sévères !
6,6 défauts/revue (hors typo)
Des standards qui évoluent continuellement
Une montée en compétence plus rapide des nouveaux arrivants sur le projet
Pour en savoir plus
http://blog.octo.com/revue-de-code-quel-format-choisir/
http://blog.octo.com/comment-rater-vos-revues-de-code-episode-1/ (série de 3 articles)
Pour en savoir plus
Antoine Blancke
Michel Domenjoud
Julien Jakubowski⇒ Stands OCTO et AXA
⇒ Meetup Software Craftsmanship Lille
"Instead of asking why a piece of software is using 1970s technology, start asking why software is ignoring 40 years of accumulated wisdom."