Agile tour 2015 alliés contre les défauts

42
Merci à nos sponsors #AgileTourLille Alliés contre les défauts Pourquoi et comment nous relisons ensemble le code que nous produisons

Transcript of Agile tour 2015 alliés contre les défauts

Page 1: 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

Page 2: Agile tour 2015   alliés contre les défauts

Alliés contre les défauts

Pourquoi et comment nous relisons, ensemble, le code que nous produisons.

Page 3: Agile tour 2015   alliés contre les défauts

Qui sommes nous ?

Antoine Blancke

Développeur au Web Center AXA https://www.axawebcenter.fr/

Julien JakubowskiConsultant-codeur – Octo à Lillehttp://www.octo.com/

Page 4: Agile tour 2015   alliés contre les défauts

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é

Page 5: Agile tour 2015   alliés contre les défauts

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)

Page 6: Agile tour 2015   alliés contre les défauts

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

Page 7: Agile tour 2015   alliés contre les défauts

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 ?

Page 8: Agile tour 2015   alliés contre les défauts

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

Page 9: Agile tour 2015   alliés contre les défauts

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.

Page 10: Agile tour 2015   alliés contre les défauts

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

Page 11: Agile tour 2015   alliés contre les défauts

La revue de code... c’est trop cher !

Page 12: Agile tour 2015   alliés contre les défauts

La revue de code... c’est trop cher ?

Mais combien vous coûtent les défauts ?

Page 13: Agile tour 2015   alliés contre 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 €

Page 14: Agile tour 2015   alliés contre les défauts

Trouver un maximum de défauts, au plus tôt

Revue de code ⇒ 50% de réduction des défauts

Exemple chez CISCO :

Page 15: Agile tour 2015   alliés contre les défauts

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

Page 16: Agile tour 2015   alliés contre les défauts

Qui le fait ?

Page 17: Agile tour 2015   alliés contre les défauts

Communication à propos du code

Page 18: Agile tour 2015   alliés contre les défauts

Qualité intrinsèque du code

Page 19: Agile tour 2015   alliés contre les défauts

Propriété collective du code

Page 20: Agile tour 2015   alliés contre les défauts

Facilite l’apprentissage

Page 21: Agile tour 2015   alliés contre les défauts

  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

Page 22: Agile tour 2015   alliés contre les défauts

https://www.flickr.com/photos/peterkatuch/

Une pratique ancienne

Page 23: Agile tour 2015   alliés contre les défauts

Concrètement, ça se passe comment au WebCenter ?

Page 24: Agile tour 2015   alliés contre les défauts

Checklist des standards

Page 25: Agile tour 2015   alliés contre les défauts

Kanban : Développement fini

Page 26: Agile tour 2015   alliés contre les défauts

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

Page 27: Agile tour 2015   alliés contre les défauts

Kanban : Code Review en cours

Page 28: Agile tour 2015   alliés contre les défauts

La réunion de revue

Page 29: Agile tour 2015   alliés contre les défauts

La réunion de revue

Page 30: Agile tour 2015   alliés contre les défauts

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

Page 31: Agile tour 2015   alliés contre les défauts

Kanban : Code Review - Fini

Page 32: Agile tour 2015   alliés contre les défauts

C’est bien bisounours tout ça…

Page 33: Agile tour 2015   alliés contre les défauts

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.

Page 34: Agile tour 2015   alliés contre les défauts

Le modérateur qui perd le contrôle

http://static.tvtropes.org/pmwiki/pub/images/1084894-440px_hulk_13_super.jpg

Page 35: Agile tour 2015   alliés contre les défauts

Pas de time keeper

Page 36: Agile tour 2015   alliés contre les défauts

Rétro speed boat sur la pratique de revue

Page 37: Agile tour 2015   alliés contre les défauts

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)

Page 38: Agile tour 2015   alliés contre les défauts

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

Page 39: Agile tour 2015   alliés contre les défauts

Pour conclure...

Page 40: Agile tour 2015   alliés contre les défauts

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

Page 41: Agile tour 2015   alliés contre les défauts

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)

Page 42: Agile tour 2015   alliés contre les défauts

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."