SlideShare una empresa de Scribd logo
1 de 87
Descargar para leer sin conexión
Kanban as Code
Organisation du code
@dbaeli@beastiefurets
@LeanKanbanFr
@geofberard
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
LesFurets.com
• 6 produits
• 5-200 questions
• 3 millions de devis par an
• 50 partenaires
LesFurets
WebSite
Panel Partners
Data Partners
• 9 Milliards d’échanges avec les assureurs
• 350 mappings par seconde
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
L’équipe
• 80 Employés
• 4 Equipes
• 1 code base de 500.000 lines (depuis 4 ans)
• 40.000 tests (unitaires & intégration)
• 200 tests selenium + tests de regression graphique
•1 à 3 releases par jour (1 à 10 changements)
• 1 branche par fonctionnalité — “Kanban as code”
• 20 ou 30 branches en parallèle en permanence !
@beatiefurets
github.com/lesfurets
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Les @BeastieFurets
@beastiefurets
beastie.lesfurets.com
lesfurets
Livrer souvent !
@dbaeli
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Manifeste agile
Principe #1
« Notre plus haute priorité est de satisfaire le client en livrant
rapidement et régulièrement des fonctionnalités
à grande valeur ajoutée. »
http://agilemanifesto.org/principles.html
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Livrer tôt, livrer souvent : implications
http://paulhammant.com/2013/03/13/facebook-tbd-take-2/
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Leçon #1 : Livrer tôt, livrer souvent
• L’intention: réduire le délai
• Pouvoir livrer quand c’est prêt
• Faire des petits lots
• Impacte l’organisation
• Gestion du code source
• Organisation de la qualité (autonomie des développeurs)
• Fail fast, Fail safe:
• Echouer vite (si echec), échouer seul
Kanban en 2017
Ce que personne ne peut ignorer !
@geofberard
Lean Kanban
1. Visualiser le travail
2. Limiter l’encours de travail (Limit WIP)
3. Mesurer et gérer le flux
4. Rendre les règles explicites
5. S’engager dans une Amélioration Continue
6. Encourager Leadership
10
Carte kanban
11
Représente un élément fini
1 - Visualiser le travail
• Tableau de pilotage et cartes kanban
• Lignes d’eau, Files d’attentes
• Customisation des cartes
• Rendre visible l’état du projet
12
Règles
Indicateurs
2 - Limiter le WIP
• Work in Progress (WIP)
• Limiter le nombre d’élements (min / max)
• Bien visibles et respectées
• Réglées pour fluidifier
13
Post-it®
vs Kanban
14
Poussé vs Tiré
Post-it®
15
To	do Doing Done
16
To	do Doing Done
Post-it®
17
To	do Doing Done
Post-it®
18
To	do Doing Done
Post-it®
19
Post-it®
To	do Doing Done
20
Post-it®
To	do Doing Done
21
Post-it®
To	do Doing Done
22
To	do Doing	(4) Done
Post-it®
23
Post-it®
To	do Doing Done
24
To	do Doing Done
Post-it®
25
Post-it®
To	do Doing Done
26
Post-it®
To	do Doing Done
27
Post-it®
To	do Doing Done
Lean Kanban
28
To	do Doing	(4) Done
29
To	do Doing	(4) Done
Lean Kanban
30
To	do Doing	(4) Done
Lean Kanban
31
To	do Doing	(4) Done
Lean Kanban
32
To	do Doing	(4) Done
Lean Kanban
33
To	do Doing	(4) Done
Lean Kanban
34
To	do Doing	(4) Done
Lean Kanban
35
To	do Doing	(4) Done
Lean Kanban
36
To	do Doing	(4) Done
Lean Kanban
37
To	do Doing	(4) Done
Lean Kanban
38
To	do	(5) Doing	(4) Done
Lean Kanban
Lean Kanban
39
To	do	(5) Doing	(4) Done
Lean Kanban
40
Analyse	(5) Build	(4) Release	(4)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Kanban as Code
Règles :
• # Une fonctionnalité livrable par carte kanban (indep.)
• # Une modification du code par carte (indep.)
• # Pouvoir livrez ce qui est prêt
• # Limiter le nombre de Cartes (flux tiré)
Pourquoi ça marche ?
• # Assure l’indépendance des taches (non adhérence)
• # Risques très faibles de conflits sur 500.000 lignes de code
• # Détection non bloquante des conflits
Gérer du code
25 développeurs & 500.000 lignes
@dbaeli
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
7 dictionnaires de 500 pages (140 lignes / page)
2 fois les 7 tomes d’Harry Poter (3400 pages)
Une nouvelle version par jour
5-10 changement par 25 rédacteurs
500.000 lignes de code ?
x 7
x 2
@beastiefurets@dbaeli
Taches indépendantes
=
Risques de conflits
@beastiefurets@dbaeli
Code d’origine:
master
@beastiefurets@dbaeli
master
Branche 1 : Agile Grenoble
1
@beastiefurets@dbaeli
Code d’origine:
master
@beastiefurets@dbaeli
Branche 2 : Beastie world
master
2
@beastiefurets@dbaeli
Code d’origine:
master
@beastiefurets@dbaeli
master
Branche 1 : Agile Grenoble
1
@beastiefurets@dbaeli
Branche 2 : Beastie world
master
2
@beastiefurets@dbaeli
???????
Change 1 + 2 : Conflit
master
conflict
2
1
@beastiefurets@dbaeli
Les conflits tuent l’indépendance !
Comment les éviter ?
@beastiefurets@dbaeli
Code d’origine:
master
@beastiefurets@dbaeli
Branche 2 : Beastie world
master
2
@beastiefurets@dbaeli
Branche 2: Version anti-conflit
master
2
1
@beastiefurets@dbaeli
master
Branche 1 : Agile Grenoble
1
@beastiefurets@dbaeli
Commit 1, 2: Easy merge
master
commit 3
commit 2
resolved
commit 1
@beastiefurets@dbaeli
Eviter les conflits plutôt que les résoudre !
Pour garder l’indépendance des taches
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Nos Stratégies d’évitement de conflit
1. Eviter d’avoir des zones de conflit (dette technique)
2. Modifier une des branches
3. Supprimer une des branches (mise en attente)
4. Fusionner les branches (date de sortie commune)
5. “Rebase” d’une branche sur l’autre (sortie en séquence)
6. Publier une résolution de conflit (git-octopus)
Kanban as Code
@geofberard
Chez LesFurets.com avec Git Octopus
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Kanban as Code
Livrer ce qui est prêt … chaque jour !
250+ releases par an (210 in 2017 !)
@beastiefurets@dbaeli
ticket1
ticket2
ticket3
ticket4
ticket5
features releaseslocal
ticket3
master
ticket3
ticket1
master
octopus-features
octopus-releases
few minutes 0 jour à 1 mois 0 - 1 jour
Validation
0 - 2 jours
release
Continuous Merge
Git Octopus
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Le Continuous Merge
• Garder les fonctionnalités séparées jusqu’au dernier moment
• Alors que tout le monde les fusionne par défaut !!!
• Merge Continu (comme outil de test):
• Détecter les conflits (sans être bloqué — build incassable)
• Laisse le temps d’éviter les conflits
• Autorise à jeter facilement, ou mettre de côté sans frais
• Bonus:
• Le code non terminé n’est pas accessible aux autres !
@beastiefurets@dbaeli
master
trunk
Model 3: Kanban as code
Storie 1
Storie 2
Storie 3
@beastiefurets@dbaeli
master
trunk
Storie 1
Model 3: Kanban as code
@beastiefurets@dbaeli
master
trunk
Storie 1
Model 3: Kanban as code
Travail terminé ?
@beastiefurets@dbaeli
master
trunk
Storie 1
Model 3: Kanban as code
merge, test & drop (octopus)
Merge, Test & Drop
@beastiefurets@dbaeli
master
trunk
Storie 1
Model 3: Kanban as code
drop
Merge, Test & Drop
@beastiefurets@dbaeli
master
trunk
Storie 1
Model 3: Kanban as code
Merge, Test & Drop
@beastiefurets@dbaeli
master
trunk
Storie 1
Model 3: Kanban as code
Merge, Test & Drop
@beastiefurets@dbaeli
master
trunk
Storie 1
Model 3: Kanban as code
merge, test
Merge, Test & Drop
@beastiefurets@dbaeli
master
trunk
Storie 1
Model 3: Kanban as code
Merge, Test & Drop
drop
@beastiefurets@dbaeli
master
trunk
Storie 1
Storie 2
Model 3: Kanban as code
Merge, Test & Drop
merge, test & drop (octopus)
@beastiefurets@dbaeli
master
trunk
Storie 1
Storie 2
Storie 3
Model 3: Kanban as code
Release de ce qui est prêt
merge, test & drop (octopus)
@beastiefurets@dbaeli
master
trunk
Storie 1
Storie 2
Storie 3
Model 3: Kanban as code : Livrer quand c’est prêt
@beastiefurets@dbaeli
Garder les branches indépendantes
Merge, Test & Drop
git-octopus by lesfurets (on GitHub)
Détecter les conflits &
@beastiefurets@dbaeli
Garder les branches indépendantes
Détecter les conflits &
Continuous Merge
git-octopus by lesfurets (on GitHub)
@beastiefurets@dbaeli
git-octopus by lesfurets (on GitHub)
Nos lectures
@dbaeli
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
A lire sans attendre : l’entreprise agile
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Kanban : Evolutionary Change
1. Visualiser le travail
2. Limiter l’encours de travail (Limit WIP)
3. Mesurer et gérer le flux
4. Rendre les règles explicites
5. S’engager dans une Amélioration Continue
6. Encourager le Leadership
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Ce que vous ne pouvez ignorer
1. Travailler en flux
2. Réduire le coût de livraison
3. Temps qui passe plutôt que l’effort
4. Le coût du délai
5. Observer les stocks (non fini)
@YourTwitterHandle@YourTwitterHandle@beastiefurets@dbaeli
Continuous Delivery : 5 Règles d’or
1. Assemblage rapide (local)
2. Assemblage incassable (staging)
3. Déploiement automatisés rapides
4. Monitoring et alerting partout
5. Root cause analysis des incidents
86
LesFurets.com LeanKanban.fr29, 30 Novembre 2017
www.leankanban.fr
Sold out !
@dbaeli
@beastiefurets
MERCI !
@geofberard
@LeanKanbanFr

