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

DevOps et tendances Monitoring
DevOps et tendances MonitoringDevOps et tendances Monitoring
DevOps et tendances MonitoringFrançois
 
DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011
DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011
DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011Henri Gomez
 
Matinale DevOps / Docker
Matinale DevOps / DockerMatinale DevOps / Docker
Matinale DevOps / DockerZenika
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011Henri Gomez
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Jonathan Martin
 
Meetup DevOps / WebOps Nîmes 20161020
Meetup DevOps / WebOps Nîmes 20161020Meetup DevOps / WebOps Nîmes 20161020
Meetup DevOps / WebOps Nîmes 20161020NimeOps
 
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsAu secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsantony_guilloteau
 
DEVOPS - La synthèse
DEVOPS - La synthèseDEVOPS - La synthèse
DEVOPS - La synthèseCOMPETENSIS
 
CloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurCloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurLudovic Piot
 
devops REX 2018 - Faire du DevOps dans une relation contractuelle et commerci...
devops REX 2018 - Faire du DevOps dans une relation contractuelle et commerci...devops REX 2018 - Faire du DevOps dans une relation contractuelle et commerci...
devops REX 2018 - Faire du DevOps dans une relation contractuelle et commerci...devops REX
 
Devops, un tour d'horizon - Eutelsat 2018
Devops, un tour d'horizon -  Eutelsat 2018Devops, un tour d'horizon -  Eutelsat 2018
Devops, un tour d'horizon - Eutelsat 2018Ludovic Piot
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Samuel Metias
 
DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?Ludovic Piot
 
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
 
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
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)LaNetscouade
 
Agilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeursAgilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeursIppon
 

La actualidad más candente (20)

DevOps et tendances Monitoring
DevOps et tendances MonitoringDevOps et tendances Monitoring
DevOps et tendances Monitoring
 
DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011
DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011
DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011
 
Matinale DevOps / Docker
Matinale DevOps / DockerMatinale DevOps / Docker
Matinale DevOps / Docker
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014
 
Meetup DevOps / WebOps Nîmes 20161020
Meetup DevOps / WebOps Nîmes 20161020Meetup DevOps / WebOps Nîmes 20161020
Meetup DevOps / WebOps Nîmes 20161020
 
Presentation-DEVOPS-par-GDG
Presentation-DEVOPS-par-GDGPresentation-DEVOPS-par-GDG
Presentation-DEVOPS-par-GDG
 
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsAu secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
 
DEVOPS - La synthèse
DEVOPS - La synthèseDEVOPS - La synthèse
DEVOPS - La synthèse
 
CloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurCloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseur
 
devops REX 2018 - Faire du DevOps dans une relation contractuelle et commerci...
devops REX 2018 - Faire du DevOps dans une relation contractuelle et commerci...devops REX 2018 - Faire du DevOps dans une relation contractuelle et commerci...
devops REX 2018 - Faire du DevOps dans une relation contractuelle et commerci...
 
Devops, un tour d'horizon - Eutelsat 2018
Devops, un tour d'horizon -  Eutelsat 2018Devops, un tour d'horizon -  Eutelsat 2018
Devops, un tour d'horizon - Eutelsat 2018
 
Dev opsday case study
Dev opsday   case studyDev opsday   case study
Dev opsday case study
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
 
DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?
 
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
 
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
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)
 
Agilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeursAgilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeurs
 

Destacado

Gestion des demandes avec JIRA
Gestion des demandes avec JIRAGestion des demandes avec JIRA
Gestion des demandes avec JIRATechSolCom
 
Présentation cg13
Présentation cg13Présentation cg13
Présentation cg13busiboost
 
Presentation EIfEL - Paris
Presentation EIfEL - ParisPresentation EIfEL - Paris
Presentation EIfEL - ParisGuy Fortier
 
