SlideShare une entreprise Scribd logo
www.octo.com - www.usievents.com 1@mdomenjoud #AgileTourLille #CodeReview
RATEZ RÉUSSISSEZ VOS REVUES
DE CODE EN 5 LEÇONS
Michel DOMENJOUD
Agile Tour Lille – 15 octobre 2015
www.octo.com - www.usievents.com 2@mdomenjoud #AgileTourLille #CodeReview
Développeur, in love with code since 2003.
Tech Lead – Coach Craft chez Octo Technology
@mdomenjoud #BetterPlacesWithBetterCode
MICHEL DOMENJOUD
www.octo.com - www.usievents.com 3@mdomenjoud #AgileTourLille #CodeReview
…la revue de code !
S’il n’y avait qu’une seule chose à garder…
www.octo.com - www.usievents.com 4@mdomenjoud #AgileTourLille #CodeReview
Efficace depuis la nuit des temps
Un objectif : Détecter les défauts le plus tôt
possible
Jusqu’à 65% des défauts détectés
ROI de 4 pour 1
1h de revue → 4h de debug économisées
Des bénéfices conséquents :
Partager des standards
Renforcer la propriété collective du code
Faciliter l’apprentissage
Améliorer la communication autour du code
http://sail.cs.queensu.ca/publications/pubs/msr2014-mcintosh.pdf
http://www.reviewtechnik.de/NationalSoftwareQualityExperiment.pdf
www.octo.com - www.usievents.com 5@mdomenjoud #AgileTourLille #CodeReview
Revue par un pair
Pair programming
Revue collective
www.octo.com - www.usievents.com 6@mdomenjoud #AgileTourLille #CodeReview
Fail #1 : On croule toujours sous les bugs !
www.octo.com - www.usievents.com 7@mdomenjoud #AgileTourLille #CodeReview
Allez le plus vite
possible !
Allez-y les mains
dans les poches !
Ne demandez à
personne comment
s’y prendre !
- Prenez le temps, à un rythme soutenable
- Demandez une revue dès que possible
- Préparez la revue via une lecture à tête
reposée
- Utilisez des standards et checklists
partagés
- Formez vous ensemble
Pour passer à côté
des défauts Et pour les détecter ?
www.octo.com - www.usievents.com 8@mdomenjoud #AgileTourLille #CodeReview
Fail #2 Mon équipe ne progresse pas
www.octo.com - www.usievents.com 9@mdomenjoud #AgileTourLille #CodeReview
Ne vous parlez
surtout pas !
Corrigez tout à la
place de l’auteur !
N’écrivez pas vos
standards
- Échangez de vive voix pendant les revues
- L’auteur corrige, en binôme si nécessaire
- Ecrivez vos standards
- Faites les évoluer au fil des revues
Pour stagner au fil des
revues Et pour progresser ?
www.octo.com - www.usievents.com 10@mdomenjoud #AgileTourLille #CodeReview
Fail #3 : On se tape dessus
www.octo.com - www.usievents.com 11@mdomenjoud #AgileTourLille #CodeReview
Critiquez en priorité
les personnes !
Lancez toujours
une language /
framework war !
- Critiquez le code, pas le développeur
- Appuyez vous sur les principes Egoless
Programming
- C’est pas le moment
- Trouvez des compromis
- Choisissez un standard et écrivez-le
Pour être sûr de
s’engueuler Et pour une revue sereine ?
www.octo.com - www.usievents.com 12@mdomenjoud #AgileTourLille #CodeReview
Trois formats complémentaires
Revue par un pair
Revue
collective
Pair
programming
Démarrer une User Story,
Code complexe,
Code Legacy, Debug,
Apprendre
Etablir des standards
Code critique
Nouvelles technos
Tout le tempsRégulièrement A la demande
www.octo.com - www.usievents.com 13@mdomenjoud #AgileTourLille #CodeReview
5 leçons à
retenir
Leçon n°1 - Prenez le temps
Préparation à tête reposée
Rythme soutenable (max 1h30 & 300 LoC à la fois)
Leçon n°2 - Progressez ensemble
Échangez de vive voix pendant les revues
L’auteur corrige, en binôme si nécessaire
Leçon n°3 - Utilisez des standards
Utilisez des standards et checklists partagés
Faites les évoluer au fil des revues
Leçon n°4 - Critiquez le code, pas le dév.
Principes Egoless Programming
Leçon n°5 - Trouvez le(s) formats qui vous conviennent
et adaptez les à vos besoins
www.octo.com - www.usievents.com 14@mdomenjoud #AgileTourLille #CodeReview
Pour aller plus loin
http://blog.octo.com/revue-de-code-quel-format-choisir/
Série d’articles sur la revue de code
Better Places With Better Code
www.octo.com - www.usievents.com 15@mdomenjoud #AgileTourLille #CodeReview
recrutement@octo.com
Vous croyez que les technologies changent le monde ?
Nous aussi ! Rejoignez-nous, à Lille aussi !