Más contenido relacionado

Similar a Kanban as code - agile grenoble 2017 v2

MinuteJS - DevFest Nantes - 2016
MinuteJS - DevFest Nantes - 2016MinuteJS - DevFest Nantes - 2016
MinuteJS - DevFest Nantes - 2016Fabien JUIF
 
XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoan...
XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoan...XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoan...
XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoan...Publicis Sapient Engineering
 
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...Publicis Sapient Engineering
 
L'intégration continue chez Pages Jaunes - Build Bot Mobile
L'intégration continue chez Pages Jaunes - Build Bot MobileL'intégration continue chez Pages Jaunes - Build Bot Mobile
L'intégration continue chez Pages Jaunes - Build Bot MobileCocoaHeads France
 
MinuteJS - BreizhCamp - 2017
MinuteJS - BreizhCamp - 2017MinuteJS - BreizhCamp - 2017
MinuteJS - BreizhCamp - 2017Fabien JUIF
 
XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !
XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !
XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !Publicis Sapient Engineering
 
StyleCop avec visual studio 2010
StyleCop avec visual studio 2010StyleCop avec visual studio 2010
StyleCop avec visual studio 2010Novencia Groupe
 
LCC 101 - Devoxx France 2014 - ils reviennent et ils ne sont pas contents !
LCC 101 - Devoxx France 2014 - ils reviennent et ils ne sont pas contents !LCC 101 - Devoxx France 2014 - ils reviennent et ils ne sont pas contents !
LCC 101 - Devoxx France 2014 - ils reviennent et ils ne sont pas contents !emmanuelbernard
 
Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?The e-Commerce Academy
 
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...Publicis Sapient Engineering
 
