Lean and Kanban Principles for Software Developers

4,269 views

Published on

This was a presentation given for the South Florida Code Camp in March, 2010 covering the basics of Lean and Kanban principles for Software Developers

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,269
On SlideShare
0
From Embeds
0
Number of Embeds
173
Actions
Shares
0
Downloads
187
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

  • I’m Cory Foy. Agile Coach, consultant and developer. You can find me at http://www.coryfoy.com, or on Twitter as @cory_foy.
  • We’re going to cover two main concepts. Lean
  • and Kanban, all within the context of delivering software faster. But to talk about Lean and Kanban, we need to first talk about some Models of Software Development.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • True waterfall, everything flows downwards. If you are going back up, you are either doing it wrong. Or Salmon. Possibly salmon.
  • Goal behind agile methods is a collaborative environment that gets us to market faster, so we can make money faster
  • Goal behind agile methods is a collaborative environment that gets us to market faster, so we can make money faster
  • Goal behind agile methods is a collaborative environment that gets us to market faster, so we can make money faster
  • Scrum is best known methodology. But when you look at the burndown chart, you can see a pattern suspiciously similar to what we saw in waterfall. But worse - we have a gap. And it’s caused by something interesting
  • Scrum is best known methodology. But when you look at the burndown chart, you can see a pattern suspiciously similar to what we saw in waterfall. But worse - we have a gap. And it’s caused by something interesting
  • Scrum is best known methodology. But when you look at the burndown chart, you can see a pattern suspiciously similar to what we saw in waterfall. But worse - we have a gap. And it’s caused by something interesting
  • Scrum is best known methodology. But when you look at the burndown chart, you can see a pattern suspiciously similar to what we saw in waterfall. But worse - we have a gap. And it’s caused by something interesting
  • Scrum is best known methodology. But when you look at the burndown chart, you can see a pattern suspiciously similar to what we saw in waterfall. But worse - we have a gap. And it’s caused by something interesting
  • Scrum is best known methodology. But when you look at the burndown chart, you can see a pattern suspiciously similar to what we saw in waterfall. But worse - we have a gap. And it’s caused by something interesting
  • Scrum is best known methodology. But when you look at the burndown chart, you can see a pattern suspiciously similar to what we saw in waterfall. But worse - we have a gap. And it’s caused by something interesting
  • Scrum is best known methodology. But when you look at the burndown chart, you can see a pattern suspiciously similar to what we saw in waterfall. But worse - we have a gap. And it’s caused by something interesting
  • Scrum is best known methodology. But when you look at the burndown chart, you can see a pattern suspiciously similar to what we saw in waterfall. But worse - we have a gap. And it’s caused by something interesting
  • Scrum is best known methodology. But when you look at the burndown chart, you can see a pattern suspiciously similar to what we saw in waterfall. But worse - we have a gap. And it’s caused by something interesting
  • You might ask yourself how productivity would cause us to *not* deliver. Ask audience to define productivity.
  • Productivity is defined by how we are paid








  • And then you end up with Happy Developers
  • And then you end up with Happy Developers
  • And then you end up with Happy Developers
  • And then you end up with Happy Developers
  • And then you end up with Happy Developers
  • And then you end up with Happy Developers
  • And then you end up with Happy Developers
  • And then you end up with Happy Developers
  • And then you end up with Happy Developers
  • And then you end up with Happy Developers
  • And then you end up with Happy Developers
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • 64-Bit Testing occupying QA. Devs keep working. Push completed work to QA queue. So they can be “productive”. But, is this productive? Heck, no! We’re not shipping anything. Unverified Expectations
  • One def of Kanban: A team has a capacity and is willing to set limits
  • When the Dev and Test queues are full, the dev team could go home, or work to clear the queues. Not pull from the waiting queue for the sake of “productivity”
  • When the Dev and Test queues are full, the dev team could go home, or work to clear the queues. Not pull from the waiting queue for the sake of “productivity”
  • When the Dev and Test queues are full, the dev team could go home, or work to clear the queues. Not pull from the waiting queue for the sake of “productivity”
  • When the Dev and Test queues are full, the dev team could go home, or work to clear the queues. Not pull from the waiting queue for the sake of “productivity”
  • When the Dev and Test queues are full, the dev team could go home, or work to clear the queues. Not pull from the waiting queue for the sake of “productivity”
  • When the Dev and Test queues are full, the dev team could go home, or work to clear the queues. Not pull from the waiting queue for the sake of “productivity”
  • This concept of looking at the whole is one of the fundamental tenants of Lean Software. Lean Software Development: An Agile Toolkit












  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate
  • 10% Efficiency Rate






  • If you have 5 half-done novels, you ain’t got nothin’ to sell.















  • Clearing a bottleneck reveals the next bottleneck in the stream
  • 100% Utilization is not ideal
  • The amount of time it takes for a work item from entering the system to exiting the system











  • Lean and Kanban Principles for Software Developers

    1. 1. LEAN, KANBAN, AGILE @cory_foy | Cory Foy | http://coryfoy.com
    2. 2. Hi
    3. 3. Lean
    4. 4. Kanban
    5. 5. Waterfall
    6. 6. Waterfall Requirements
    7. 7. Waterfall Requirements Design
    8. 8. Waterfall Requirements Design Development
    9. 9. Waterfall Requirements Design Development Test
    10. 10. Waterfall Requirements Design Development Test Credit: http://www.flickr.com/photos/tonymangan/611780383
    11. 11. Agile
    12. 12. Agile Waterfall Agile 70 52.5 35 17.5 0 Q1 Q2 Q3 Q4 Q5 Q6
    13. 13. Scrum
    14. 14. Scrum
    15. 15. Scrum Ideal Actual 100 75 50 25 0 1 2 3 4 5 6 7 8 9 10
    16. 16. Scrum Ideal Actual 100 75 50 25 0 1 2 3 4 5 6 7 8 9 10
    17. 17. Scrum Ideal Actual 100 75 50 25 0 1 2 3 4 5 6 7 8 9 10
    18. 18. Productivity
    19. 19. Credit: http://www.flickr.com/photos/shellysblogger/2464975037/
    20. 20. Developer
    21. 21. Lines of Code Developer
    22. 22. More Lines of Code Developer
    23. 23. Goodness More Lines of Code Developer
    24. 24. Goodness More Lines of Code Great Developer
    25. 25. Tester
    26. 26. Bugs Found Tester
    27. 27. More Bugs Found Tester
    28. 28. More Bugs Found More Goodness Tester
    29. 29. More Bugs Found More Goodness Awesome Tester
    30. 30. Company
    31. 31. Sales Company
    32. 32. More Lines of Code Sales Company
    33. 33. More Bugs Sales Company
    34. 34. More Sales Company
    35. 35. More Sales More Money Company
    36. 36. More Sales More Money Happy Customers Company
    37. 37. More Sales More Money Happy Customers Happy Company
    38. 38. More Sales More Money Happy Customers Happy Company Happy Developers
    39. 39. Waiting Development Test Feature 1 64-Bit Priority Bug 2 Testing Bug 17 Feature 11 Priority Bug 7 Feature 18 Bug 4 Feature 42
    40. 40. Waiting Development Test Feature 1 64-Bit Priority Bug 2 Testing Bug 17 Feature 11 Priority Bug 7 Feature 18 Bug 4 Feature 42
    41. 41. Waiting Development Test 64-Bit Testing Feature 1 Priority Bug 7 Priority Bug 2 Feature 18 Bug 17 Feature 11 Bug 4 Feature 42
    42. 42. Waiting Development Test Priority Bug 7 64-Bit Feature 18 Testing Bug 4 Feature 42 Feature 1 Priority Bug 2 Bug 17 Feature 11
    43. 43. Capacity
    44. 44. Waiting [8] Dev [4] Test [2] Feature 1 64-Bit Priority Bug 2 Testing Bug 17 Feature 11 Priority Bug 7 Feature 18 Bug 4 Feature 42
    45. 45. Waiting [8] Dev [4] Test [2] Feature 1 64-Bit Priority Bug 2 Testing Bug 17 Feature 11 Priority Bug 7 Feature 18 Bug 4 Feature 42
    46. 46. Waiting [8] Dev [4] Test [2] 64-Bit Priority Bug 2 Testing Bug 17 Feature 1 Feature 11 Priority Bug 7 Feature 18 Bug 4 Feature 42
    47. 47. Waiting [8] Dev [4] Test [2] Priority Bug 7 64-Bit Priority Bug 2 Testing Bug 17 Feature 1 Feature 11 Feature 18 Bug 4 Feature 42
    48. 48. Lean
    49. 49. Seven Principles Eliminate Waste
    50. 50. Seven Principles Amplify Learning
    51. 51. Seven Principles Decide as late as possible
    52. 52. Seven Principles Deliver as fast as possible
    53. 53. Seven Principles Empower the team
    54. 54. Seven Principles Build Integrity In
    55. 55. Seven Principles See the Whole
    56. 56. Theory
    57. 57. Implementation
    58. 58. Four Steps
    59. 59. Understand Your Existing Process
    60. 60. Understand Your Existing Process Value Stream Map
    61. 61. Customer Emails Rep
    62. 62. Customer Enters Bug to Emails Rep Tracker
    63. 63. Customer Enters Bug to Executive Emails Rep Tracker Review
    64. 64. Customer Enters Bug to Executive Emails Rep Tracker Review Assigned Fix in Version
    65. 65. Customer Enters Bug to Executive Emails Rep Tracker Review Assigned Fix Assigned to in Version Dev Team
    66. 66. Customer Enters Bug to Executive Emails Rep Tracker Review Assigned Fix Assigned to Coded in Version Dev Team
    67. 67. Customer Enters Bug to Executive Emails Rep Tracker Review Assigned Fix Assigned to Coded in Version Dev Team Assigned to Test Team
    68. 68. Customer Enters Bug to Executive Emails Rep Tracker Review Assigned Fix Assigned to Coded in Version Dev Team Assigned to Tested Test Team
    69. 69. Customer Enters Bug to Executive Emails Rep Tracker Review Assigned Fix Assigned to Coded in Version Dev Team Assigned to Release Tested Test Team Planning
    70. 70. Customer Enters Bug to Executive Emails Rep Tracker Review Assigned Fix Assigned to Coded in Version Dev Team Assigned to Release Tested Test Team Planning Deploy to Beta Site
    71. 71. Customer Enters Bug to Executive Emails Rep Tracker Review Assigned Fix Assigned to Coded in Version Dev Team Assigned to Release Tested Test Team Planning Deploy to Tested Beta Site
    72. 72. Customer Enters Bug to Executive Emails Rep Tracker Review Assigned Fix Assigned to Coded in Version Dev Team Assigned to Release Tested Test Team Planning Deploy to Deploy to Tested Beta Site Production
    73. 73. Customer 1 Enters Bug to 1-2 Executive Months Emails Rep Week Tracker Review 1 Day Assigned Fix 3 Assigned to 2 Weeks Weeks Coded in Version Dev Team 1 Day Assigned to 1 4 Release Week Tested Weeks Test Team Planning 2 Days Deploy to 1 1 Deploy to Week Tested Week Beta Site Production
    74. 74. Customer 1 Enters Bug to 1-2 Executive Months Emails Rep Week Tracker Review 1 Day Assigned Fix 3 Assigned to 2 Weeks Weeks Coded in Version Dev Team 1 Day Assigned to 1 4 Release Week Tested Weeks Test Team Planning 2 Days Deploy to 1 1 Deploy to Week Tested Week Beta Site Production
    75. 75. Reduce Waste
    76. 76. Reduce Waste Seven Wastes
    77. 77. Reduce Waste -> Seven Wastes Partially Done Work
    78. 78. Reduce Waste -> Seven Wastes Extra Features
    79. 79. Reduce Waste -> Seven Wastes Lost Knowledge
    80. 80. Reduce Waste -> Seven Wastes Handoffs
    81. 81. Reduce Waste -> Seven Wastes Task Switching
    82. 82. Reduce Waste -> Seven Wastes Delays
    83. 83. Reduce Waste -> Seven Wastes Defects
    84. 84. Reduce Waste Write Less Code
    85. 85. Reduce Waste SOLID
    86. 86. Reduce Waste Single Responsibility Principle SOLID
    87. 87. Reduce Waste Single Responsibility Principle SOLID Open-Closed Principle
    88. 88. Reduce Waste Single Responsibility Principle SOLID Open-Closed Principle Liskov Substitution Principle
    89. 89. Reduce Waste Single Responsibility Principle Interface Segregation Principle SOLID Open-Closed Principle Liskov Substitution Principle
    90. 90. Reduce Waste Single Responsibility Principle Interface Segregation Principle SOLID Dependency Inversion Principle Open-Closed Principle Liskov Substitution Principle
    91. 91. Reduce Waste TDD
    92. 92. Reduce Waste TDD Test-Driven Development
    93. 93. Reduce Waste Behavior-Driven Development TDD Test-Driven Development
    94. 94. Reduce Waste Behavior-Driven Development TDD Test-Driven Development Acceptance-Test Driven Development
    95. 95. Reduce Waste Minimal Useful Feature
    96. 96. Reduce Waste Justify Every Feature
    97. 97. Reduce Waste Don’t Automate Complexity
    98. 98. Deliver Fast
    99. 99. Deliver Fast Queuing Theory
    100. 100. Deliver Fast Utilization
    101. 101. Deliver Fast Cycle Time
    102. 102. Make it Visible
    103. 103. Make it Visible Big Visible Wall
    104. 104. Make it Visible Big Visible Wall
    105. 105. Make it Visible Big Visible Wall
    106. 106. Make it Visible Kanban Board
    107. 107. Make it Visible Kanban Board
    108. 108. Make it Visible Kanban Board
    109. 109. Make it Visible Dashboard
    110. 110. Make it Visible Dashboard
    111. 111. Make it Visible Build Lamp
    112. 112. Make it Visible Build Lamp
    113. 113. Be Lean
    114. 114. Be Mean
    115. 115. •Cory Foy •Slides at: http://coryfoy.com •Email: foyc at cory foy dot com •Twitter: @cory_foy

    ×