LEAN SOFTWARE DEVELOPMENT
RISHI CHADDHA
PMI-ACP, CSM, PSM & MCP
INTRODUCE MYSELF
Rishi Chaddha
Agile & Lean Freelancer Trainer & Consultant
 
Blog: www.rishichaddha.com
E-mail: chaddharishi@gmail.com
Linkedin: in.linkedin.com/in/rishichaddha
T: +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
AGENDA
•Origin of Lean
•5 Principles of Lean
•7 Principles of Lean Software
•7 Deadly Waste
•Overview of 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
WHICH TOOL IS BETTER ?
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 …
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!
8
“Do not develop an attachment to
any one weapon or any one
school of fighting.”
- Miyamoto Musashi
Japanese Swordsman
1584 – 1645
8
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.
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
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.
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.
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 knowledge
Defer commitment, Deliver fast, Respect people, Optimize the
whole
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.
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.
16
1. Defects -> Bugs
17
1. Defects -> Bugs
18
Eliminate Waste: The Seven Deadly Waste
2. Overproduction -> Extra Feature
19
Eliminate Waste: The Seven Deadly Waste
3. Transportation -> Hands off
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
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.
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)
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.
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.
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)
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.
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 requirements
can change. 
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
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.
30
31
32
33
WHATEVER WORKS FOR YOU ! ! !
34
Rishi Chaddha
Agile & Lean Freelancer Trainer & Consultant
Blog: www.rishichaddha.com
E-mail: chaddharishi@gmail.com
Linkedin: in.linkedin.com/in/rishichaddha
T: +31 – 650749522 / +91-9899639543
 

Lean Software Development & Kanban

  • 1.
    LEAN SOFTWARE DEVELOPMENT RISHICHADDHA PMI-ACP, CSM, PSM & MCP
  • 2.
    INTRODUCE MYSELF Rishi Chaddha Agile& Lean Freelancer Trainer & Consultant   Blog: www.rishichaddha.com E-mail: chaddharishi@gmail.com Linkedin: in.linkedin.com/in/rishichaddha T: +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
  • 3.
    AGENDA •Origin of Lean •5Principles of Lean •7 Principles of Lean Software •7 Deadly Waste •Overview of Kanban
  • 4.
    •Take Care: Takecare 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
  • 5.
    WHICH TOOL ISBETTER ?
  • 6.
    Waterfall Model, ScrumFramework, 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 …
  • 7.
    7  Scrum frameworksworks 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!
  • 8.
    8 “Do not developan attachment to any one weapon or any one school of fighting.” - Miyamoto Musashi Japanese Swordsman 1584 – 1645 8
  • 9.
    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.
  • 10.
    10  In 1988the 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
  • 11.
    11  Value: Valueis 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.
  • 12.
    12  Pull: Letcustomer 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.
  • 13.
    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 knowledge Defer commitment, Deliver fast, Respect people, Optimize the whole
  • 14.
    14 Eliminate Waste: TheSeven 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.
  • 15.
    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.
  • 16.
  • 17.
  • 18.
    18 Eliminate Waste: TheSeven Deadly Waste 2. Overproduction -> Extra Feature
  • 19.
    19 Eliminate Waste: TheSeven Deadly Waste 3. Transportation -> Hands off
  • 20.
    20 Eliminate Waste: TheSeven 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
  • 21.
    21 Eliminate Waste: TheSeven 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.
  • 22.
    22 Eliminate Waste: TheSeven 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)
  • 23.
    23 Eliminate Waste: TheSeven 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.
  • 24.
    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.
  • 25.
    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)
  • 26.
    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.
  • 27.
    27 Defer Commitment  Thebest 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 requirements can change. 
  • 28.
    28 Respect People  Respectfor 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
  • 29.
    29  Visualize yourworkflow  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.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
    34 Rishi Chaddha Agile &Lean Freelancer Trainer & Consultant Blog: www.rishichaddha.com E-mail: chaddharishi@gmail.com Linkedin: in.linkedin.com/in/rishichaddha T: +31 – 650749522 / +91-9899639543