1
L’analyse de code au
service de la qualité
22
33 ans
À 11 ans…
ekino. http://www.ekino.com
@s_leclercq
Stéphane
Leclercq
...13 ans déjà
33
Agile
Pair
Outils
Il était une fois un projet
44
Agile
Pair
Outils
Il était une fois un projet
55
Agile
Pair
Outils
Il était une fois un projet
66
Agile
Pair
Outils
Il était une fois un projet
77
Acrobatie
Solitude
Tournevis
La mise en production
approche
88
Acrobatie
Solitude
Tournevis
La mise en production
approche
99
Acrobatie
Solitude
Tournevis
La mise en production
approche
1010
Acrobatie
Solitude
Tournevis
La mise en production
approche
11
Livrer à temps de la qualité
1212
Kanban
Pair
IDE
On s’adapte au contexte
1313
Kanban
Pair
IDE
On s’adapte au contexte
1414
Kanban
Pair
IDE
On s’adapte au contexte
1515
Kanban
Pair
IDE
On s’adapte au contexte
16
17
18
O_O
19
20
2121
Petite équipe
Garant
Phabricator
2222
Petite équipe
Garant
Phabricator
2323
Petite équipe
Pas de hiérarchie
Garant
Phabricator
2424
Petite équipe
Pas de hiérarchie
Garant
Phabricator
2525
2900 commits en 4 mois
Commentés
740
Validés
2160
2626
Les débuts
2727
• Excellente réception générale
Les débuts
2828
• Excellente réception générale
• Bugs sur développements en cours en baisse
• Introduction de regressions en baisse
...
2929
• Excellente réception générale
• Bugs sur développements en cours en baisse
• Introduction de regressions en baisse
...
3030
• Excellente réception générale
• Bugs sur développements en cours en baisse
• Introduction de regressions en baisse
...
3131
• Excellente réception générale
• Bugs sur développements en cours en baisse
• Introduction de regressions en baisse
...
3232
Malgré tout
3333
Malgré tout Chronophage
3434
Malgré tout Chronophage
Débats
3535
Audits rapides
3636
Audits rapides
Analyse statique
3737
Audits rapides
Analyse statique
Messages de commits
Audit : a1b2c
3838
Audits rapides
Analyse statique
Messages de commits
Audit : a1b2c
Limiter la durée
3939
Limiter les débats
4040
Règles de développement
Limiter les débats
4141
Règles de développement
Objectifs de l’audit
Limiter les débats
4242
Pair
Outils
Équipes plus grandes
4343
Sous équipes (3 – 5)
Pair
Outils
Équipes plus grandes
4444
Sous équipes (3 – 5)
Pair
Outils
Équipes plus grandes
Garant de sous équipe
Garant global
4545
Sous équipes (3 – 5)
Pair
Outils
Équipes plus grandes
Clanisme
Garant de sous équipe
Garant global
4646
Agile
Pair
Outils
Conclusion
4747
Agile
Pair
Outils
Conclusion
4848
Agile
Pair
Outils
Conclusion
4949
Agile
Pair
Outils
Conclusion
5050
Agile
Pair
Outils
Conclusion
5151
@s_leclercq
Questions ?
5252
2 : https://commons.wikimedia.org/wiki/File:Duke_Wave.png
2 : https://www.flickr.com/photos/blakespot/9736880609
4,5,...
Prochain SlideShare
Chargement dans…5
×

L'analyse de code au service de la qualité

570 vues

Publié le

