SlideShare una empresa de Scribd logo
1 de 46
Sur le chemin de la qualité
Sur le chemin de la qualité : en
équipe et dès demain
Julien Jakubowski - @jak78
GDG Lille
2Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Qui suis-je ?
Julien Jakubowski
Consultant-codeur
OCTO Nord
@jak78
3Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Pourquoi cette conférence ?
@JeromeAvoustin & @superalienninja
4Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
DISCLAIMERS
☉C’est mon vécu
☉Ca sera dur
☉Contexte :
> Equipe < 10 personnes colocalisée
> L’équipe souffre de la non-qualité
> Non applicable avec manager
intrusif
>
Donc vous voulez changer
les choses ?
6Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Attention à la condescendance
7Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Adopter la bonne posture
☉Humilité, au service de l’équipe
☉Bien connaître ce que l’équipe veut
améliorer
> Ce que vous allez proposer ensuite doit
être aligné avec les objectifs de l’équipe
8Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Un problème de qualité ?
☉A quoi on reconnaît une qualité de code
insuffisante ?
☉S’intéresser aux impacts de la non-qualité,
ce que tout le monde voit
9Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Impacts de la non-qualité
☉Time to market plus long
☉Indisponibilités accrues
☉Désengagement des
développeurs
10Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
"If you can not measure it, you can not improve it. »
- Lord Kelvin
11Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Mesurer
☉Nombre d’anomalies par
fonctionnalités/User Story
☉Nombre d’anomalies
détectées avant une
MEP/une livraison
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Phase d’observation et d’imitation – 1 semaine
☉Observer en binômant
☉Faire comme fait l’équipe
et taire ses réflexes
☉Récupérer des
symptômes et des dixits
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Phase d’observation et d’imitation – symptômes
> Des commits le soir voire la nuit
> Une moyenne de 5 livrables par itération
> Nombre de bugs dans le backlog en augmentation
#DevoxxFR #TechLead @damienbeaufils
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Phase d’observation et d’imitation – exemples de dixits
> « Le build est rouge mais c’est normal. Relance-le et ça devrait
passer »
> « Tester unitairement c’est compliqué sur le projet »
> « On reçoit tellement de mails de Jenkins qu’on ne les lit plus »
> « Hier j’ai passé mon après-midi à essayer de corriger le build »
#DevoxxFR #TechLead @damienbeaufils
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Phase d’observation et d’imitation - buts
> Trouver les plus grosses douleurs
> Connaître ce qui a déjà été essayé et les
blocages rencontrés
#DevoxxFR #TechLead @damienbeaufils
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Par où commencer ?
è Par ce qui peut résoudre des problèmes concrets
observés par l’équipe
Amélioration continue : petits pas
Git
TDD
Pair programming
Continuous integration Méthodes plus petites
BDD DDD
« ça marche sur ma machine pourtant »
Build plus rapide
Moins de couplage
Standards
Linter
Selenium
>Amélioration continue
18Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Management visuel
16
17
15
8
35
32
17
47
46
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
Où est le problème?
Fig. 1 Fig. 2
19Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Management visuel
0
100
200
300
400
500
600
700
800
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Stock de bugs
20Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Management visuel - exemples de board
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Rétrospective
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
L’appli a planté
23Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
L’appli a planté – on va fixer…
Les utilisateurs n’ont plus accès à
l’application
Les requêtes plantent en
NullPointerException
La propriété nodeparams.country
est null.
è Pourquoi ?
è Pourquoi ?
è OK on va fixer
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Un mois plus tard…
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Ce qu’on aurait pu faire
Les utilisateurs n’ont plus accès à l’application Pourquoi ?
Les requêtes plantent en NullPointerException Pourquoi ?
La propriété nodeparams.country est null. Pourquoi ?
Elle n’a pas été précisée lors du déploiement Pourquoi ?
On l’a oublié Pourquoi ?
è Contre-mesure : l’ajouter dans la checklist de déploiement
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
5 pourquoi et contre-mesure
Les clients ne reçoivent plus les devis par mail Pourquoi ?
Le worker n’envoie plus les mails Pourquoi ?
Le code échoue à parser une chaîne en date Pourquoi ?
La méthode send(String body, String
sendDate) a été appelée en inversant les
arguments
Pourquoi ?
Le développeur n’a pas eu de feedback sur cette
erreur
Pourquoi ?
L’argument sendDate n’est pas typé
èContre-mesure : donner un type Date à sendDate
èCode review ? Tests ? Standards de code ?
>
Les pratiques de
développement de qualité
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Comment j’ai introduit chaque pratique
☉En lien avec des problèmes observés
☉Exemplarité : je commence par me l’appliquer à moi-
même
☉Alliés, first-follower
☉Communication sur ce que je fais et sur les résultats
> Nb de défauts trouvés…
> « j’ai apprécié »
> Rétrospective
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Pratiques collaboratives : souvent en premier
☉Exemples:
> Revues de code
> Pair programming
> Live-codings, dojos…
☉Pourquoi en premier ?
> Trouvent beaucoup de bugs
> Montrent ce qu’on fait de nouveau
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
La revue de code
31Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Trouver un maximum de défauts au plus tôtCoûtdecorrection
Correction en : dev recette production
32Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Chez Raytheon
ROI de 4 pour 1
Chez CISCO : 50% de réduction des
défauts
Le R.O.I. de la revue de code
33Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Le R.O.I. de la revue de code
34Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Revue collective Revue par un pair Pair programming
Efficience (nombre
de défauts détectés)
Communication,
diffusion
Facilité de mise en
oeuvre
Avantages Plus d’impact sur la
qualité
Plus facile à
démarrer
Montrer les
pratiques
A
A
B B
B
C A B
Les formats de revue
A
35Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
« oui mais pendant qu’on
revoit, on ne code pas, on perd
du temps »
Combien de défauts a-t-on évité
en contre-partie ? Combien de
temps prennent les défauts
« coder à 2 c’est aller 2x moins
vite »
On mesure ?
Moins de choses à revoir
« critiquer mon code, c’est me
critiquer moi »
Dur avec le code, doux avec les
gens
Revue de code et pair programming - objections
36Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Dur avec le code, doux avec les gens
X Tu as fait une erreur
√ Il y a un bug quand on met une
chaîne vide
X Ton code c’est de la m*rde
√ Je vois une méthode de plus
de 30 lignes, ce n’est pas notre
standard
37Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Dur avec le code, doux avec les gens
☉Je donne l’exemple
> Je commence par faire revoir mon code
> Je travaille mon feedback
☉Revue collective : puissant, mais peut être
intimidant au début
38Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Mesures des revues
☉Nombre de défauts trouvés
☉Nombre de lignes revues
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Pair programming, MOB programming, katas
☉Ce que ça a amélioré
> Nombre de retours en revue
> Partage de connaissances,
first-follower
☉Comment j’ai commencé
> Par des demandes d’aide
> Devenir une habitude
> Puis : MOB
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Tests unitaires automatisés - pourquoi
☉Temps de tests manuels
☉Temps de debugging
☉Feedback rapide
☉Design du code
Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Tests unitaires automatisés – comment j’ai commencé
☉Montrer le geste TDD : plus facile avec un minimum de
pratiques collaboratives
☉Sur du code existant sans tests, on n’écrit pas de
tests sans raison
> Chaque bugfix est une opportunité
☉J’écris le code neuf systématiquement en TDD
42Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
« écrire des tests, ça prend trop
de temps »
Combien de temps coûtent les bugs ?
Les tests et le debug manuels ?
« ça prend trop de temps
d’ajouter des tests sur tout le
code qu’on a déjà »
Oui, c’est vrai :
faire évol par évol / bugfix par bugfix
« mon code n’est pas testable » Techniques: livre "working effectively
with legacy code", katas…
Essayer en timebox
Tests unitaires automatisés – objections reçues
>Gérer la motivation
44Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Gérer la motivation
☉Savourer les petites victoires
☉Observer les mesures
☉Se reposer sur les alliés
45Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
Ecouter l’équipe
☉Respecter le rythme de l’équipe
> Observer comment elle intègre chaque pratique
> Constater l’impact
> Les résistances sont une information utile
☉Je n’ai pas le monopole des bonnes idées
> Le changement peut venir de chacun
46Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski
L’essentiel
Posture au service des objectifs de l’équipe
Amélioration à partir des problèmes observés
Ne pas se contenter de fixer un bug
Revue de code et pair programming FTW!
☉Pensez aux formations et accompagnement
☉Si le manager ne suit pas : vous m’invitez en BBL ;-)
☉Tenez-moi au courant de vos essais ! è @jak78

