La revue de code : c’est Agile,c’est Lean, c’est Indispensable !Lucian Precupconf.agile-france.org2010-05-31
Lucian Precup• Développeur, architecte, chef de projets etresponsable des développements (Java EE,ETL, BI)• Consultant en ...
Objectif de la présentation• Mise en place de la revue de code …• Formelle … et• Assistée par les outils …
Qu’est-ce la revue de code?• Inspection systématique du code source• Buts:– Trouver et corriger des erreurs– Améliorer la ...
Avantages• Trouver des bugs• Promouvoir l’apprentissage• Former• Promouvoir le partage• Rendre le code plus maintenable• T...
La revue du codeaugmente la duréedes développementsC’est n’est qu’uneimpression. Regardezla suite.
Développement Test Bugfix (et dév) BugfixChez le clientEn interneDév (et bugfix) Test Bugfix BugfixRevueTrouver/corriger b...
Nos développeurs sonttrès bons, ils n’ont pasbesoin de revue de codeLa revue de code c’estla meilleure veilletechnologique...
Les Tech Leads n’ont pasbesoin de revue de codeIl ne faut pas oublier lepartage et la formation. Etpuis, personne n’est à ...
Il n’y a personne dansl’équipe qui puisseexaminer mon code carje suis le seul àconnaître DelphiLe regard d’undéveloppeur J...
Mais quiimplémente larevue de code?Tous les grands éditeursde logiciels ainsi quebeaucoup de projetsopen source
Le monde Open SourceSCMCIRMReviewRefactoringModificationsSuper Reviewpatchpatchcheckincheckin
Processus de mozilla.org• Revue obligatoire pour pouvoir commiter• Intégration du processus dans Bugzilla• Listes d’examin...
Implémentations et témoignages• INRIA Transfert et Medience– Implémentation avec Aegis– Très bonne qualité malgré le turn-...
Autres témoignages• Grand éditeur de logiciel– Équipe de huit personnes (France et Etats Unis)– Très productive grâce à la...
Peut-onautomatiser larevue?Des outils trouvent des bugset peuvent nous apprendrebeaucoup. Mais il ne faut pasoublier le pa...
Revue automatisée?• Analyse de la qualité du code• Scripts pour vérification des normes internes.Ex:– Suffisamment de test...
Donc les tests, les outilsd’analyse, l’intégrationcontinue ne remplacentpas la revue de code?Il faut tous lesavoir et ils ...
La revue de code comparée à ...• Un bon département QA– le coût d’un département QA est plusimportant; plus on trouve le b...
Et le « pairprogramming » ?Bonne remarque !
Quid du Pair Programming ?• Revue de code en continu• Très efficace pour trouver des bugs et pourfavoriser la connaissance...
Les outils qui m’aident àbien implémenter la revuecoûtent cherPas forcément
Outils et intégration• Code Collaborator de SmartBear– Intégration avec les gestionnaires de code sourceet avec les gestio...
Exemple d’implémentation avecBugzilla, Mylyn, Eclipse et CVSRevueUpload patchReview passed=> Checkin« Self-review »Créatio...
Mise en œuvre• Taille des projets?• Par qui, comment?• Avant l’intégration ou après?• Regarder juste le code ou faire plus...
Et l’agilité dans tout ça ?La revue de code faitpartie d’une démarcheagile, lean et industrielle
La revue de code c’est agile!• Le manifeste agile (extrait)– Les individus et les interactions à l’opposé des processus et...
La revue de code c’est Lean!• Approche Lean– améliorer la qualité et les délais– réduire les coûts en tirant le meilleur p...
La revue de code - conclusion• Mettez-la en place tout de suite• Favoriser la revue formelle• Appuyez-vous sur des outils
Questions et réponses
Quelques références• Mozilla– http://www.mozilla.org/projects/firefox/review.html– http://www-archive.mozilla.org/hacking/...
Prochain SlideShare
Chargement dans…5
×

La revue de code : agile, lean, indispensable !

2 706 vues

Publié le

Présentation faite à Agile France en 2010 :

La revue de code : agile, lean, indispensable !

Alors que l’intégration continue ou les tests unitaires commencent à rentrer dans les "standards", la revue de code est souvent considérée comme optionnelle. Pourtant, les avantages d’une revue de code systématique sont multiples : détection des anomalies très tôt dans le cycle de développement, formation des membres de l’équipe, partage de la connaissance, meilleures solutions techniques par la conjonction des perspectives développeur/examinateur.
Cette présentation mettra en évidence les avantages de la revue du code en répondant aux idées reçues comme "la revue du code augmente la durée des développements", ou "nos développeurs sont très bons, ils n’ont pas besoin de revue de code" ou encore "il n’y a personne dans l’équipe qui puisse examiner mon code car je suis le seul à connaître Bash et Ant". En évoquant la revue de code dans l’univers open source, les différents moyens de la mettre en œuvre, ses compléments, les différents outils ; et terminant par une démonstration concrète en utilisant Eclipse, Bugzilla et Mylyn, cette présentation vous convaincra de mettre en place la revue de code systématique dans votre équipe sans attendre.
Déroulement :
1/ Avantages
2/ Idées reçues
3/ La revue de code dans l’univers open-source : de la revue du patch par le committeur aux procédures très élaborées comme celles de Mozilla Developer Center.
4/ Moyens de mise en œuvre : à partir de quelle taille des projets, par qui, comment, avant l’intégration ou après, ...
5/ Les compléments de la revue du code : analyse de la qualité du code, scripts pour les normes internes, ...
6/ Comparaison avec d’autres techniques : pair programming, ...
7/ Outils et intégration avec les autres outils de développement ou de gestion du cycle de vie (intégration continue, gestion des anomalies, ...)
8/ Démonstration des avantages sur un exemple concret en utilisant Eclipse, Bugzilla et Mylyn comme outils.
9/ Conclusion : comment la revue de code supporte une démarche agile et lean

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
2 706
Sur SlideShare
0
Issues des intégrations
0
Intégrations
19
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

