SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Les Code Reviews
Le guide de survie
– « Uncle » Bob Martin (The Future Of Programming)
“Nous sommes dangereux, nous avons tué des
personnes.”
NORAD
Therac-25
Chinook helicopter crashed
Mars Climate Orbiter
@Jo_Kern @nverinaud
Joffrey KERN Nicolas VERINAUD
Qui fait des revues de
code en ce moment ?
Why the fuck revoir le
code ?
L’erreur est humaine
Les tests unitaires ne suffisent pas
Déployer avec plus de sérénité
Collective Code
Ownership
Détecter les erreurs quant
elles coûtent le moins
cher.
Détecter les erreurs quand
elles coûtent le moins
cher.
Discipline
La revue de code dans
ma boîte
Quoi ? Deux personnes qui
travaillent sur le même code ?
Mais, c’est une perte de temps !
Qu’attends le business ?
Logiciel sans bugs
Money qui rentre (ROI) 🤑
Satisfaction des utilisateurs
Bonne image du produit
Éviter les catastrophes
Limiter les risques
Signes que le business
s’est engagé pour les
revues.
Accorde du temps
Maintient la pratique à l’approche des deadlines
Encourage la pratique
Récompense les early adopters
Et 7 autres: voir le livre de Karl E. Wiegers
Comment je fais,
concrètement ?
Culture de la qualité
Former l’équipe ET le
management
Les Outils
• Gestionnaire de code source
• Portail de feedbacks (gitlab, bitbucket, etc.)
• Guidelines
• Serveur d’intégration continue (linter…)
Démo Fizz Buzz Story
En tant qu'utilisateur, je demande la liste des FizzBuzz
entre deux nombres afin de proposer des posters
personnalisés aux développeurs.
Fizz Buzz ?
Si un nombre est divisible par 3, "Fizz" doit être
retourné.
Si un nombre est divisible par 5, "Buzz" doit être
retourné.
Si un nombre est divisible par 3 et par 5, "FizzBuzz"
doit être retourné.
Sinon, le nombre doit être retourné.
Critères d'acceptance
Lorsque j'appelle la fonction,
en donnant les nombres 0 et 15,
je reçois la liste [ 0, 1, 2, Fizz, 4, Buzz, 6, 7, 8, Fizz,
Buzz, 11, Fizz, 13, 14, FizzBuzz ].
Guildelines
• Indenter correctement et respecter les guidelines
Microsoft pour le code style C#
• Ecrire des tests unitaires pour le code métier
• Le code métier doit être indépendant des
technologies de stockage et d’affichage
• Préfixer les classes avec Licorne 🦄
Let’s go !
Les pièges à éviter
Personne n’a à me faire des
remarques car je suis le meilleur
de la team. #bogoss 😎
— Le dev senior qui n'a plus rien à apprendre (enfin c’est ce qu’il croit)
Je me fais allumer à chaque
code review, je ne comprends
pas pourquoi, c'est très frustrant
d'être le plus nul de la team. 😭
#NullDevException
— Le dev junior
Pas besoin de réfléchir, c’est le
job du relecteur de trouver mes
bugs. #jailaflemme
— Le flemmard
Ça fait 3 mois que je travaille
sur ce code, il est bientôt parfait
pour la relecture.
#wowsuchperfectcode
— Le perfectionniste
Revues de quoi ? Je déploie et
puis c’est tout. C’est qui le chef
ici ? #dictature
— Le chef qui s’octroie un traitement de faveur
Que les meilleurs relisent, il faut
une promotion pour devenir
relecteur. #topOfThePyramid
— Une hierarchie verticale sauvage apparaît
J’ai envoyé mon code en
review, viiiiiiiiiiiiiiite je vais
embêter le relecteur. #deadline
— Le (p|st)ressé
Trop bien les revues de code.
Je vais les utiliser pour juger les
devs. 😈 #KPImania
— Le manager
Avec les revues de code, tous
nos problèmes disparaîtront !
#silverbullet
— Peut-être vous ?
Thanks ! 👊
@Jo_Kern @nverinaud
Bibliographie
• Code Reviews: Just Do It ! — Jeff Atwood
• Crafting better code reviews — Vaidehi Joshi
• Peer Reviews in Software: Practical Guide — Karl E.
Wiegers (free chapters)
• The Future Of Programming — Robert C. Martin
• 10 historical software bugs with extreme
consequences — Pingdom Tech Blog

Contenu connexe

Tendances

Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
Sortir de l’ère des héros - HumanTalks Paris Mars 2017
Sortir de l’ère des héros - HumanTalks Paris Mars 2017Sortir de l’ère des héros - HumanTalks Paris Mars 2017
Sortir de l’ère des héros - HumanTalks Paris Mars 2017Jean-Pierre Lambert
 
