Kanban - Crossing the line, pushing the limit or rediscovering the agile vision? Jesper Boeg, Agile Coach, Developer

Similar documents
Kanban kick- start (v2)

Introduction to Agile and Scrum

Agile Delivery Framework (ADF)

Scrum Master / Agile Project Manager An Approach for Personal Competency Development

Agile & Lean / Kanban

Lean Construction Institute

AGILE SOLUTIONS. Agile Basics

Implementing Scrumban

De-Mystifying Kanban:

Agile Beyond Software

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

Standard Work and the Lean Enterprise Net Objectives Inc. All Rights Reserved.

WHITE PAPER. Assessing Kanban fitment in the Fluid and Fast-paced World of Software Development. Abstract

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Lean Thinking - Doing More With Less

SAFe Kanban Anywhere. Using LeanKit with the Scaled Agile Framework. Because Better Software Makes the World a Better Place

AHGILE A N D B O O K

Ingegneria del Software Corso di Laurea in Informatica per il Management. Scrum. Davide Rossi Dipartimento di Informatica Università di Bologna

AGILE BASICS. All slides copyright Philip Japikse

The Impact of Agile. Quantified.

Managing Life s Chaos with Personal Kanban

Agile leadership for change initiatives

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

Product Planning Report. Product planning insights from the world s leading companies

Why Agile Transformations Fail. What You Need to Know to Transform Any Sized Organization into an Agile Enterprise

PMI Agile Certified Practitioner (PMI-ACP) Duration: 48 Hours

Presented by Only Agile. What is Agile?

D25-4. How Intertech Uses Agile

Kirill Klimov. Making Scrum more powerful with some Kanban

An Introduction to Leanban. A Net Objectives White Paper

SWE 211 Software Processes

From Growing Pains to Embracing Change

Lean Distribution. Mark Kushner, COO Lloyed Lobo, Director Business Development

SCRUM - compact The agile software development methodology

SCRUM - LESSONS FROM THE TRENCHES

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

INF5181: Process Improvement and Agile Methods in Systems Development

Monitoring Kanban Execution WHITE PAPER

Introduction to Agile/Extreme Programming

A brief introduction to Agile Product Development with Lean and Scrum

Achieving Balance: The New Pivotal Points of Software Development

developer.* The Independent Magazine for Software Professionals Automating Software Development Processes by Tim Kitchens

The Five Stages of a Successful Agile Transformation

Scrum Team Roles and Functions

Kuusi vuotta sprinttien pyörteissä - F-Securen kokemuksia ketteryyden kierteistä

The Software Development Process (SDLC)

Art of Writing in Agile. Writing User Stories in Agile Shikha Saxena, Senior Technical Writer, Pune, India

Just-in-Time System. Dr S G Deshmukh

Implementing SAFe: A Roadmap

Agile Development Doesn t Have to Mean Fragile Enterprise Processes

approach to successful project

Historical Phases of Production

Improving Scrum with. Lean Thinking Nuno Rafael SGMUN 2016

Agile at Scale -Beyond SAFe. John B Hudson, B.Sc., PMP, ACP, CSM, SPC

Agile We Are the Scrum Team; We Take Total Ownership for Deliverables AGILE WEBINAR

Building Cloud Apps using Agile Methodology & Tools

Scrum Test Planning. What goes into a scrum test plan?

Two Branches of Software Engineering

"Value Stream Mapping How does Reliability play a role in making Lean Manufacturing a Success " Presented by Larry Akre May 17, 2007

5 Metrics You Should Know to Understand Your Engineering Efficiency

Agile and Scrum 101 from the Trenches - Lessons Learned

THE AGILE WAY: A complete guide to understanding Agile testing methodologies

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

Welcome to this IBM Rational podcast, The. Scaled Agile Framework in Agile Foundation for DevOps. I'm

SEVEN (7) PRINCIPLES FOR IMPROVING WORKFLOW

Product Owner Training - From Idea to Implementation. Robin Dymond Mark Pushinsky

What is Continuous Integration. And how do I get there

