SlideShare une entreprise Scribd logo
1  sur  29
Les bugs sont vos alliés : ne manquez
pas cette opportunité d’amélioration
continue
Par Dennis Bordet
Dennis BORDET, développeur Android
chez BAM
Tech Lead Android
Investigateur de bug / sourcier
Organisateur de la formation des développeurs à
l’investigation des bugs
Serial bug fixer
Dennis BORDET n’a pas toujours été
investigateur de bug
Début de carrière dans une grande ESN
Corriger les bugs ne veut pas dire les étudier
BAM → Lean → limiter le gaspillage
→ étude des problèmes
C’est quoi un bug ?
C’est quoi un bug ?
C’est un comportement qui ne correspond
pas à ce qui est indiqué dans les specs
C’est quoi un bug ?
C’est un comportement qui ne correspond
pas à ce qui est indiqué dans les specs
C’est quoi un bug ?
Tout comportement inattendu pour l’utilisateur
ou le client.
C’est quoi un bug ?
Tout comportement inattendu pour l’utilisateur
ou le client.
Par exemple :
- Un utilisateur a peu de réseau
- l’utilisateur clique sur un bouton,
- Mon app envoie une requête HTTP,
- L’app n’a pas de témoin de loading,
- la requete HTTP répond 10 secondes plus
tard avec succès
- L’utilisateur a rencontré un bug
Comment identifier et corriger un bug ?
Désolé, cette conférence n’en parle pas.
🔗debug.guide
Pré-requis: Avoir identifié le bug Étudier l’introduction du bug ET sa détection
tardive
Comment étudier un bug ?
Le QRQC : la méthode
pour tirer des
apprentissages de nos
bugs
1. Contexte et identification du
problème
Comment étudier un bug ?
- ligne de code en erreur
- le commit d’introduction
- la merge request
- le ticket / l’US
- le geste de
développement / de
conception
- La ligne de code qui
corrige le bug
Comprendre l’intention du
développement
1. Contexte et identification du problème
→ Pour mieux identifier les causes
→ Pour challenger l’analyse
→ Pour partager les
apprentissages
Le QRQC : la méthode
pour tirer des
apprentissages de nos
bugs
1. Contexte et
identification du
problème
2. Trouver des hypothèses
de cause d’introduction
Comment étudier un bug ?
Points clefs
- Se remettre en question
- Ne pas rejeter la faute
- les 4M
- Imbriquer les “pourquoi ?”
- Creuser les causes internes
- Ne pas mélanger les causes et solutions
2. Trouver des hypothèses de cause d’introduction
Causes typiques:
- Archi
- Geste de
développement
- Découpage
- DDD
- Design pattern
- Structure de donnée
Le QRQC : la méthode
pour tirer des
apprentissages de nos
bugs
1. Contexte et
identification du
problème
2. Trouver des hypothèses
de cause d’introduction
Comment étudier un bug ?
3. Étudier la détection tardive du
bug
3. Étudier la détection tardive du bug
Ouverture MR
Merge
Master Release
Dev Relecture Validation
Recette
Prod
A B C D
Pourquoi mon bug n’a pas été détecté dans les
points de contrôle précédents ?
→ même méthode que les hypothèses d’introduction
3. Étudier la détection tardive du bug
Plus un bug est détecté tard, plus il va être couteux
Le QRQC : la méthode
pour tirer des
apprentissages de nos
bugs
1. Contexte et
identification du
problème
2. Trouver des hypothèses
de cause d’introduction
Comment étudier un bug ?
3. Étudier la détection
tardive du bug
4. Définir des actions
-> Pour empêcher une ré-
introduction du bug
-> Pour détecter plus tôt une
introduction du bug
-> Pour chercher d’autres
occurrences de ce bug
Une ou plusieurs actions à
long terme.
Identifiez la plus intéressante,
pragmatique, rentable, rapide,
motivante
4. Définir des actions
Une action court terme pour
corriger le bug.
Dans le cas où la
correction originale ne faisait
que contourner le bug.
Dans le cas où il existe
d’autres occurrences du bug
Doit amener à un changement
dans le système de travail de
l’équipe
En lien avec la cause du bug
4. Définir des actions
Ne doit pas alourdir le
processus de développement
Quels apprentissages tirer des bugs ?
KPI précis sur vos bugs
● Délai de détection
● Phase de détection (A, B, C, D)
● Période de détection
● Comparaison pour chaque release /
feature
Quels sont vos points faibles ?
● Chaque bug, un point faible
● Classement des points faibles
● -> Prise d’action priorisée
Outils de travail manquants / à
améliorer ?
● Les recherches de solutions vont
vous pousser à améliorer vos outils
de travail
○ Linter
○ CI/CD
○ Tests
○ Doc
● Veille régulière sur ce qui se fait
Diffusez l’apprentissage
● A votre équipe
● A vos équipes
● Les autres équipes vont vous
apprendre des choses
Merci. N’hésitez pas à poser vos questions
Ouverture
Dantotsu
Un livre sur l’amélioration de la qualité
chez Toyota.
Parle de la gestion des défauts, entre
autres.
Catégorisation ABCD
RTFT
Right the first time
Compter le nombre d’essais avant d’avoir implémenté votre
ticket
=> TDD
=> Nouveaux points faibles unlocked