Ratez vos revue de code en 5 lecons devoxx fr 2016
Ratez vos revue de code en 5 lecons   devoxx fr 2016Ratez vos revue de code en 5 lecons   devoxx fr 2016
Ratez vos revue de code en 5 lecons devoxx fr 2016Michel Domenjoud
 
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
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
Agile Tour Lille 2015 - Ratez vos revues de code
Agile Tour Lille 2015  - Ratez vos revues de codeAgile Tour Lille 2015  - Ratez vos revues de code
Agile Tour Lille 2015 - Ratez vos revues de codeMichel Domenjoud
 
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
 

Tendances (8)

Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
Sortir de l’ère des héros - HumanTalks Paris Mars 2017
Sortir de l’ère des héros - HumanTalks Paris Mars 2017Sortir de l’ère des héros - HumanTalks Paris Mars 2017
Sortir de l’ère des héros - HumanTalks Paris Mars 2017
 
Ratez vos revue de code en 5 lecons devoxx fr 2016
Ratez vos revue de code en 5 lecons   devoxx fr 2016Ratez vos revue de code en 5 lecons   devoxx fr 2016
Ratez vos revue de code en 5 lecons devoxx fr 2016
 
TDD en 5 minutes
TDD en 5 minutesTDD en 5 minutes
TDD en 5 minutes
 
C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Agile Tour Lille 2015 - Ratez vos revues de code
Agile Tour Lille 2015  - Ratez vos revues de codeAgile Tour Lille 2015  - Ratez vos revues de code
Agile Tour Lille 2015 - Ratez vos revues de code
 
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)
 

Similaire à Les Code Reviews : le guide de survie

Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défautsJulien Jakubowski
 
Agile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAgile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAntoine Blk
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?XP Day CH
 
Du Code & Des Humains - Agile Tour Strasbourg 2017
Du Code & Des Humains - Agile Tour Strasbourg 2017Du Code & Des Humains - Agile Tour Strasbourg 2017
Du Code & Des Humains - Agile Tour Strasbourg 2017Nicolas VERINAUD
 
La solution-a-la-dette-technique
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-techniqueFabrice Aimetti
 
La solution-a-la-dette-technique
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-techniqueFabrice Aimetti
 
Pratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgilePratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgileAgile Tour 2009 Québec
 
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
 
Sonar 2.0 au GenevaJUG par Freddy Mallet
Sonar 2.0 au GenevaJUG par Freddy MalletSonar 2.0 au GenevaJUG par Freddy Mallet
Sonar 2.0 au GenevaJUG par Freddy MalletGenevaJUG
 
Présentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésPrésentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésDjamel Zouaoui
 
Mob programming 101 @Morpho (Groupe Safran) - 08/03/2016
Mob programming 101 @Morpho (Groupe Safran) - 08/03/2016Mob programming 101 @Morpho (Groupe Safran) - 08/03/2016
Mob programming 101 @Morpho (Groupe Safran) - 08/03/2016André De Sousa
 
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
 
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
 
10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptxGuillaume Saint Etienne
 
2016 octo wp_culture_code_software_craftsmanship
2016 octo wp_culture_code_software_craftsmanship2016 octo wp_culture_code_software_craftsmanship
2016 octo wp_culture_code_software_craftsmanshipChristophe Monnier
 
Faire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxxFaire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxxVISEO
 
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
 

Similaire à Les Code Reviews : le guide de survie (20)

Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défauts
 
Agile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAgile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defauts
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
 
Du Code & Des Humains - Agile Tour Strasbourg 2017
Du Code & Des Humains - Agile Tour Strasbourg 2017Du Code & Des Humains - Agile Tour Strasbourg 2017
Du Code & Des Humains - Agile Tour Strasbourg 2017
 
La solution-a-la-dette-technique
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-technique
 
La solution-a-la-dette-technique
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-technique
 
Pratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgilePratiques de développement pour équipes Agile
Pratiques de développement pour équipes Agile
 
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
 
Sonar 2.0 au GenevaJUG par Freddy Mallet
Sonar 2.0 au GenevaJUG par Freddy MalletSonar 2.0 au GenevaJUG par Freddy Mallet
Sonar 2.0 au GenevaJUG par Freddy Mallet
 
Présentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésPrésentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisés
 
Du Code & Des Humains
Du Code & Des HumainsDu Code & Des Humains
Du Code & Des Humains
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
Mob programming 101 @Morpho (Groupe Safran) - 08/03/2016
Mob programming 101 @Morpho (Groupe Safran) - 08/03/2016Mob programming 101 @Morpho (Groupe Safran) - 08/03/2016
Mob programming 101 @Morpho (Groupe Safran) - 08/03/2016
 
