Using Kanban Techniques to Control Incremental Development

Slides:



Advertisements
Similar presentations
Using Metrics to Reduce Cost of Re-work Dwight Lamppert Senior Test Manager Franklin Templeton.
Advertisements

© 2008 Pearson Addison Wesley. All rights reserved Chapter Seven Costs.
Chapter 1 The Study of Body Function Image PowerPoint
1 Copyright © 2013 Elsevier Inc. All rights reserved. Appendix 01.
Iterative Development: Done Simply Emily Lynema NCSU Libraries Code4Lib 2010.
UNITED NATIONS Shipment Details Report – January 2006.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
State of New Jersey Department of Health and Senior Services Patient Safety Reporting System Module 2 – New Event Entry.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Exit a Customer Chapter 8. Exit a Customer 8-2 Objectives Perform exit summary process consisting of the following steps: Review service records Close.
Leading for High Performance. PKR, Inc., for Cedar Rapids 10/04 2 Everythings Up-to-Date in Cedar Rapids! Working at classroom, building, and district.
FACTORING ax2 + bx + c Think “unfoil” Work down, Show all steps.
Year 6 mental test 5 second questions
Year 6 mental test 10 second questions
ZMQS ZMQS
1 Implementing Internet Web Sites in Counseling and Career Development James P. Sampson, Jr. Florida State University Copyright 2003 by James P. Sampson,
ATMAN HB summary seminar # Challenges 2 ATMAN project 9/17/2010.
Solve Multi-step Equations
REVIEW: Arthropod ID. 1. Name the subphylum. 2. Name the subphylum. 3. Name the order.
Week 2 The Object-Oriented Approach to Requirements
Electric Bus Management System
Chapter 5 – Enterprise Analysis
CHAPTER 5 ESSENTIALS OF FINANCIAL STATEMENT ANALYSIS.
Effective Test Planning: Scope, Estimates, and Schedule Presented By: Shaun Bradshaw
Introduction When you choose a restaurant for a meal, are you concerned with: The price of the meal How long you have to wait to be seated The quality.
S-Curves & the Zero Bug Bounce:
EU market situation for eggs and poultry Management Committee 20 October 2011.
© Paradigm Publishing, Inc Access 2010 Level 1 Unit 1Creating Tables and Queries Chapter 2Creating Relationships between Tables.
Project Management from Simple to Complex
1 Undirected Breadth First Search F A BCG DE H 2 F A BCG DE H Queue: A get Undiscovered Fringe Finished Active 0 distance from A visit(A)
Green Eggs and Ham.
VOORBLAD.
Benchmark Series Microsoft Excel 2013 Level 2
1 Breadth First Search s s Undiscovered Discovered Finished Queue: s Top of queue 2 1 Shortest path from s.
Target Costing If you cannot find the time to do it right, how will you find the time to do it over?
Factor P 16 8(8-5ab) 4(d² + 4) 3rs(2r – s) 15cd(1 + 2cd) 8(4a² + 3b²)
Basel-ICU-Journal Challenge18/20/ Basel-ICU-Journal Challenge8/20/2014.
CMPT 275 Software Engineering
© 2012 National Heart Foundation of Australia. Slide 2.
LO: Count up to 100 objects by grouping them and counting in 5s 10s and 2s. Mrs Criddle: Westfield Middle School.
Understanding Generalist Practice, 5e, Kirst-Ashman/Hull
Model and Relationships 6 M 1 M M M M M M M M M M M M M M M M
25 seconds left…...
Januar MDMDFSSMDMDFSSS
Chapter 10: The Traditional Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
We will resume in: 25 Minutes.
12 Financial Management 12-1 Financial Planning
©Brooks/Cole, 2001 Chapter 12 Derived Types-- Enumerated, Structure and Union.
Intracellular Compartments and Transport
PSSA Preparation.
Essential Cell Biology
Educator Evaluation: A Protocol for Developing S.M.A.R.T. Goal Statements.
Benchmark Series Microsoft Excel 2013 Level 2
Kanban “Signboard”.
Kanban Dr. Tammy Sagastizado Organizeworkorhome.com follow me on 1.
Theories of Agile, Fails of Security Daniel Liber CyberArk.
We’ll cover:  1. What is a Kanban System and how does it apply to anything you want to do?  2. How to set up a Kanban System 2.
Kanban Advanced Software Engineering Dr Nuha El-Khalili.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Using Kanban Techniques to Control Incremental Development
Johanna Rothman Agile Team Measurements Chapter 12
Summarizing Our Models to Date
Scrum in Action.
Presentation transcript:

Using Kanban Techniques to Control Incremental Development Jeff Patton AgileProductDesign.com jpatton@acm.org Download this presentation at: www.agileproductdesign.com/downloads/patton_kanban.ppt