Más contenido relacionado

La actualidad más candente

Assurance Qualité logicielle
Assurance Qualité logicielleAssurance Qualité logicielle
Assurance Qualité logicielleSylvain Leroy
 
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open sourceSoirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open sourceFrançois Le Droff
 
Model de qualité @ msdevmtl
Model de qualité @ msdevmtlModel de qualité @ msdevmtl
Model de qualité @ msdevmtlMSDEVMTL
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanshipylemoigne
 
Qu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéQu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéSylvain Leroy
 
Clean code game - Agile France 2013
Clean code game - Agile France 2013Clean code game - Agile France 2013
Clean code game - Agile France 2013Michel Domenjoud
 
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.12019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1TelecomValley
 
Échouer pour mieux réussir - Game Days
Échouer pour mieux réussir - Game Days Échouer pour mieux réussir - Game Days
Échouer pour mieux réussir - Game Days Léo Cavaillé
 
Software Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTourSoftware Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTourJean-Laurent de Morlhon
 
Comment être Tech Lead dans une pizza team XXL sans finir sous l'eau ?
Comment être Tech Lead dans une pizza team XXL sans finir sous l'eau ?Comment être Tech Lead dans une pizza team XXL sans finir sous l'eau ?
Comment être Tech Lead dans une pizza team XXL sans finir sous l'eau ?Damien Beaufils
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAssociation Agile Nantes
 
Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Sylvain Leroy
 
