Lean Software Development & Kanban

34
LEAN SOFTWARE DEVELOPMENT RISHI CHADDHA PMI-ACP, CSM, PSM & MCP

description

Speaker at "Regional Scrum Gathering India 2014", Hyderabad, India By Rishi Chaddha

Transcript of Lean Software Development & Kanban

Page 1: Lean Software Development & Kanban

LEAN SOFTWARE DEVELOPMENT

RISHI CHADDHA PMI-ACP, CSM, PSM & MCP

Page 2: Lean Software Development & Kanban

INTRODUCE MYSELF

Rishi ChaddhaAgile & Lean Freelancer Trainer & Consultant

 Blog: www.rishichaddha.com

E-mail: [email protected]: in.linkedin.com/in/rishichaddhaT: +31 – 650749522 / +91-9899639543

 Well versed in managing enterprise software projects using Agile project management mythology. Experienced in Scrum framework, Extreme Programming (XP) and Kanban. 

Certifications: ✔ PMI-Agile Certified Practitioner (PMI-ACP)✔ Professional Scrum Master (PSM)✔ Certified ScrumMaster (CSM)✔ Microsoft Certified Professional (MCP)

Analyzing Requirements and Defining Microsoft .NET Solution Architectures Microsoft SQL Server Implementation and Maintenance

Page 3: Lean Software Development & Kanban

AGENDA

•Origin of Lean

•5 Principles of Lean

•7 Principles of Lean Software

•7 Deadly Waste

•Overview of Kanban

Page 4: Lean Software Development & Kanban

•Take Care: Take care of your own needs. You don’t need to ask permission to go to the bathroom, etc…

•Mobiles: Keep your phones on silent please. If you need to take a call, just leave the room. We’d rather you were paying attention than worrying because your boss/wife/child is calling.

•Softcopy: Please ask for it.

WORKING AGREEMENT

Page 5: Lean Software Development & Kanban

WHICH TOOL IS BETTER ?

Page 6: Lean Software Development & Kanban

Waterfall Model, Scrum Framework, XP, Kanban, RUP …

Tools = anything used as a means of accomplishing a task or purpose

Which tool is better? …. Waterfall OR Agile? ... .Agile OR Lean?

6

Depends …

Page 7: Lean Software Development & Kanban

7

Scrum frameworks works best with XP XP also works best with Lean Many Kanban teams use daily standup meetings (a Scrum practice) Some Scrum teams write their backlog

items as Use Case (a RUP practice) Mix & Match the tools as you need Whatever works for YOU!

Page 8: Lean Software Development & Kanban

8

“Do not develop an attachment to any one weapon or any one school of fighting.”

- Miyamoto Musashi Japanese Swordsman 1584 – 1645

8

Page 9: Lean Software Development & Kanban

9

Post-War Japan -> Toyota Production System (TPS): “a system for the absolute elimination of waste”

To really appreciate the emergence of Lean production and its derivatives, you have to understand what it was replacing (or competing with): mass production.

TPS is based on two pillars: Just-In-Time: This pull system inspired Taiichi Ohno to create

Just-In-Time, which strives to keep inventories at each manufacturing step as low as possible (preferably zero).

Autonomation (Jidoka): Autonomation is a combination of the words autonomous and automation. It describes machines that automate a process but are also intelligent enough to know when something is wrong and stop immediately.

Page 10: Lean Software Development & Kanban

10

In 1988 the term “Lean” was coined by John Krafcik in his 1988 article "Triumph of the Lean Production System," based on his master's thesis at the MIT Sloan School of Management.

In 1990, “The Machine That Changed the World” was written by James P. Womack, Daniel T. Jones & Daniel Roos. This book made

the term lean production know worldwide.

Modern-day Lean has settled on five principles:

Value, Value Stream, Flow, Pull & Perfection

Page 11: Lean Software Development & Kanban

11

Value: Value is defined by the customer. What does the customer value in the product? You have to understand what is and what is not value in the eye of the customer in order to map the value stream.

Value stream: Once you know what the customer values in your product, you can create a value stream map that identifies the series of steps required to produce the product. Each step is categorized as either value-added, non-value-added but necessary, or non-value-added waste.

Flow: The production process must be designed to flow continuously. If the value chain stops moving forward (for any reason), waste is occurring.

Page 12: Lean Software Development & Kanban

12

Pull: Let customer orders pull product (value). This pull cascades back through the value stream and ensures that nothing is made before it is needed, thus eliminating most in-process inventory.

Perfection: Strive for perfection by continually identifying and removing waste.

Page 13: Lean Software Development & Kanban

13

In 2003, Mary and Tom Poppendieck published the first thorough mapping of Lean principles to software development in their book, Lean Software Development.

 In 2006, Refined this mapping in their second book, Implementing Lean Software Development: From Concept to Cash.

Lean Software Development have followed the Poppendiecks’ lead and used the seven principles they identified:

Eliminate waste, Build quality in, Create knowledgeDefer commitment, Deliver fast, Respect people, Optimize the

whole

Page 14: Lean Software Development & Kanban

14

Eliminate Waste: The Seven Deadly Waste

1. Defects -> Bugs

Encourage everyone to deal with bugs in a rational way, to make sensible tradeoffs between fixing defects and adding features.

Bugs are part of software development process. Therefore, have a strategy in how to deal with them? The focus in a Lean environment is on preventing bugs,

