SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
BreizhCamp 2016 #BzhCmp
#codeReview #BzhCmp
BreizhCamp 2016 #codeReview #BzhCmp
La relecture de code :
avant tout des pratiques !
Eric SIBER - @esiber
@esiber
But de la présentation
© Geek & Poke
BreizhCamp 2016 #codeReview #BzhCmp@esiber
But de la présentation
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Une orientation selon le manifeste agile :
●  Les individus et leurs interactions plus
que les processus et les outils
●  Des logiciels opérationnels plus qu’une documentation
exhaustive
●  La collaboration avec les clients plus que la négociation
contractuelle
●  L’adaptation au changement plus que le suivi d’un plan
Qui suis-je ?
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Dans le monde du développement en Région
Parisienne depuis plus de 10 ans, actuellement :
●  Agile Java Craftsman chez Novedia, groupe VISEO
●  Creative Ecosystem Architect pour VISEO Technologies
●  Runner et Papa 2.0
Qui suis-je ?
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Dans le monde du développement en Région
Parisienne depuis plus de 10 ans, actuellement :
●  Agile Java Craftsman chez Novedia, groupe VISEO
●  Creative Ecosystem Architect pour VISEO Technologies
●  Runner et Papa 2.0
Sur le plan communautaire :
●  Membre actif, modérateur, rédacteur et responsable
bénévole Java sur Developpez.com de 2005 à 2009
●  Co-organisateur de la conférence Agile France en 2013
De quoi va-t-on parler ?
●  Bénéfices attendus
●  Quelques statistiques
●  Typologies de relectures
●  Aspects humains
●  Scope de la relecture (le quoi, le quand)
●  Facteurs clés de succès
●  Eléments disruptifs
●  Quelques références
BreizhCamp 2016 #codeReview #BzhCmp@esiber
L’audience ...
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Qui estime avoir déjà fait de la relecture de code ?
L’audience ...
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Qui estime avoir déjà bénéficié d’une
relecture de code ?
Bénéfices attendus
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Bénéfices attendus
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Bénéfices attendus
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Bénéfices attendus
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Bénéfices attendus
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Quelques statistiques
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Statistiques : ils en parlent
After experiencing the benefits of
peer reviews for nearly fifteen
years, I would never work in a
team that did not perform them
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Statistiques : ils en parlent
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Statistiques : ils en parlent
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Statistiques : ils en parlent
BreizhCamp 2016 #codeReview #BzhCmp@esiber
“the average effectiveness of design and code
inspections are 55 and 60 percent”
“software testing alone has limited
effectiveness -- the average defect detection
rate is only 25 percent for unit testing, 35
percent for function testing, and 45 percent for
integration testing”
Statistiques : ils en parlent
BreizhCamp 2016 #codeReview #BzhCmp@esiber
“A study of an organization at AT&T with more
than 200 people reported a 14 percent
increase in productivity and a 90 percent
decrease in defects after the organization
introduced reviews.”
Source : “Code Complete”
Statistiques : ils en parlent
BreizhCamp 2016 #codeReview #BzhCmp@esiber
“In a group of 11 programs developed by the same
group of people, the first 5 were developed without
reviews. The remaining 6 were developed with
reviews. After all the programs were released to
production, the first 5 had an average of 4.5 errors
per 100 lines of code. The 6 that had been inspected
had an average of only 0.82 errors per 100.
Reviews cut the errors by over 80 percent.”
Source : “Code Complete”
Statistiques : ils en parlent
SOFTWARE QUALITY TOOLS FOR THE
CONNECTED WORLD
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Statistiques : ils en parlent
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Expérience d’un client sur un projet de 10 000 LOC avec 10
développeurs :
●  les anomalies détectées par l’homologation et les utilisateurs
sur une période de 6 mois ont été consignées
●  un groupe de développeur a fait une revue de code sur la
même base de code initial et a identifié 162 bugs
supplémentaires
●  d’après des métriques ils ont estimé que la revue de code
aurait pu réduire de 50% le coût de correction des
anomalies
Source : Best Kept Secrets of Peer Code Review
Typologies de relecture
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Typologies de relecture à posteriori
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Over The Shoulder – Face to face
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Typologies de relecture à posteriori
Typologies de relecture à posteriori
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Email pass around
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Assisté par un outil dédié
Typologies de relecture à posteriori
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Typologies de relecture à posteriori
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Typologies de relecture à posteriori
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Typologies de relecture à posteriori
Typologies de relecture : variantes
●  Réunions de type revue / relecture de code
●  Plusieurs intervenants (de 3 à 6)
●  Différents rôles attribués
●  « Formal Inspections » (défini comme une 5ème typologie
dans Best Kept Secrets of Peer Code Review)
●  Mob Programming
●  Remote Pair-programming
●  Partage de bureau à distance
●  VS Anywhere
●  Eclipse Saros
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Les aspects humains
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Les aspects humains
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Propriété collective du code (collective ownership)
Responsabilité partagée
Quand relisez vous votre code ?
BreizhCamp 2016 #codeReview #BzhCmp@esiber
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Quand acceptez vous une relecture ?
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Quand acceptez vous une relecture ?
Aspects humains
●  Sentiment d’envahissement ?
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Comment appréhender d’être relu ?
o  C’est le code qui est évalué,
pas son auteur
Aspects humains
●  Augmentation de ses
exigences ?
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Comment appréhender d’être relu ?
Source : http://www.tivix.com/blog/everyone-loves-a-good-book/
o  Davantage d’efforts dans
la rédaction du code ?
Aspects humains
●  Attendre ou solliciter la relecture ?
o  Crainte de la relecture ?
o  Frustration de ne pas avoir de feedback ?
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Comment appréhender d’être relu ?
Aspects humains
●  Evaluer le code, pas son auteur
●  Poser des questions
○  Chercher à comprendre le raisonnement suivi
○  Eviter le « pourquoi » trop accusateur
●  Conseiller plutôt que réprimander
●  Ne pas chercher systématiquement à
imaginer comment on aurait fait soi même
○  Il y toujours plusieurs solutions à un problème
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Comment s’y prendre pour relire ?
Aspects humains
●  Illustre une absence de pédagogie
●  Justifié ou non, l’auteur initial n’aura rien
appris et continuera à faire ce type d’erreur
●  Risque de conflit et de défiance / compétition
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Les dérives de la modification directe du code
Ces conseils peuvent s’appliquer hors
revue de code !
Le scope de la relecture
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Le scope de la relecture
●  Un ensemble de ressources remplissant une
fonction ?
●  Un différentiel lié à la mise en place d’une
nouvelle fonctionnalité ?
●  Une couche applicative ?
●  Etc.
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Quoi ?
Le scope de la relecture
●  Projet terminé ?
●  Fonctionnalité livrée sur un environnement
donné ?
●  Itération de développement terminée ?
●  Développement d’une fonctionnalité
complète terminée ?
●  Code propagé ?
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Quand (dans le cycle de vie) ?
Le scope de la relecture
Focus sur le commit, 2 nuances à considérer
•  Pre-commit review
•  Post-commit review
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Quand (dans le cycle de vie) ?
Source : http://devmag.fr/pourquoi-il-vous-faut-adopter-les-pull-requests/
Le scope de la relecture
•  Moins intrusif qu’une intervention sur une
anomalie de production (sauf s’il faut relire la
correction)
•  L’impact est lié au workflow employé
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Ne pas négliger l’interruption de l’activité
courante
Le scope de la relecture
Le quand et le quoi sont à confronter à un
aspect quantitatif
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Une tendance
•  Le plus souvent
•  La plus petite unité de code (le moins
longtemps)
Facteurs clés de succès
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Facteurs clés de succès
Respect du code
●  Le résultat des relectures ne le surcharge
pas
●  Le code conserve sa lisibilité naturelle
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Facteurs clés de succès
BreizhCamp 2016 #codeReview #BzhCmp@esiber
L’importance de la visualisation
Facteurs clés de succès
BreizhCamp 2016 #codeReview #BzhCmp@esiber
L’importance de la visualisation
Facteurs clés de succès
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Centralisation et conservation d’un
historique des relectures
Facteurs clés de succès
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Définition / renforcement d’un workflow de
travail
Eléments disruptifs
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Eléments disruptifs
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Ce qui a fait évoluer les pratiques dans le
passé récent
•  Les DVCS (ex. Git) et l’apparition de workflows
de développement
•  Les interactions avec les plateformes
d’intégration continue (PIC)
•  Le Cloud comme support aux 2 outils
précédemment mentionnés
Eléments disruptifs
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Quelques prédictions / tendances pour
l’avenir (déjà bien en route)
•  Elaboration de solutions ALM complètes
o  Poussé par la tendance Cloud
o  Favorisé par l’évolution des technologies Web tel HTML5
•  Percée des Web-IDE
o  Encore davantage d’interactions
o  Favorisé par l’évolution des technologies Web tel HTML5
•  Solutions de type realtime sharing (ex. Google
Docs)
Références
BreizhCamp 2016 #codeReview #BzhCmp@esiber
Références
BreizhCamp 2016 #codeReview #BzhCmp@esiber
http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/
Références
BreizhCamp 2016 #codeReview #BzhCmp@esiber
http://www.amazon.com/Peer-Reviews-Software-Practical-Guide/dp/0201734850/
Références
BreizhCamp 2016 #codeReview #BzhCmp@esiber
http://www.amazon.fr/The-Psychology-Computer-Programming-Anniversary/dp/0932633420
Références
BreizhCamp 2016 #codeReview #BzhCmp@esiber
http://www.amazon.com/Best-Kept-Secrets-Peer-Review/dp/1599160676
http://smartbear.com/SmartBear/media/pdfs/best-kept-secrets-of-peer-code-review.pdf
BreizhCamp 2016 #BzhCmp
#codeReview #BzhCmp
BreizhCamp 2016 #codeReview #BzhCmp
La relecture de code :
avant tout des pratiques !
Eric SIBER - @esiber
@esiber
RDV à Agile France 2016
BreizhCamp 2016 #codeReview #BzhCmp@esiber
http://lanyrd.com/2016/agilefrance/