Esclave de votre dette technique?
Esclave de votre dette technique?Esclave de votre dette technique?
Esclave de votre dette technique?Elapse Technologies
 
Devoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous DeliveryDevoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous DeliveryDiego Lemos
 
Developement logiciel: comment livrer de la qualite ?
Developement logiciel: comment livrer  de la qualite ?Developement logiciel: comment livrer  de la qualite ?
Developement logiciel: comment livrer de la qualite ?Innobec
 
Développer en mode kick-ass à Devoxx France
Développer en mode kick-ass à Devoxx FranceDévelopper en mode kick-ass à Devoxx France
Développer en mode kick-ass à Devoxx FranceSamuel Le Berrigaud
 
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vieJean-Philippe Briend
 
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...DC CONSULTANTS
 

La actualidad más candente (20)

Assurance Qualité logicielle
Assurance Qualité logicielleAssurance Qualité logicielle
Assurance Qualité logicielle
 
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open sourceSoirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
 
Model de qualité @ msdevmtl
Model de qualité @ msdevmtlModel de qualité @ msdevmtl
Model de qualité @ msdevmtl
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 
Qu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéQu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualité
 
Clean code game - Agile France 2013
Clean code game - Agile France 2013Clean code game - Agile France 2013
Clean code game - Agile France 2013
 
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.12019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
 
Échouer pour mieux réussir - Game Days
Échouer pour mieux réussir - Game Days Échouer pour mieux réussir - Game Days
Échouer pour mieux réussir - Game Days
 
Software Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTourSoftware Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTour
 
Comment être Tech Lead dans une pizza team XXL sans finir sous l'eau ?
Comment être Tech Lead dans une pizza team XXL sans finir sous l'eau ?Comment être Tech Lead dans une pizza team XXL sans finir sous l'eau ?
Comment être Tech Lead dans une pizza team XXL sans finir sous l'eau ?
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
 
Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)
 
Assurance qualité
Assurance qualitéAssurance qualité
Assurance qualité
 
Esclave de votre dette technique?
Esclave de votre dette technique?Esclave de votre dette technique?
Esclave de votre dette technique?
 
Devoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous DeliveryDevoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous Delivery
 
Developement logiciel: comment livrer de la qualite ?
Developement logiciel: comment livrer  de la qualite ?Developement logiciel: comment livrer  de la qualite ?
Developement logiciel: comment livrer de la qualite ?
 
Développer en mode kick-ass à Devoxx France
Développer en mode kick-ass à Devoxx FranceDévelopper en mode kick-ass à Devoxx France
Développer en mode kick-ass à Devoxx France
 
