SlideShare una empresa de Scribd logo
1 de 42
Merci à nos sponsors #AgileTourLille
Alliés contre les défauts
Pourquoi 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 Jakubowski
Consultant-codeur – Octo à Lille
http://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 OCTO
Nicolas 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 OCTO
14 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 WebCenter
Chaque 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."

Más contenido relacionado

La actualidad más candente

Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009JUG Lausanne
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !Lucian Precup
 
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFEA la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFETelecomValley
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !Lucian Precup
 
Sonar 2.0 au JUG Genève
Sonar 2.0 au JUG GenèveSonar 2.0 au JUG Genève
Sonar 2.0 au JUG GenèveFreddy Mallet
 
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.12019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1TelecomValley
 
Pourquoi est-ce si difficile de concevoir une API ?
Pourquoi est-ce si difficile de concevoir une API ?Pourquoi est-ce si difficile de concevoir une API ?
Pourquoi est-ce si difficile de concevoir une API ?PALO IT
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAssociation Agile Nantes
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Jean-Pierre Lambert
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineGeeks Anonymes
 
Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverteEric Mignot
 
Indicateurs REPaRéD pour le testing craftsmanship
Indicateurs REPaRéD pour le testing craftsmanshipIndicateurs REPaRéD pour le testing craftsmanship
Indicateurs REPaRéD pour le testing craftsmanshipChristophe Moustier
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDXavier NOPRE
 
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.Comment récupérer un projet Web pourri ... et réussir à travailler dessus.
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.Guillaume RICHARD
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
 
Actifs agiles - Definition of Ready
Actifs agiles  - Definition of Ready Actifs agiles  - Definition of Ready
Actifs agiles - Definition of Ready Badr Hadria
 
Qualité de code, sonar, la dette
Qualité de code, sonar, la detteQualité de code, sonar, la dette
Qualité de code, sonar, la detteNovencia Groupe
 
C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?Jean-Pierre Lambert
 

La actualidad más candente (20)

Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !
 
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFEA la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
 
Sonar 2.0 au JUG Genève
Sonar 2.0 au JUG GenèveSonar 2.0 au JUG Genève
Sonar 2.0 au JUG Genève
 
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.12019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
 
Pourquoi est-ce si difficile de concevoir une API ?
Pourquoi est-ce si difficile de concevoir une API ?Pourquoi est-ce si difficile de concevoir une API ?
Pourquoi est-ce si difficile de concevoir une API ?
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
 
Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverte
 
Indicateurs REPaRéD pour le testing craftsmanship
Indicateurs REPaRéD pour le testing craftsmanshipIndicateurs REPaRéD pour le testing craftsmanship
Indicateurs REPaRéD pour le testing craftsmanship
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
 
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.Comment récupérer un projet Web pourri ... et réussir à travailler dessus.
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
Actifs agiles - Definition of Ready
Actifs agiles  - Definition of Ready Actifs agiles  - Definition of Ready
Actifs agiles - Definition of Ready
 
Qualité de code, sonar, la dette
Qualité de code, sonar, la detteQualité de code, sonar, la dette
Qualité de code, sonar, la dette
 
C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?
 

Destacado

Agile france2015 agiliteformation
Agile france2015 agiliteformationAgile france2015 agiliteformation
Agile france2015 agiliteformationHoussam FAKIH
 
Wygday 2010 - architecture tfs et industrialisation
Wygday 2010 - architecture tfs et industrialisationWygday 2010 - architecture tfs et industrialisation
Wygday 2010 - architecture tfs et industrialisationWygwam
 
Formation Management Visuel & Efficacité Individuelle
Formation Management Visuel & Efficacité IndividuelleFormation Management Visuel & Efficacité Individuelle
Formation Management Visuel & Efficacité IndividuelleBernard JOUVEL
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineInterface ULg, LIEGE science park
 
Livraison et intégration continue avec TFS 2013 et InRelease
Livraison et intégration continue avec TFS 2013 et InReleaseLivraison et intégration continue avec TFS 2013 et InRelease
Livraison et intégration continue avec TFS 2013 et InReleaseMicrosoft
 
