patton kanban

Download Patton kanban

Post on 16-May-2015




0 download

Embed Size (px)




  • 1. Using Kanban Techniquesto Control IncrementalDevelopmentJeff PattonAgileProductDesign.comjpatton@acm.orgDownload this presentation at:

2. In this short talk well 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. Kanban cards limit excess workin progress Kanban literally meansvisual card, signboard, orbillboard.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 ofcurrency representing how WIPis allowed in a system.3 4. Kanban simulationLets simulate a simple process, then see if we canimprove it by adding a Kanban system.Ill need 5 volunteers to manufacture the latest in high-tech aircraft4 5. Why use Kanban inSoftware Development?(were not building aircraft or anything tangible really)5 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 smallerSmaller development items are often too small to bevaluable and difficult to identifyQuality of requirements suffers as analysts rush to preparefor upcoming cyclesQuality of current development suffers when busy analystsare unable to inspect software or answer questions duringdevelopmentQuality often suffers as testers race to complete work latein the development time-box6 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. Using a Kanban approach in software drops time-boxed iterations in favor of focusing on continuous flow. 8 9. How to set up a simple Kanban system for asoftware developmentteam. 9 10. 1. Define a work process flowThis simple process flow has the steps:2.elaboration & acceptance criteria3.development4.test5.deploymentLook at the typical flow for features, stories, or workpackages and describe typical process steps 10 11. 2. Lay out a visual Kanban boardPlace an expedite track above the mainleft to right queuePlace done and waiting queuesbetween each work queue(in this example theyre 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. 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. 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. 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. 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 its finished, mark that date on the card. Thisis the finish date.15 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. Display and manage cycle timesDisneylandspublic display ofcycle-timesReduce the number of Kanban slots allowed until cycle time remainsunchangedReduce the size of development itemsWork in progress is actually the number of items * the average size of itemsIdentify and act on bottlenecks immediatelyRelieve repeated bottlenecks by changing the number and types of people ineach role and cross training17 18. Kanban Boards18 19. Kanban Boards19 20. Kanban Boards20 21. Kanban Boards21 22. Kanban Boards22 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 toTasks in Tasks Feature develop Tasks in queue progresscompletecomplete 23 24. Kanban Board with TaskDecomposition 24 25. Use cumulative flow diagrams tovisualize work in 25 26. Use cumulative flow diagrams tovisualize work in 26 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 goalsLook at the average cycle time per development itemCalculate the ratio of developer days per completed item. Use thisratio to estimate the completion time for undeveloped itemsAdjust your development plan as necessaryEvaluate and adjust the process youre usingUse a process reflection session to identify changes you could make toimprove your product or pace 27Ending cycles right: 28. Begin looking at your process using Lean thinkingCockburns Software Engineering in the 21st Century: 28 29. Since were engaged in knowledge work look atthe cycle time of validated decisions, or knowledgeCockburns Software Engineering in the 21st Century: 29 30. Often the feedback loop is overlooked its theinvisible backed-up queueCockburns Software Engineering in the 21st Century: 30 31. Setting up a simple Kanban system starts to focus the teamon the cycle-time of delivered work and gives a way to detectand begin to resolve bottlenecks 31 32. Using Kanban Techniquesto Control IncrementalDevelopmentJeff PattonAgileProductDesign.comjpatton@acm.orgDownload this presentation at: 33. Kanban References: Anderson, Kanban in Action: Hiranabe, Kanban Applied to Software Development: from Agileto Lean: Ladas, Scrumban - Essays on Kanban Systems for LeanSoftware Development: Ladas, Scrum-ban: Belshee, Naked Planning, Kanban Simplified: