Using Kanban Techniquesto Control IncrementalDevelopmentJeff PattonAgileProductDesign.comjpatton@acm.orgDownload this pres...
In this short talk we’ll cover: 1. What is a Kanban System and howdoes it apply to software development? 2. How to set up ...
看板 – Kanban cards limit excess workin progress看板 – Kanban literally means“visual card,” “signboard,” or“billboard.”Toyota ...
Kanban simulationLet’s simulate a simple process, then see if we can      improve it by adding a Kanban system.I’ll need 5...
Why use Kanban inSoftware Development?(we’re not building aircraft – or anything tangible really)                         ...
Time-boxed iterative development haschallengesCommon problems include:•Short time-boxes give more frequent opportunity tom...
Inside an iteration, effort across roles isunevenDevelopment work often continues throughout a cyclewhile testing starts l...
Using a Kanban approach in software drops time-boxed iterations in favor of focusing on continuous           flow.        ...
How to set up a simple Kanban system for asoftware development        team.                         9
1. Define a work process flow                          This simple process flow has the steps:                          2....
2. Lay out a visual Kanban board                          Place an expedite track above the main                          ...
3. Decide on limits for items in queueand work in progress                           This board uses painters tape to     ...
4. Place prioritized goals on the leftcolumn of the board                 Having goals visible:                 •promotes ...
5. Start the board by placing stories orfeatures in queue                       Product owners manage the waiting         ...
6. Move features through the processflow as work is completedAs the story enters the first process step, mark that date on...
7. Use the dates on the cards tocalculate cycle time                       Cycle time = finish date – start date          ...
Display and manage cycle times                                                                  Disneyland’s              ...
Kanban Boards                18
Kanban Boards                19
Kanban Boards                20
Kanban Boards                21
Kanban Boards                22
Explode large process steps into tasksto improve visibilityWhen a feature, user story, or work item is large:      Takes ...
Kanban Board with TaskDecomposition                         24
Use cumulative flow diagrams tovisualize work in progresswww.agilemanagement.net/Articles/Papers/BorConManagingwithCumulat...
Use cumulative flow diagrams tovisualize work in progresswww.agilemanagement.net/Articles/Papers/BorConManagingwithCumulat...
Keep time-boxed product and processinspectionKeep regular time-boxes in your process as a cue for productinspection:•Evalu...
Begin looking at your process using Lean thinkingCockburn’s Software Engineering in the 21st Century:                     ...
Since we’re engaged in “knowledge work” look atthe cycle time of validated decisions, or knowledgeCockburn’s Software Engi...
Often the feedback loop is overlooked – it’s theinvisible backed-up queueCockburn’s Software Engineering in the 21st Centu...
Setting up a simple Kanban system starts to focus the team  on the cycle-time of delivered work and gives a way to detecta...
Using Kanban Techniquesto Control IncrementalDevelopmentJeff PattonAgileProductDesign.comjpatton@acm.orgDownload this pres...
Kanban References:• Anderson, Kanban in Action:  http://www.agilemanagement.net/Articles/Weblog/KanbaninAction.ht  ml• Hir...
Upcoming SlideShare
Loading in …5
×

Patton kanban

842 views

Published on

hiiiiiii

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