La revue de code : agile, lean, indispensable !

  1. 1. La revue de code : c’est Agile,c’est Lean, c’est Indispensable !Lucian Precupconf.agile-france.org2010-05-31
  2. 2. Lucian Precup• Développeur, architecte, chef de projets etresponsable des développements (Java EE,ETL, BI)• Consultant en industrialisation desdéveloppements (outils ALM, méthodes dedéveloppement, organisation)
  3. 3. Objectif de la présentation• Mise en place de la revue de code …• Formelle … et• Assistée par les outils …
  4. 4. Qu’est-ce la revue de code?• Inspection systématique du code source• Buts:– Trouver et corriger des erreurs– Améliorer la qualité du logiciel– Améliorer les compétences des développeurs• Types de revue de code– Formelle ou informelle, pré ou post commit– « Over-the-shoulder », par e-mail– « Pair-programming »
  5. 5. Avantages• Trouver des bugs• Promouvoir l’apprentissage• Former• Promouvoir le partage• Rendre le code plus maintenable• Trouver des meilleures solutions techniques
  6. 6. La revue du codeaugmente la duréedes développementsC’est n’est qu’uneimpression. Regardezla suite.
  7. 7. Développement Test Bugfix (et dév) BugfixChez le clientEn interneDév (et bugfix) Test Bugfix BugfixRevueTrouver/corriger bugs en QA 200 x 200€Trouver/corriger bugs chezle client100 x 2000€Développement 100xxx €Trouver/corriger bugs à la revue 135 x 60€Trouver/corriger bugs en QA 110 x 200€Trouver/corriger bugs chez leclient55 x 2000€Développement 90xxx €La revue de code et le cout desdéveloppements
  8. 8. Nos développeurs sonttrès bons, ils n’ont pasbesoin de revue de codeLa revue de code c’estla meilleure veilletechnologique quipuisse exister
  9. 9. Les Tech Leads n’ont pasbesoin de revue de codeIl ne faut pas oublier lepartage et la formation. Etpuis, personne n’est à l’abrides bugs 
  10. 10. Il n’y a personne dansl’équipe qui puisseexaminer mon code carje suis le seul àconnaître DelphiLe regard d’undéveloppeur Java sur uncode Delphi peutdonner des idées
  11. 11. Mais quiimplémente larevue de code?Tous les grands éditeursde logiciels ainsi quebeaucoup de projetsopen source
  12. 12. Le monde Open SourceSCMCIRMReviewRefactoringModificationsSuper Reviewpatchpatchcheckincheckin
  13. 13. Processus de mozilla.org• Revue obligatoire pour pouvoir commiter• Intégration du processus dans Bugzilla• Listes d’examinateurs « accrédités » par areaet sous-module• « Super-review » nécessaire dans certains casavec une « Super-Review Policy » bien définie• « Ui-review » pour IHM et User Experience
  14. 14. Implémentations et témoignages• INRIA Transfert et Medience– Implémentation avec Aegis– Très bonne qualité malgré le turn-overde l’équipe• Business Objects– « Les développements de l’équipe DataFederator étaient plus longs mais, en revanche,ils se stabilisaient très rapidement et les délaisde livraisons étaient très prévisibles »
  15. 15. Autres témoignages• Grand éditeur de logiciel– Équipe de huit personnes (France et Etats Unis)– Très productive grâce à la revue asynchronependant la « nuit »• Equipe de moteur de recherche d’un grandsite d’e-commerce– La revue de code a réussi à optimiser la mise enrecette– Très bon retour des développeurs
  16. 16. Peut-onautomatiser larevue?Des outils trouvent des bugset peuvent nous apprendrebeaucoup. Mais il ne faut pasoublier le partage de laconnaissance
  17. 17. Revue automatisée?• Analyse de la qualité du code• Scripts pour vérification des normes internes.Ex:– Suffisamment de tests unitaires– Respect des règles d’architecture d’entreprise• Tests automatiquesHudson FindBugs Sonar
  18. 18. Donc les tests, les outilsd’analyse, l’intégrationcontinue ne remplacentpas la revue de code?Il faut tous lesavoir et ils secomplètent
  19. 19. La revue de code comparée à ...• Un bon département QA– le coût d’un département QA est plusimportant; plus on trouve le bug tard plus ilcoûte cher• Des outils automatiques– la revue de code ne trouve pas que desbugs; il y a aussi l’apprentissage, le partage,la maintenance• L’intégration continue– Même si les problèmes sont détectés trèstôt, la revue de code permet de les trouverencore plus tôt
  20. 20. Et le « pairprogramming » ?Bonne remarque !
  21. 21. Quid du Pair Programming ?• Revue de code en continu• Très efficace pour trouver des bugs et pourfavoriser la connaissanceMais• L’examinateur – très impliqué dans le code• Trop coûteux à implémenter• Présence physique au même endroit
  22. 22. Les outils qui m’aident àbien implémenter la revuecoûtent cherPas forcément
  23. 23. Outils et intégration• Code Collaborator de SmartBear– Intégration avec les gestionnaires de code sourceet avec les gestionnaires des anomalies• Atlassian Crucible– Intégration avec JIRA et les autres outils Atlassian• Eclipse + Bugzilla + Mylyn + patch (CVS, SVN)– Intégration avec l’IDE, possibilité de faire plus quejuste regarder le code
  24. 24. Exemple d’implémentation avecBugzilla, Mylyn, Eclipse et CVSRevueUpload patchReview passed=> Checkin« Self-review »Création du patchDownload patch
  25. 25. Mise en œuvre• Taille des projets?• Par qui, comment?• Avant l’intégration ou après?• Regarder juste le code ou faire plus?• Quel type de revue de code est le mieuxadapté à ma situation?
  26. 26. Et l’agilité dans tout ça ?La revue de code faitpartie d’une démarcheagile, lean et industrielle
  27. 27. La revue de code c’est agile!• Le manifeste agile (extrait)– Les individus et les interactions à l’opposé des processus etoutils– Logiciels qui fonctionnent à l’opposé de documentationexhaustive• Les principes agiles (extrait)– Satisfaire le client est le plus important – livrer un logiciel quifonctionne bien, le plus tôt et le plus souvent possible– L’avancement est mesuré d’abord à travers le logiciel quifonctionne– Les équipes s’auto-organisent et les individus sont très motivés– Les discussions face à face sont privilégiées pour lacommunication– Des rétrospectives et ajustements sont faits de façon régulière
  28. 28. La revue de code c’est Lean!• Approche Lean– améliorer la qualité et les délais– réduire les coûts en tirant le meilleur parti des ressourceshumaines et matérielles, et en évitant toute forme de gaspillage• Principes (extrait)– Éliminer les gaspillages (trop de fonctionnalités, travailpartiellement fait, réapprentissage, transmission del’information, commutation entre tâches, retards, défauts)– Favoriser la connaissance– Construire la qualité intrinsèque– Livrer rapidement– Respecter les personnes– Optimiser le système dans son ensemble
  29. 29. La revue de code - conclusion• Mettez-la en place tout de suite• Favoriser la revue formelle• Appuyez-vous sur des outils
  30. 30. Questions et réponses
  31. 31. Quelques références• Mozilla– http://www.mozilla.org/projects/firefox/review.html– http://www-archive.mozilla.org/hacking/code-review-faq.html– http://www.mozilla.org/hacking/reviewers.html• Atlassian– http://www.atlassian.com/software/crucible/learn/codereviewwhitepaper.pdf• SmartBear– http://smartbear.com/docs/BestPracticesForPeerCodeReview.pdf• http://LucianPrecup.com– Livre blanc bientôt disponible

×