Le schéma d’orientation « Marines et Ports de Loire »
Le schéma d’orientation « Marines et Ports de Loire »Le schéma d’orientation « Marines et Ports de Loire »
Le schéma d’orientation « Marines et Ports de Loire »Mission Val de Loire
 
"Nos jeunes à risque" - Colloque en Haiti - URAMEL - 26.05.2015
"Nos jeunes à risque" - Colloque en Haiti - URAMEL - 26.05.2015"Nos jeunes à risque" - Colloque en Haiti - URAMEL - 26.05.2015
"Nos jeunes à risque" - Colloque en Haiti - URAMEL - 26.05.2015Université de Montréal
 
Pierre Maurel et Nils Ferrand
Pierre Maurel et Nils FerrandPierre Maurel et Nils Ferrand
Pierre Maurel et Nils FerrandDIOT Clément
 
Power clase 3
Power clase 3Power clase 3
Power clase 3Carolina
 
Ouzbekistan eve van_soens
Ouzbekistan eve van_soensOuzbekistan eve van_soens
Ouzbekistan eve van_soensecmedia1
 
Avezvouspeurdevieillir lv
Avezvouspeurdevieillir lvAvezvouspeurdevieillir lv
Avezvouspeurdevieillir lvcdngoose
 
Las ciudades de leonardo
Las ciudades de leonardoLas ciudades de leonardo
Las ciudades de leonardoIES Monreal
 
Croissance, mode d’emploi : les 3 outils des PME qui réussissent
Croissance, mode d’emploi :  les 3 outils des PME qui réussissentCroissance, mode d’emploi :  les 3 outils des PME qui réussissent
Croissance, mode d’emploi : les 3 outils des PME qui réussissentGinger
 
Marseille Sous La Neige
Marseille Sous La NeigeMarseille Sous La Neige
Marseille Sous La Neigegueste068e35
 
El proyecto matriz 119 nikola tesla
El proyecto matriz 119 nikola teslaEl proyecto matriz 119 nikola tesla
El proyecto matriz 119 nikola teslaPlof
 
Evaluation de la susceptibilité des habitats et des espèces aux changements g...
Evaluation de la susceptibilité des habitats et des espèces aux changements g...Evaluation de la susceptibilité des habitats et des espèces aux changements g...
Evaluation de la susceptibilité des habitats et des espèces aux changements g...Mission Val de Loire
 
la presentation deMaría Jose
la presentation deMaría Josela presentation deMaría Jose
la presentation deMaría JoseCIDEB501_FRANCAIS
 

Destacado (20)

Gestion des demandes avec JIRA
Gestion des demandes avec JIRAGestion des demandes avec JIRA
Gestion des demandes avec JIRA
 
Présentation cg13
Présentation cg13Présentation cg13
Présentation cg13
 
Presentation EIfEL - Paris
Presentation EIfEL - ParisPresentation EIfEL - Paris
Presentation EIfEL - Paris
 
Llibres Batxillerat
Llibres BatxilleratLlibres Batxillerat
Llibres Batxillerat
 
Le schéma d’orientation « Marines et Ports de Loire »
Le schéma d’orientation « Marines et Ports de Loire »Le schéma d’orientation « Marines et Ports de Loire »
Le schéma d’orientation « Marines et Ports de Loire »
 
Pestalozzi
PestalozziPestalozzi
Pestalozzi
 
"Nos jeunes à risque" - Colloque en Haiti - URAMEL - 26.05.2015
"Nos jeunes à risque" - Colloque en Haiti - URAMEL - 26.05.2015"Nos jeunes à risque" - Colloque en Haiti - URAMEL - 26.05.2015
"Nos jeunes à risque" - Colloque en Haiti - URAMEL - 26.05.2015
 
Leccion 05 Escuela Sabatica
Leccion 05 Escuela SabaticaLeccion 05 Escuela Sabatica
Leccion 05 Escuela Sabatica
 
Pierre Maurel et Nils Ferrand
Pierre Maurel et Nils FerrandPierre Maurel et Nils Ferrand
Pierre Maurel et Nils Ferrand
 