Beyond the ScrumMaster Role: Becoming an Agile Coach

Agile Project Management: Best Practices and Methodologies

Handling Product Management Across The Enterprise. copyright Net Objectives, Inc.

10 Steps to become a Lean Enterprise. Level 2 Lean Practitioner In Manufacturing Training Course. Step 1 - Part 2

Outline. Pull Manufacturing. Push Vs. Pull Scheduling. Inventory Hides Problems. Lowering Inventory Reveals Problems

Feedback Loops. Effects (12) (13) Improve. (10) Visualize (4) (7) (12) (11) Lean. Improving Sustainably. See & Understand (WIP, Blocks, Queues)

Software Engineering Lecture 5 Agile Software Development

Virtually Agile. Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007

Lecture 9 MBF2213 Operations Management Prepared by Dr Khairul Anuar. L9: Lean synchronization

Role of the Business Development Center (BDC)

The Agile Leader Participant Name Lara Croft Participant ID HE Date

The Power of Visibility: Driving a Lean-Agile Transition. Kelley Horton Director, Corporate IT Program Management Office

Agile Anti-patterns. Andrew

Getting Comfortable with being Uncomfortable! Using Agile IA to transform your internal audit function

Pull Systems: Overview, Challenges and Success Factors

Tick, Tick, BOOM! Time Management Techniques for the 21 st Century CTE Professional

BCS Bristol Spring School. The Future of Agile. Allan Kelly Software Strategy (c) Allan Kelly, 2009

Chapter 3 Agile Software Development

Building the Lean Agile Enterprise with the Scaled Agile Framework:

DASA DEVOPS PRACTITIONER

How to Reboot Your Agile Team MAURIZIO MANCINI EXEMPIO.COM

Software Engineering 2 (SWT2) Project Kickoff: Development Process & Collaboration Infrastructure

Build Your Agile Business

Agile in a Regulatory & Compliance Environment. Julie Bridges

Lean Methods for High-Variety, Low-Volume Industries

Scrum - Introduction. Petri Heiramo. Agile Coach, CST

Just-In-Time (JIT) Manufacturing. Overview

Agile Surveillance Points

Lean Enterprise Portfolio Management

The Dev Estimate Oil on Canvas. Munch, Edvard. 1887

Procedia Computer Science

l e a n Eight Failure Modes of Agile Software Development software development Those who do not learn from history are doomed to repeat it.

ALM & Scrum. Necessary But Not Sufficient for Agility

Transcription:

Kanban - Crossing the line, pushing the limit or rediscovering the agile vision? Jesper Boeg, Agile Coach, Developer jbo@trifork.com April 26, 2010

Generelt Spørg endelig Det vigtigste er ikke at vi når alle slides Jeg fokuserer på brugen af Kanban i software udvikling Ikke drift og vedligehold Slides er på engelsk Primært bygget på egne praktiske erfaringer, input fra Projektledere samt Lean thinking og The Toyota way

Agenda Kanban origins What is software Kanban? How is software Kanban different from other agile methods and which problems might it help us solve? Disadvantages Software Kanban and team maturity Last notes

KANBAN IN MANUFACTORING

Kanban in manufactoring Kanban is Japanese and means visual card, signboard, or billboard. Used to limit the amount of inventory tied up in work in progress in Lean manufacturing Excess inventory is regarded as waste and so is the time spent producing it Kanban cards act as a work permit representing how much WIP is allowed in a system. Typically a color coded plastic card 5

A simple example of a Kanban pull system New paper is ordered when the limit prescribed by the kanban is reached When paper arrives the kanban is returned along with the paper Order Paper

KANBAN IN SOFTWARE

Software Kanban uses a broader Lean perspective Limit work in progress. Focus on flow Deliver often Focus on quality stop the line Continuous improvement Keep getting better

Broader Lean perspective Balance demand and throughput Getting people home at night Finding the right bottleneck Having free time on your hands Optimizing the whole Sustainable pace no cell should work at more than 80-85 percent capacity Prioritize Focus on business value and minimal marketable feature set

To achieve this Start by mapping the value stream and track work on a white board

