Yves Caseau, Président de l'Académie des Technologies, expose ici l'approche Lean Software factory ou usine logicielle lean, qui réconcilie des objectifs à court terme dans la tradition des méthodes agiles, et des objectifs à long terme, dans une perspective de lean management.
2. Yves Caseau - Lean Software Factory – Avril 2014 2/17
Lean Software Factory
Apprendre à produire de façon incrémentale des produits
qui dépassent les attentes des clients
Lean Summit
2 Avril 2014 – v0.2
Yves CASEAU
Académie des Technologies
3. Yves Caseau - Lean Software Factory – Avril 2014 3/17
Plan de l’exposé
1. 12 Principes
Faire émerger une Lean Software Factory
Product, People, Process
2. 2 outils
Pour aider la mise en œuvre
3. Conclusion
Une révolution inévitable
4. Yves Caseau - Lean Software Factory – Avril 2014 4/17
Le travail en équipes cross-fonctionnelles solidaires
Travail en équipe : la force des liens forts
Equipe cross-fonctionnelle, diversité des talents
Polyvalence et solidarité se renforcent
Les fournisseurs deviennent des partenaires,
membres de l’équipe
1èrePartie:12Principes
5. Yves Caseau - Lean Software Factory – Avril 2014 5/17
Des équipes qui vivent sur un même rythme
Communication face-à-face au lieu des emails
Démarrer avec un stand-up meeting quotidien
Un seul temps commun, celui du client
1èrePartie:12Principes
6. Yves Caseau - Lean Software Factory – Avril 2014 6/17
Une organisation dont la finalité est le client
1èrePartie:12Principes
Mettre le client ou son représentant au cœur du
plateau de développement
Communiquer et travailler à partir de « user stories »
L’amélioration continue pour produire la satisfaction
client du premier coup
Passer de la culture projet à la culture produit
7. Yves Caseau - Lean Software Factory – Avril 2014 7/17
« Fail early to succeed sooner » : test à chaque étape
« Test-driven development »: commencer son logiciel par
les tests
Une pratique continue du test d’un bout à l’autre du cycle
de développement
Automatiser les tests pour les rejouer de façon continue
1èrePartie:12Principes
8. Yves Caseau - Lean Software Factory – Avril 2014 8/17
Une progression itérative par petits lots contraints
Petits lots … pour des petites équipes motivées
Time Boxing: on adapte le contenu, pas la boîte !
Une approche incrémentale pour être adaptative:
Chaque lot est l’occasion d’ajuster
1èrePartie:12Principes
9. Yves Caseau - Lean Software Factory – Avril 2014 9/17
// finds a cell with a min count (heuristic)
findPivot(g:Grid) : any
-> let minv := 10, cmin := unknown in
(for c in g.cells
(if (c.value = 0 & c.count < minv)
(minv := c.count, cmin := c)),
cmin)
// solves a sudoku : branch on possible
// values using a recursive function
// branch(...) does all the work :)
solve(g:Grid) : boolean
-> when c := findPivot(g) in
exists(v in (1 .. 9) |
(if c.possible[v]
branch((c.value := v,
solve(g)))
else false))
else true
// first propagation rule
r1() :: rule( c.value := v =>
(store(c.line.counts,v,0),
store(c.column.counts,v,0),
store(c.square.counts,v,0),
for v2 in (1 .. 9)
(if (v != v2 & c.possible[v2]) noLonger(c,v2),
for c2 in (c.line.cells but c) forbid(c2,v),
for c2 in (c.column.cells but c) forbid(c2,v),
for c2 in (c.square.cells but c) forbid(c2,v))))
// if c.count = 1, the only possible value is certain
r2() :: rule( c.count := y & y = 1 =>
c.value := some(y in (1 .. 9) | c.possible[y]))
// if a value v is possible only in one cell, it is
certain
r3() :: rule( updateCount(cs,v) & cs.counts[v] <= 1
=> when c := some(c in cs.cells |
c.value = 0 & c.possible[v]) in
c.value := v
else contradiction!())
« Show & Tell » : Aimez votre code !
Un code lisible par tous, et pendant longtemps, standardisé
La pratique des « revues de code » en équipe: construire la
fierté du code élégant
Un code structuré, organisé et bien rangé
1èrePartie:12Principes
10. Yves Caseau - Lean Software Factory – Avril 2014 10/17
Le mur comme support d’apprentissage collectif
Communiquer et s’approprier la « partition dynamique »
de l’équipe
Collaborer avec les mains et les doigts sur une surface
effaçable et partagée
Afficher les modes de fonctionnement de ce que qu’on
utilise et de ce qu’on construit
1èrePartie:12Principes
11. Yves Caseau - Lean Software Factory – Avril 2014 11/17
Chacun produit au bon moment ce dont l’autre a besoin
Visualiser l’ensemble des en-cours (WIP) pour ne pas
en rajouter ni en oublier
Comprendre la situation (et donc le point de vue) des
autres acteurs de l’équipe pour des passages fluides
Flux tirés : chacun est au service du suivant dans l’ordre
du processus
1èrePartie:12Principes
12. Yves Caseau - Lean Software Factory – Avril 2014 12/17
Des outils industriels pour gérer le logiciel de bout en bout
Outiller la gestion du code
(versions, profileurs, dépendances, qualimétrie, etc.)
Outiller la gestion de configuration
(options, hardware, sauvegarde et déploiement, …)
Bien outillé, le hardware est programmable
(Devops)
1èrePartie:12Principes
13. Yves Caseau - Lean Software Factory – Avril 2014 13/17
Pas d’attente ni de rupture: l’intégration continue
Construire tous les jours un système qui fonctionne
Automatisation complète des « builds »
Donner la priorité à l’ensemble sur la (nouvelle)
partie
1èrePartie:12Principes
14. Yves Caseau - Lean Software Factory – Avril 2014 14/17
Résoudre des problèmes en équipe pour apprendre
Apprentissage continu et collectif du fonctionnement
du système (et de ses limites)
Apprentissage de la collaboration – s’écouter et se
comprendre – grâce au rituel et à la pratique du
kaizen
Apprentissage et amélioration continue grâce au
standard
1èrePartie:12Principes
15. Yves Caseau - Lean Software Factory – Avril 2014 15/17
Déployer en continu pour une innovation itérative
Mise en production continue sur un rythme régulier et
rapide
Gérer les risques grâce à des communautés concentriques
(Facebook)
« Jardiner le système », car tout processus incrémental
produit des déchets
1èrePartie:12Principes
16. Yves Caseau - Lean Software Factory – Avril 2014 16/17
Gemba Walks : Le rôle du manager
Aller voir sur place les situations, les
collaborateurs et leurs problèmes
Le rôle du manager est d’écouter, de
concrétiser la vision et de tisser des liens
Un rituel fondé sur le dialogue qui transforme
le manager
2èmePartie(manager):2Outils
17. Yves Caseau - Lean Software Factory – Avril 2014 17/17
Minimum Viable Product : Co-innover avec le client
Mettre au plus tôt entre les mains du client
un produit simple et utile qui réponde à un besoin
Entrer dans un dialogue explicite et implicite avec les
clients, selon différents modes d’engagement
La Lean Software Factory est une usine à MVP
2èmePartie(manager):2Outils
18. Yves Caseau - Lean Software Factory – Avril 2014 18/17
Conclusion
Uneécoledeformationpourproduiredefaçonincrémentale
desproduitsévolutifsquidépassentlesattentesdesclients
La Lean Software Factory hérite de nombreux
ancêtres et se décline de façon polymorphe
Le point focal de ces démarches est de se
concentrer sur l’humain, le collectif et
l’apprentissage
Plus le monde du 21e siècle devient complexe
et changeant, plus cette approche est la seule
façon de réussir des produits logiciels
Ce changement de culture d’entreprise
nécessite le soutient actif de la DG