Approches autour de l'analyse de code pour améliorer la qualité des projets
Sont abordés :
- Le pair programming
- L'analyse statique
- L'audit de code
La session passe en revue les avantages et points d'attention de chaque approche, ainsi que les outils couramment utilisés. Le tout se basera également sur un retour d'expérience (équipe de 15 devs Java) avec un focus sur la piste que nous avons privilégiée : Phabricator (audit de code)

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
570
Sur SlideShare
0
Issues des intégrations
0
Intégrations
30
Actions
Partages
0
Téléchargements
7
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Sondage sur qui fait de l’analyse, de la programmation en binome, de l’audit de code
  • Comment livrer à temps sans compromettre la qualité ?
  • Il manque un truc
    La vitesse et les changements de priorités font faire des erreurs supplémentaires (pas de recul)
    Il n’y a plus assez de pair programming pour voir tous les soucis
    L’analyse statique ne détecte pas tout
  • Il manque un truc
    La vitesse et les changements de priorités font faire des erreurs supplémentaires (pas de recul)
    Il n’y a plus assez de pair programming pour voir tous les soucis
    L’analyse statique ne détecte pas tout
  • Il manque un truc
    La vitesse et les changements de priorités font faire des erreurs supplémentaires (pas de recul)
    Il n’y a plus assez de pair programming pour voir tous les soucis
    L’analyse statique ne détecte pas tout
  • Il manque un truc
    La vitesse et les changements de priorités font faire des erreurs supplémentaires (pas de recul)
    Il n’y a plus assez de pair programming pour voir tous les soucis
    L’analyse statique ne détecte pas tout
  • Rien ne remplace les yeux des développeurs !
    On a décidé de faire de l’audit de code
    Permet de voir et valider (ou commenter) les changements commit par commit
    Bloquant (Gerrit, pull request) ou non bloquant (Phabricator)
  • Rien ne remplace les yeux des développeurs !
    On a décidé de faire de l’audit de code
    Permet de voir et valider (ou commenter) les changements commit par commit
    Bloquant (Gerrit, pull request) ou non bloquant (Phabricator)
  • Rien ne remplace les yeux des développeurs !
    On a décidé de faire de l’audit de code
    Permet de voir et valider (ou commenter) les changements commit par commit
    Bloquant (pull request, Gerrit) ou non bloquant (Phabricator)
  • Mise en place immédiate pour avoir un retour d’experience rapide et ajuster

    Petite équipe (8 personnes)
    Tout le monde peut auditer tout le monde
    Un ou deux garants
  • Mise en place immédiate pour avoir un retour d’experience rapide et ajuster

    Petite équipe (8 personnes)
    Tout le monde peut auditer tout le monde
    Un ou deux garants
  • Mise en place immédiate pour avoir un retour d’experience rapide et ajuster

    Petite équipe (8 personnes)
    Tout le monde peut auditer tout le monde
    Un ou deux garants
  • Mise en place immédiate pour avoir un retour d’experience rapide et ajuster

    Petite équipe (8 personnes)
    Tout le monde peut auditer tout le monde
    Un ou deux garants
  • Peut devenir chronophage
    Gérer la perception de l’outil hors équipe
    Eviter les conflits et débats sur l’utilité
    Rendre l’outil moins intrusif
  • Peut devenir chronophage
    Gérer la perception de l’outil hors équipe
    Eviter les conflits et débats sur l’utilité
    Rendre l’outil moins intrusif
  • Peut devenir chronophage
    Gérer la perception de l’outil hors équipe
    Eviter les conflits et débats sur l’utilité
    Rendre l’outil moins intrusif
  • Petite équipe (8 personnes)
    Tout le monde peut auditer tout le monde
    Un ou deux garants
  • Petite équipe (8 personnes)
    Tout le monde peut auditer tout le monde
    Un ou deux garants
  • Petite équipe (8 personnes)
    Tout le monde peut auditer tout le monde
    Un ou deux garants
  • Petite équipe (8 personnes)
    Tout le monde peut auditer tout le monde
    Un ou deux garants
  • Nécessité de “règles de développement”
    Sensibilisation sur les objectifs de l’audit
    Ordre / Suggestion ou discussion
    Développeur / Développement
  • Nécessité de “règles de développement”
    Sensibilisation sur les objectifs de l’audit
    Ordre / Suggestion ou discussion
    Développeur / Développement
  • Nécessité de “règles de développement”
    Sensibilisation sur les objectifs de l’audit
    Ordre / Suggestion ou discussion
    Développeur / Développement
  • Attention à la noyade
    Équipes plus grandes
    Organisation par sous équipes (5 personnes max)
    Un garant pour 3 – 4 sous équipes
    Surveillance du clanisme
  • Attention à la noyade
    Équipes plus grandes
    Organisation par sous équipes (5 personnes max)
    Un garant pour 3 – 4 sous équipes
    Surveillance du clanisme
  • Attention à la noyade
    Équipes plus grandes
    Organisation par sous équipes (5 personnes max)
    Un garant pour 3 – 4 sous équipes
    Surveillance du clanisme
  • Attention à la noyade
    Équipes plus grandes
    Organisation par sous équipes (5 personnes max)
    Un garant pour 3 – 4 sous équipes
    Surveillance du clanisme
  • L'analyse de code au service de la qualité

    1. 1. 1 L’analyse de code au service de la qualité
    2. 2. 22 33 ans À 11 ans… ekino. http://www.ekino.com @s_leclercq Stéphane Leclercq ...13 ans déjà
    3. 3. 33 Agile Pair Outils Il était une fois un projet
    4. 4. 44 Agile Pair Outils Il était une fois un projet
    5. 5. 55 Agile Pair Outils Il était une fois un projet
    6. 6. 66 Agile Pair Outils Il était une fois un projet
    7. 7. 77 Acrobatie Solitude Tournevis La mise en production approche
    8. 8. 88 Acrobatie Solitude Tournevis La mise en production approche
    9. 9. 99 Acrobatie Solitude Tournevis La mise en production approche
    10. 10. 1010 Acrobatie Solitude Tournevis La mise en production approche
    11. 11. 11 Livrer à temps de la qualité
    12. 12. 1212 Kanban Pair IDE On s’adapte au contexte
    13. 13. 1313 Kanban Pair IDE On s’adapte au contexte
    14. 14. 1414 Kanban Pair IDE On s’adapte au contexte
    15. 15. 1515 Kanban Pair IDE On s’adapte au contexte
    16. 16. 16
    17. 17. 17
    18. 18. 18 O_O
    19. 19. 19
    20. 20. 20
    21. 21. 2121 Petite équipe Garant Phabricator
    22. 22. 2222 Petite équipe Garant Phabricator
    23. 23. 2323 Petite équipe Pas de hiérarchie Garant Phabricator
    24. 24. 2424 Petite équipe Pas de hiérarchie Garant Phabricator
    25. 25. 2525 2900 commits en 4 mois Commentés 740 Validés 2160
    26. 26. 2626 Les débuts
    27. 27. 2727 • Excellente réception générale Les débuts
    28. 28. 2828 • Excellente réception générale • Bugs sur développements en cours en baisse • Introduction de regressions en baisse • Dette technique en baisse Les débuts
    29. 29. 2929 • Excellente réception générale • Bugs sur développements en cours en baisse • Introduction de regressions en baisse • Dette technique en baisse • Qualité des livraisons en hausse Les débuts
    30. 30. 3030 • Excellente réception générale • Bugs sur développements en cours en baisse • Introduction de regressions en baisse • Dette technique en baisse • Qualité des livraisons en hausse • Plus de partage de la connaissance • Montée en expertise et compétence plus rapide Les débuts
    31. 31. 3131 • Excellente réception générale • Bugs sur développements en cours en baisse • Introduction de regressions en baisse • Dette technique en baisse • Qualité des livraisons en hausse • Plus de partage de la connaissance • Montée en expertise et compétence plus rapide • Meilleure maitrise du changement Les débuts
    32. 32. 3232 Malgré tout
    33. 33. 3333 Malgré tout Chronophage
    34. 34. 3434 Malgré tout Chronophage Débats
    35. 35. 3535 Audits rapides
    36. 36. 3636 Audits rapides Analyse statique
    37. 37. 3737 Audits rapides Analyse statique Messages de commits Audit : a1b2c
    38. 38. 3838 Audits rapides Analyse statique Messages de commits Audit : a1b2c Limiter la durée
    39. 39. 3939 Limiter les débats
    40. 40. 4040 Règles de développement Limiter les débats
    41. 41. 4141 Règles de développement Objectifs de l’audit Limiter les débats
    42. 42. 4242 Pair Outils Équipes plus grandes
    43. 43. 4343 Sous équipes (3 – 5) Pair Outils Équipes plus grandes
    44. 44. 4444 Sous équipes (3 – 5) Pair Outils Équipes plus grandes Garant de sous équipe Garant global
    45. 45. 4545 Sous équipes (3 – 5) Pair Outils Équipes plus grandes Clanisme Garant de sous équipe Garant global
    46. 46. 4646 Agile Pair Outils Conclusion
    47. 47. 4747 Agile Pair Outils Conclusion
    48. 48. 4848 Agile Pair Outils Conclusion
    49. 49. 4949 Agile Pair Outils Conclusion
    50. 50. 5050 Agile Pair Outils Conclusion
    51. 51. 5151 @s_leclercq Questions ?
    52. 52. 5252 2 : https://commons.wikimedia.org/wiki/File:Duke_Wave.png 2 : https://www.flickr.com/photos/blakespot/9736880609 4,5,6,47,48,49,50 : https://secure.flickr.com/photos/heliomedeiros/4512110770 5,6,14,15,48,49,50 : https://secure.flickr.com/photos/esti/4638056301 6,49,50 : https://secure.flickr.com/photos/chris_carter_/6332387890 8,9,10 : https://secure.flickr.com/photos/glowform/3779533414 9,10 : https://secure.flickr.com/photos/torek/14421164021 10 : https://secure.flickr.com/photos/86639298@N02/8559725421 11 : https://secure.flickr.com/photos/71508688@N00/4767540545 13,14,15 : https://secure.flickr.com/photos/orcmid/3879260297 15,50 : https://commons.wikimedia.org/wiki/File:IntelliJ_IDEA_12.0.4_Ultimate.jp g 16,17 : https://secure.flickr.com/photos/croytaque/4956387743/ 18 : https://secure.flickr.com/photos/philliecasablanca/2455765649 21, 22, 23, 24 : © Facebook 22, 23, 24 : https://secure.flickr.com/photos/infusionsoft/4752463128 24 : https://secure.flickr.com/photos/alainbachellier/6155667900 33, 34, 35, 36, 37, 38 : https://www.flickr.com/photos/monkeyc/322654818/ 36, 37, 38 : https://www.iconfinder.com/icons/10441/gear_icon 37, 38, 43, 44, 45 : https://www.iconfinder.com/icons/3474/idea_light_bulb_tip_icon 40, 41 : https://www.iconfinder.com/icons/88543/document_write_icon 41 : https://www.iconfinder.com/icons/49621/chat_speak_talk_translate_icon 45 : https://www.iconfinder.com/icons/289357/eye_find_search_see_view_icon Merci pour les photos 

    ×