Define WIP limits for each stage PO Inbox PO specification Brakedown Development Code review Test locally with PO and tester Test on DT (Every morning) Release (Every Tuesday) Planned In progress Done Plan pairing Remember: Unittest Int.. test Coverage Depl. issue Tester and PO need 10 min. preparation Only testers should move to release

Pick the low hanging fruits You will be surprised how much you can achieve by Limiting work in progress. Balancing demand and throughput

How does that fit with current Agile best practices? You can do fixed iterations or not As long as you deliver often You estimate or not As long as you are able to do the necessary planning You can brake stories into tasks or not As long as you are able to establish flow You can leave out iteration retrospectives If you replace them with spontaneous quality circles or a better way to continuously improve

But that does not mean It is illegal to do iterations If doing iterations will increase flow It is illegal to estimate If estimation provides valuable information to stakeholders and motivates developers It is not possible to do release planning Release planning can be done on other metrics e.g. cycletime or average number of items completed You are not focusing on improving the way you work

Typical measurements Cycle time Measured from when you started working on it Lead time Measured form when the customer ordered Quality Time spend bugfixing per iteration WIP Average number of stories in progress Throughput Number of stories completed per iteration (when using fixed iterations)

Use Cumulative Flow diagrams http://leanandkanban.files.wordpress.com/2009/04/cfd-example.jpg

Focusing on value sets instead of practices Using Kanban focus is no longer on specific practices Choose practices that will help you use resources at hand most effectively in your context You might end up doing Scrum If Scrum practices are the perfect way to limit WIP, build quality in, level throughput and demand and prioritize according to business value in your context

But that is not my practice!! David Anderson: I don t care about your practices Keep your eyes on the ball We are hopefully using best practices because we believe they help us deliver business value to our customers not because somebody told us to Once practices become faith based and cargo cult we risk loosing sight of the goal Remember Alistair Cockburn s: Shu, Ha, Ri

SO HOW DOES THIS MAKE A DIFFERENCE?

Traditional agile methods have challenges Development items small enough to fit a 2 week iteration are often too small to deliver real business value and obtain real feedback Test becomes waste Deployment becomes waste Retrospectives become waste Story brakedown becomes waste 20

Traditional agile methods have challenges Traditional iterations have consequences: Requirements may suffer as product owners rush to prepare for upcoming cycles Development may suffer when busy product owners, testers and users are unable to inspect software or answer questions during development Functional quality may suffer as testers race to complete work late in the development time-box Code quality may suffer when developers prioritize finishing a set of features over refactoring, TDD and pair programming

Keeping a sustainable pace Sustainable pace is a core value in agile tech wise and people wise But many agile projects exhibit anything but sustainable pace Both in terms of stressed out people and a low quality code base Accept that most traditional agile methods are feature driven and therefore require more measures than delivering working software to keep a sustainable code base

We need to allow more than one cadence David Anderson: Concept that input cadence, output cadence and cycle time should be synchronous e.g. 2 week iteration, will be seen as edge case 5 years from now Seems reasonable to decouple prioritization, delivery and cycle time to vary naturally according to context and transaction costs Actually one of the main reasons kanbans are used in manufacturing

Why do we readily accept agile overhead? Stopping the development team for 1-2 days to do sprint planning Low quality feedback because functionality is to small to provide business value Stressing the real bottleneck/constraint by protecting the development team from external interruptions Planning inventory around development to avoid adjustments during the iteration.

Results More pair programming Better functional quality Better code coverage More refactoring Closer collaboration and team feeling across teams Immediate focus on the real bottleneck Which turned out to be feature specification

Rediscovering the Agile vision? Back to the basics of Flow Feedback Quality built in Close communication and collaboration across the entire value chain Continuous improvement Valuing people over processes and tools That goes for Agile processes and tools as well

Kanban is not the only way I am 100 percent sure you can find ways to achieve similar results using traditional agile methods But it might take you longer to get there So keep an open mind

BUT THERE ARE NO FREE MEALS