Contenu connexe

Similaire à [BreizhCamp 2016] La relecture de code : avant tout des pratiques

De l'audit à la mise en place des préconisations SEO, pourquoi cela coince ?
De l'audit à la mise en place des préconisations SEO, pourquoi cela coince ?De l'audit à la mise en place des préconisations SEO, pourquoi cela coince ?
De l'audit à la mise en place des préconisations SEO, pourquoi cela coince ?Daniel Roch - SeoMix
 
tests, investigations et études SEO - Alexis Rylko - SEO CAMP'us Paris 2021
tests, investigations et études SEO - Alexis Rylko - SEO CAMP'us Paris 2021tests, investigations et études SEO - Alexis Rylko - SEO CAMP'us Paris 2021
tests, investigations et études SEO - Alexis Rylko - SEO CAMP'us Paris 2021SEO CAMP
 
Et si on arrêtait de dépenser de l'argent inutilement ? - SEOCampus Paris 2018
Et si on arrêtait de dépenser de l'argent inutilement ? - SEOCampus Paris 2018Et si on arrêtait de dépenser de l'argent inutilement ? - SEOCampus Paris 2018
Et si on arrêtait de dépenser de l'argent inutilement ? - SEOCampus Paris 2018KHOSI
 
Revue de code - PHP Tour Nantes 2012
Revue de code - PHP Tour Nantes 2012Revue de code - PHP Tour Nantes 2012
Revue de code - PHP Tour Nantes 2012Jean-Marc Fontaine
 