Power clase 3
Power clase 3Power clase 3
Power clase 3
 
Ouzbekistan eve van_soens
Ouzbekistan eve van_soensOuzbekistan eve van_soens
Ouzbekistan eve van_soens
 
MCA French
MCA FrenchMCA French
MCA French
 
Avezvouspeurdevieillir lv
Avezvouspeurdevieillir lvAvezvouspeurdevieillir lv
Avezvouspeurdevieillir lv
 
Las ciudades de leonardo
Las ciudades de leonardoLas ciudades de leonardo
Las ciudades de leonardo
 
Croissance, mode d’emploi : les 3 outils des PME qui réussissent
Croissance, mode d’emploi :  les 3 outils des PME qui réussissentCroissance, mode d’emploi :  les 3 outils des PME qui réussissent
Croissance, mode d’emploi : les 3 outils des PME qui réussissent
 
Marseille Sous La Neige
Marseille Sous La NeigeMarseille Sous La Neige
Marseille Sous La Neige
 
test
testtest
test
 
El proyecto matriz 119 nikola tesla
El proyecto matriz 119 nikola teslaEl proyecto matriz 119 nikola tesla
El proyecto matriz 119 nikola tesla
 
Evaluation de la susceptibilité des habitats et des espèces aux changements g...
Evaluation de la susceptibilité des habitats et des espèces aux changements g...Evaluation de la susceptibilité des habitats et des espèces aux changements g...
Evaluation de la susceptibilité des habitats et des espèces aux changements g...
 
la presentation deMaría Jose
la presentation deMaría Josela presentation deMaría Jose
la presentation deMaría Jose
 

Similar a Agile tour 2015 alliés contre les défauts

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 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
 
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
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
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
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !Lucian Precup
 
[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
 
Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010Jean-Marc Fontaine
 
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
 

Similar a Agile tour 2015 alliés contre les défauts (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 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 !
 
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
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
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
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !
 
[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
 
Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010Revues de code - Forum PHP 2010
Revues de code - Forum PHP 2010
 
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é
 

Más de Julien Jakubowski

Nos trucs et astuces pour construire des produits que les devs adorent chez ADEO
Nos trucs et astuces pour construire des produits que les devs adorent chez ADEONos trucs et astuces pour construire des produits que les devs adorent chez ADEO
Nos trucs et astuces pour construire des produits que les devs adorent chez ADEOJulien Jakubowski
 
Sur le chemin de la qualité - GDG Lille
Sur le chemin de la qualité - GDG LilleSur le chemin de la qualité - GDG Lille
Sur le chemin de la qualité - GDG LilleJulien Jakubowski
 
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Julien Jakubowski
 
Javascript ce n'est pas (si) sale
Javascript ce n'est pas (si) saleJavascript ce n'est pas (si) sale
Javascript ce n'est pas (si) saleJulien Jakubowski
 

Más de Julien Jakubowski (6)

Nos trucs et astuces pour construire des produits que les devs adorent chez ADEO
Nos trucs et astuces pour construire des produits que les devs adorent chez ADEONos trucs et astuces pour construire des produits que les devs adorent chez ADEO
Nos trucs et astuces pour construire des produits que les devs adorent chez ADEO
 
Sur le chemin de la qualité - GDG Lille
Sur le chemin de la qualité - GDG LilleSur le chemin de la qualité - GDG Lille
Sur le chemin de la qualité - GDG Lille
 
Spring Batch ParisJUG
Spring Batch ParisJUG Spring Batch ParisJUG
Spring Batch ParisJUG
 
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
 
Javascript ce n'est pas (si) sale
Javascript ce n'est pas (si) saleJavascript ce n'est pas (si) sale
Javascript ce n'est pas (si) sale
 
Sug spring batch
Sug spring batchSug spring batch
Sug spring batch
 

Agile tour 2015 alliés contre les défauts

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