Agile tour 2015 alliés contre les défauts

Post on 16-Jan-2017

2.190 views 0 download

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