Gérer sa dette technique avec SonarQube
Gérer sa dette technique avec SonarQubeGérer sa dette technique avec SonarQube
Gérer sa dette technique avec SonarQubePierre-Henri Gache
 
SEO inclusive : vos visiteurs ne sont pas (que) des robots - Mathile Touchebo...
SEO inclusive : vos visiteurs ne sont pas (que) des robots - Mathile Touchebo...SEO inclusive : vos visiteurs ne sont pas (que) des robots - Mathile Touchebo...
SEO inclusive : vos visiteurs ne sont pas (que) des robots - Mathile Touchebo...SEO CAMP
 
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Peak Ace
 
Redonner sa valeur à l'éditorial - #seocamp 2019
Redonner sa valeur à l'éditorial - #seocamp 2019Redonner sa valeur à l'éditorial - #seocamp 2019
Redonner sa valeur à l'éditorial - #seocamp 2019Ecribouille
 
Dropshipping & SEO : Gagner de l'argent Facile... ou pas ! - Abdel Web Seller...
Dropshipping & SEO : Gagner de l'argent Facile... ou pas ! - Abdel Web Seller...Dropshipping & SEO : Gagner de l'argent Facile... ou pas ! - Abdel Web Seller...
Dropshipping & SEO : Gagner de l'argent Facile... ou pas ! - Abdel Web Seller...SEO CAMP
 
La métrique, ce n'est pas que pour le devops
La métrique, ce n'est pas que pour le devopsLa métrique, ce n'est pas que pour le devops
La métrique, ce n'est pas que pour le devopsPatrick Allaert
 
La mesure, ce n'est pas que pour le devops
La mesure, ce n'est pas que pour le devopsLa mesure, ce n'est pas que pour le devops
La mesure, ce n'est pas que pour le devopsOlivier Garcia
 
SEOCamp Nantes : Comment utiliser le Knowledge Graph pour améliorer votre SEO ?
SEOCamp Nantes : Comment utiliser le Knowledge Graph pour améliorer votre SEO ?SEOCamp Nantes : Comment utiliser le Knowledge Graph pour améliorer votre SEO ?
SEOCamp Nantes : Comment utiliser le Knowledge Graph pour améliorer votre SEO ?Cogniteev
 