Contenu connexe

En vedette

APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...Microsoft
 
Human talks paris - OpenID Connect et FranceConnect - Francois Petitit - 7 ju...
Human talks paris - OpenID Connect et FranceConnect - Francois Petitit - 7 ju...Human talks paris - OpenID Connect et FranceConnect - Francois Petitit - 7 ju...
Human talks paris - OpenID Connect et FranceConnect - Francois Petitit - 7 ju...François Petitit
 
Api - mix it 2013
Api - mix it 2013Api - mix it 2013
Api - mix it 2013Eric D.
 
Voxxdays luxembourg 2016 retours java 8
Voxxdays luxembourg 2016 retours java 8Voxxdays luxembourg 2016 retours java 8
Voxxdays luxembourg 2016 retours java 8Jean-Michel Doudoux
 
Oauth et open id connect (oidc)
Oauth et open id connect (oidc)Oauth et open id connect (oidc)
Oauth et open id connect (oidc)Pascal Flamand
 
Keynote #Tech - API Management, comment orchestrer vos API ? par Philippe DE ...
Keynote #Tech - API Management, comment orchestrer vos API ? par Philippe DE ...Keynote #Tech - API Management, comment orchestrer vos API ? par Philippe DE ...
Keynote #Tech - API Management, comment orchestrer vos API ? par Philippe DE ...Paris Open Source Summit
 
Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012Paris Android User Group
 
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...Philippe Beraud
 
ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...
ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...
ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...Cyber Security Alliance
 
Use Node.js to create a REST API
Use Node.js to create a REST APIUse Node.js to create a REST API
Use Node.js to create a REST APIFabien Vauchelles
 
Présentation Oauth OpenID
Présentation Oauth OpenIDPrésentation Oauth OpenID
Présentation Oauth OpenIDPascal Flamand
 
Paris Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId ConnectParis Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId ConnectFrançois Petitit
 
Understanding and testing restful web services
Understanding and testing restful web servicesUnderstanding and testing restful web services
Understanding and testing restful web servicesmwinteringham
 
Postman Collection Format v2.0 (pre-draft)
Postman Collection Format v2.0 (pre-draft)Postman Collection Format v2.0 (pre-draft)
Postman Collection Format v2.0 (pre-draft)Postman
 
Petit-déjeuner OCTO du 06/03/14 - Dessine-moi une API, et dis-moi comment la ...
Petit-déjeuner OCTO du 06/03/14 - Dessine-moi une API, et dis-moi comment la ...Petit-déjeuner OCTO du 06/03/14 - Dessine-moi une API, et dis-moi comment la ...
Petit-déjeuner OCTO du 06/03/14 - Dessine-moi une API, et dis-moi comment la ...OCTO Technology
 
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESSOAT
 
OCTO 2012 - API : le nouveau levier de création de valeur
OCTO 2012 - API : le nouveau levier de création de valeurOCTO 2012 - API : le nouveau levier de création de valeur
OCTO 2012 - API : le nouveau levier de création de valeurOCTO Technology
 
40+ tips to use Postman more efficiently
40+ tips to use Postman more efficiently40+ tips to use Postman more efficiently
40+ tips to use Postman more efficientlypostmanclient
 

En vedette (20)

APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
APIs Facebook, Twitter, Foursquare… tirer parti des réseaux sociaux dans votr...
 
Human talks paris - OpenID Connect et FranceConnect - Francois Petitit - 7 ju...
Human talks paris - OpenID Connect et FranceConnect - Francois Petitit - 7 ju...Human talks paris - OpenID Connect et FranceConnect - Francois Petitit - 7 ju...
Human talks paris - OpenID Connect et FranceConnect - Francois Petitit - 7 ju...
 
Api - mix it 2013
Api - mix it 2013Api - mix it 2013
Api - mix it 2013
 
Voxxdays luxembourg 2016 retours java 8
Voxxdays luxembourg 2016 retours java 8Voxxdays luxembourg 2016 retours java 8
Voxxdays luxembourg 2016 retours java 8
 
Oauth et open id connect (oidc)
Oauth et open id connect (oidc)Oauth et open id connect (oidc)
Oauth et open id connect (oidc)
 
Keynote #Tech - API Management, comment orchestrer vos API ? par Philippe DE ...
Keynote #Tech - API Management, comment orchestrer vos API ? par Philippe DE ...Keynote #Tech - API Management, comment orchestrer vos API ? par Philippe DE ...
Keynote #Tech - API Management, comment orchestrer vos API ? par Philippe DE ...
 
Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012
 
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
 
ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...
ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...
ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...
 
