Identifying and managing waste in software product development

44
IDENTIFYING AND MANAGING WASTE IN PRODUCT DEVELOPMENT Ken Power

description

This is the slide deck from my talk at LESS 2012, the Lean Enterprise Software and Systems conference in Tallinn, Estonia. http://SystemAgility.com/events

Transcript of Identifying and managing waste in software product development

Page 1: Identifying and managing waste in software product development

IDENTIFYING AND MANAGING WASTE IN PRODUCT DEVELOPMENT Ken Power

Page 2: Identifying and managing waste in software product development

Do any of these sound familiar? • Discovering the same problems over and over again • Solving the same problems repeatedly • Discovering that the problem we thought we had

was just a symptom •  Teams are not performing to expectation (either

managements or their own) •  Things just seem to take too long to get done •  There is a lot of churn • Defect rates are climbing •  Feature velocity is falling over successive releases • People are feeling a general dissatisfaction and lack

of fulfillment

Page 3: Identifying and managing waste in software product development

About me

• My day job § Co-Founder, Agile Office at Cisco §  Internal Agile & Lean Consultant

• Extra-curricular activities § Fellow of the Lean Systems Society (http://LeanSystemsSociety.org/) § Award-winning publications in Agile and Lean product development § Frequent speaker at major international Agile and Lean conferences §  Involved in organizing international Agile and Lean conferences §  Industry/academic collaborative research on Agile and Lean software development § Blog: http://SystemAgility.com/ § Twitter: @ken_power

Page 4: Identifying and managing waste in software product development

“Eliminating waste is the most fundamental lean principle, the one from which all the other principles

follow. Thus, the first step to implementing lean development is

learning to see waste.”

(Poppendieck and Poppendieck 2003)

Page 5: Identifying and managing waste in software product development

Defining Waste • Waste

•  “Waste is anything that depletes resources of time, effort, space, or money without adding customer value.”

• Unevenness •  Variability in Flow

• Overburden •  “Unreasonableness”

Page 6: Identifying and managing waste in software product development
Page 7: Identifying and managing waste in software product development

7 Wastes of TPS

• Waste of overproduction. • Waste of time on hand (waiting).

• Waste in transportation. • Waste of processing itself. • Waste of stock on hand (inventory)

• Waste of movement. • Waste of making defective products.

Ohno Shiego

Page 8: Identifying and managing waste in software product development

Capacity and Efficiency

Present Capacity = Work + Waste

“True efficiency comes when we produce zero waste and bring the percentage of work to 100 percent”

(Ohno 1988)

Page 9: Identifying and managing waste in software product development

8 Wastes of Lean

• Overproduction. • Waiting (time on hand). • Unnecessary transport or conveyance.

• Over-processing or incorrect processing.

• Excess inventory. • Unnecessary movement. • Defects. • Unused employee creativity.

Liker

Page 10: Identifying and managing waste in software product development

Waste Type Examples of Waste Effects of Waste

Overproduction •  Producing items for which there are no orders •  Overstaffing; Storage costs; Transportation costs

Waiting (time on hand)

•  Workers watching an automated machine •  Workers standing around waiting for the next

processing step, tool, supply part, etc. •  Workers having no work because stock is out of

supply, delays in processing, equipment downtime, or capacity bottlenecks

•  Worker time is wasted

Unnecessary transport or conveyance

•  Carrying work in progress long distances •  Creating inefficient transport •  Moving materials, parts or finished goods into or

out of storage or between processes

•  Time is wasted

Over-processing or incorrect processing

•  Unneeded extra steps to process parts •  Inefficient processes •  Providing higher quality than necessary

•  Inefficiencies; Unnecessary work

Excess inventory •  Excess raw material •  Excess Work In Progress (WIP) •  Extra inventory

•  Production imbalance; Late deliveries from suppliers; Defects; Equipment down time; Long setup time; Obsolescence; Damaged goods; Excess transportation costs; Excess Storage Costs

Unnecessary movement

•  Any wasted motion employees have to perform in the course of their work, e.g., looking for, reaching for or stacking tools, parts, etc.

•  Excess time, delayed feedback, or opportunity for errors

Defects •  Production of defective parts •  Correction of defective parts •  Repair or rework; Scrap •  Replacement production; Inspection

•  Wasteful handling, time and effort

Unused employee creativity

•  Not engaging with or listening to employees •  Lost time, ideas, skills, improvements, and learning opportunities

Page 11: Identifying and managing waste in software product development

Wastes in Software Development The Seven Wastes of

Manufacturing

•  Inventory • Extra Processing • Overproduction •  Transportation • Waiting • Motion • Defects

The Seven Wastes of Software Development

• Partially Done Work • Extra Processes • Extra Features •  Task Switching • Waiting • Motion • Defects

Page 12: Identifying and managing waste in software product development

Waste elimination and continuous improvement applies even more to

high-performing teams and organizations

Page 13: Identifying and managing waste in software product development
Page 14: Identifying and managing waste in software product development

Waste comes back 20 years later, it’s striking to me how much effort we’ve expended on eliminating muda (waste) and how little attention we have given to mura (unevenness) and muri (overburden). In short, unevenness and overburden are now the root causes of waste in many organizations. Even worse they put waste back that managers and operations teams have just eliminated. I have … advice for managers — especially senior managers — trying to create lean businesses: Take a careful look at your mura and your muri as you start to tackle your muda.”

James Womack, “Mura, Muri, Muda?” in Gemba Walks

Page 15: Identifying and managing waste in software product development

blog.fundingfactory.com

keepingitkleen.com

Page 16: Identifying and managing waste in software product development

Hierarchy of Waste Management

http://www.envirocentre.ie/

Page 17: Identifying and managing waste in software product development

Challenges • Agreeing what is “waste” • Visualize Waste • Quantify the effects and impacts of Waste

•  E.g., Technical Debt, Quality Debt

• Quantify the (perceived improvements) of managing the Wastes

• Seeing the whole – Systems Thinking • Avoiding local sub-optimization • Some focus on Muda

•  Little focus on the effects of •  Mura (unevenness in operations) •  Muri (overburdening of people and equipment)

Page 18: Identifying and managing waste in software product development

Identify Wastes

Initial understanding

Prioritize

Select Create a hypothesis

Manage

Understand the ‘After’ scenario

Page 19: Identifying and managing waste in software product development

!!!!!!!!!!!

!

Keep Doing Do Less Of

Do More Of

Stop Doing

Things to Try

Identifying Wastes using Games

http://skycoach.be/ http://innovationgames.com

Page 20: Identifying and managing waste in software product development

PDSA •  Follows the steps of the

Scientific Method •  Plan: develop a hypothesis or

experiment •  Do: conduct the experiment •  Study: collect measurements •  Act: interpret the results and

take appropriate action

• Also known as •  PDCA •  The Deming Cycle •  The Shewart Cycle

Plan

Do Study

Act

Page 21: Identifying and managing waste in software product development

Value Stream Mapping

Page 22: Identifying and managing waste in software product development

A3 Management Focus Problem Solving Proposal Writing Project Status Review

Thematic content or focus

Improvements related to quality, cost, delivery, safety, productivity, etc.

Policies, decisions, or projects with significant investment or implementation

Summary of changes and results as an outcome of either problem solving or proposal implementation

Tenure of person conducting the work

Novice, but continuing throughout career

Experienced personnel; managers

Both novice and more experienced managers

Analysis Strong root-cause emphasis; quantitative/analytical

Improvement based on considering current state; mix of quantitative and qualitative

Less analysis and more focus on verification of hypothesis and action items

PDCA cycle Document full PDCA cycle involved in making an improvement and verifying the result

Heavy focus on the Plan step, with Check and Act steps embedded in the implementation plan

Heavy focus on the Check and Act steps, including confirmation of results and follow-up to complete the learning loop

From Table 5.1 from “Understanding A3 Thinking”

Page 23: Identifying and managing waste in software product development

John Clifford, Construx http://forums.construx.com/blogs/johnclif/archive/2009/09/30/if-you-want-to-improve-stop-managing-your-problems.aspx

Page 24: Identifying and managing waste in software product development
Page 25: Identifying and managing waste in software product development

Waste Example

Waste Category

Description Relative Importance

# Stakeholders affected

Value Trigger Date, by which the waste must be eliminated

Relative value for managing this waste vs. other wastes

Relative value for managing this waste vs. other Project work

Compile and Build times take too long

Waiting It can take 15-30 minutes to run a full build, depending on the machine

We are losing nearly 20 person-hours per day across the entire team.

42 Devs, 12 QA (directly affected – others are indirectly affected)

50+ people will have less frustration waiting for long build cycles; Shorter build cycles encourage more frequent integration …

Release 4.5.1 in August 2012

This will help reduce feedback loops and encourage more use of TDD, leading to higher quality, fewer integration errors, fewer defects

This will ultimately help us go faster with other project work

Team spends time working on features that get dropped

Partially Done Work

Engineers, designers and others are putting significant effort into features that get dropped later.

We are not doing sufficient due diligence on some features. We need to get better at defining our Minimal Viable Offer.

8 Devs, 3 QA, 2 Eng Mgr, 2 Product Mgr

The entire team can spend more time focusing on delivering features we will ship with.

Duplication of status and progress reporting

Extra Processes

Functional lines are managing own reporting

Duplicated effort and danger of mixed message

4 Eng. Mgr, 1 Program Mgr, 3 Team Leads

Resolving defects in complex product dependency chains

Defects

Page 26: Identifying and managing waste in software product development

Effective Retrospectives • One of the top 10 reasons that Agile projects fail is poor use of retrospectives

• Your opportunity to Inspect and Adapt

• Foster organization learning

People Team Management Org Leadership

Page 27: Identifying and managing waste in software product development

Problem Solving Teams in Action

Page 28: Identifying and managing waste in software product development

Keep it Visible

Page 29: Identifying and managing waste in software product development

SOME LESSONS LEARNED

Page 30: Identifying and managing waste in software product development

Definition of Done and Definition of Ready act as social contracts in agile teams. Together, they provide a boundary that stabilizes the team’s working environment, prevents waste (time, delays, churn, working on the wrong things), and avoids the accumulation of technical debt and quality debt.

Let nothing into a Sprint (or Timebox) that is not Ready; Let nothing out that is not Done

Getting Ready and Done

Page 31: Identifying and managing waste in software product development

Planned Ready In Progress Done Accepted

We have prepared the Work Item, and the Work Item is ready to be pulled

in by the team

This is our Ready policy. Thanks for

reading.

(5)

Explicit Policies: Definition of Ready is a

good fit here

Apply WIP Limits to the Ready Queue too

Page 32: Identifying and managing waste in software product development

Waste and Software Debt

Release&1& Release&2& Release&3& Release&4&

Features&

Technical&Debt&

Quality&Debt&

Release&1& Release&2& Release&3& Release&4&

Features&

Technical&Debt&

Quality&Debt&“Technical Debt Is Now

Costing Us $3.61 Per Line Of Code”

- CAST Study

Power, Ken. “Product Ownership Challenges.”

Page 33: Identifying and managing waste in software product development

Types of Debt •  Technical • Environment • Skills • Planning • Architecture

Page 34: Identifying and managing waste in software product development

Waste and Flow

“The Principle of Queuing Waste: Queues are the root cause of the majority of economic waste in product development”

(Reinertsen, 2009).

Page 35: Identifying and managing waste in software product development

Kanban helps visualize and control waste

“kanban systems offer deferred commitment, control of variability in flow, elimination of over-burdening, reduction of multi- tasking, and better alignment with high level risk management decisions regarding allocation of supply against various competing demands”

(Anderson, 2012) What Kanban Coaches do and don’t do

http://agilemanagement.net/index.php/Blog/what_kanban_coaches_do_and_dont_do/

Page 36: Identifying and managing waste in software product development

The Life of a User Story

A single “In Progress” queue is not always sufficient to see what is happening

Planned (10)

Ready (5)

In Progress (7)

Done Accepted

This is our Ready policy. Thanks for

reading.

This is our Ready policy. Thanks for

reading.

Page 37: Identifying and managing waste in software product development

The Life of a User Story

Design

Done Accepted

Coding

(2)

Code Review

(2)

Test Analysis

(2)

Design Review

(1)

SCM Updates

(1)

Planned (10)

Ready (5)

In Progress

Page 38: Identifying and managing waste in software product development

Consider Team Effectiveness

Page 39: Identifying and managing waste in software product development
Page 40: Identifying and managing waste in software product development

What would Deming say? “In my experience, most troubles and

most possibilities for improvement add up to proportions something like

this: 94% belong to the System (the responsibility of management) 6% belong to Special Causes”

Page 41: Identifying and managing waste in software product development

Optimize on the People who add Value

“Almost every organization claims it’s people are important, but if they truly optimize their structures on those who add value, they would be able to say:”

Page 42: Identifying and managing waste in software product development

• Eric Ries, The Lean Startup. (page 274)

For all our vaunted efficiency in the making of things, our economy is still incredibly wasteful. This waste comes not from the inefficient organization of work but rather from working on the wrong things – and on an industrial scale. … It is hard to come by a solid estimate of just how wasteful modern work is.”

Page 43: Identifying and managing waste in software product development

Summary •  There is waste in every

system •  Learn to see it •  Eliminate it (or at least get it under

control)

• Develop people to be Problem Solvers

• You can have fun finding and eliminating waste •  use serious games at work

• Use these techniques as part of your Continuous Improvement (Kaizen) efforts •  Release or Iteration Retrospectives

are a great forum •  Dedicated Problem Solving

Sessions •  Continuous Improvement Circles •  Strategy Sessions •  Portfolio Management Sessions •  Whenever you encounter a

problem

• Keep it Visible

Page 44: Identifying and managing waste in software product development

Thank You!