Audit SEO : les clés de la réussite
Audit SEO : les clés de la réussiteAudit SEO : les clés de la réussite
Audit SEO : les clés de la réussiteDaniel Roch - SeoMix
 
Analyse Logs + crawl : Retour sur 10 ans d’expérience - Mathieu Chapon - SEOC...
Analyse Logs + crawl : Retour sur 10 ans d’expérience - Mathieu Chapon - SEOC...Analyse Logs + crawl : Retour sur 10 ans d’expérience - Mathieu Chapon - SEOC...
Analyse Logs + crawl : Retour sur 10 ans d’expérience - Mathieu Chapon - SEOC...SEO CAMP
 
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
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !Lucian Precup
 
Le visiteur utile : De la data à la connaissance - Thomas Leonetti - SEO CAM...
Le visiteur utile : De la data à la connaissance - Thomas Leonetti -  SEO CAM...Le visiteur utile : De la data à la connaissance - Thomas Leonetti -  SEO CAM...
Le visiteur utile : De la data à la connaissance - Thomas Leonetti - SEO CAM...SEO CAMP
 
Analyse de logs par l'exemple - seocampus 2017
Analyse de logs par l'exemple - seocampus 2017Analyse de logs par l'exemple - seocampus 2017
Analyse de logs par l'exemple - seocampus 2017Madeline Pinthon
 

Similaire à [BreizhCamp 2016] La relecture de code : avant tout des pratiques (20)

De l'audit à la mise en place des préconisations SEO, pourquoi cela coince ?
De l'audit à la mise en place des préconisations SEO, pourquoi cela coince ?De l'audit à la mise en place des préconisations SEO, pourquoi cela coince ?
De l'audit à la mise en place des préconisations SEO, pourquoi cela coince ?
 
tests, investigations et études SEO - Alexis Rylko - SEO CAMP'us Paris 2021
tests, investigations et études SEO - Alexis Rylko - SEO CAMP'us Paris 2021tests, investigations et études SEO - Alexis Rylko - SEO CAMP'us Paris 2021
tests, investigations et études SEO - Alexis Rylko - SEO CAMP'us Paris 2021
 
Seocampus 2018-laura-blanchard
Seocampus 2018-laura-blanchardSeocampus 2018-laura-blanchard
Seocampus 2018-laura-blanchard
 
Et si on arrêtait de dépenser de l'argent inutilement ? - SEOCampus Paris 2018
Et si on arrêtait de dépenser de l'argent inutilement ? - SEOCampus Paris 2018Et si on arrêtait de dépenser de l'argent inutilement ? - SEOCampus Paris 2018
Et si on arrêtait de dépenser de l'argent inutilement ? - SEOCampus Paris 2018
 
Revue de code - PHP Tour Nantes 2012
Revue de code - PHP Tour Nantes 2012Revue de code - PHP Tour Nantes 2012
Revue de code - PHP Tour Nantes 2012
 
Gérer sa dette technique avec SonarQube
Gérer sa dette technique avec SonarQubeGérer sa dette technique avec SonarQube
Gérer sa dette technique avec SonarQube
 
SEO inclusive : vos visiteurs ne sont pas (que) des robots - Mathile Touchebo...
SEO inclusive : vos visiteurs ne sont pas (que) des robots - Mathile Touchebo...SEO inclusive : vos visiteurs ne sont pas (que) des robots - Mathile Touchebo...
SEO inclusive : vos visiteurs ne sont pas (que) des robots - Mathile Touchebo...
 
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
 
Redonner sa valeur à l'éditorial - #seocamp 2019
Redonner sa valeur à l'éditorial - #seocamp 2019Redonner sa valeur à l'éditorial - #seocamp 2019
Redonner sa valeur à l'éditorial - #seocamp 2019
 
Dropshipping & SEO : Gagner de l'argent Facile... ou pas ! - Abdel Web Seller...
Dropshipping & SEO : Gagner de l'argent Facile... ou pas ! - Abdel Web Seller...Dropshipping & SEO : Gagner de l'argent Facile... ou pas ! - Abdel Web Seller...
Dropshipping & SEO : Gagner de l'argent Facile... ou pas ! - Abdel Web Seller...
 
La métrique, ce n'est pas que pour le devops
La métrique, ce n'est pas que pour le devopsLa métrique, ce n'est pas que pour le devops
La métrique, ce n'est pas que pour le devops
 
Atouts du croisement de données
Atouts du croisement de donnéesAtouts du croisement de données
Atouts du croisement de données
 