Agile et Lean : des univers convergents ? par Dimitri Baeli
Agile et Lean : des univers convergents ? par Dimitri BaeliAgile et Lean : des univers convergents ? par Dimitri Baeli
Agile et Lean : des univers convergents ? par Dimitri BaeliInstitut Lean France
 
#monorepo - Pourquoi votre entreprise, à l'instar de Google et Facebook, devr...
#monorepo - Pourquoi votre entreprise, à l'instar de Google et Facebook, devr...#monorepo - Pourquoi votre entreprise, à l'instar de Google et Facebook, devr...
#monorepo - Pourquoi votre entreprise, à l'instar de Google et Facebook, devr...ThierryAbalea
 
XebiCon'16 : GS1 - Comment les services managés du Cloud nous ont permis de t...
XebiCon'16 : GS1 - Comment les services managés du Cloud nous ont permis de t...XebiCon'16 : GS1 - Comment les services managés du Cloud nous ont permis de t...
XebiCon'16 : GS1 - Comment les services managés du Cloud nous ont permis de t...Publicis Sapient Engineering
 
Faire le pont entre designers et développeurs au Guardian
Faire le pont entre designers et développeurs au GuardianFaire le pont entre designers et développeurs au Guardian
Faire le pont entre designers et développeurs au GuardianKaelig Deloumeau-Prigent
 