Futur tunis
Futur tunisFutur tunis
Futur tunis
 
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
 
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
 

Similar a Sur le chemin de la qualité - GDG Lille

Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défautsJulien Jakubowski
 
Agile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAgile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAntoine Blk
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
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
 
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...DennisBordet1
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & opsQuentin Adam
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?XP Day CH
 
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7Livraison continue avec Drupal 7
Livraison continue avec Drupal 7Arnaud Huon
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survieNicolas VERINAUD
 
Développer en mode kick-ass à Scrum Day
Développer en mode kick-ass à Scrum DayDévelopper en mode kick-ass à Scrum Day
Développer en mode kick-ass à Scrum DaySamuel Le Berrigaud
 
Découvrez enfin ce qui est réellement vu !
Découvrez enfin ce qui est réellement vu !Découvrez enfin ce qui est réellement vu !
Découvrez enfin ce qui est réellement vu !ALTICS
 
Surmonter les anti-patrons culturels nuisant à DevOps
Surmonter les anti-patrons culturels nuisant à DevOpsSurmonter les anti-patrons culturels nuisant à DevOps
Surmonter les anti-patrons culturels nuisant à DevOpsAgile Montréal
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - IntroductionOlivier ETIENNE
 
Lean Kanban Une Inversion de Controle
Lean Kanban Une Inversion de ControleLean Kanban Une Inversion de Controle
Lean Kanban Une Inversion de ControleDimitri Baeli
 
Réussissez le développement de votre prochaine application web ou mobile
Réussissez le développement de votre prochaine application web ou mobileRéussissez le développement de votre prochaine application web ou mobile
Réussissez le développement de votre prochaine application web ou mobileOCTO Technology Suisse
 
Développement artisanal d'un logiciel en 20 itérations - Paris Web 2016
Développement artisanal d'un logiciel en 20 itérations - Paris Web 2016Développement artisanal d'un logiciel en 20 itérations - Paris Web 2016
Développement artisanal d'un logiciel en 20 itérations - Paris Web 2016Damien Beaufils
 
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
 
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
 

Similar a Sur le chemin de la qualité - GDG Lille (20)

Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défauts
 
Agile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAgile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defauts
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
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...
 
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...
QUICKIE: Les bugs sont vos alliés _ saisissez cette opportunité d’améliora...
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
 
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survie
 
Développer en mode kick-ass à Scrum Day
Développer en mode kick-ass à Scrum DayDévelopper en mode kick-ass à Scrum Day
Développer en mode kick-ass à Scrum Day
 
Découvrez enfin ce qui est réellement vu !
Découvrez enfin ce qui est réellement vu !Découvrez enfin ce qui est réellement vu !
Découvrez enfin ce qui est réellement vu !
 
Surmonter les anti-patrons culturels nuisant à DevOps
Surmonter les anti-patrons culturels nuisant à DevOpsSurmonter les anti-patrons culturels nuisant à DevOps
Surmonter les anti-patrons culturels nuisant à DevOps
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - Introduction
 
Lean Kanban Une Inversion de Controle
Lean Kanban Une Inversion de ControleLean Kanban Une Inversion de Controle
Lean Kanban Une Inversion de Controle
 
Réussissez le développement de votre prochaine application web ou mobile
Réussissez le développement de votre prochaine application web ou mobileRéussissez le développement de votre prochaine application web ou mobile
Réussissez le développement de votre prochaine application web ou mobile
 
Développement artisanal d'un logiciel en 20 itérations - Paris Web 2016
Développement artisanal d'un logiciel en 20 itérations - Paris Web 2016Développement artisanal d'un logiciel en 20 itérations - Paris Web 2016
Développement artisanal d'un logiciel en 20 itérations - Paris Web 2016
 
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
 
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)
 