L'agilité en entreprise avec TFS 2013
L'agilité en entreprise avec TFS 2013L'agilité en entreprise avec TFS 2013
L'agilité en entreprise avec TFS 2013Microsoft
 
Bonnes et mauvaises pratiques du daily meeting
Bonnes et mauvaises pratiques du daily meetingBonnes et mauvaises pratiques du daily meeting
Bonnes et mauvaises pratiques du daily meetingCéline Stauder
 
Guide des bonnes pratiques de la méthode Scrum – AT Internet
Guide des bonnes pratiques de la méthode Scrum – AT Internet Guide des bonnes pratiques de la méthode Scrum – AT Internet
Guide des bonnes pratiques de la méthode Scrum – AT Internet AT Internet
 
Gestion des déploiements & des mises en production? Gestion des changements? ...
Gestion des déploiements & des mises en production? Gestion des changements? ...Gestion des déploiements & des mises en production? Gestion des changements? ...
Gestion des déploiements & des mises en production? Gestion des changements? ...Chantal Dutremble
 
Qualification Et Cycle De Vie Du Logiciel
Qualification Et Cycle De Vie Du LogicielQualification Et Cycle De Vie Du Logiciel
Qualification Et Cycle De Vie Du Logicieldanaobrest
 
Gestion de production 4èmé edition par (www.promqse.esy.es)(1)
Gestion de production 4èmé edition par (www.promqse.esy.es)(1)Gestion de production 4èmé edition par (www.promqse.esy.es)(1)
Gestion de production 4èmé edition par (www.promqse.esy.es)(1)iahicham
 
Kanban & Scrum, tirer le meilleur des 2
Kanban & Scrum, tirer le meilleur des 2Kanban & Scrum, tirer le meilleur des 2
Kanban & Scrum, tirer le meilleur des 2claudeaubry
 
Contrôle de la qualité logiciel
Contrôle de la qualité logicielContrôle de la qualité logiciel
Contrôle de la qualité logicielSylvain Leroy
 
Scrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisationsScrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisationsXavier Warzee
 
La Mise en Production : un gisement d'économies inexploité
La Mise en Production : un gisement d'économies inexploitéLa Mise en Production : un gisement d'économies inexploité
La Mise en Production : un gisement d'économies inexploitéitSMF France
 
Réutilisabilité du code PHP
Réutilisabilité du code PHPRéutilisabilité du code PHP
Réutilisabilité du code PHPNicolas Le Nardou
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 

Destacado (18)

Agile france2015 agiliteformation
Agile france2015 agiliteformationAgile france2015 agiliteformation
Agile france2015 agiliteformation
 
Wygday 2010 - architecture tfs et industrialisation
Wygday 2010 - architecture tfs et industrialisationWygday 2010 - architecture tfs et industrialisation
Wygday 2010 - architecture tfs et industrialisation
 
Formation Management Visuel & Efficacité Individuelle
Formation Management Visuel & Efficacité IndividuelleFormation Management Visuel & Efficacité Individuelle
Formation Management Visuel & Efficacité Individuelle
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
 
Livraison et intégration continue avec TFS 2013 et InRelease
Livraison et intégration continue avec TFS 2013 et InReleaseLivraison et intégration continue avec TFS 2013 et InRelease
Livraison et intégration continue avec TFS 2013 et InRelease
 
L'agilité en entreprise avec TFS 2013
L'agilité en entreprise avec TFS 2013L'agilité en entreprise avec TFS 2013
L'agilité en entreprise avec TFS 2013
 
Management 3.0 motivators
Management 3.0   motivatorsManagement 3.0   motivators
Management 3.0 motivators
 
Bonnes et mauvaises pratiques du daily meeting
Bonnes et mauvaises pratiques du daily meetingBonnes et mauvaises pratiques du daily meeting
Bonnes et mauvaises pratiques du daily meeting
 
