agile series - lean software development

54
- dp Agile Series – Lean Software Development Durgaprasad B. R Flow , Value , Feedback , Collaboration

Post on 14-Sep-2014

882 views

Category:

Technology


5 download

DESCRIPTION

This presentation is part of the series of Agile presentations shared as part of the Agile training, workshops and coaching. Focus is on providing wholesome information about using Agile beyond the skeleton frameworks.

TRANSCRIPT

Page 1: Agile series - Lean software development

-dp-

Agile Series – Lean Software Development

Durgaprasad B. R

Flow, Value, Feedback, Collaboration

Page 2: Agile series - Lean software development

-dp-

Page 3: Agile series - Lean software development

-dp-

Agile

Kanban

Product Owners

Scrum Master/ Project

Manager

XP/ Engineering Practices

ScrumbanLean

Lean Software Development

Scrum

Agile HR Practices

Agile Leadership

Test Automation

Program Governance

Coaching

Continuous Integration/ Deployment

Development Projects

Sustenance Projects

Verification Projects

Technical Support

Web Application

Development

Embedded Applications

Legacy Systems

Continuous Improvement

Agile Offshoring

Page 4: Agile series - Lean software development

-dp-

Backlog1. Background2. 7 Principles and 22 Tools of Lean3. Principles and Tool Mapping

Page 5: Agile series - Lean software development

-dp-

Things to know• Lean – manufacturing developed by Toyota between 1950’s & 80’s• Developed by – Taiichi Ohno @ Toyota • Lean - reason for Toyota’s consistent success in a stagnant industry

• Initial Agile enthusiasts were inspired by lean manufacturing.

• Mary Poppendick (Manufacturing) and her husband Tom Poppendick (software developer) mapped Lean principles to Software developments in their books

• Both Mary & Tom are founding members of Agile Alliance

• Lean Software Development term usually refers to contents of these books

• Lean Software Development contains broad set of Lean Principles applied to software industry.

• You don’t do Agile or Lean. You do both !!!

Page 6: Agile series - Lean software development

-dp-

Things to know• Both Lean Software Development and Agile have similar viewpoint -

emphasize on people involvement and value driven processes

• Many Lean manufacturing tools and leadership practices are still being inherited and helping Agile grow

• Lean Concepts like treating unfinished work (code, documents) as inventory, reducing cycle time are being adopted into the software world

• Understanding Agile based on Lean concepts helps develop Agile mindset. This helps to continuously improve Agile process and develop people

Page 7: Agile series - Lean software development

-dp-

Lean History

Interchangeable Parts

@ US Armories1800

1990Toyota Production System became popular

with the publication of book “The machine that changed the world” and 1996 Lean Thinking by

Womack & Jones

2003 Mary & Tom

Poppendieck publish “Lean

Software Development

from Concept to Cash”

2010 David

Anderson publishes Kanban

1937: Productivity ratio of Japanese to German : 1:3 and German to US: 1:3

i.e., it took 9 Japanese to do the job of 1 American – Mr. Ohno.

Page 8: Agile series - Lean software development

-dp-

Lean Software DevelopmentLean Software Development is the application of Lean

thinking to software development process

Lean does not give specific set of techniques to manage work

It provides a set of principles to help decide how to deliver the most value with the least effort and how to keep improving current techniques

Scrum, Kanban and other workflow management methods can be used to adhere to Lean principles

Scrum, Kanban should be seen as a startpoint and each company should continue to evolve doing improvements that fit their context

Page 9: Agile series - Lean software development

-dp-

Lean Software DevelopmentScrum – method to complete work in a

cadenced iteration

Kanban – method to complete work through limiting work-in-progress and managing flow

Page 10: Agile series - Lean software development

-dp-

Backlog1. Background2. 7 Principles and 22 Tools of Lean3. Principles and Tool Mapping

Page 11: Agile series - Lean software development

-dp-

7 Principles of Lean Software Development

1. Eliminate Waste2. Amplify Learning3. Decide as late as possible4. Deliver as fast as possible5. Empower the team6. Build integrity in7. See the whole

7 Principles of Lean software development are drawn from 7 Principles of Lean thinking

Page 12: Agile series - Lean software development

-dp-

22 Tools of Lean (Mapping to Principles)

#1 Eliminating Waste

1. Seeing Waste2. Value Stream

Mapping

#2 Amplify Learning

3. Feedback4. Iterations5. Synchronizations6. Set Based