La mesure, ce n'est pas que pour le devops
La mesure, ce n'est pas que pour le devopsLa mesure, ce n'est pas que pour le devops
La mesure, ce n'est pas que pour le devops
 
SEOCamp Nantes : Comment utiliser le Knowledge Graph pour améliorer votre SEO ?
SEOCamp Nantes : Comment utiliser le Knowledge Graph pour améliorer votre SEO ?SEOCamp Nantes : Comment utiliser le Knowledge Graph pour améliorer votre SEO ?
SEOCamp Nantes : Comment utiliser le Knowledge Graph pour améliorer votre SEO ?
 
Audit SEO : les clés de la réussite
Audit SEO : les clés de la réussiteAudit SEO : les clés de la réussite
Audit SEO : les clés de la réussite
 
Analyse Logs + crawl : Retour sur 10 ans d’expérience - Mathieu Chapon - SEOC...
Analyse Logs + crawl : Retour sur 10 ans d’expérience - Mathieu Chapon - SEOC...Analyse Logs + crawl : Retour sur 10 ans d’expérience - Mathieu Chapon - SEOC...
Analyse Logs + crawl : Retour sur 10 ans d’expérience - Mathieu Chapon - SEOC...
 
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
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !
 
Le visiteur utile : De la data à la connaissance - Thomas Leonetti - SEO CAM...
Le visiteur utile : De la data à la connaissance - Thomas Leonetti -  SEO CAM...Le visiteur utile : De la data à la connaissance - Thomas Leonetti -  SEO CAM...
Le visiteur utile : De la data à la connaissance - Thomas Leonetti - SEO CAM...
 
Analyse de logs par l'exemple - seocampus 2017
Analyse de logs par l'exemple - seocampus 2017Analyse de logs par l'exemple - seocampus 2017
Analyse de logs par l'exemple - seocampus 2017
 

Plus de Eric SIBER

Renforçons notre Developer eXperience pour faire face aux menaces d'obsolesce...
Renforçons notre Developer eXperience pour faire face aux menaces d'obsolesce...Renforçons notre Developer eXperience pour faire face aux menaces d'obsolesce...
Renforçons notre Developer eXperience pour faire face aux menaces d'obsolesce...Eric SIBER
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Eric SIBER
 
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...Eric SIBER
 
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...Eric SIBER
 
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! Agile ...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! Agile ...Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! Agile ...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! Agile ...Eric SIBER
 
Si t'es pas développeur à 40 ans ... il n'est pas trop tard - BreizhCamp 2017
Si t'es pas développeur à 40 ans ... il n'est pas trop tard - BreizhCamp 2017Si t'es pas développeur à 40 ans ... il n'est pas trop tard - BreizhCamp 2017
Si t'es pas développeur à 40 ans ... il n'est pas trop tard - BreizhCamp 2017Eric SIBER
 
De la culture de l'apprentissage à l'organisation apprenante
De la culture de l'apprentissage à l'organisation apprenanteDe la culture de l'apprentissage à l'organisation apprenante
De la culture de l'apprentissage à l'organisation apprenanteEric SIBER
 
Personal Kanban depuis les tranchées avec Trello - Meetup Trello France
Personal Kanban depuis les tranchées avec Trello - Meetup Trello FrancePersonal Kanban depuis les tranchées avec Trello - Meetup Trello France
Personal Kanban depuis les tranchées avec Trello - Meetup Trello FranceEric SIBER
 
Libérez vos talents - version BBL
Libérez vos talents - version BBLLibérez vos talents - version BBL
Libérez vos talents - version BBLEric SIBER
 
Personal Kanban depuis les tranchées - Culture Kanban 2016
Personal Kanban depuis les tranchées - Culture Kanban 2016Personal Kanban depuis les tranchées - Culture Kanban 2016
Personal Kanban depuis les tranchées - Culture Kanban 2016Eric SIBER
 
Libérez vos talents - Agile France 2016
Libérez vos talents - Agile France 2016Libérez vos talents - Agile France 2016
Libérez vos talents - Agile France 2016Eric SIBER
 

Plus de Eric SIBER (11)

Renforçons notre Developer eXperience pour faire face aux menaces d'obsolesce...
Renforçons notre Developer eXperience pour faire face aux menaces d'obsolesce...Renforçons notre Developer eXperience pour faire face aux menaces d'obsolesce...
Renforçons notre Developer eXperience pour faire face aux menaces d'obsolesce...
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)
 
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...
 
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! - Agil...
 
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! Agile ...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! Agile ...Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! Agile ...
Si t'es toujours pas développeur à 40 ans ... il n'est pas trop tard ! Agile ...
 
