DeKnowledge - Try us

34
www.deknowledge.net www.deknowledge.net

description

Lean Software Development by DeKnowledge.net ----------------------------------------------------------------------------- DeKnowledge is the leading provider of project management certifications training workshops and consultancy. In addition to our open enrollment certifications training workshops, we also offer a wide range of management, leadership and technical based courses that can be tailored to fit your organization's needs. With offices in the USA, The Netherlands and India, we work with clients in USA, Europe, South Africa and Asia. Our mission is to help companies manage their projects/programs more effortlessly and efficiently. We do this by collaborating with our clients in the areas of portfolio/program and project management training workshops and consultancy.

Transcript of DeKnowledge - Try us

Page 1: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

Page 2: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

L E A N S O F T W A R E D E V E L O P M E N T

Page 3: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

AGENDA

• Origin of Lean

• 5 Principles of Lean

• 7 Principles of Lean Software

• 7 Deadly Waste

• Overview of Kanban

Page 4: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

• 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: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

WHICH TOOL IS BETTER ?

Page 6: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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

Don’t limit yourself to one tool !

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

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

Depends …

Page 7: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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!

Don’t limit yourself to one tool !

Page 8: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

“Do not develop an attachment to any one weapon or any one

school of fighting.”

- Miyamoto Musashi Japanese Swordsman 1584 – 1645

Don’t limit yourself to one tool !

Page 9: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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.

Origin Of Lean

Page 10: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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

Origin Of Lean

Page 11: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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.

Five Principles of Lean Manufacturing

Page 12: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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.

Five Principles of Lean Manufacturing

Page 13: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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

Lean Software Development

Page 14: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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.

Seven Principles of Lean Software Development

Page 15: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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.

Seven Principles of Lean Software Development

Page 16: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

1. Defects -> Bugs

University of Utah Experiment: Code written by pairs passed more test cases than code written by individuals

Seven Principles of Lean Software Development

Page 17: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

1. Defects -> Bugs

University of Utah Experiment: Pairs consistently implemented the same functionality produced by individuals in fewer lines of code

Seven Principles of Lean Software Development

Page 18: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

Eliminate Waste: The Seven Deadly Waste

2. Overproduction -> Extra Feature

Seven Principles of Lean Software Development

Page 19: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

Eliminate Waste: The Seven Deadly Waste3. Transportation -> Hands off

Seven Principles of Lean Software Development

Page 20: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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

Seven Principles of Lean Software Development

Page 21: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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.

Seven Principles of Lean Software Development

Page 22: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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)

Seven Principles of Lean Software Development

Page 23: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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.

Seven Principles of Lean Software Development

Page 24: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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.

Seven Principles of Lean Software Development

Page 25: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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)

Seven Principles of Lean Software Development

Page 26: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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.

Seven Principles of Lean Software Development

Page 27: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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.

Seven Principles of Lean Software Development

Page 28: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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

Seven Principles of Lean Software Development

Page 29: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

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.

Kanban In A Nutshell

Page 30: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

Kanban In A Nutshell

Page 31: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

Kanban In A Nutshell

Page 32: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

Scrum Vs Kanban

Page 33: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

WHATEVER WORKS FOR YOU ! ! !

Page 34: DeKnowledge - Try us

www.deknowledge.netwww.deknowledge.net

Contact Information

E: [email protected] T: 0 01 414-716-616