Difficulties It has become increasingly hard to protect the team from all sorts of interruptions A hard deadline is easy for everyone to understand Both within the team and people outside the project We have to spend more time discussing plans and long term goal Since people are no longer as focused on the short term goal

Difficulties We are using considerably more time explaining why we are doing things the way we are Most people have bought the Scrum silver bullet People react very differently to the new structure Some find it very hard to stay focused while others take on more responsibility and become true craftsmen What I still consider good Scrum habits have to be reinforced Daily standup, division of responsibility (PO/team)

Difficulties Reprioritizing flexibility escalated to the point where the PO would try to reprioritize work in progress Problem understanding that though I helped you out this time, it does not automatically become my responsibility New people on the team using longer to get adjusted to the way we work

Difficulties Many more will probably come since we have yet to see the long term effect

GETTING STARTED: 2 WAYS OF LOOKING AT KANBAN AND TEAM MATURITY

Kanban requires high team maturity Based on Lean values and Agile principles it requires high maturity A large toolbox Ability to distinguish between practices that are effective but difficult to implement and practices that do not fit the context Ability to focus on the individual story and avoid unnecessary interruptions Use the added flexibility to find practices that deliver more business value faster not to compensate for poor requirements and failed iterations

Kanban is a good way to start Since Kanban does not include specific practices you can start with your current process and improve it one step at a time Visualize your current value chain and remove one bottleneck at a time Implement one practice at a time and gradually improve your process

The jury is still out on that one At least for me personally But I think I am leaning towards high maturity

SOME LAST NOTES

Kanban is just a process Sometimes one process will work better than another and sometimes they will be equally good. Understand your problem before trying to solve it. Expand your toolkit. My tool is better than yours attitude won t get you anywhere Compare processes to understand them not for judgment.

Kanban is just a process You NEED good practices Agile product management principles do not work well without good practices to support them Quality built in is not just well tested. It is also good architecture and good coding practices

Practices If you haven t got the technical practices in place it doesn t matter what process you are using, It won t get you anywhere in the long run. But a good process will help you focus on having good technical practices and I will argue that Kanban does that exceptionally well.

Plan driven iterations From a Lean perspective iteration planning, deployment, test equals - Batch production It is built on the faulty belief that production should be optimized by making the individual machine go faster Restricting flow Increasing inventory Reducing quality

Plan driven iterations We can t do 2 week iterations because of iteration review/planning overhead Shows you are still living in the old world of Batch production optimization We are responsible for teaching our customers We will deliver exactly what we planned The world is Frozen during the iteration Business value should always fit a 2 week iteration

Look at the entire value stream Start by acknowledging that development is not always the bottleneck In cases where this is true you would rather want developers doing nothing than stressing the real bottleneck further Ideally developers are of cause helping relieving the real bottleneck In traditional Agile methods, development is almost by definition regarded as the bottleneck Keeps you from exposing the real bottleneck Keeps you from taking the right actions do improve your process It took a switch from Scrum to Kanban for us to realize this

Kanban is Leaner than traditional Agile Methods Lean thinking done right can provide you with a wealth of opportunities for improvement Exposing bottlenecks, visualizing flow, optimizing the whole.. But remember to distinguish between Lean manufacturing and Lean product development You cannot eliminate variability without eliminating value added in LPD Cost of delay in manufacturing is often the same Even Toyota forgot the fundamentals - everyone gets caught up in the new sexy stuff and technology

Look at your process from a true Lean perspective Don t try to make a process seem Lean just because it s a popular word A team pulling items from a backlog does not make it a pull system It only means that you have a pull mechanism within your system It doesn t keep you from delivering more functionality than the customer needs or is able to adopt. A true pull system is based on the entire value stream and making sure it is closely aligned with the needs and capabilities of the customer A software Kanban system should represent such value stream

Ask yourself Are you environment driven or environment driving? Methods Organization People Technology That could very well be your biggest impediment since it stops continuous improvement

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 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 47

QUESTIONS?

Kontaktinfo Jesper Boeg Mail: jbo@trifork.com Tlfnr: 51542820 Twitter: J_Boeg