Si t'es pas développeur à 40 ans ... il n'est pas trop tard - BreizhCamp 2017
Si t'es pas développeur à 40 ans ... il n'est pas trop tard - BreizhCamp 2017Si t'es pas développeur à 40 ans ... il n'est pas trop tard - BreizhCamp 2017
Si t'es pas développeur à 40 ans ... il n'est pas trop tard - BreizhCamp 2017
 
De la culture de l'apprentissage à l'organisation apprenante
De la culture de l'apprentissage à l'organisation apprenanteDe la culture de l'apprentissage à l'organisation apprenante
De la culture de l'apprentissage à l'organisation apprenante
 
Personal Kanban depuis les tranchées avec Trello - Meetup Trello France
Personal Kanban depuis les tranchées avec Trello - Meetup Trello FrancePersonal Kanban depuis les tranchées avec Trello - Meetup Trello France
Personal Kanban depuis les tranchées avec Trello - Meetup Trello France
 
Libérez vos talents - version BBL
Libérez vos talents - version BBLLibérez vos talents - version BBL
Libérez vos talents - version BBL
 
Personal Kanban depuis les tranchées - Culture Kanban 2016
Personal Kanban depuis les tranchées - Culture Kanban 2016Personal Kanban depuis les tranchées - Culture Kanban 2016
Personal Kanban depuis les tranchées - Culture Kanban 2016
 
Libérez vos talents - Agile France 2016
Libérez vos talents - Agile France 2016Libérez vos talents - Agile France 2016
Libérez vos talents - Agile France 2016
 

