[agile laval 2016] la relecture de code : avant tout des pratiques
TRANSCRIPT
![Page 1: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/1.jpg)
#AgileLaval16#codeReview
La relecture de code : avant tout des pratiques !
Eric SIBER - @esiber
![Page 2: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/2.jpg)
Merciànossponsorsetànospartenaires
#AgileLaval16
![Page 3: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/3.jpg)
© Geek & Poke
#AgileLaval16 #codeReview @esiber
But de la présentation
![Page 4: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/4.jpg)
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
#AgileLaval16 #codeReview @esiber
![Page 5: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/5.jpg)
Qui suis-je ?
#AgileLaval16 #codeReview @esiber
Dans le monde du service en IT, en Région Parisienne depuis plus de 10 ans : ● Agile Java Craftsman ● Creative Ecosystem Organizer ● Runner et Papa 2.0
![Page 6: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/6.jpg)
Qui suis-je ?
Dans le monde du service en IT, en Région Parisienne depuis plus de 10 ans : ● Agile Java Craftsman ● Creative Ecosystem Organizer ● 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 ● Interventions en conférence (Scrum Day, Agile Toulouse,
Breizhcamp, Agile France) #AgileLaval16 #codeReview @esiber
![Page 7: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/7.jpg)
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
#AgileLaval16 #codeReview @esiber
![Page 8: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/8.jpg)
Qui estime avoir déjà fait de la relecture de code ?
#AgileLaval16 #codeReview @esiber
![Page 9: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/9.jpg)
Qui estime avoir déjà bénéficié d’une relecture de code ?
#AgileLaval16 #codeReview @esiber
![Page 10: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/10.jpg)
#AgileLaval16 #codeReview @esiber
![Page 11: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/11.jpg)
#AgileLaval16 #codeReview @esiber
![Page 12: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/12.jpg)
#AgileLaval16 #codeReview @esiber
![Page 13: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/13.jpg)
#AgileLaval16 #codeReview @esiber
![Page 14: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/14.jpg)
#AgileLaval16 #codeReview @esiber
![Page 15: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/15.jpg)
#AgileLaval16 #codeReview @esiber
![Page 16: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/16.jpg)
«A"erexperiencingthebenefitsofpeerreviewsfornearlyfi*eenyears,Iwouldneverworkinateamthatdidnotperformthem»
#AgileLaval16 #codeReview @esiber
![Page 17: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/17.jpg)
#AgileLaval16 #codeReview @esiber
![Page 18: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/18.jpg)
#AgileLaval16 #codeReview @esiber
![Page 19: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/19.jpg)
« 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 »
#AgileLaval16 #codeReview @esiber
![Page 20: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/20.jpg)
« 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”
#AgileLaval16 #codeReview @esiber
![Page 21: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/21.jpg)
« 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”
#AgileLaval16 #codeReview @esiber
![Page 22: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/22.jpg)
SOFTWARE QUALITY TOOLS FOR THE CONNECTED WORLD
#AgileLaval16 #codeReview @esiber
![Page 23: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/23.jpg)
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:BestKeptSecretsofPeerCodeReview
#AgileLaval16 #codeReview @esiber
![Page 24: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/24.jpg)
#AgileLaval16 #codeReview @esiber
![Page 25: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/25.jpg)
Over The Shoulder –
Face to face
#AgileLaval16 #codeReview @esiber
![Page 26: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/26.jpg)
Typologies de relecture à posteriori
#AgileLaval16 #codeReview @esiber
![Page 27: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/27.jpg)
Email pass around
#AgileLaval16 #codeReview @esiber
![Page 28: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/28.jpg)
Assisté par un outil dédié #AgileLaval16 #codeReview @esiber
![Page 29: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/29.jpg)
#AgileLaval16 #codeReview @esiber
![Page 30: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/30.jpg)
#AgileLaval16 #codeReview @esiber
![Page 31: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/31.jpg)
#AgileLaval16 #codeReview @esiber
![Page 32: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/32.jpg)
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
#AgileLaval16 #codeReview @esiber
![Page 33: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/33.jpg)
#AgileLaval16 #codeReview @esiber
![Page 34: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/34.jpg)
Propriété collective du code (collective ownership) Responsabilité partagée
#AgileLaval16 #codeReview @esiber
![Page 35: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/35.jpg)
Quand relisez vous votre code ?
#AgileLaval16 #codeReview @esiber
![Page 36: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/36.jpg)
#AgileLaval16 #codeReview @esiber
![Page 37: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/37.jpg)
#AgileLaval16 #codeReview @esiber
![Page 38: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/38.jpg)
● Sentiment d’envahissement ?
Comment appréhender d’être relu ?
o C’est le code qui est évalué, pas son auteur
#AgileLaval16 #codeReview @esiber
![Page 39: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/39.jpg)
Comment appréhender d’être relu ?
Source:h@p://www.Cvix.com/blog/everyone-loves-a-good-book/
#AgileLaval16 #codeReview @esiber
![Page 40: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/40.jpg)
● Augmentation de ses exigences ? o Davantage d’efforts dans la rédaction du
code ?
Comment appréhender d’être relu ?
#AgileLaval16 #codeReview @esiber
![Page 41: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/41.jpg)
● Attendre ou solliciter la relecture ?
o Crainte de la relecture ? o Frustration de ne pas avoir de feedback ?
Comment appréhender d’être relu ?
#AgileLaval16 #codeReview @esiber
![Page 42: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/42.jpg)
● 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
Comment s’y prendre pour relire ?
#AgileLaval16 #codeReview @esiber
![Page 43: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/43.jpg)
● 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
Les dérives de la modification directe du code
Ces conseils peuvent s’appliquer hors revue de code !
#AgileLaval16 #codeReview @esiber
![Page 44: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/44.jpg)
● Jeu de rôle pour le candidat o Relire un code existant qu’on lui présente o Subir la relecture sur un code qu’il a produit o Situation de Pair-programming
● Les aspects humains comptent pour 50%, autant que les aspects techniques
L’exercice de relecture peut s’appliquer dans le cadre d’un entretien de recrutement
#AgileLaval16 #codeReview @esiber
![Page 45: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/45.jpg)
#AgileLaval16 #codeReview @esiber
![Page 46: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/46.jpg)
● Un ensemble de ressources remplissant une fonction ?
● Un différentiel lié à la mise en place d’une nouvelle fonctionnalité ?
● Une couche applicative ? ● Etc.
Quoi ?
#AgileLaval16 #codeReview @esiber
![Page 47: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/47.jpg)
#AgileLaval16 #codeReview @esiber
![Page 48: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/48.jpg)
● 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é ?
Quand (dans le cycle de vie) ?
#AgileLaval16 #codeReview @esiber
![Page 49: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/49.jpg)
Focus sur le commit, 2 nuances à considérer • Pre-commit review • Post-commit review
Quand (dans le cycle de vie) ?
Source:h@p://devmag.fr/pourquoi-il-vous-faut-adopter-les-pull-requests/
#AgileLaval16 #codeReview @esiber
![Page 50: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/50.jpg)
• Moins intrusif qu’une intervention sur une anomalie de production (sauf s’il faut relire la correction)
• L’impact est lié au workflow employé
Ne pas négliger l’interruption de l’activité courante
#AgileLaval16 #codeReview @esiber
![Page 51: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/51.jpg)
Le quand et le quoi sont à confronter à un aspect quantitatif
Une tendance • Le plus souvent • La plus petite unité de code (le moins
longtemps)
#AgileLaval16 #codeReview @esiber
![Page 52: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/52.jpg)
#AgileLaval16 #codeReview @esiber
![Page 53: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/53.jpg)
Respect du code ● Le résultat des relectures ne le surcharge
pas ● Le code conserve sa lisibilité naturelle
#AgileLaval16 #codeReview @esiber
![Page 54: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/54.jpg)
#AgileLaval16 #codeReview @esiber
![Page 55: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/55.jpg)
#AgileLaval16 #codeReview @esiber
![Page 56: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/56.jpg)
#AgileLaval16 #codeReview @esiber
![Page 57: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/57.jpg)
#AgileLaval16 #codeReview @esiber
![Page 58: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/58.jpg)
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
#AgileLaval16 #codeReview @esiber
![Page 59: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/59.jpg)
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)
#AgileLaval16 #codeReview @esiber
![Page 60: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/60.jpg)
#AgileLaval16 #codeReview @esiber
![Page 61: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/61.jpg)
hDp://www.amazon.com/Code-Complete-PracJcal-Handbook-ConstrucJon/dp/0735619670/
#AgileLaval16 #codeReview @esiber
![Page 62: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/62.jpg)
hDp://www.amazon.com/Peer-Reviews-SoSware-PracJcal-Guide/dp/0201734850/
#AgileLaval16 #codeReview @esiber
![Page 63: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/63.jpg)
hDp://www.amazon.fr/The-Psychology-Computer-Programming-Anniversary/dp/0932633420
#AgileLaval16 #codeReview @esiber
![Page 64: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/64.jpg)
hDp://www.amazon.com/Best-Kept-Secrets-Peer-Review/dp/1599160676hDp://smartbear.com/SmartBear/media/pdfs/best-kept-secrets-of-peer-code-review.pdf
#AgileLaval16 #codeReview @esiber
![Page 65: [Agile Laval 2016] La relecture de code : avant tout des pratiques](https://reader034.vdocuments.net/reader034/viewer/2022042611/58ec0b731a28abf9228b4621/html5/thumbnails/65.jpg)
#AgileLaval16#codeReview
La relecture de code : avant tout des pratiques !
Eric SIBER - @esiber