Development

#3 Decide as late as possible

7. Options Thinking8. The last responsible

moment9. Making decisions

#4 Deliver as fast as possible

10. Pull Systems11. Queuing Theory12. Cost of delay

Page 13: Agile series - Lean software development

-dp-

22 Tools of Lean (Mapping to Principles)

#5 Empower the team

13. Self-determination14. Motivation15. Leadership16. Expertise

#6 Build Integrity In

17. Perceived Integrity18. Conceptual Integrity19. Refactoring20. Testing

#7 See the Whole

21. Measurements22. Contracts

Page 14: Agile series - Lean software development

-dp-

Backlog1. Background2. 7 Principles and 22 Tools of Lean3. Principles and Tool Mapping

#1 Eliminate Waste#2 Amplify Learning#3 Decide as late as possible#4 Deliver as fast as possible#5 Empower the team#6 Build Integrity in#7 See the whole

Page 15: Agile series - Lean software development

-dp-

#1. Eliminate Waste1. Learn to see Waste2. Value Stream Mapping

Lean focuses on eliminating waste by focusing on flow of value from request to delivery

Page 16: Agile series - Lean software development

-dp-

What we do every day?

Adding Value through a Value added activity

Or

Generating Waste or MUDA through a Non-Value-Added activity

“Can you please do an hour’s worth job in a day!“- Taiichi Ohno (Non-value activities adds up to the cost)

#1. Eliminate Waste – 1. Learn to see Waste

Page 17: Agile series - Lean software development

-dp-

Eliminating 3 M

• Muri (Strain / Over burden)

• Mura (Unevenness)

• Muda (Waste)

#1. Eliminate Waste – 1. Learn to see Waste

Page 18: Agile series - Lean software development

-dp-

Muri-Mura-Muda

When there is mura (variations, unevenness) you do muri (overburden) causing muda (waste)

Res

ou

rce

usa

ge

Waste

Overburden

Var

iati

on

s

Waste

#1. Eliminate Waste – 1. Learn to see Waste

Page 19: Agile series - Lean software development

-dp-

MURI• Physical Strain• Over Burdon• Ergonomic issues

• Bend to work• Lifting weight• Wasteful walk• Posture – sitting, standing, activity

• Excessive demand on machines, people

#1. Eliminate Waste – 1. Learn to see Waste

Page 20: Agile series - Lean software development

-dp-

Muri – in IT World • Stopping & Starting• Multitasking & Context switching• Service requests, hand-offs

#1. Eliminate Waste – 1. Learn to see Waste

Page 21: Agile series - Lean software development

-dp-

MURAInconsistent, irregular, uneven use of people or

machines

Lifting 6000 Kg load with a forklift 2 trips * 2500 Kg and 1 trip with 1000 Kg 3 trips * 1000 Kg and 1 trip with 3000 Kg 6 trips * 1000 Kg

#1. Eliminate Waste – 1. Learn to see Waste

Page 22: Agile series - Lean software development

-dp-

Mura• Iron Triangle madness• Routine expectation of overtime• Belief in magic (planning & tracking)

#1. Eliminate Waste – 1. Learn to see Waste

Page 23: Agile series - Lean software development

-dp-

Muda (Waste)Learn to see Waste …

Classic wastes (sorted by impact):• Over-Production• Inventory• Over Processing• Motion• Defects• Waiting• Transport

(TIMWOOD)

““I don’t know who came up with it but people often talk about ‘the seven types of waste’. This might have started when the book

came out, but waste is not limited to seven types. There’s an old expression: ‘He without bad habits has seven,’ meaning even if

you think there’s no waste you will find at least seven types. So I came up with overproduction, waiting, etc., but that doesn’t mean there are only seven types. So don’t bother thinking about ‘what

type of waste is this?’ Just get on with it.” 

- Taiichi Ohno

#1. Eliminate Waste – 1. Learn to see Waste

Page 24: Agile series - Lean software development

-dp-

MUDA of OverproductionExamples• Local optimization• Inventory buildup• More information than customer needs• Creating reports no one reads• Making extra copies• More information than the next process

needs• Unwanted features

#1. Eliminate Waste – 1. Learn to see Waste

Page 25: Agile series - Lean software development

-dp-

MUDA of InventoryExamples• Files waiting to be worked on• Open projects• Office supplies• Emails waiting to be read• Unused records in the database• Incomplete work