Use Node.js to create a REST API
Use Node.js to create a REST APIUse Node.js to create a REST API
Use Node.js to create a REST API
 
Postman
PostmanPostman
Postman
 
Présentation Oauth OpenID
Présentation Oauth OpenIDPrésentation Oauth OpenID
Présentation Oauth OpenID
 
Paris Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId ConnectParis Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId Connect
 
Sso fédération
Sso fédérationSso fédération
Sso fédération
 
Understanding and testing restful web services
Understanding and testing restful web servicesUnderstanding and testing restful web services
Understanding and testing restful web services
 
Postman Collection Format v2.0 (pre-draft)
Postman Collection Format v2.0 (pre-draft)Postman Collection Format v2.0 (pre-draft)
Postman Collection Format v2.0 (pre-draft)
 
Petit-déjeuner OCTO du 06/03/14 - Dessine-moi une API, et dis-moi comment la ...
Petit-déjeuner OCTO du 06/03/14 - Dessine-moi une API, et dis-moi comment la ...Petit-déjeuner OCTO du 06/03/14 - Dessine-moi une API, et dis-moi comment la ...
Petit-déjeuner OCTO du 06/03/14 - Dessine-moi une API, et dis-moi comment la ...
 
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
 
OCTO 2012 - API : le nouveau levier de création de valeur
OCTO 2012 - API : le nouveau levier de création de valeurOCTO 2012 - API : le nouveau levier de création de valeur
OCTO 2012 - API : le nouveau levier de création de valeur
 
40+ tips to use Postman more efficiently
40+ tips to use Postman more efficiently40+ tips to use Postman more efficiently
40+ tips to use Postman more efficiently
 

Similaire à Human talks - Ratez vos revues de code en 5 leçons

NDepend 5 en action par son créateur
NDepend 5 en action par son créateurNDepend 5 en action par son créateur
NDepend 5 en action par son créateurMicrosoft
 
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
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
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
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationPHPPRO
 
SEO : Identifier les concurrents qui sont meilleurs que moi
SEO : Identifier les concurrents qui sont meilleurs que moiSEO : Identifier les concurrents qui sont meilleurs que moi
SEO : Identifier les concurrents qui sont meilleurs que moiNicolas AUDEMAR
 
Optimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSOptimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSMicrosoft
 