No Downloads
Views
Total views
842
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
40
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Patton kanban

  1. 1. Using Kanban Techniquesto Control IncrementalDevelopmentJeff PattonAgileProductDesign.comjpatton@acm.orgDownload this presentation at: www.agileproductdesign.com/downloads/patton_kanban.ppt
  2. 2. In this short talk we’ll cover: 1. What is a Kanban System and howdoes it apply to software development? 2. How to set up a development team Kanban System 3. Applying Lean thinking to software development 2
  3. 3. 看板 – Kanban cards limit excess workin progress看板 – Kanban literally means“visual card,” “signboard,” or“billboard.”Toyota originally used Kanbancards to limit the amount ofinventory tied up in “work inprogress” on a manufacturing floorNot only is excess inventory waste,time spent producing it is timethat could be expended elsewhereKanban cards act as a form of“currency” representing how WIPis allowed in a system. 3
  4. 4. Kanban simulationLet’s simulate a simple process, then see if we can improve it by adding a Kanban system.I’ll need 5 volunteers to manufacture the latest in high-tech aircraft 4
  5. 5. Why use Kanban inSoftware Development?(we’re not building aircraft – or anything tangible really) 5
  6. 6. Time-boxed iterative development haschallengesCommon problems include:•Short time-boxes give more frequent opportunity tomeasure progress and inspect software but forcedevelopment items to be smaller•Smaller development items are often too small to bevaluable and difficult to identify•Quality of requirements suffers as analysts rush to preparefor upcoming cycles•Quality of current development suffers when busy analystsare unable to inspect software or answer questions duringdevelopment•Quality often suffers as testers race to complete work latein the development time-box 6
  7. 7. Inside an iteration, effort across roles isunevenDevelopment work often continues throughout a cyclewhile testing starts late and never seems to get enough time 7
  8. 8. Using a Kanban approach in software drops time-boxed iterations in favor of focusing on continuous flow. 8
  9. 9. How to set up a simple Kanban system for asoftware development team. 9
  10. 10. 1. Define a work process flow This simple process flow has the steps: 2.elaboration & acceptance criteria 3.development 4.test 5.deploymentLook at the typical flow for features, stories, or workpackages and describe typical process steps 10
  11. 11. 2. Lay out a visual Kanban board Place an expedite track above the main left to right queue Place “done and waiting” queues between each work queue (in this example they’re placed below)Place a goals column on the left, then a waiting queue, theprocess steps, and a final “done” column to the right 11
  12. 12. 3. Decide on limits for items in queueand work in progress This board uses painters tape to indicate available “slots” for work in progressA good limit is a factor of the number of people in a role that can workon an item in a given process step. Start with number of people * 1.5 12
  13. 13. 4. Place prioritized goals on the leftcolumn of the board Having goals visible: •promotes focus •helps us prioritize •helps us manage feature scope & requirementsA good goal describes the outcome we hope to achieve after softwareships. Goals help keep focus on the larger outcome. 13
  14. 14. 5. Start the board by placing stories orfeatures in queue Product owners manage the waiting queueMark on the story or feature card the date it entered the queue. Thisbegins our measurement of cycle time. 14
  15. 15. 6. Move features through the processflow as work is completedAs the story enters the first process step, mark that date on the card.This is the start date. As it’s finished, mark that date on the card. Thisis the finish date. 15
  16. 16. 7. Use the dates on the cards tocalculate cycle time Cycle time = finish date – start date The average cycle time from the date the item enters the board is the wait time from this point in the queueUse average cycle time to set wait times from different points on theboard. Pay attention to flow and bottlenecks: relieving bottlenecks asquickly as possible. 16
  17. 17. Display and manage cycle times Disneyland’s public display of cycle-timesReduce the number of Kanban slots allowed until cycle time remainsunchangedReduce the size of development items•Work in progress is actually the number of items * the average size of itemsIdentify and act on bottlenecks immediately•Relieve repeated bottlenecks by changing the number and types of people ineach role and cross training 17
  18. 18. Kanban Boards 18
  19. 19. Kanban Boards 19
  20. 20. Kanban Boards 20
  21. 21. Kanban Boards 21
  22. 22. Kanban Boards 22
  23. 23. Explode large process steps into tasksto improve visibilityWhen a feature, user story, or work item is large:  Takes longer than a couple days to complete  Requires that multiple people collaborate on its completionDecompose that step into cards to track independentlyFeature to Tasks in Tasks Feature develop Tasks in queue progress complete complete 23
  24. 24. Kanban Board with TaskDecomposition 24
  25. 25. Use cumulative flow diagrams tovisualize work in progresswww.agilemanagement.net/Articles/Papers/BorConManagingwithCumulat.html 25
  26. 26. Use cumulative flow diagrams tovisualize work in progresswww.agilemanagement.net/Articles/Papers/BorConManagingwithCumulat.html 26
  27. 27. Keep time-boxed product and processinspectionKeep regular time-boxes in your process as a cue for productinspection:•Evaluate the quality of the growing product from a functional,engineering, and user experience perspectiveEvaluate your pace of development:•Look at the number of development items completed relative to goals•Look at the average cycle time per development item•Calculate the ratio of developer days per completed item. Use thisratio to estimate the completion time for undeveloped items•Adjust your development plan as necessaryEvaluate and adjust the process you’re using•Use a process reflection session to identify changes you could make toimprove your product or pace 27Ending cycles right: http://www.stickyminds.com/s.asp?F=S14865_COL_2
  28. 28. Begin looking at your process using Lean thinkingCockburn’s Software Engineering in the 21st Century: 28http://alistair.cockburn.us/Software+engineering+in+the+21st+century.ppt
  29. 29. Since we’re engaged in “knowledge work” look atthe cycle time of validated decisions, or knowledgeCockburn’s Software Engineering in the 21st Century: 29http://alistair.cockburn.us/Software+engineering+in+the+21st+century.ppt
  30. 30. Often the feedback loop is overlooked – it’s theinvisible backed-up queueCockburn’s Software Engineering in the 21st Century: 30http://alistair.cockburn.us/Software+engineering+in+the+21st+century.ppt
  31. 31. Setting up a simple Kanban system starts to focus the team on the cycle-time of delivered work and gives a way to detectand begin to resolve bottlenecks 31
  32. 32. Using Kanban Techniquesto Control IncrementalDevelopmentJeff PattonAgileProductDesign.comjpatton@acm.orgDownload this presentation at: www.agileproductdesign.com/downloads/patton_kanban.ppt
  33. 33. Kanban References:• Anderson, Kanban in Action: http://www.agilemanagement.net/Articles/Weblog/KanbaninAction.ht ml• Hiranabe, Kanban Applied to Software Development: from Agile to Lean: http://www.infoq.com/articles/hiranabe-lean-agile-kanban• Ladas, Scrumban - Essays on Kanban Systems for Lean Software Development: http://www.lulu.com/content/3864767• Ladas, Scrum-ban: http://leansoftwareengineering.com/ksse/scrum-ban/• Belshee, Naked Planning, Kanban Simplified: http://joearnold.com/2008/03/naked-planning-kanban- simplified/ 33

×