Contenu connexe

Similaire à QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’amélioration continue.pptx

Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationPHPPRO
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)French Scrum User Group
 
Mesurez votre libido agile
Mesurez votre libido agileMesurez votre libido agile
Mesurez votre libido agileNicholas Suter
 
Tester votre libido Agile
Tester votre libido AgileTester votre libido Agile
Tester votre libido AgileCellenza
 
Le stress du référenceur - Conférence SEO CAMP'us Paris 2021 - Philippe Blanc
Le stress du référenceur - Conférence SEO CAMP'us Paris 2021 - Philippe BlancLe stress du référenceur - Conférence SEO CAMP'us Paris 2021 - Philippe Blanc
Le stress du référenceur - Conférence SEO CAMP'us Paris 2021 - Philippe BlancPhilippe Blanc
 
Comment réussir son étude marketing en ligne ?
Comment réussir son étude marketing en ligne ?Comment réussir son étude marketing en ligne ?
Comment réussir son étude marketing en ligne ?AreYouNet.com
 
SEO : le stress de la pénalité
SEO : le stress de la pénalitéSEO : le stress de la pénalité
SEO : le stress de la pénalitéLaurent Peyrat
 
Radical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxRadical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxFlavian Hautbois
 
Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...
Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...
Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...OCTO Technology
 
Impacts de l'adoption de Scrum
Impacts de l'adoption de ScrumImpacts de l'adoption de Scrum
Impacts de l'adoption de ScrumPyxis Technologies
 
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
 
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
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011 ALTER WAY
 
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...Olivier Destrebecq
 
Les Secrets pour Réussir une bonne Démo
Les Secrets pour Réussir une bonne DémoLes Secrets pour Réussir une bonne Démo
Les Secrets pour Réussir une bonne DémoFred Canevet
 
Comment prévenir ou sortir d'une pénalité Google ?
Comment prévenir ou sortir d'une pénalité Google ?Comment prévenir ou sortir d'une pénalité Google ?
Comment prévenir ou sortir d'une pénalité Google ?semrush_webinars
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !Lucian Precup
 
Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...Antonio Fontes
 

Similaire à QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’amélioration continue.pptx (20)

Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
 
Mesurez votre libido agile
Mesurez votre libido agileMesurez votre libido agile
Mesurez votre libido agile
 
Tester votre libido Agile
Tester votre libido AgileTester votre libido Agile
Tester votre libido Agile
 
Le stress du référenceur - Conférence SEO CAMP'us Paris 2021 - Philippe Blanc
Le stress du référenceur - Conférence SEO CAMP'us Paris 2021 - Philippe BlancLe stress du référenceur - Conférence SEO CAMP'us Paris 2021 - Philippe Blanc
Le stress du référenceur - Conférence SEO CAMP'us Paris 2021 - Philippe Blanc
 
Comment réussir son étude marketing en ligne ?
Comment réussir son étude marketing en ligne ?Comment réussir son étude marketing en ligne ?
Comment réussir son étude marketing en ligne ?
 
SEO : le stress de la pénalité
SEO : le stress de la pénalitéSEO : le stress de la pénalité
SEO : le stress de la pénalité
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 
Dette technique et WordPress
Dette technique et WordPressDette technique et WordPress
Dette technique et WordPress
 
Radical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptxRadical Quality From Toyota to Tech - Devoxx France.pptx
Radical Quality From Toyota to Tech - Devoxx France.pptx
 
Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...
Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...
Petit-déjeuner "Cultiver l'art du code de qualité... Afin de livrer plus vite...
 
Impacts de l'adoption de Scrum
Impacts de l'adoption de ScrumImpacts de l'adoption de Scrum
Impacts de l'adoption de Scrum
 
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)
 
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...
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
 
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
 
Les Secrets pour Réussir une bonne Démo
Les Secrets pour Réussir une bonne DémoLes Secrets pour Réussir une bonne Démo
Les Secrets pour Réussir une bonne Démo
 