In this short talk we’ll cover: 1. What is a Kanban System and how does it apply to software development? 2. How to set up a development team Kanban System 3. Applying Lean thinking to software development

看板 – Kanban cards limit excess work in progress 看板 – Kanban literally means “visual card,” “signboard,” or “billboard.” Toyota originally used Kanban cards to limit the amount of inventory tied up in “work in progress” on a manufacturing floor Not only is excess inventory waste, time spent producing it is time that could be expended elsewhere Kanban cards act as a form of “currency” representing how WIP is allowed in a system.

I’ll need 5 volunteers to manufacture the latest in high-tech aircraft Kanban simulation Let’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

Why use Kanban in Software Development Why use Kanban in Software Development? (we’re not building aircraft – or anything tangible really)

Time-boxed iterative development has challenges Common problems include: Short time-boxes give more frequent opportunity to measure progress and inspect software but force development items to be smaller Smaller development items are often too small to be valuable and difficult to identify Quality of requirements suffers as analysts rush to prepare for upcoming cycles Quality of current development suffers when busy analysts are unable to inspect software or answer questions during development Quality often suffers as testers race to complete work late in the development time-box

Inside an iteration, effort across roles is uneven Development work often continues throughout a cycle while testing starts late and never seems to get enough time

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 a software development team.

1. Define a work process flow This simple process flow has the steps: elaboration & acceptance criteria development test deployment Look at the typical flow for features, stories, or work packages and describe typical process steps

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, the process steps, and a final “done” column to the right

3. Decide on limits for items in queue and work in progress This board uses painters tape to indicate available “slots” for work in progress A good limit is a factor of the number of people in a role that can work on an item in a given process step. Start with number of people * 1.5

4. Place prioritized goals on the left column of the board Having goals visible: promotes focus helps us prioritize helps us manage feature scope & requirements A good goal describes the outcome we hope to achieve after software ships. Goals help keep focus on the larger outcome.

5. Start the board by placing stories or features in queue Product owners manage the waiting queue Mark on the story or feature card the date it entered the queue. This begins our measurement of cycle time.

6. Move features through the process flow as work is completed As 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. This is the finish date.

7. Use the dates on the cards to calculate 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 queue Use average cycle time to set wait times from different points on the board. Pay attention to flow and bottlenecks: relieving bottlenecks as quickly as possible.

Display and manage cycle times Disneyland’s public display of cycle-times Reduce the number of Kanban slots allowed until cycle time remains unchanged Reduce the size of development items Work in progress is actually the number of items * the average size of items Identify and act on bottlenecks immediately Relieve repeated bottlenecks by changing the number and types of people in each role and cross training

Kanban Boards

Kanban Boards

Kanban Boards

Kanban Boards

Kanban Boards

Explode large process steps into tasks to improve visibility When a feature, user story, or work item is large: Takes longer than a couple days to complete Requires that multiple people collaborate on its completion Decompose that step into cards to track independently Feature to develop Tasks in progress Tasks complete Feature complete Tasks in queue

Kanban Board with Task Decomposition

Use cumulative flow diagrams to visualize work in progress www.agilemanagement.net/Articles/Papers/BorConManagingwithCumulat.html

Use cumulative flow diagrams to visualize work in progress www.agilemanagement.net/Articles/Papers/BorConManagingwithCumulat.html

Keep time-boxed product and process inspection Keep regular time-boxes in your process as a cue for product inspection: Evaluate the quality of the growing product from a functional, engineering, and user experience perspective Evaluate 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 this ratio to estimate the completion time for undeveloped items Adjust your development plan as necessary Evaluate and adjust the process you’re using Use a process reflection session to identify changes you could make to improve your product or pace Ending cycles right: http://www.stickyminds.com/s.asp?F=S14865_COL_2

Begin looking at your process using Lean thinking Cockburn’s Software Engineering in the 21st Century: http://alistair.cockburn.us/Software+engineering+in+the+21st+century.ppt

Since we’re engaged in “knowledge work” look at the cycle time of validated decisions, or knowledge Cockburn’s Software Engineering in the 21st Century: http://alistair.cockburn.us/Software+engineering+in+the+21st+century.ppt

Often the feedback loop is overlooked – it’s the invisible backed-up queue Cockburn’s Software Engineering in the 21st Century: http://alistair.cockburn.us/Software+engineering+in+the+21st+century.ppt

Setting up a simple Kanban system starts to focus the team on the cycle-time of delivered work and gives a way to detect and begin to resolve bottlenecks

Using Kanban Techniques to Control Incremental Development Jeff Patton AgileProductDesign.com jpatton@acm.org Download this presentation at: www.agileproductdesign.com/downloads/patton_kanban.ppt

Kanban References: Anderson, Kanban in Action: http://www.agilemanagement.net/Articles/Weblog/KanbaninActi on.html 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/