Améliorer l'implémentation du feature flipping
Améliorer l'implémentation du feature flippingAméliorer l'implémentation du feature flipping
Améliorer l'implémentation du feature flippingDorra BARTAGUIZ
 
How to fail at benchmarking?
How to fail at benchmarking?How to fail at benchmarking?
How to fail at benchmarking?Pierre Laporte
 
Django shop
Django shopDjango shop
Django shopTribaal
 

Similar a Kanban as code - agile grenoble 2017 v2 (20)

MinuteJS - DevFest Nantes - 2016
MinuteJS - DevFest Nantes - 2016MinuteJS - DevFest Nantes - 2016
MinuteJS - DevFest Nantes - 2016
 
XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoan...
XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoan...XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoan...
XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoan...
 
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...
 
PJ Tool Box
PJ Tool BoxPJ Tool Box
PJ Tool Box
 
L'intégration continue chez Pages Jaunes - Build Bot Mobile
L'intégration continue chez Pages Jaunes - Build Bot MobileL'intégration continue chez Pages Jaunes - Build Bot Mobile
L'intégration continue chez Pages Jaunes - Build Bot Mobile
 
MinuteJS - BreizhCamp - 2017
MinuteJS - BreizhCamp - 2017MinuteJS - BreizhCamp - 2017
MinuteJS - BreizhCamp - 2017
 
XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !
XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !
XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !
 
StyleCop avec visual studio 2010
StyleCop avec visual studio 2010StyleCop avec visual studio 2010
StyleCop avec visual studio 2010
 
LCC 101 - Devoxx France 2014 - ils reviennent et ils ne sont pas contents !
LCC 101 - Devoxx France 2014 - ils reviennent et ils ne sont pas contents !LCC 101 - Devoxx France 2014 - ils reviennent et ils ne sont pas contents !
LCC 101 - Devoxx France 2014 - ils reviennent et ils ne sont pas contents !
 
Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?
 
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...
 
Php 100k
Php 100kPhp 100k
Php 100k
 
XebiCon'18 - Data Science Done Wrong
XebiCon'18 - Data Science Done WrongXebiCon'18 - Data Science Done Wrong
XebiCon'18 - Data Science Done Wrong
 
Agile et Lean : des univers convergents ? par Dimitri Baeli
Agile et Lean : des univers convergents ? par Dimitri BaeliAgile et Lean : des univers convergents ? par Dimitri Baeli
Agile et Lean : des univers convergents ? par Dimitri Baeli
 
#monorepo - Pourquoi votre entreprise, à l'instar de Google et Facebook, devr...
#monorepo - Pourquoi votre entreprise, à l'instar de Google et Facebook, devr...#monorepo - Pourquoi votre entreprise, à l'instar de Google et Facebook, devr...
#monorepo - Pourquoi votre entreprise, à l'instar de Google et Facebook, devr...
 
XebiCon'16 : GS1 - Comment les services managés du Cloud nous ont permis de t...
XebiCon'16 : GS1 - Comment les services managés du Cloud nous ont permis de t...XebiCon'16 : GS1 - Comment les services managés du Cloud nous ont permis de t...
XebiCon'16 : GS1 - Comment les services managés du Cloud nous ont permis de t...
 
Faire le pont entre designers et développeurs au Guardian
Faire le pont entre designers et développeurs au GuardianFaire le pont entre designers et développeurs au Guardian
Faire le pont entre designers et développeurs au Guardian
 
Améliorer l'implémentation du feature flipping
Améliorer l'implémentation du feature flippingAméliorer l'implémentation du feature flipping
Améliorer l'implémentation du feature flipping
 
How to fail at benchmarking?
How to fail at benchmarking?How to fail at benchmarking?
How to fail at benchmarking?
 
Django shop
Django shopDjango shop
Django shop
 

Kanban as code - agile grenoble 2017 v2