Comment prévenir ou sortir d'une pénalité Google ?
Comment prévenir ou sortir d'une pénalité Google ?Comment prévenir ou sortir d'une pénalité Google ?
Comment prévenir ou sortir d'une pénalité Google ?
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
 
Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...
 

QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’amélioration continue.pptx

  • 1. Les bugs sont vos alliés : ne manquez pas cette opportunité d’amélioration continue Par Dennis Bordet
  • 2. Dennis BORDET, développeur Android chez BAM Tech Lead Android Investigateur de bug / sourcier Organisateur de la formation des développeurs à l’investigation des bugs Serial bug fixer
  • 3. Dennis BORDET n’a pas toujours été investigateur de bug Début de carrière dans une grande ESN Corriger les bugs ne veut pas dire les étudier BAM → Lean → limiter le gaspillage → étude des problèmes
  • 5. C’est quoi un bug ? C’est un comportement qui ne correspond pas à ce qui est indiqué dans les specs
  • 6. C’est quoi un bug ? C’est un comportement qui ne correspond pas à ce qui est indiqué dans les specs
  • 7. C’est quoi un bug ? Tout comportement inattendu pour l’utilisateur ou le client.
  • 8. C’est quoi un bug ? Tout comportement inattendu pour l’utilisateur ou le client. Par exemple : - Un utilisateur a peu de réseau - l’utilisateur clique sur un bouton, - Mon app envoie une requête HTTP, - L’app n’a pas de témoin de loading, - la requete HTTP répond 10 secondes plus tard avec succès - L’utilisateur a rencontré un bug
  • 9. Comment identifier et corriger un bug ? Désolé, cette conférence n’en parle pas. 🔗debug.guide
  • 10. Pré-requis: Avoir identifié le bug Étudier l’introduction du bug ET sa détection tardive Comment étudier un bug ?
  • 11. Le QRQC : la méthode pour tirer des apprentissages de nos bugs 1. Contexte et identification du problème Comment étudier un bug ?
  • 12. - ligne de code en erreur - le commit d’introduction - la merge request - le ticket / l’US - le geste de développement / de conception - La ligne de code qui corrige le bug Comprendre l’intention du développement 1. Contexte et identification du problème → Pour mieux identifier les causes → Pour challenger l’analyse → Pour partager les apprentissages
  • 13. Le QRQC : la méthode pour tirer des apprentissages de nos bugs 1. Contexte et identification du problème 2. Trouver des hypothèses de cause d’introduction Comment étudier un bug ?
  • 14. Points clefs - Se remettre en question - Ne pas rejeter la faute - les 4M - Imbriquer les “pourquoi ?” - Creuser les causes internes - Ne pas mélanger les causes et solutions 2. Trouver des hypothèses de cause d’introduction Causes typiques: - Archi - Geste de développement - Découpage - DDD - Design pattern - Structure de donnée
  • 15. Le QRQC : la méthode pour tirer des apprentissages de nos bugs 1. Contexte et identification du problème 2. Trouver des hypothèses de cause d’introduction Comment étudier un bug ? 3. Étudier la détection tardive du bug
  • 16. 3. Étudier la détection tardive du bug Ouverture MR Merge Master Release Dev Relecture Validation Recette Prod A B C D
  • 17. Pourquoi mon bug n’a pas été détecté dans les points de contrôle précédents ? → même méthode que les hypothèses d’introduction 3. Étudier la détection tardive du bug Plus un bug est détecté tard, plus il va être couteux
  • 18. Le QRQC : la méthode pour tirer des apprentissages de nos bugs 1. Contexte et identification du problème 2. Trouver des hypothèses de cause d’introduction Comment étudier un bug ? 3. Étudier la détection tardive du bug 4. Définir des actions
  • 19. -> Pour empêcher une ré- introduction du bug -> Pour détecter plus tôt une introduction du bug -> Pour chercher d’autres occurrences de ce bug Une ou plusieurs actions à long terme. Identifiez la plus intéressante, pragmatique, rentable, rapide, motivante 4. Définir des actions Une action court terme pour corriger le bug. Dans le cas où la correction originale ne faisait que contourner le bug. Dans le cas où il existe d’autres occurrences du bug
  • 20. Doit amener à un changement dans le système de travail de l’équipe En lien avec la cause du bug 4. Définir des actions Ne doit pas alourdir le processus de développement
  • 22. KPI précis sur vos bugs ● Délai de détection ● Phase de détection (A, B, C, D) ● Période de détection ● Comparaison pour chaque release / feature
  • 23. Quels sont vos points faibles ? ● Chaque bug, un point faible ● Classement des points faibles ● -> Prise d’action priorisée
  • 24. Outils de travail manquants / à améliorer ? ● Les recherches de solutions vont vous pousser à améliorer vos outils de travail ○ Linter ○ CI/CD ○ Tests ○ Doc ● Veille régulière sur ce qui se fait
  • 25. Diffusez l’apprentissage ● A votre équipe ● A vos équipes ● Les autres équipes vont vous apprendre des choses
  • 26. Merci. N’hésitez pas à poser vos questions
  • 28. Dantotsu Un livre sur l’amélioration de la qualité chez Toyota. Parle de la gestion des défauts, entre autres. Catégorisation ABCD
  • 29. RTFT Right the first time Compter le nombre d’essais avant d’avoir implémenté votre ticket => TDD => Nouveaux points faibles unlocked

Notes de l'éditeur

  1. Ecouter podcast de marek: compter les bugs jusqu’a 0: 11min30
  2. E
  3. Je peux vous conseiller ce très bon site qui vous aidera à debugguer en 20 etapes. Attention la première va vous surprendre
  4. Se remettre en question se mettre dans un objectif d’apprentissage, pas dans une attitude de justification Ne pas rejeter la faute sur les autres Si chacun s’approprie une part de responsabilité c’est souvent bien plus constructif s’aider des 4M pour trouver les causes man -> formation, equipe, method -> methode de travail adéquate au sujet ? material -> input sont bons ? machine -> les outils de dev sont OK ? Imbriquer les “pourquoi?” A la maniere un peu bete d’un enfant qui repete sans cesse pourquoi ? afin de trouver la cause en profondeur Ca ne sert a rien de creuser des causes externes sur lesquelles vous n’avez pas la main Si une librairie que vous utilisez est bugguée, a la limite vous pouvez remonter le probleme, ouvrir une issue sur github, mais concentrez vous sur ce que vous pouvez vraiment faire a votre echelle. Est ce que c’est la lib adequate ? Est ce qu’on l’a bien intégrée ? Ne pas mélanger les causes et solutions “la cause c’est que la CI ne nous remonte pas le problème au developpeur” -> KO “la cause c’est que le développeur a pu creer ce probleme sans s’en apercevoir” -> c’est deja mieux (Attention sur cet exemple c’est une cause de non détection, pas d’introduction) Au niveau des causes typiques, on peut rechercher plusieurs choses: archi au sens large: ca va de -> Est ce que les responsabilités des composants sont bien définie Nommage adéquat ? Gest de dev Refactorisation bien effectuée ? Librairie utilisée correctement ? Découpage : conception, implementation commits un peu trop gros Merge request trop grosse Le ticket lié aux developpement n’est pas bien décrit techniquement ou fonctionnellement DDD Est ce que le fonctionnel semble bien compris ? Code smells sur le nommage ou la conception encore une fois Design pattern Bien implémenté adapté ? anti pattern Structure de donnée Est ce que la structure de donnée choisie est celle qui est la mieux adapté pour mon cas ?
  5. L’action court terme s’il y en a une, il faut la considérer comme obligatoire. ( -> Vous corrigez le bug pour de vrai si jamais votre premiere correction ne traitait pas la root cause ou bien ne faisait que contourner le probleme -> vous corrigez les autres occurences (ou a minima vous les identifiez dans votre DB de bug) )
  6. Doit amener à un changement dans le système de travail de l’équipe sinon vous risquer de blamer une personne plutot que de permettre à l’équipe de s’améliorer Ex: L’action “former Kevin aux coroutines” ca n’est pas une bonne action. Alors que “s’assurer que toute l’équipe est formée aux coroutines et améliorer l’onboarding des nouveaux sur le projet (et meme peut etre dans l’entreprise)” ca, ca amène du changement Petit commentaire, la formation est rarement la solution au problème, il manque souvent un filet de sécurité pour ne pas insérer le problème Deuxiemement L’action Ne doit pas alourdir le processus de développement Sinon la qualité ne sera pas priorisé car trop couteuse ou embetante. Par exemple: avant chaque commit, le developpeur doit relire son code et cocher les 10 cases du commit parfait. C’est trop lourd, il ne le fera pas Troisiemement, l’action doit etre en lien avec la (ou les) rootcauses, sinon on va traiter des causes superficielles qui risquent de ne rien apporter
  7. Ca c’est deja une seconde étape, vous pouvez prendre des actions sur vos bugs meme sans avoir priorisé ses actions par rapport à votre base de donnée d’analyse de bug