[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
 
[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
 
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !Simplicité Software
 
Parlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usageParlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usageLaFrenchMobile
 
Revues de code forum php
Revues de code forum phpRevues de code forum php
Revues de code forum phpALTER WAY
 
La Meta-programmation
La Meta-programmation La Meta-programmation
La Meta-programmation Microsoft
 
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
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...SEO CAMP
 
Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)LVLUP
 
Afterwork OCTO Delivery - L'ADN d'un développement produit réussi
Afterwork OCTO Delivery - L'ADN d'un développement produit réussiAfterwork OCTO Delivery - L'ADN d'un développement produit réussi
Afterwork OCTO Delivery - L'ADN d'un développement produit réussicyrilpicat
 
L'ADN d'un développement produit réussi
L'ADN d'un développement produit réussiL'ADN d'un développement produit réussi
L'ADN d'un développement produit réussiOCTO Technology Suisse
 

Similaire à Human talks - Ratez vos revues de code en 5 leçons (20)

NDepend 5 en action par son créateur
NDepend 5 en action par son créateurNDepend 5 en action par son créateur
NDepend 5 en action par son créateur
 
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
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
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
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
SEO : Identifier les concurrents qui sont meilleurs que moi
SEO : Identifier les concurrents qui sont meilleurs que moiSEO : Identifier les concurrents qui sont meilleurs que moi
SEO : Identifier les concurrents qui sont meilleurs que moi
 
Optimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSOptimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJS
 
[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
 
[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
 
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
 
Parlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usageParlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usage
 
Revues de code forum php
Revues de code forum phpRevues de code forum php
Revues de code forum php
 
La Meta-programmation
La Meta-programmation La Meta-programmation
La Meta-programmation
 
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
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
 
Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)
 
Afterwork OCTO Delivery - L'ADN d'un développement produit réussi
Afterwork OCTO Delivery - L'ADN d'un développement produit réussiAfterwork OCTO Delivery - L'ADN d'un développement produit réussi
Afterwork OCTO Delivery - L'ADN d'un développement produit réussi
 
L'ADN d'un développement produit réussi
L'ADN d'un développement produit réussiL'ADN d'un développement produit réussi
L'ADN d'un développement produit réussi
 

Human talks - Ratez vos revues de code en 5 leçons

  • 1. www.octo.com - www.usievents.com 1@mdomenjoud #AgileTourLille #CodeReview RATEZ RÉUSSISSEZ VOS REVUES DE CODE EN 5 LEÇONS Michel DOMENJOUD Agile Tour Lille – 15 octobre 2015
  • 2. www.octo.com - www.usievents.com 2@mdomenjoud #AgileTourLille #CodeReview Développeur, in love with code since 2003. Tech Lead – Coach Craft chez Octo Technology @mdomenjoud #BetterPlacesWithBetterCode MICHEL DOMENJOUD
  • 3. www.octo.com - www.usievents.com 3@mdomenjoud #AgileTourLille #CodeReview …la revue de code ! S’il n’y avait qu’une seule chose à garder…
  • 4. www.octo.com - www.usievents.com 4@mdomenjoud #AgileTourLille #CodeReview Efficace depuis la nuit des temps Un objectif : Détecter les défauts le plus tôt possible Jusqu’à 65% des défauts détectés ROI de 4 pour 1 1h de revue → 4h de debug économisées Des bénéfices conséquents : Partager des standards Renforcer la propriété collective du code Faciliter l’apprentissage Améliorer la communication autour du code http://sail.cs.queensu.ca/publications/pubs/msr2014-mcintosh.pdf http://www.reviewtechnik.de/NationalSoftwareQualityExperiment.pdf
  • 5. www.octo.com - www.usievents.com 5@mdomenjoud #AgileTourLille #CodeReview Revue par un pair Pair programming Revue collective
  • 6. www.octo.com - www.usievents.com 6@mdomenjoud #AgileTourLille #CodeReview Fail #1 : On croule toujours sous les bugs !
  • 7. www.octo.com - www.usievents.com 7@mdomenjoud #AgileTourLille #CodeReview Allez le plus vite possible ! Allez-y les mains dans les poches ! Ne demandez à personne comment s’y prendre ! - Prenez le temps, à un rythme soutenable - Demandez une revue dès que possible - Préparez la revue via une lecture à tête reposée - Utilisez des standards et checklists partagés - Formez vous ensemble Pour passer à côté des défauts Et pour les détecter ?
  • 8. www.octo.com - www.usievents.com 8@mdomenjoud #AgileTourLille #CodeReview Fail #2 Mon équipe ne progresse pas
  • 9. www.octo.com - www.usievents.com 9@mdomenjoud #AgileTourLille #CodeReview Ne vous parlez surtout pas ! Corrigez tout à la place de l’auteur ! N’écrivez pas vos standards - Échangez de vive voix pendant les revues - L’auteur corrige, en binôme si nécessaire - Ecrivez vos standards - Faites les évoluer au fil des revues Pour stagner au fil des revues Et pour progresser ?
  • 10. www.octo.com - www.usievents.com 10@mdomenjoud #AgileTourLille #CodeReview Fail #3 : On se tape dessus
  • 11. www.octo.com - www.usievents.com 11@mdomenjoud #AgileTourLille #CodeReview Critiquez en priorité les personnes ! Lancez toujours une language / framework war ! - Critiquez le code, pas le développeur - Appuyez vous sur les principes Egoless Programming - C’est pas le moment - Trouvez des compromis - Choisissez un standard et écrivez-le Pour être sûr de s’engueuler Et pour une revue sereine ?
  • 12. www.octo.com - www.usievents.com 12@mdomenjoud #AgileTourLille #CodeReview Trois formats complémentaires Revue par un pair Revue collective Pair programming Démarrer une User Story, Code complexe, Code Legacy, Debug, Apprendre Etablir des standards Code critique Nouvelles technos Tout le tempsRégulièrement A la demande
  • 13. www.octo.com - www.usievents.com 13@mdomenjoud #AgileTourLille #CodeReview 5 leçons à retenir Leçon n°1 - Prenez le temps Préparation à tête reposée Rythme soutenable (max 1h30 & 300 LoC à la fois) Leçon n°2 - Progressez ensemble Échangez de vive voix pendant les revues L’auteur corrige, en binôme si nécessaire Leçon n°3 - Utilisez des standards Utilisez des standards et checklists partagés Faites les évoluer au fil des revues Leçon n°4 - Critiquez le code, pas le dév. Principes Egoless Programming Leçon n°5 - Trouvez le(s) formats qui vous conviennent et adaptez les à vos besoins
  • 14. www.octo.com - www.usievents.com 14@mdomenjoud #AgileTourLille #CodeReview Pour aller plus loin http://blog.octo.com/revue-de-code-quel-format-choisir/ Série d’articles sur la revue de code Better Places With Better Code
  • 15. www.octo.com - www.usievents.com 15@mdomenjoud #AgileTourLille #CodeReview recrutement@octo.com Vous croyez que les technologies changent le monde ? Nous aussi ! Rejoignez-nous, à Lille aussi !