#1. Eliminate Waste – 1. Learn to see Waste

Page 26: Agile series - Lean software development

-dp-

MUDA of OverprocessingExamples• Using more expensive tools in place of simpler ones• Having meetings that are not needed• Having unwanted people at meetings• Not clear agenda• Repeated manual entry of data• Excessive paperwork• Reporting same data to different bosses• Reporting same data in different formats • Reporting same data multiple times

#1. Eliminate Waste – 1. Learn to see Waste

Page 27: Agile series - Lean software development

-dp-

MUDA of MotionExamples• Searching for information/files• Extra clicks or key strokes• Clearing away files on the desk• Gathering information• Looking through manual and catalogs• Handling paperwork• Replaced items not kept back in its place• Office Layout

#1. Eliminate Waste – 1. Learn to see Waste

Page 28: Agile series - Lean software development

-dp-

MUDA of DefectsExamples• Prevention: Correction: Failure = 1:10:100• Repair / Replacement in warranty is a Muda• For each defect there is a root cause, which

is preventable. Prevention is cheaper• Data entry error, pricing error, missing

information, lost records, rework, rescheduled meetings

#1. Eliminate Waste – 1. Learn to see Waste

Page 29: Agile series - Lean software development

-dp-

MUDA of WaitingExamples• Waiting in Queue for your turn • Waiting for email, approval• Customer response• Slow response from system• Waiting for Quality Inspection/Testing

#1. Eliminate Waste – 1. Learn to see Waste

Page 30: Agile series - Lean software development

-dp-

MUDA of TransportExamples• Moving items to another place for processing

and getting it back• Physical movement to get signatures• Team not being colocated. Need to walk a

distance to meet each other

#1. Eliminate Waste – 1. Learn to see Waste

Page 31: Agile series - Lean software development

-dp-

Muda– Wastes in IT World• Unnecessary features• Gold plating• Delays• Hand-offs• After the fact QC• Interim work artifacts• Meetings

#1. Eliminate Waste – 1. Learn to see Waste

Unnecessary Features => Project Cholestrol

(Silent Killer of project, that drown projects in complexity)

Page 32: Agile series - Lean software development

-dp-

Muda– Wastes in IT World• How does a separate annual IT budget lead to waste ?

• Loss of focus on value• Motion: IT must play budgetary games instead of focusing on

enterprise strategic goals; fixed budget imposes both a floor and a ceiling on spending, with neither based on real progress.

• Emphasis on “estimation”• Motion, transportation: Tracking performance to budget leads

to an emphasis on “estimation”, a non-value-added activity.• Limits responsiveness to change

• Motion: Promotes central control with long approval processes for any changes.

http://www.slideshare.net/AGILEMinds/it-portfolio-as-waste?from_search=136

#1. Eliminate Waste – 1. Learn to see Waste

Page 33: Agile series - Lean software development

-dp-

Muda– Wastes in IT World• How does a separate annual IT budget lead to waste ?

• Conflicting purposes: Target setting, forecasting, resource allocation• Muda – motion, overproduction, defects rework: The attempt to

manage three different issues with the same number leads to several forms of waste

• Mura – Constant number crunching and requests for new estimates pulls people into meetings and interrupts continuous flow.

• Muri – Using the budget numbers inappropriately results in burdening people with useless work (“absurdity”), while still requiring them to perform their regular work.

• Targets must be ambitious, forecasts realistic, they cannot be the same number

• Mixing targets, forecasts and resource allocation creates gaming

- Bjarte Bogsnes : Implementing beyond budgeting

http://www.slideshare.net/AGILEMinds/it-portfolio-as-waste?from_search=136

#1. Eliminate Waste – 1. Learn to see Waste

Page 34: Agile series - Lean software development

-dp-

Muda– Other types of wastes• Complexity• Inefficiency• Constant re-prioritization of active work• Interruptions, start-stop work• Handoffs• Discarded / lost knowledge • Miscommunications• Useless Information• Wrong tools• Excess Troubleshooting for problems solved in the past• Obsolete policies and standards

“The biggest waste is the cost of recreating knowledge which we should already have possessed”

- Taiichi Ohno

#1. Eliminate Waste – 1. Learn to see Waste

Page 35: Agile series - Lean software development

-dp-

Value Stream Mapping

“All we are doing is looking at the timeline, from the moment the customer gives us an

order to the point where we collect the cash. And we are reducing the time line by

