Yves Caseau - Lean & Agile Software Development – October 2019 1/18
Lean and Agile Software,
Because or Despite Rising
Complexity
Dr. Yves Caseau
Group CIO, Michelin
National Academy of Technologies
http://informationsystemsbiology.blogspot.com/
https://twitter.com/ycaseau
October 7th, 2019 (v0.2)
Yves Caseau - Lean & Agile Software Development – October 2019 2/18
Part 1 : Adding Lean Roots to Agile Software Development,
Because of Complexity
Part 2: Systemic Conditions for the Emergence of
Lean & Agile Practices
Part 3: Lean and Agile Governance,
Changing the DNA of Large Organizations
Outline
Yves Caseau - Lean & Agile Software Development – October 2019 3/18
Agile software development
Agile in a nutshell
 Iterative, small lots
(time-boxed sprints)
 Focus on delivering and
measuring customer
satisfaction
 Autonomous cross-functional
teams self-organize to
co-develop design, code
and architecture
 Synchronized team works
with emphasis on face-to-face
communication
Yves Caseau - Lean & Agile Software Development – October 2019 4/18
Agile against VUCA
What we want to avoid
 Rework
 Missed TTM
 Undeployed code
 Communication waste
 Agile brings systemic benefits in
a VUCA world
 Volatility: backlog re-prioritization
/ sprint frequency
 Uncertainty: user stories & re-
prioritization
 Complexity & Ambiguity:
Customer feedback & demos
 Up to a point …
Yves Caseau - Lean & Agile Software Development – October 2019 5/185
 Short-term agility with incremental approach extended with
longer-term focus on capability and skills
System thinking through visual management
Adding Some (Other) Lean Roots
Kaizen : from root cause analysis to problem-solving-based
learning
Yves Caseau - Lean & Agile Software Development – October 2019 6/18
Four Key Practices
A3 for Kaizen
Voice of Customer
5S for Software
Systemic Visual Management
Yves Caseau - Lean & Agile Software Development – October 2019 7/187
 Complex systems require “antifragile” capitalization –
focus on skills and collective learning
Complexity of “digital world usage” requires to listen to the user,
really well, quite often
Lean and Agile Because of Complexity
Complexity of iterative processes needs to be balanced by
refactoring (gardening) – from project to product
Yves Caseau - Lean & Agile Software Development – October 2019 8/18
Part II
Systemic conditions for
the emergence of
lean & agile practices
Yves Caseau - Lean & Agile Software Development – October 2019 9/18
Agile is a Shared “Mental Model”
 Agile starts with a shared
vision of the world
 “Waterscrum” delivers very
small benefits
 Shared mental model
 Effectuation
 User stories
 Agile requires shared
motivation and engagement
 face-to-face business/dev
conversations
Yves Caseau - Lean & Agile Software Development – October 2019 10/18
Lean Operations Require Buffers
Queueing Theory
Reduce WIP to increase flexibility and reactivity
To collaborate is to share one’s buffers with each other
Continuous improvement and learning by doing
require buffers
“Lean Buffers” : self-organized time for the team,
towards a shared goal
Yves Caseau - Lean & Agile Software Development – October 2019 11/1811
 Regular access to user feedback is necessary
to grow the solution value
 This is easy in small structures, harder in large companies
The Need for a Continuous Feedback Loop
Shared access to “Voice of Customer” is the best way to align
efforts between teams in “agile at scale”
Yves Caseau - Lean & Agile Software Development – October 2019 12/18
Software Craftmanship as a corporate value
 Love your code
 Cherish your coding
standards
Value your developers
Respect technical
experience
// 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!())
Yves Caseau - Lean & Agile Software Development – October 2019 13/18
Part III
Lean and Agile Governance,
Changing the DNA of Large Organizations
Yves Caseau - Lean & Agile Software Development – October 2019 14/18
Reconcile Short & Long Term with Product Culture
 Short & Long-term
 “Situation potential”
 Velocity comes from skills
 Product culture
 Well-suited to information
systems
 Continuous releases /
coding standards
 Refactoring
 Increase release frequency
to build skills
 Lean “talk time” journey
 Build “DevOps muscle”
Yves Caseau - Lean & Agile Software Development – October 2019 15/18
True Empowerment for Autonomous Squads
 What a “true product owner”
means for developers 
 Frequency of decision
matters
 Complexity implies that
context does not travel via
PowerPoint …
 Empowerment because of
complexity - Jurgen Appelo:
“The real reason for
empowerment is the
manageability of the complex
system itself. Smart managers …
empower people to prevent the
whole system to break down”
Yves Caseau - Lean & Agile Software Development – October 2019 16/1816
 The customer will decide what works for her and what does not
 The customer is the architect of her own experience
Service exposure (API) is not an IT matter
The Customer is in Charge
The customer picks her software ecosystem
Yves Caseau - Lean & Agile Software Development – October 2019 17/18
17
 Architects on-demand
System engineering coach and champion
The Role of Lean Architecture
Refactoring champion - promotes TD cleaning in backlog
API interface and “integration grammar” owner
Yves Caseau - Lean & Agile Software Development – October 2019 18/18
Conclusion
Lean & Agile : no other way to deliver software value
in a complex changing world
Lean & Agile practices are “grown, not designed”
 Managers are gardeners.
They must protect the conditions of emergence against
Taylor-ed, control-addict, top-down corporate cultures
 This is not a choice : “software is eating the world” …
and some companies are doing it well 