No code low code
No code low codeNo code low code
No code low code
 
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...
 
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
 
10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx
 
2016 octo wp_culture_code_software_craftsmanship
2016 octo wp_culture_code_software_craftsmanship2016 octo wp_culture_code_software_craftsmanship
2016 octo wp_culture_code_software_craftsmanship
 
Faire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxxFaire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxx
 
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
 

Les Code Reviews : le guide de survie

  • 1. Les Code Reviews Le guide de survie
  • 2. – « Uncle » Bob Martin (The Future Of Programming) “Nous sommes dangereux, nous avons tué des personnes.” NORAD Therac-25 Chinook helicopter crashed Mars Climate Orbiter
  • 4. Qui fait des revues de code en ce moment ?
  • 5. Why the fuck revoir le code ? L’erreur est humaine Les tests unitaires ne suffisent pas Déployer avec plus de sérénité
  • 6.
  • 8. Détecter les erreurs quant elles coûtent le moins cher.
  • 9. Détecter les erreurs quand elles coûtent le moins cher.
  • 11. La revue de code dans ma boîte
  • 12. Quoi ? Deux personnes qui travaillent sur le même code ? Mais, c’est une perte de temps !
  • 13. Qu’attends le business ? Logiciel sans bugs Money qui rentre (ROI) 🤑 Satisfaction des utilisateurs Bonne image du produit
  • 15. Signes que le business s’est engagé pour les revues. Accorde du temps Maintient la pratique à l’approche des deadlines Encourage la pratique Récompense les early adopters Et 7 autres: voir le livre de Karl E. Wiegers
  • 17. Culture de la qualité
  • 18. Former l’équipe ET le management
  • 19. Les Outils • Gestionnaire de code source • Portail de feedbacks (gitlab, bitbucket, etc.) • Guidelines • Serveur d’intégration continue (linter…)
  • 20. Démo Fizz Buzz Story En tant qu'utilisateur, je demande la liste des FizzBuzz entre deux nombres afin de proposer des posters personnalisés aux développeurs.
  • 21. Fizz Buzz ? Si un nombre est divisible par 3, "Fizz" doit être retourné. Si un nombre est divisible par 5, "Buzz" doit être retourné. Si un nombre est divisible par 3 et par 5, "FizzBuzz" doit être retourné. Sinon, le nombre doit être retourné.
  • 22. Critères d'acceptance Lorsque j'appelle la fonction, en donnant les nombres 0 et 15, je reçois la liste [ 0, 1, 2, Fizz, 4, Buzz, 6, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz ].
  • 23. Guildelines • Indenter correctement et respecter les guidelines Microsoft pour le code style C# • Ecrire des tests unitaires pour le code métier • Le code métier doit être indépendant des technologies de stockage et d’affichage • Préfixer les classes avec Licorne 🦄
  • 25. Les pièges à éviter
  • 26. Personne n’a à me faire des remarques car je suis le meilleur de la team. #bogoss 😎 — Le dev senior qui n'a plus rien à apprendre (enfin c’est ce qu’il croit)
  • 27. Je me fais allumer à chaque code review, je ne comprends pas pourquoi, c'est très frustrant d'être le plus nul de la team. 😭 #NullDevException — Le dev junior
  • 28. Pas besoin de réfléchir, c’est le job du relecteur de trouver mes bugs. #jailaflemme — Le flemmard
  • 29. Ça fait 3 mois que je travaille sur ce code, il est bientôt parfait pour la relecture. #wowsuchperfectcode — Le perfectionniste
  • 30. Revues de quoi ? Je déploie et puis c’est tout. C’est qui le chef ici ? #dictature — Le chef qui s’octroie un traitement de faveur
  • 31. Que les meilleurs relisent, il faut une promotion pour devenir relecteur. #topOfThePyramid — Une hierarchie verticale sauvage apparaît
  • 32. J’ai envoyé mon code en review, viiiiiiiiiiiiiiite je vais embêter le relecteur. #deadline — Le (p|st)ressé
  • 33. Trop bien les revues de code. Je vais les utiliser pour juger les devs. 😈 #KPImania — Le manager
  • 34. Avec les revues de code, tous nos problèmes disparaîtront ! #silverbullet — Peut-être vous ?
  • 36. Bibliographie • Code Reviews: Just Do It ! — Jeff Atwood • Crafting better code reviews — Vaidehi Joshi • Peer Reviews in Software: Practical Guide — Karl E. Wiegers (free chapters) • The Future Of Programming — Robert C. Martin • 10 historical software bugs with extreme consequences — Pingdom Tech Blog