whereas traditional development focuses on finding bugs after they have already occurred. Defects are especially expensive when detected late.

Page 15: Lean Software Development & Kanban

15

1. Defects -> Bugs

Two programmers work together at one machine. Driver enters code, while navigator critiques it.

Pair programming does improve code quality.

Pair programming does improve team focus.

Many mistakes get caught as they are being typed in rather than in QA testing or in the field.

The end defect content is statistically lower.

The designs are better and code length shorter.

Page 16: Lean Software Development & Kanban

16

1. Defects -> Bugs

Page 17: Lean Software Development & Kanban

17

1. Defects -> Bugs

Page 18: Lean Software Development & Kanban

18

Eliminate Waste: The Seven Deadly Waste

2. Overproduction -> Extra Feature

Page 19: Lean Software Development & Kanban

19

Eliminate Waste: The Seven Deadly Waste

3. Transportation -> Hands off

Page 20: Lean Software Development & Kanban

20

Eliminate Waste: The Seven Deadly Waste

4. Waiting -> Delays

Waiting for internal customer to give you the correct data stream for you to start the UAT ..

Waiting on third party vendor to finish testing a patch for you so you can deploy the application to the production …

Customer Collaboration

Integrated Product Teams

Page 21: Lean Software Development & Kanban

21

Eliminate Waste: The Seven Deadly Waste

5. Inventory -> Partially Completed Work

Simply stated, partially completed work is anything that has been started but not finished.

This could be requirements (features) that haven’t been coded, or code that hasn’t been tested, documented, and deployed, or bugs that haven’t been fixed.

Be clear what it means to be done by having Definition of Done.

Be binary either it is 100% done or 0% done.

Page 22: Lean Software Development & Kanban

22

Eliminate Waste: The Seven Deadly Waste

Checklist For Definition of Done

Coded (all code written) Tested (all unit, integration, and customer

tests finished) Designed (code refactored to the team’s

satisfaction) Integrated (the functionality works from end to end—typically, UI to database—and

fits into the rest of the software) Reviewed (customers have reviewed the story and

confirmed that it meets their expectations) Accepted (customers agree that the story is finished)

Page 23: Lean Software Development & Kanban

23

Eliminate Waste: The Seven Deadly Waste

6. Motion -> Task Switching

Task switching and interruptions kill productivity. It takes time to get the brain focused on the task at hand so

that you can understand the required factors and begin the process of problem solving.

7. (Over) Processing -> Unneeded Processes

Unneeded processes are pure waste.  They include procedures that accomplish nothing and

documents that no one reads.  Inspect & Adapt your process regularly.

Page 24: Lean Software Development & Kanban

24

Build Quality In

 You cannot inspect a product for quality at the end of a production line.  

Instead, each step in the process should be mistake-proof and self-inspecting.

Use XP practices like TDD & ATDD TDD is a technique for improving the software’s internal

quality. Acceptance TDD helps us keep our product’s external

quality on track by giving it the correct features and functionality.

Page 25: Lean Software Development & Kanban

25

Build Quality In

First we write a test.

Then we write code to make the test pass.

Then we find the best possible design for what we have – refactoring (Relying on the existing tests to keep us from breaking things while we are at it)

Page 26: Lean Software Development & Kanban

26

Build Quality In

Then, we need to learn how to build the thing right - TDD.

Also, we need know if we are building the right thing - ATDD.

Page 27: Lean Software Development & Kanban

27

Defer Commitment

The best decisions are made when you have the most information available.

If you don’t have to make a particular decision now, wait until later when you have more knowledge and information.

But don’t wait too long, either—lack of a decision should not hold up other aspects of the project.

Deliver Fast “Deliver fast” means developing features in small

batches that are delivered to the customer quickly, in short iterations. These features can be implemented and

delivered before the associated requirementscan change. 

Page 28: Lean Software Development & Kanban

28

Respect People

Respect for people means: Trusting them to know the best way to do their jobs Engaging them to expose flaws in the current process Encouraging them to find ways to improve their jobs and the

surrounding processes.  Don’t waste your most valuable resource—the minds of your

team members!

Optimize The Whole

"Think big, act small, fail fast; learn rapidly“ Inspect & Adapt -> Inspect & Adapt -> Inspect & Adapt

-> Inspect & Adapt -> Inspect & Adapt -> Inspect & Adapt -> Inspect & Adapt

Page 29: Lean Software Development & Kanban

29

Visualize your workflow Split the work into pieces, write each item on a card and put on the

wall. Use names columns to illustrate where each items is in the workflow.

Limit work in progress (WIP) - assign explicit limits to how many items may be in progress at each workflow state.

Measure the lead time (average time to complete one item, sometimes called “cycle time”), optimize the process to make lead time as small and predictable as possible.

Page 30: Lean Software Development & Kanban

30

Page 31: Lean Software Development & Kanban

31

Page 32: Lean Software Development & Kanban

32

Page 33: Lean Software Development & Kanban

33

WHATEVER WORKS FOR YOU ! ! !

Page 34: Lean Software Development & Kanban

34

Rishi ChaddhaAgile & Lean Freelancer Trainer & Consultant

Blog: www.rishichaddha.comE-mail: [email protected]

Linkedin: in.linkedin.com/in/rishichaddhaT: +31 – 650749522 / +91-9899639543