Lean and agile software because or despite rising complexity by Yves Caseau

  • 1.
    Yves Caseau -Lean & Agile Software Development – October 2019 1/18 Lean and Agile Software, Because or Despite Rising Complexity Dr. Yves Caseau Group CIO, Michelin National Academy of Technologies http://informationsystemsbiology.blogspot.com/ https://twitter.com/ycaseau October 7th, 2019 (v0.2)
  • 2.
    Yves Caseau -Lean & Agile Software Development – October 2019 2/18 Part 1 : Adding Lean Roots to Agile Software Development, Because of Complexity Part 2: Systemic Conditions for the Emergence of Lean & Agile Practices Part 3: Lean and Agile Governance, Changing the DNA of Large Organizations Outline
  • 3.
    Yves Caseau -Lean & Agile Software Development – October 2019 3/18 Agile software development Agile in a nutshell  Iterative, small lots (time-boxed sprints)  Focus on delivering and measuring customer satisfaction  Autonomous cross-functional teams self-organize to co-develop design, code and architecture  Synchronized team works with emphasis on face-to-face communication
  • 4.
    Yves Caseau -Lean & Agile Software Development – October 2019 4/18 Agile against VUCA What we want to avoid  Rework  Missed TTM  Undeployed code  Communication waste  Agile brings systemic benefits in a VUCA world  Volatility: backlog re-prioritization / sprint frequency  Uncertainty: user stories & re- prioritization  Complexity & Ambiguity: Customer feedback & demos  Up to a point …
  • 5.
    Yves Caseau -Lean & Agile Software Development – October 2019 5/185  Short-term agility with incremental approach extended with longer-term focus on capability and skills System thinking through visual management Adding Some (Other) Lean Roots Kaizen : from root cause analysis to problem-solving-based learning
  • 6.
    Yves Caseau -Lean & Agile Software Development – October 2019 6/18 Four Key Practices A3 for Kaizen Voice of Customer 5S for Software Systemic Visual Management
  • 7.
    Yves Caseau -Lean & Agile Software Development – October 2019 7/187  Complex systems require “antifragile” capitalization – focus on skills and collective learning Complexity of “digital world usage” requires to listen to the user, really well, quite often Lean and Agile Because of Complexity Complexity of iterative processes needs to be balanced by refactoring (gardening) – from project to product
  • 8.
    Yves Caseau -Lean & Agile Software Development – October 2019 8/18 Part II Systemic conditions for the emergence of lean & agile practices
  • 9.
    Yves Caseau -Lean & Agile Software Development – October 2019 9/18 Agile is a Shared “Mental Model”  Agile starts with a shared vision of the world  “Waterscrum” delivers very small benefits  Shared mental model  Effectuation  User stories  Agile requires shared motivation and engagement  face-to-face business/dev conversations
  • 10.
    Yves Caseau -Lean & Agile Software Development – October 2019 10/18 Lean Operations Require Buffers Queueing Theory Reduce WIP to increase flexibility and reactivity To collaborate is to share one’s buffers with each other Continuous improvement and learning by doing require buffers “Lean Buffers” : self-organized time for the team, towards a shared goal
  • 11.
    Yves Caseau -Lean & Agile Software Development – October 2019 11/1811  Regular access to user feedback is necessary to grow the solution value  This is easy in small structures, harder in large companies The Need for a Continuous Feedback Loop Shared access to “Voice of Customer” is the best way to align efforts between teams in “agile at scale”
  • 12.
    Yves Caseau -Lean & Agile Software Development – October 2019 12/18 Software Craftmanship as a corporate value  Love your code  Cherish your coding standards Value your developers Respect technical experience // 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!())
  • 13.
    Yves Caseau -Lean & Agile Software Development – October 2019 13/18 Part III Lean and Agile Governance, Changing the DNA of Large Organizations
  • 14.
    Yves Caseau -Lean & Agile Software Development – October 2019 14/18 Reconcile Short & Long Term with Product Culture  Short & Long-term  “Situation potential”  Velocity comes from skills  Product culture  Well-suited to information systems  Continuous releases / coding standards  Refactoring  Increase release frequency to build skills  Lean “talk time” journey  Build “DevOps muscle”
  • 15.
    Yves Caseau -Lean & Agile Software Development – October 2019 15/18 True Empowerment for Autonomous Squads  What a “true product owner” means for developers   Frequency of decision matters  Complexity implies that context does not travel via PowerPoint …  Empowerment because of complexity - Jurgen Appelo: “The real reason for empowerment is the manageability of the complex system itself. Smart managers … empower people to prevent the whole system to break down”
  • 16.
    Yves Caseau -Lean & Agile Software Development – October 2019 16/1816  The customer will decide what works for her and what does not  The customer is the architect of her own experience Service exposure (API) is not an IT matter The Customer is in Charge The customer picks her software ecosystem
  • 17.
    Yves Caseau -Lean & Agile Software Development – October 2019 17/18 17  Architects on-demand System engineering coach and champion The Role of Lean Architecture Refactoring champion - promotes TD cleaning in backlog API interface and “integration grammar” owner
  • 18.
    Yves Caseau -Lean & Agile Software Development – October 2019 18/18 Conclusion Lean & Agile : no other way to deliver software value in a complex changing world Lean & Agile practices are “grown, not designed”  Managers are gardeners. They must protect the conditions of emergence against Taylor-ed, control-addict, top-down corporate cultures  This is not a choice : “software is eating the world” … and some companies are doing it well 