Guide des bonnes pratiques de la méthode Scrum – AT Internet
Guide des bonnes pratiques de la méthode Scrum – AT Internet Guide des bonnes pratiques de la méthode Scrum – AT Internet
Guide des bonnes pratiques de la méthode Scrum – AT Internet
 
Gestion des déploiements & des mises en production? Gestion des changements? ...
Gestion des déploiements & des mises en production? Gestion des changements? ...Gestion des déploiements & des mises en production? Gestion des changements? ...
Gestion des déploiements & des mises en production? Gestion des changements? ...
 
Qualification Et Cycle De Vie Du Logiciel
Qualification Et Cycle De Vie Du LogicielQualification Et Cycle De Vie Du Logiciel
Qualification Et Cycle De Vie Du Logiciel
 
Gestion de production 4èmé edition par (www.promqse.esy.es)(1)
Gestion de production 4èmé edition par (www.promqse.esy.es)(1)Gestion de production 4èmé edition par (www.promqse.esy.es)(1)
Gestion de production 4èmé edition par (www.promqse.esy.es)(1)
 
Kanban & Scrum, tirer le meilleur des 2
Kanban & Scrum, tirer le meilleur des 2Kanban & Scrum, tirer le meilleur des 2
Kanban & Scrum, tirer le meilleur des 2
 
Contrôle de la qualité logiciel
Contrôle de la qualité logicielContrôle de la qualité logiciel
Contrôle de la qualité logiciel
 
Scrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisationsScrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisations
 
La Mise en Production : un gisement d'économies inexploité
La Mise en Production : un gisement d'économies inexploitéLa Mise en Production : un gisement d'économies inexploité
La Mise en Production : un gisement d'économies inexploité
 
Réutilisabilité du code PHP
Réutilisabilité du code PHPRéutilisabilité du code PHP
Réutilisabilité du code PHP
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 

Similar a Agile tour Lille 2015 allies ensemble contre les defauts

Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...
Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...
Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...OCTO Technology
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesEric SIBER
 
Radical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxRadical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxFlavian Hautbois
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & opsQuentin Adam
 
[BreizhCamp 2016] La relecture de code : avant tout des pratiques
[BreizhCamp 2016] La relecture de code : avant tout des pratiques[BreizhCamp 2016] La relecture de code : avant tout des pratiques
[BreizhCamp 2016] La relecture de code : avant tout des pratiquesEric SIBER
 
[Agile Laval 2016] La relecture de code : avant tout des pratiques
[Agile Laval 2016] La relecture de code : avant tout des pratiques[Agile Laval 2016] La relecture de code : avant tout des pratiques
[Agile Laval 2016] La relecture de code : avant tout des pratiquesEric SIBER
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011 ALTER WAY
 
Petit-Déjeuner OCTO "Cultiver l’art du code de qualité en entreprise" Partie ...
Petit-Déjeuner OCTO "Cultiver l’art du code de qualité en entreprise" Partie ...Petit-Déjeuner OCTO "Cultiver l’art du code de qualité en entreprise" Partie ...
Petit-Déjeuner OCTO "Cultiver l’art du code de qualité en entreprise" Partie ...OCTO Technology
 
Apprenons à faire des SEO Split Tests
Apprenons à faire des SEO Split TestsApprenons à faire des SEO Split Tests
Apprenons à faire des SEO Split TestsPhilippe YONNET
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteStephane Couzinier
 
Introduction au test_logiciel-fr
Introduction au test_logiciel-frIntroduction au test_logiciel-fr
Introduction au test_logiciel-frEmanBali
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survieNicolas VERINAUD
 
Pas d'agilité sans qualité
Pas d'agilité sans qualitéPas d'agilité sans qualité
Pas d'agilité sans qualitéAgile Montréal
 
Qu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéQu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéSylvain Leroy
 
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...DennisBordet1
 
Techdays 2013 : ALM et eCommerce, des challenges en continu
Techdays 2013 : ALM et eCommerce, des challenges en continuTechdays 2013 : ALM et eCommerce, des challenges en continu
Techdays 2013 : ALM et eCommerce, des challenges en continuvlabatut
 
Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Stéphane Traumat
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficienceMichel Bruchet
 