reducing the non-value added activities”- Taiichi Ohno

Page 36: Agile series - Lean software development

-dp-

Value Stream MappingUsed to understand visualize current system,

future system and eliminate waste

#1. Eliminate Waste – 2. Value Stream Mapping

Page 37: Agile series - Lean software development

-dp-

Value Stream MappingTool to support attainment of strategic objective• Used to map future state map to focus on improvement towards shared

Direction• Used by Improvement Kata and Coaching Kata to move towards the

Direction• Don’t use VSM map of the current map to highlight problems and jump to fix

it.• The goal of drawing the current VSM is not to see problems, wastes,

improvement opportunities, but to provide the bases for designing a future state

Current

StateFuture State

(not defined)Unclear Territory

Adopted from Mike Rother/Improvement Kata

Band-aid approach

#1. Eliminate Waste – 2. Value Stream Mapping

Page 38: Agile series - Lean software development

-dp-

Steps to use Value Stream Map

Understand

Direction

Understand

Current Condition

Establish Target

Condition

PDCA towards Target

Condition

Adopted from Mike Rother/Improvement Kata

#1. Eliminate Waste – 2. Value Stream Mapping

Page 39: Agile series - Lean software development

-dp-

Value Stream Mapping• Don’t find faults / improvements in current VSM• You haven’t yet mapped where you want to go• The next step after current value stream map is to ask “How

do we want our VSM to be after 3 years in the future?”• Then you can draw the VSM of the future state

Current State

Future State

Unclear Territory

Adopted from Mike Rother/Improvement Kata

#1. Eliminate Waste – 2. Value Stream Mapping

Page 40: Agile series - Lean software development

-dp-

Value Stream Mapping

Current State

Future State

Value Stream Level

Improvement Kata gives a practical means of moving towards a future state – staying focused and learning along the way

Once future state VSM is drawn, work towards that goal by applying improvement kata at the individual processes

Unclear Territory

Adopted from Mike Rother/Improvement Kata

#1. Eliminate Waste – 2. Value Stream Mapping

Page 41: Agile series - Lean software development

-dp-

Value Stream MappingValue Stream Loops

Break future VSM into loops – Helps define challenges at individual work processes inside those loops

Current State

Target Condition

Individual value stream loops

Adopted from Mike Rother/Improvement Kata

#1. Eliminate Waste – 2. Value Stream Mapping

Page 42: Agile series - Lean software development

-dp-

Backlog1. Background2. 7 Principles and 22 Tools of Lean3. Principles and Tool Mapping

#1 Eliminate Waste#2 Amplify Learning#3 Decide as late as possible#4 Deliver as fast as possible#5 Empower the team#6 Build Integrity in#7 See the whole

Page 43: Agile series - Lean software development

-dp-

#2. Amplify Learning3. Feedback

Collect on-time customer / stakeholder feedback to incorporate improvements into your process,

Sprint Reviews, Retrospectives, UAT’s

4. Iterations Use short iterations to analyse, design, develop and deliver the

working code to customers Demonstrate to customer and understand if it meets their need. Be

open to changes proposed

5. Synchronizations Synchronize different activities through communications (standup

meetings, plannings, reviews), continuous integration to find code issues, test automation to find defects early

6. Set Based Development Develop multiple options, communicate constraints and let the

solutions emerge Develop rest of the system as we progress …..

Page 44: Agile series - Lean software development

-dp-

#3. Decide as late as possible7. Options Thinking

Understand the needs and work out the options Workout the tradeoffs based on all the data available Execute the options in the future at the right time if applicable

8. The last responsible moment Understand the timebox to make the decision (not irresponsible

moment) Make the decision at the end of the timebox when the best possible

data is available Develop a sense of how to absorb changes, things important for a

domain, when decisions needs to be made and develop quick response capability

Page 45: Agile series - Lean software development

-dp-

#3. Decide as late as possible9. Making decisions

Do not avoid decisions. Ensure best decisions are made in a timely manner, with as much information as possible.

The frontline team has the maximum information. They should be empowered to make the decision. They make less mistakes than the backend team who are farther away with delayed information.

Make decisions based on end state and intent (what and why). These decisions will be quick and effective.

“In many disciplines, the difference between amateurs and experts seems to be that experts know how to delay their commitments … Amateurs often

try to get things completely right the first time and often fail …. Experts strategy of postponing firm decisions, discovering constraints and then