[BreizhCamp 2016] La relecture de code : avant tout des pratiques

  • 1. BreizhCamp 2016 #BzhCmp #codeReview #BzhCmp BreizhCamp 2016 #codeReview #BzhCmp La relecture de code : avant tout des pratiques ! Eric SIBER - @esiber @esiber
  • 2. But de la présentation © Geek & Poke BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 3. But de la présentation BreizhCamp 2016 #codeReview #BzhCmp@esiber Une orientation selon le manifeste agile : ●  Les individus et leurs interactions plus que les processus et les outils ●  Des logiciels opérationnels plus qu’une documentation exhaustive ●  La collaboration avec les clients plus que la négociation contractuelle ●  L’adaptation au changement plus que le suivi d’un plan
  • 4. Qui suis-je ? BreizhCamp 2016 #codeReview #BzhCmp@esiber Dans le monde du développement en Région Parisienne depuis plus de 10 ans, actuellement : ●  Agile Java Craftsman chez Novedia, groupe VISEO ●  Creative Ecosystem Architect pour VISEO Technologies ●  Runner et Papa 2.0
  • 5. Qui suis-je ? BreizhCamp 2016 #codeReview #BzhCmp@esiber Dans le monde du développement en Région Parisienne depuis plus de 10 ans, actuellement : ●  Agile Java Craftsman chez Novedia, groupe VISEO ●  Creative Ecosystem Architect pour VISEO Technologies ●  Runner et Papa 2.0 Sur le plan communautaire : ●  Membre actif, modérateur, rédacteur et responsable bénévole Java sur Developpez.com de 2005 à 2009 ●  Co-organisateur de la conférence Agile France en 2013
  • 6. De quoi va-t-on parler ? ●  Bénéfices attendus ●  Quelques statistiques ●  Typologies de relectures ●  Aspects humains ●  Scope de la relecture (le quoi, le quand) ●  Facteurs clés de succès ●  Eléments disruptifs ●  Quelques références BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 7. L’audience ... BreizhCamp 2016 #codeReview #BzhCmp@esiber Qui estime avoir déjà fait de la relecture de code ?
  • 8. L’audience ... BreizhCamp 2016 #codeReview #BzhCmp@esiber Qui estime avoir déjà bénéficié d’une relecture de code ?
  • 9. Bénéfices attendus BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 10. Bénéfices attendus BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 11. Bénéfices attendus BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 12. Bénéfices attendus BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 13. Bénéfices attendus BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 14. Quelques statistiques BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 15. Statistiques : ils en parlent After experiencing the benefits of peer reviews for nearly fifteen years, I would never work in a team that did not perform them BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 16. Statistiques : ils en parlent BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 17. Statistiques : ils en parlent BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 18. Statistiques : ils en parlent BreizhCamp 2016 #codeReview #BzhCmp@esiber “the average effectiveness of design and code inspections are 55 and 60 percent” “software testing alone has limited effectiveness -- the average defect detection rate is only 25 percent for unit testing, 35 percent for function testing, and 45 percent for integration testing”
  • 19. Statistiques : ils en parlent BreizhCamp 2016 #codeReview #BzhCmp@esiber “A study of an organization at AT&T with more than 200 people reported a 14 percent increase in productivity and a 90 percent decrease in defects after the organization introduced reviews.” Source : “Code Complete”
  • 20. Statistiques : ils en parlent BreizhCamp 2016 #codeReview #BzhCmp@esiber “In a group of 11 programs developed by the same group of people, the first 5 were developed without reviews. The remaining 6 were developed with reviews. After all the programs were released to production, the first 5 had an average of 4.5 errors per 100 lines of code. The 6 that had been inspected had an average of only 0.82 errors per 100. Reviews cut the errors by over 80 percent.” Source : “Code Complete”
  • 21. Statistiques : ils en parlent SOFTWARE QUALITY TOOLS FOR THE CONNECTED WORLD BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 22. Statistiques : ils en parlent BreizhCamp 2016 #codeReview #BzhCmp@esiber Expérience d’un client sur un projet de 10 000 LOC avec 10 développeurs : ●  les anomalies détectées par l’homologation et les utilisateurs sur une période de 6 mois ont été consignées ●  un groupe de développeur a fait une revue de code sur la même base de code initial et a identifié 162 bugs supplémentaires ●  d’après des métriques ils ont estimé que la revue de code aurait pu réduire de 50% le coût de correction des anomalies Source : Best Kept Secrets of Peer Code Review
  • 23. Typologies de relecture BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 24. Typologies de relecture à posteriori BreizhCamp 2016 #codeReview #BzhCmp@esiber Over The Shoulder – Face to face
  • 25. BreizhCamp 2016 #codeReview #BzhCmp@esiber Typologies de relecture à posteriori
  • 26. Typologies de relecture à posteriori BreizhCamp 2016 #codeReview #BzhCmp@esiber Email pass around
  • 27. BreizhCamp 2016 #codeReview #BzhCmp@esiber Assisté par un outil dédié Typologies de relecture à posteriori
  • 28. BreizhCamp 2016 #codeReview #BzhCmp@esiber Typologies de relecture à posteriori
  • 29. BreizhCamp 2016 #codeReview #BzhCmp@esiber Typologies de relecture à posteriori
  • 30. BreizhCamp 2016 #codeReview #BzhCmp@esiber Typologies de relecture à posteriori
  • 31. Typologies de relecture : variantes ●  Réunions de type revue / relecture de code ●  Plusieurs intervenants (de 3 à 6) ●  Différents rôles attribués ●  « Formal Inspections » (défini comme une 5ème typologie dans Best Kept Secrets of Peer Code Review) ●  Mob Programming ●  Remote Pair-programming ●  Partage de bureau à distance ●  VS Anywhere ●  Eclipse Saros BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 32. Les aspects humains BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 33. Les aspects humains BreizhCamp 2016 #codeReview #BzhCmp@esiber Propriété collective du code (collective ownership) Responsabilité partagée
  • 34. Quand relisez vous votre code ? BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 35. BreizhCamp 2016 #codeReview #BzhCmp@esiber Quand acceptez vous une relecture ?
  • 36. BreizhCamp 2016 #codeReview #BzhCmp@esiber Quand acceptez vous une relecture ?
  • 37. Aspects humains ●  Sentiment d’envahissement ? BreizhCamp 2016 #codeReview #BzhCmp@esiber Comment appréhender d’être relu ? o  C’est le code qui est évalué, pas son auteur
  • 38. Aspects humains ●  Augmentation de ses exigences ? BreizhCamp 2016 #codeReview #BzhCmp@esiber Comment appréhender d’être relu ? Source : http://www.tivix.com/blog/everyone-loves-a-good-book/ o  Davantage d’efforts dans la rédaction du code ?
  • 39. Aspects humains ●  Attendre ou solliciter la relecture ? o  Crainte de la relecture ? o  Frustration de ne pas avoir de feedback ? BreizhCamp 2016 #codeReview #BzhCmp@esiber Comment appréhender d’être relu ?
  • 40. Aspects humains ●  Evaluer le code, pas son auteur ●  Poser des questions ○  Chercher à comprendre le raisonnement suivi ○  Eviter le « pourquoi » trop accusateur ●  Conseiller plutôt que réprimander ●  Ne pas chercher systématiquement à imaginer comment on aurait fait soi même ○  Il y toujours plusieurs solutions à un problème BreizhCamp 2016 #codeReview #BzhCmp@esiber Comment s’y prendre pour relire ?
  • 41. Aspects humains ●  Illustre une absence de pédagogie ●  Justifié ou non, l’auteur initial n’aura rien appris et continuera à faire ce type d’erreur ●  Risque de conflit et de défiance / compétition BreizhCamp 2016 #codeReview #BzhCmp@esiber Les dérives de la modification directe du code Ces conseils peuvent s’appliquer hors revue de code !
  • 42. Le scope de la relecture BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 43. Le scope de la relecture ●  Un ensemble de ressources remplissant une fonction ? ●  Un différentiel lié à la mise en place d’une nouvelle fonctionnalité ? ●  Une couche applicative ? ●  Etc. BreizhCamp 2016 #codeReview #BzhCmp@esiber Quoi ?
  • 44. Le scope de la relecture ●  Projet terminé ? ●  Fonctionnalité livrée sur un environnement donné ? ●  Itération de développement terminée ? ●  Développement d’une fonctionnalité complète terminée ? ●  Code propagé ? BreizhCamp 2016 #codeReview #BzhCmp@esiber Quand (dans le cycle de vie) ?
  • 45. Le scope de la relecture Focus sur le commit, 2 nuances à considérer •  Pre-commit review •  Post-commit review BreizhCamp 2016 #codeReview #BzhCmp@esiber Quand (dans le cycle de vie) ? Source : http://devmag.fr/pourquoi-il-vous-faut-adopter-les-pull-requests/
  • 46. Le scope de la relecture •  Moins intrusif qu’une intervention sur une anomalie de production (sauf s’il faut relire la correction) •  L’impact est lié au workflow employé BreizhCamp 2016 #codeReview #BzhCmp@esiber Ne pas négliger l’interruption de l’activité courante
  • 47. Le scope de la relecture Le quand et le quoi sont à confronter à un aspect quantitatif BreizhCamp 2016 #codeReview #BzhCmp@esiber Une tendance •  Le plus souvent •  La plus petite unité de code (le moins longtemps)
  • 48. Facteurs clés de succès BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 49. Facteurs clés de succès Respect du code ●  Le résultat des relectures ne le surcharge pas ●  Le code conserve sa lisibilité naturelle BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 50. Facteurs clés de succès BreizhCamp 2016 #codeReview #BzhCmp@esiber L’importance de la visualisation
  • 51. Facteurs clés de succès BreizhCamp 2016 #codeReview #BzhCmp@esiber L’importance de la visualisation
  • 52. Facteurs clés de succès BreizhCamp 2016 #codeReview #BzhCmp@esiber Centralisation et conservation d’un historique des relectures
  • 53. Facteurs clés de succès BreizhCamp 2016 #codeReview #BzhCmp@esiber Définition / renforcement d’un workflow de travail
  • 54. Eléments disruptifs BreizhCamp 2016 #codeReview #BzhCmp@esiber
  • 55. Eléments disruptifs BreizhCamp 2016 #codeReview #BzhCmp@esiber Ce qui a fait évoluer les pratiques dans le passé récent •  Les DVCS (ex. Git) et l’apparition de workflows de développement •  Les interactions avec les plateformes d’intégration continue (PIC) •  Le Cloud comme support aux 2 outils précédemment mentionnés
  • 56. Eléments disruptifs BreizhCamp 2016 #codeReview #BzhCmp@esiber Quelques prédictions / tendances pour l’avenir (déjà bien en route) •  Elaboration de solutions ALM complètes o  Poussé par la tendance Cloud o  Favorisé par l’évolution des technologies Web tel HTML5 •  Percée des Web-IDE o  Encore davantage d’interactions o  Favorisé par l’évolution des technologies Web tel HTML5 •  Solutions de type realtime sharing (ex. Google Docs)
  • 58. Références BreizhCamp 2016 #codeReview #BzhCmp@esiber http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/
  • 59. Références BreizhCamp 2016 #codeReview #BzhCmp@esiber http://www.amazon.com/Peer-Reviews-Software-Practical-Guide/dp/0201734850/
  • 60. Références BreizhCamp 2016 #codeReview #BzhCmp@esiber http://www.amazon.fr/The-Psychology-Computer-Programming-Anniversary/dp/0932633420
  • 61. Références BreizhCamp 2016 #codeReview #BzhCmp@esiber http://www.amazon.com/Best-Kept-Secrets-Peer-Review/dp/1599160676 http://smartbear.com/SmartBear/media/pdfs/best-kept-secrets-of-peer-code-review.pdf
  • 62. BreizhCamp 2016 #BzhCmp #codeReview #BzhCmp BreizhCamp 2016 #codeReview #BzhCmp La relecture de code : avant tout des pratiques ! Eric SIBER - @esiber @esiber
  • 63. RDV à Agile France 2016 BreizhCamp 2016 #codeReview #BzhCmp@esiber http://lanyrd.com/2016/agilefrance/