Sur le chemin de la qualité - GDG Lille

  • 1. Sur le chemin de la qualité Sur le chemin de la qualité : en équipe et dès demain Julien Jakubowski - @jak78 GDG Lille
  • 2. 2Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Qui suis-je ? Julien Jakubowski Consultant-codeur OCTO Nord @jak78
  • 3. 3Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Pourquoi cette conférence ? @JeromeAvoustin & @superalienninja
  • 4. 4Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski DISCLAIMERS ☉C’est mon vécu ☉Ca sera dur ☉Contexte : > Equipe < 10 personnes colocalisée > L’équipe souffre de la non-qualité > Non applicable avec manager intrusif
  • 5. > Donc vous voulez changer les choses ?
  • 6. 6Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Attention à la condescendance
  • 7. 7Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Adopter la bonne posture ☉Humilité, au service de l’équipe ☉Bien connaître ce que l’équipe veut améliorer > Ce que vous allez proposer ensuite doit être aligné avec les objectifs de l’équipe
  • 8. 8Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Un problème de qualité ? ☉A quoi on reconnaît une qualité de code insuffisante ? ☉S’intéresser aux impacts de la non-qualité, ce que tout le monde voit
  • 9. 9Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Impacts de la non-qualité ☉Time to market plus long ☉Indisponibilités accrues ☉Désengagement des développeurs
  • 10. 10Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski "If you can not measure it, you can not improve it. » - Lord Kelvin
  • 11. 11Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Mesurer ☉Nombre d’anomalies par fonctionnalités/User Story ☉Nombre d’anomalies détectées avant une MEP/une livraison
  • 12. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Phase d’observation et d’imitation – 1 semaine ☉Observer en binômant ☉Faire comme fait l’équipe et taire ses réflexes ☉Récupérer des symptômes et des dixits
  • 13. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Phase d’observation et d’imitation – symptômes > Des commits le soir voire la nuit > Une moyenne de 5 livrables par itération > Nombre de bugs dans le backlog en augmentation #DevoxxFR #TechLead @damienbeaufils
  • 14. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Phase d’observation et d’imitation – exemples de dixits > « Le build est rouge mais c’est normal. Relance-le et ça devrait passer » > « Tester unitairement c’est compliqué sur le projet » > « On reçoit tellement de mails de Jenkins qu’on ne les lit plus » > « Hier j’ai passé mon après-midi à essayer de corriger le build » #DevoxxFR #TechLead @damienbeaufils
  • 15. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Phase d’observation et d’imitation - buts > Trouver les plus grosses douleurs > Connaître ce qui a déjà été essayé et les blocages rencontrés #DevoxxFR #TechLead @damienbeaufils
  • 16. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Par où commencer ? è Par ce qui peut résoudre des problèmes concrets observés par l’équipe Amélioration continue : petits pas Git TDD Pair programming Continuous integration Méthodes plus petites BDD DDD « ça marche sur ma machine pourtant » Build plus rapide Moins de couplage Standards Linter Selenium
  • 18. 18Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Management visuel 16 17 15 8 35 32 17 47 46 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 Où est le problème? Fig. 1 Fig. 2
  • 19. 19Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Management visuel 0 100 200 300 400 500 600 700 800 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Stock de bugs
  • 20. 20Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Management visuel - exemples de board
  • 21. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Rétrospective
  • 22. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski L’appli a planté
  • 23. 23Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski L’appli a planté – on va fixer… Les utilisateurs n’ont plus accès à l’application Les requêtes plantent en NullPointerException La propriété nodeparams.country est null. è Pourquoi ? è Pourquoi ? è OK on va fixer
  • 24. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Un mois plus tard…
  • 25. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Ce qu’on aurait pu faire Les utilisateurs n’ont plus accès à l’application Pourquoi ? Les requêtes plantent en NullPointerException Pourquoi ? La propriété nodeparams.country est null. Pourquoi ? Elle n’a pas été précisée lors du déploiement Pourquoi ? On l’a oublié Pourquoi ? è Contre-mesure : l’ajouter dans la checklist de déploiement
  • 26. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski 5 pourquoi et contre-mesure Les clients ne reçoivent plus les devis par mail Pourquoi ? Le worker n’envoie plus les mails Pourquoi ? Le code échoue à parser une chaîne en date Pourquoi ? La méthode send(String body, String sendDate) a été appelée en inversant les arguments Pourquoi ? Le développeur n’a pas eu de feedback sur cette erreur Pourquoi ? L’argument sendDate n’est pas typé èContre-mesure : donner un type Date à sendDate èCode review ? Tests ? Standards de code ?
  • 28. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Comment j’ai introduit chaque pratique ☉En lien avec des problèmes observés ☉Exemplarité : je commence par me l’appliquer à moi- même ☉Alliés, first-follower ☉Communication sur ce que je fais et sur les résultats > Nb de défauts trouvés… > « j’ai apprécié » > Rétrospective
  • 29. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Pratiques collaboratives : souvent en premier ☉Exemples: > Revues de code > Pair programming > Live-codings, dojos… ☉Pourquoi en premier ? > Trouvent beaucoup de bugs > Montrent ce qu’on fait de nouveau
  • 30. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski La revue de code
  • 31. 31Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Trouver un maximum de défauts au plus tôtCoûtdecorrection Correction en : dev recette production
  • 32. 32Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Chez Raytheon ROI de 4 pour 1 Chez CISCO : 50% de réduction des défauts Le R.O.I. de la revue de code
  • 33. 33Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Le R.O.I. de la revue de code
  • 34. 34Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Revue collective Revue par un pair Pair programming Efficience (nombre de défauts détectés) Communication, diffusion Facilité de mise en oeuvre Avantages Plus d’impact sur la qualité Plus facile à démarrer Montrer les pratiques A A B B B C A B Les formats de revue A
  • 35. 35Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski « oui mais pendant qu’on revoit, on ne code pas, on perd du temps » Combien de défauts a-t-on évité en contre-partie ? Combien de temps prennent les défauts « coder à 2 c’est aller 2x moins vite » On mesure ? Moins de choses à revoir « critiquer mon code, c’est me critiquer moi » Dur avec le code, doux avec les gens Revue de code et pair programming - objections
  • 36. 36Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Dur avec le code, doux avec les gens X Tu as fait une erreur √ Il y a un bug quand on met une chaîne vide X Ton code c’est de la m*rde √ Je vois une méthode de plus de 30 lignes, ce n’est pas notre standard
  • 37. 37Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Dur avec le code, doux avec les gens ☉Je donne l’exemple > Je commence par faire revoir mon code > Je travaille mon feedback ☉Revue collective : puissant, mais peut être intimidant au début
  • 38. 38Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Mesures des revues ☉Nombre de défauts trouvés ☉Nombre de lignes revues
  • 39. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Pair programming, MOB programming, katas ☉Ce que ça a amélioré > Nombre de retours en revue > Partage de connaissances, first-follower ☉Comment j’ai commencé > Par des demandes d’aide > Devenir une habitude > Puis : MOB
  • 40. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Tests unitaires automatisés - pourquoi ☉Temps de tests manuels ☉Temps de debugging ☉Feedback rapide ☉Design du code
  • 41. Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Tests unitaires automatisés – comment j’ai commencé ☉Montrer le geste TDD : plus facile avec un minimum de pratiques collaboratives ☉Sur du code existant sans tests, on n’écrit pas de tests sans raison > Chaque bugfix est une opportunité ☉J’écris le code neuf systématiquement en TDD
  • 42. 42Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski « écrire des tests, ça prend trop de temps » Combien de temps coûtent les bugs ? Les tests et le debug manuels ? « ça prend trop de temps d’ajouter des tests sur tout le code qu’on a déjà » Oui, c’est vrai : faire évol par évol / bugfix par bugfix « mon code n’est pas testable » Techniques: livre "working effectively with legacy code", katas… Essayer en timebox Tests unitaires automatisés – objections reçues
  • 44. 44Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Gérer la motivation ☉Savourer les petites victoires ☉Observer les mesures ☉Se reposer sur les alliés
  • 45. 45Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski Ecouter l’équipe ☉Respecter le rythme de l’équipe > Observer comment elle intègre chaque pratique > Constater l’impact > Les résistances sont une information utile ☉Je n’ai pas le monopole des bonnes idées > Le changement peut venir de chacun
  • 46. 46Sur le chemin de la qualité – meetup Software Craftsmanship Lille – Julien Jakubowski L’essentiel Posture au service des objectifs de l’équipe Amélioration à partir des problèmes observés Ne pas se contenter de fixer un bug Revue de code et pair programming FTW! ☉Pensez aux formations et accompagnement ☉Si le manager ne suit pas : vous m’invitez en BBL ;-) ☉Tenez-moi au courant de vos essais ! è @jak78