fullfilling in the details is a standard heuristic to solve problems”

- Herald Thimbley

Page 46: Agile series - Lean software development

-dp-

#4. Deliver as fast as possible10. Pull Systems

What is “Pull” System ?

- The science behind Lean/kanban

Suppose Team member D, completes an work item, then “D”, the work item will move into Done queue.

D can then pull the work item from “Backlog” into WIP

Another Work item can then get pulled from “To Do” queue to “Backlog” Queue

Helps reduce inventory and generation of waste.Pull Work … Not …. Push Work

Page 47: Agile series - Lean software development

-dp-

#4. Deliver as fast as possible11. Queuing Theory

Knowledge of Queue Management is required to understand how to improve the system and understand impact on customer experience

Teams need to understand behavioral responses to queues Unoccupied time feels longer than occupied time Process waits feel longer than in-process waits Anxiety makes wait seems longer Uncertain waits seem longer than known, finite waits The more valuable the service, the longer the customer is willing

to wait Solo waits feel longer than group waits

Managing steady rate of arrival, steady rate of service, working in small batches, setting work priorities and releasing regularly are key to managing any Queues

Methods like prioritized backlog, feedback loops, iteration/sprints, customer involvement, demos to manage the psychology of queue

Page 48: Agile series - Lean software development

-dp-

#4. Deliver as fast as possible12. Cost of delay

Make tradeoff decisions resulting in reducing cycle time due to

cost of developing inhouse tools vs. Off the shelf components,

inhouse development vs. outsourcing, handoffs due to specialist teams vs. cross

functional teams,

Page 49: Agile series - Lean software development

-dp-

#5. Empower the team13. Self-determination

Allow the team to design their own working procedures, quality, job rotation within the team, ensure smooth work flow and constantly improve

Managers coach them to continuously improve

14. Motivation Create a sense of purpose at work for people to look for. This

purpose should be clear, achievable. Allow the team to interact with the customer and commit.

Develop a sense of belonging, safety, ownership within team

15. Leadership Leaders emerge within the team due to their strong sense of

ownership and coaching abilities. These leaders may not have direct authority over the people they

lead, but able to influence them.

16. Expertise Help develop ‘communities of expertise’ within the organization to

help self improvement initiatives, standards and

Page 50: Agile series - Lean software development

-dp-

#6. Build Integrity in17. Perceived Integrity

Customers whole experience of the system in terms of usability, reliability, economic viability etc

Achieved through demo’s, feedback and adopting to user changes

18. Conceptual Integrity Ability of the different components of the system to work together and

behave as a cohesive whole Conceptual integrity is a prerequisite for perceived integrity Built through strong communication of all decisions made, by keeping

all stakeholders happy

19. Refactoring Complex systems evolve as they are built. This needs simple design,

taking care of code and architecture hygiene and required corrections, ensuring improved suitability of use as the product ages

20. Testing Ensuring that the system actually works as intended through

developer tests (unit/system/integration testing) and customer tests (functional/acceptance testing)

Page 51: Agile series - Lean software development

-dp-

#7. See the wholeA system is not just a sum of parts. It is a product of their interactions. Looks at the organization as a whole and how it performs. Looks at how the system is designed, growth limits, constraints and local optimization issues.21. Measurements

• Encourage team performance measurements Vs. Individual performance measurements, to encourage team success instead of local optimization

22. Contracts Contracts should encourage collaboration between the two

parties. Contracts should encourage flexible scope. Some of the contract types that works in a collaborative model

are T&M, Multistage contract, target cost contract and Shared benefit/risk-reward contracts

Page 52: Agile series - Lean software development

-dp-

Next step…..

Page 53: Agile series - Lean software development

-dp-

Agile

Kanban

Product Owners

Scrum Master/ Project

Manager

XP/ Engineering Practices

ScrumbanLean

Lean Software Development

Scrum

Agile HR Practices

Agile Leadership

Test Automation

Program Governance

Coaching

Continuous Integration/ Deployment

Development Projects

Sustenance Projects

Verification Projects

Technical Support

Web Application

Development

Embedded Applications

Legacy Systems

Continuous Improvement

Agile Offshoring

Follow AGILE & Kanban

Page 54: Agile series - Lean software development

-dp-

Thank YouDurgaprasad B. [email protected] - +91 9845558474http://www.slideshare.com/prasadbr/presentationshttp://prasadbr.wordpress.com