Similar a Agile tour Lille 2015 allies ensemble contre les defauts (20)

Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...
Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...
Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiques
 
Radical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxRadical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptx
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 
[BreizhCamp 2016] La relecture de code : avant tout des pratiques
[BreizhCamp 2016] La relecture de code : avant tout des pratiques[BreizhCamp 2016] La relecture de code : avant tout des pratiques
[BreizhCamp 2016] La relecture de code : avant tout des pratiques
 
[Agile Laval 2016] La relecture de code : avant tout des pratiques
[Agile Laval 2016] La relecture de code : avant tout des pratiques[Agile Laval 2016] La relecture de code : avant tout des pratiques
[Agile Laval 2016] La relecture de code : avant tout des pratiques
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
 
Petit-Déjeuner OCTO "Cultiver l’art du code de qualité en entreprise" Partie ...
Petit-Déjeuner OCTO "Cultiver l’art du code de qualité en entreprise" Partie ...Petit-Déjeuner OCTO "Cultiver l’art du code de qualité en entreprise" Partie ...
Petit-Déjeuner OCTO "Cultiver l’art du code de qualité en entreprise" Partie ...
 
Apprenons à faire des SEO Split Tests
Apprenons à faire des SEO Split TestsApprenons à faire des SEO Split Tests
Apprenons à faire des SEO Split Tests
 
Le prix de la pub
Le prix de la pubLe prix de la pub
Le prix de la pub
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverte
 
Introduction au test_logiciel-fr
Introduction au test_logiciel-frIntroduction au test_logiciel-fr
Introduction au test_logiciel-fr
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survie
 
Pas d'agilité sans qualité
Pas d'agilité sans qualitéPas d'agilité sans qualité
Pas d'agilité sans qualité
 
Qu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéQu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualité
 
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...
 
Techdays 2013 : ALM et eCommerce, des challenges en continu
Techdays 2013 : ALM et eCommerce, des challenges en continuTechdays 2013 : ALM et eCommerce, des challenges en continu
Techdays 2013 : ALM et eCommerce, des challenges en continu
 
Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficience
 

Agile tour Lille 2015 allies ensemble contre les defauts

  • 1. Merci à nos sponsors #AgileTourLille Alliés contre les défauts Pourquoi et comment nous relisons ensemble le code que nous produisons
  • 2. Alliés contre les défauts Pourquoi et comment nous relisons, ensemble, le code que nous produisons.
  • 3. Qui sommes nous ? Antoine Blancke Développeur au Web Center AXA https://www.axawebcenter.fr/ Julien Jakubowski Consultant-codeur – Octo à Lille http://www.octo.com/
  • 4. 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é
  • 5. AXA et OCTO Nicolas 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)
  • 6. AXA et OCTO 14 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
  • 7. 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 ?
  • 8. 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
  • 9. Maintenant au WebCenter Chaque 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.
  • 10. 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
  • 11. La revue de code... c’est trop cher !
  • 12. La revue de code... c’est trop cher ? Mais combien vous coûtent les défauts ?
  • 13. 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 €
  • 14. Trouver un maximum de défauts, au plus tôt Revue de code ⇒ 50% de réduction des défauts Exemple chez CISCO :
  • 15. 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
  • 21. 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
  • 23. Concrètement, ça se passe comment au WebCenter ?
  • 26. 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
  • 27. Kanban : Code Review en cours
  • 28. La réunion de revue
  • 29. La réunion de revue
  • 30. 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
  • 31. Kanban : Code Review - Fini
  • 32. C’est bien bisounours tout ça…
  • 33. 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.
  • 34. Le modérateur qui perd le contrôle http://static.tvtropes.org/pmwiki/pub/images/1084894-440px_hulk_13_super.jpg
  • 35. Pas de time keeper
  • 36. Rétro speed boat sur la pratique de revue
  • 37. 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)
  • 38. 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
  • 40. 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
  • 41. 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)
  • 42. 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."