SlideShare a Scribd company logo
1 of 99
Download to read offline
Using ToC and JIT Practice
  to Coach Agile Teams
                Naresh Jain
         naresh@industriallogic.com




       Licensed Under Creative Commons by Naresh Jain
                                                        1
Example Context


Large Enterprise clients [450 ppl + 30 teams]
Huge communication and delivery issues
Help teams adopt Agile thinking




            Licensed Under Creative Commons by Naresh Jain
                                                             2
Consider this...




Bug reported                                                    Customer Signoff




     0                                                                  71


                             Time in days

               Licensed Under Creative Commons by Naresh Jain
                                                                                   3
After Value Stream Mapping




    Licensed Under Creative Commons by Naresh Jain
                                                     4
After Value Stream Mapping




Bug reported



     0


                                 Time in days

                   Licensed Under Creative Commons by Naresh Jain
                                                                    4
After Value Stream Mapping




         Reproduce Bug

Bug reported



     0               8
               8

                                       Time in days

                         Licensed Under Creative Commons by Naresh Jain
                                                                          4
After Value Stream Mapping



                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10
               8            2

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                      4
After Value Stream Mapping



                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30
               8            2            20

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                      4
After Value Stream Mapping


                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38
               8            2            20                8

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                      4
After Value Stream Mapping


                                                                         Making a release

                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38                        69
               8            2            20                8                   31

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                                 4
After Value Stream Mapping

                                                                                            Customer Signoff
                                                                         Making a release

                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38                         69          71
               8            2            20                8                   31                  2

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                                               4
After Value Stream Mapping

                                                                                            Customer Signoff
                                                                         Making a release

                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38                         69          71
               8            2            20                8                   31                  2

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                                               4
Identify Constraints/
                                     bottleneck




Subordinate everything
 else and Elevate the                                                Set Goals
 Constraints/bottleneck




                    Licensed Under Creative Commons by Naresh Jain
                                                                                 5
Agenda


Some background about ToC and JIT
Technique
Open Discussion with examples from audience




               Licensed Under Creative Commons by Naresh Jain
                                                                6
Theory of Constraint is based on the
          premise that...

  “Every real system, such as a business, must have within it at least one
  constraint. If this were not the case then the system could produce
  unlimited amounts of whatever it was striving for, profit in the case of a
  business.……………….”

  	

 	

   	

   	

   	

   	

     	

                 Dr Eli Goldratt




                                    Licensed Under Creative Commons by Naresh Jain
                                                                                     7
“Theory of Constraints”




   Licensed Under Creative Commons by Naresh Jain
                                                    8
“Theory of Constraints”


Global optimization does not emerge from local
                    optima




           Licensed Under Creative Commons by Naresh Jain
                                                            8
“Theory of Constraints”


Global optimization does not emerge from local
                    optima

Managing by cost (optimizing local performance) is usually at odds with
managing by throughput (exploiting constraints)




                   Licensed Under Creative Commons by Naresh Jain
                                                                          8
Significance of bottlenecks


Maximum speed of the process is the speed of the slowest
operation
Any improvements will be wasted unless the bottleneck is
relieved
 Bottlenecks must be identified and improved if the process is
 to be improved




            Licensed Under Creative Commons by Naresh Jain
                                                                9
Significance of bottlenecks


Maximum speed of the process is the speed of the slowest
operation
Any improvements will be wasted unless the bottleneck is
relieved
 Bottlenecks must be identified and improved if the process is
 to be improved




            Licensed Under Creative Commons by Naresh Jain
                                                                9
Assume current constraints cannot
   be changed in the short-run




        Licensed Under Creative Commons by Naresh Jain
                                                         10
Assume current constraints cannot
   be changed in the short-run


 What should be produced now, with current resources, to maximize profits?




                 Licensed Under Creative Commons by Naresh Jain
                                                                            10
How to apply ToC?




Licensed Under Creative Commons by Naresh Jain
                                                 11
How to apply ToC?


Step 1: Identify the system's constraint(s).




             Licensed Under Creative Commons by Naresh Jain
                                                              11
How to apply ToC?


Step 1: Identify the system's constraint(s).
Step 2: Decide how to exploit the system's constraint(s).




             Licensed Under Creative Commons by Naresh Jain
                                                              11
How to apply ToC?


Step 1: Identify the system's constraint(s).
Step 2: Decide how to exploit the system's constraint(s).
Step 3: Subordinate everything else to the decisions of Step 2.




             Licensed Under Creative Commons by Naresh Jain
                                                                  11
How to apply ToC?


Step 1: Identify the system's constraint(s).
Step 2: Decide how to exploit the system's constraint(s).
Step 3: Subordinate everything else to the decisions of Step 2.
Step 4: Elevate the system's constraint(s).




             Licensed Under Creative Commons by Naresh Jain
                                                                  11
How to apply ToC?


Step 1: Identify the system's constraint(s).
Step 2: Decide how to exploit the system's constraint(s).
Step 3: Subordinate everything else to the decisions of Step 2.
Step 4: Elevate the system's constraint(s).
Step 5: Back to Step 1, identify next constraint.




             Licensed Under Creative Commons by Naresh Jain
                                                                  11
Step 1: Identify the system’s constraint(s)




           Licensed Under Creative Commons by Naresh Jain
                                                            12
Step 1: Identify the system’s constraint(s)




      Goal?




              Licensed Under Creative Commons by Naresh Jain
                                                               12
Step 1: Identify the system’s constraint(s)




      Goal?
      Throughput?




              Licensed Under Creative Commons by Naresh Jain
                                                               12
Step 1: Identify the system’s constraint(s)




      Goal?
      Throughput?
      Inventory?


               Licensed Under Creative Commons by Naresh Jain
                                                                12
Step 1: Identify the system’s constraint(s)




      Goal?
      Throughput?
      Inventory?
      Operating Expense?
               Licensed Under Creative Commons by Naresh Jain
                                                                12
Step 2: Decide how to exploit
   the system’s constraint(s)




      Licensed Under Creative Commons by Naresh Jain
                                                       13
Step 3: Subordinate everything
else to the decisions of Step 2




      Licensed Under Creative Commons by Naresh Jain
                                                       14
Step 4: Elevate the system’s constraint(s)




           Licensed Under Creative Commons by Naresh Jain
                                                            15
Step 5: Back to Step 1, identify next
            constraint.




  What might happen if the constraint is elevated?


                  Licensed Under Creative Commons by Naresh Jain
                                                                   16
ToC : 3 things can increase
       profitability of a plant

Decrease Inventory
Decrease Operating Expense
Increase Throughput




               Licensed Under Creative Commons by Naresh Jain
                                                                17
How does ToC apply to
  Software projects?




  Licensed Under Creative Commons by Naresh Jain
                                                   18
How does ToC apply to
     Software projects?
Inventory




            Licensed Under Creative Commons by Naresh Jain
                                                             18
How does ToC apply to
     Software projects?
Inventory
 Features requested but not specified
 Features specified and documented but not built
 Code that's written but not tested
 Code that's tested but not deployed to users
 Code that's deployed but not used



            Licensed Under Creative Commons by Naresh Jain
                                                             18
How does ToC apply to
 Software projects?...




   Licensed Under Creative Commons by Naresh Jain
                                                    19
How does ToC apply to
    Software projects?...
Operating expenses




          Licensed Under Creative Commons by Naresh Jain
                                                           19
How does ToC apply to
    Software projects?...
Operating expenses
 Idle team members - Phased approach




          Licensed Under Creative Commons by Naresh Jain
                                                           19
How does ToC apply to
    Software projects?...
Operating expenses
 Idle team members - Phased approach
 Commercial Tools




          Licensed Under Creative Commons by Naresh Jain
                                                           19
How does ToC apply to
    Software projects?...
Operating expenses
 Idle team members - Phased approach
 Commercial Tools
 Cost of change curve - rework




          Licensed Under Creative Commons by Naresh Jain
                                                           19
How does ToC apply to
    Software projects?...
Operating expenses
 Idle team members - Phased approach
 Commercial Tools
 Cost of change curve - rework
 Constant thrashing of ideas




          Licensed Under Creative Commons by Naresh Jain
                                                           19
How does ToC apply to
    Software projects?...
Operating expenses
 Idle team members - Phased approach
 Commercial Tools
 Cost of change curve - rework
 Constant thrashing of ideas
 Technical Debt



          Licensed Under Creative Commons by Naresh Jain
                                                           19
How does ToC apply to
    Software projects?...


Throughput
 Large batch Size - Queuing Theory




          Licensed Under Creative Commons by Naresh Jain
                                                           20
Queuing Theory




                                    Utilization (%)

Source: Beyond Agile Software Development Becoming Lean, Mary Poppendieck, Poppendieck.llc

                  Licensed Under Creative Commons by Naresh Jain
                                                                                             21
How does ToC apply to
 Software projects?...




   Licensed Under Creative Commons by Naresh Jain
                                                    22
How does ToC apply to
    Software projects?...

Throughput




         Licensed Under Creative Commons by Naresh Jain
                                                          22
How does ToC apply to
    Software projects?...

Throughput
 Large batch Size - Queuing Theory




          Licensed Under Creative Commons by Naresh Jain
                                                           22
How does ToC apply to
    Software projects?...

Throughput
 Large batch Size - Queuing Theory
 Heavyweight methodology




          Licensed Under Creative Commons by Naresh Jain
                                                           22
How does ToC apply to
    Software projects?...

Throughput
 Large batch Size - Queuing Theory
 Heavyweight methodology
 Poor choice of tools




          Licensed Under Creative Commons by Naresh Jain
                                                           22
How does ToC apply to
    Software projects?...

Throughput
 Large batch Size - Queuing Theory
 Heavyweight methodology
 Poor choice of tools
 Real resource shortage




          Licensed Under Creative Commons by Naresh Jain
                                                           22
Using Lean principles to Identify Waste




          Licensed Under Creative Commons by Naresh Jain
                                                           23
Using Lean principles to Identify Waste

     Overproduction = Extra Features




               Licensed Under Creative Commons by Naresh Jain
                                                                23
Using Lean principles to Identify Waste

     Overproduction = Extra Features
     Inventory = Requirements




               Licensed Under Creative Commons by Naresh Jain
                                                                23
Using Lean principles to Identify Waste

     Overproduction = Extra Features
     Inventory = Requirements
     Extra Processing Steps = Extra Steps




                Licensed Under Creative Commons by Naresh Jain
                                                                 23
Using Lean principles to Identify Waste

     Overproduction = Extra Features
     Inventory = Requirements
     Extra Processing Steps = Extra Steps
     Motion = Finding Information




                Licensed Under Creative Commons by Naresh Jain
                                                                 23
Using Lean principles to Identify Waste

     Overproduction = Extra Features
     Inventory = Requirements
     Extra Processing Steps = Extra Steps
     Motion = Finding Information
     Defects = Defects Not Caught by Tests




                Licensed Under Creative Commons by Naresh Jain
                                                                 23
Using Lean principles to Identify Waste

     Overproduction = Extra Features
     Inventory = Requirements
     Extra Processing Steps = Extra Steps
     Motion = Finding Information
     Defects = Defects Not Caught by Tests
     Waiting = Waiting, Including Customers




                Licensed Under Creative Commons by Naresh Jain
                                                                 23
Using Lean principles to Identify Waste

     Overproduction = Extra Features
     Inventory = Requirements
     Extra Processing Steps = Extra Steps
     Motion = Finding Information
     Defects = Defects Not Caught by Tests
     Waiting = Waiting, Including Customers
     Transportation = Handoffs



                Licensed Under Creative Commons by Naresh Jain
                                                                 23
Just In Time




Licensed Under Creative Commons by Naresh Jain
                                                 24
Just In Time

A pull system, driven by actual demand. The goal is to produce or provide one
part just-in-time for the next operation. Reduces stock inventories, but leaves
no room for schedule error. As much a managerial philosophy as it is an
inventory system.




                 Licensed Under Creative Commons by Naresh Jain
                                                                                  24
Just In Time

A pull system, driven by actual demand. The goal is to produce or provide one
part just-in-time for the next operation. Reduces stock inventories, but leaves
no room for schedule error. As much a managerial philosophy as it is an
inventory system.
Last Responsible Moment




                 Licensed Under Creative Commons by Naresh Jain
                                                                                  24
Just In Time

A pull system, driven by actual demand. The goal is to produce or provide one
part just-in-time for the next operation. Reduces stock inventories, but leaves
no room for schedule error. As much a managerial philosophy as it is an
inventory system.
Last Responsible Moment
Just-In-Time Training - Training provided to individuals or units just before the
skills or function taught will be used in a practical application. Typically used to
teach perishable or infrequently used skills




                  Licensed Under Creative Commons by Naresh Jain
                                                                                       24
Licensed Under Creative Commons by Naresh Jain
                                                 25
Can we benefit more from
   ToC, JIT and Lean?



    Licensed Under Creative Commons by Naresh Jain
                                                     25
What if...



We consider software team members as the machines in our software
factories?
Can we apply ToC and benefit?




               Licensed Under Creative Commons by Naresh Jain
                                                                    26
Consider this...




Licensed Under Creative Commons by Naresh Jain
                                                 27
Consider this...




Bug reported



     0


                             Time in days

               Licensed Under Creative Commons by Naresh Jain
                                                                27
Consider this...




         Reproduce Bug

Bug reported



     0               8
               8

                                       Time in days

                         Licensed Under Creative Commons by Naresh Jain
                                                                          27
Consider this...



                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10
               8            2

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                      27
Consider this...



                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30
               8            2            20

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                      27
Consider this...


                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38
               8            2            20                8

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                      27
Consider this...


                                                                         Making a release

                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38                        69
               8            2            20                8                   31

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                                 27
Consider this...

                                                                                            Customer Signoff
                                                                         Making a release

                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38                         69          71
               8            2            20                8                   31                  2

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                                               27
Consider this...

                                                                                            Customer Signoff
                                                                         Making a release

                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38                         69          71
               8            2            20                8                   31                  2

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                                               27
Challenges making a Release


Developers not checking in frequently
Complicated and non-standard build process
Real Build owned by Config Mgmt Team
...




                Licensed Under Creative Commons by Naresh Jain
                                                                 28
Fixing Release issues by
  applying JIT Practice




   Licensed Under Creative Commons by Naresh Jain
                                                    29
Fixing Release issues by
      applying JIT Practice

Standardize build process for the whole team




           Licensed Under Creative Commons by Naresh Jain
                                                            29
Fixing Release issues by
      applying JIT Practice

Standardize build process for the whole team
Manual integration on developers machines before checking in




           Licensed Under Creative Commons by Naresh Jain
                                                               29
Fixing Release issues by
      applying JIT Practice

Standardize build process for the whole team
Manual integration on developers machines before checking in
Manual integration on an independent server machine




           Licensed Under Creative Commons by Naresh Jain
                                                               29
Fixing Release issues by
      applying JIT Practice

Standardize build process for the whole team
Manual integration on developers machines before checking in
Manual integration on an independent server machine
Continuous integration using CI servers like CruiseControl




           Licensed Under Creative Commons by Naresh Jain
                                                               29
After optimizing biggest bottleneck...




          Licensed Under Creative Commons by Naresh Jain
                                                           30
After optimizing biggest bottleneck...




Bug reported



     0


                             Time in days

               Licensed Under Creative Commons by Naresh Jain
                                                                30
After optimizing biggest bottleneck...




         Reproduce Bug

Bug reported



     0               8
               8

                                       Time in days

                         Licensed Under Creative Commons by Naresh Jain
                                                                          30
After optimizing biggest bottleneck...



                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10
               8            2

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                      30
After optimizing biggest bottleneck...



                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30
               8            2            20

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                      30
After optimizing biggest bottleneck...


                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38
               8            2            20                8

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                      30
After optimizing biggest bottleneck...


                                                                    Making a release

                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38             43
               8            2            20                8               5

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                       30
After optimizing biggest bottleneck...

                                                                                  Customer Signoff
                                                                    Making a release

                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38             43            45
               8            2            20                8               5             2

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                                     30
After optimizing biggest bottleneck...

                                                                                  Customer Signoff
                                                                    Making a release

                                                    Regression Testing

                                        Fix Bug
                   Write failing test
         Reproduce Bug

Bug reported



     0                 8        10                  30            38             43            45
               8            2            20                8               5             2

                                                   Time in days

                                     Licensed Under Creative Commons by Naresh Jain
                                                                                                     30
After recursively applying ToC




      Licensed Under Creative Commons by Naresh Jain
                                                       31
After recursively applying ToC



Total time to fix any bug was 10 days...one two-week iteration




                Licensed Under Creative Commons by Naresh Jain
                                                                 31
After recursively applying ToC



Total time to fix any bug was 10 days...one two-week iteration
Find practices or techniques that help solve this problem and recurse.




                 Licensed Under Creative Commons by Naresh Jain
                                                                         31
Summary

ToC and JIT can be applied to software team’s “business” process
Using Retrospectives and other techniques Identify biggest stinkers
[bottlenecks]
Use a JIT practice to elevate the bottleneck
Baby Steps - No Silver Bullets!
Recurse




                 Licensed Under Creative Commons by Naresh Jain
                                                                      32

More Related Content

Viewers also liked

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentNaresh Jain
 
Continuous Deployment Demystified
Continuous Deployment DemystifiedContinuous Deployment Demystified
Continuous Deployment DemystifiedNaresh Jain
 
The Limited Red Society
The Limited Red SocietyThe Limited Red Society
The Limited Red SocietyNaresh Jain
 
Managing Iterations
Managing IterationsManaging Iterations
Managing IterationsNaresh Jain
 
Offshore Agile Maintenance
Offshore Agile MaintenanceOffshore Agile Maintenance
Offshore Agile MaintenanceNaresh Jain
 
Agile Is the New Waterfall
Agile Is the New WaterfallAgile Is the New Waterfall
Agile Is the New WaterfallNaresh Jain
 
Software Development The Trekkers Way
Software Development The Trekkers WaySoftware Development The Trekkers Way
Software Development The Trekkers WayNaresh Jain
 
ATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentNaresh Jain
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Naresh Jain
 
TLS - TOC Lean Six Sigma - English 40 slides 2013
TLS - TOC Lean Six Sigma - English 40 slides 2013TLS - TOC Lean Six Sigma - English 40 slides 2013
TLS - TOC Lean Six Sigma - English 40 slides 2013MARRIS Consulting
 
Theory of constraints
Theory of constraintsTheory of constraints
Theory of constraintsEka Darmadi
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 ConferenceNaresh Jain
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdNaresh Jain
 
Introduction To Theory of Constraints
Introduction To Theory of ConstraintsIntroduction To Theory of Constraints
Introduction To Theory of ConstraintsHasham22
 
Improving throughput with the Theory of Constraints and Queuing Theory
Improving throughput with the Theory of Constraints and Queuing TheoryImproving throughput with the Theory of Constraints and Queuing Theory
Improving throughput with the Theory of Constraints and Queuing TheoryAndrew Rusling
 
ScrumBan Evolution - What is you next step?
ScrumBan Evolution - What is you next step?ScrumBan Evolution - What is you next step?
ScrumBan Evolution - What is you next step?Sebastian Radics
 

Viewers also liked (20)

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Continuous Deployment Demystified
Continuous Deployment DemystifiedContinuous Deployment Demystified
Continuous Deployment Demystified
 
The Limited Red Society
The Limited Red SocietyThe Limited Red Society
The Limited Red Society
 
Managing Iterations
Managing IterationsManaging Iterations
Managing Iterations
 
Offshore Agile Maintenance
Offshore Agile MaintenanceOffshore Agile Maintenance
Offshore Agile Maintenance
 
Agile Is the New Waterfall
Agile Is the New WaterfallAgile Is the New Waterfall
Agile Is the New Waterfall
 
TDD Overview
TDD OverviewTDD Overview
TDD Overview
 
Agile Overview
Agile OverviewAgile Overview
Agile Overview
 
Software Development The Trekkers Way
Software Development The Trekkers WaySoftware Development The Trekkers Way
Software Development The Trekkers Way
 
MVP Hacks
MVP HacksMVP Hacks
MVP Hacks
 
ATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven Development
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
 
TLS - TOC Lean Six Sigma - English 40 slides 2013
TLS - TOC Lean Six Sigma - English 40 slides 2013TLS - TOC Lean Six Sigma - English 40 slides 2013
TLS - TOC Lean Six Sigma - English 40 slides 2013
 
Theory of constraints
Theory of constraintsTheory of constraints
Theory of constraints
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
 
Introduction To Theory of Constraints
Introduction To Theory of ConstraintsIntroduction To Theory of Constraints
Introduction To Theory of Constraints
 
Improving throughput with the Theory of Constraints and Queuing Theory
Improving throughput with the Theory of Constraints and Queuing TheoryImproving throughput with the Theory of Constraints and Queuing Theory
Improving throughput with the Theory of Constraints and Queuing Theory
 
ScrumBan Evolution - What is you next step?
ScrumBan Evolution - What is you next step?ScrumBan Evolution - What is you next step?
ScrumBan Evolution - What is you next step?
 

More from Naresh Jain

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignNaresh Jain
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteNaresh Jain
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational ResilienceNaresh Jain
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming CodeNaresh Jain
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference SummaryNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingNaresh Jain
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniNaresh Jain
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniNaresh Jain
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarNaresh Jain
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppNaresh Jain
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNaresh Jain
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016Naresh Jain
 
Unleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTNaresh Jain
 
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimGetting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimNaresh Jain
 
MVP Design Hacks
MVP Design HacksMVP Design Hacks
MVP Design HacksNaresh Jain
 
Functional Conf 2015
Functional Conf 2015Functional Conf 2015
Functional Conf 2015Naresh Jain
 

More from Naresh Jain (20)

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary Design
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome Note
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational Resilience
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference Summary
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert Virding
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco Cesarini
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur Datar
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKenna
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
 
Unleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDT
 
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimGetting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
 
MVP Design Hacks
MVP Design HacksMVP Design Hacks
MVP Design Hacks
 
Functional Conf 2015
Functional Conf 2015Functional Conf 2015
Functional Conf 2015
 

Recently uploaded

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 

Recently uploaded (20)

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 

Using ToC And JIT Practice To Coach Agile Teams

  • 1. Using ToC and JIT Practice to Coach Agile Teams Naresh Jain naresh@industriallogic.com Licensed Under Creative Commons by Naresh Jain 1
  • 2. Example Context Large Enterprise clients [450 ppl + 30 teams] Huge communication and delivery issues Help teams adopt Agile thinking Licensed Under Creative Commons by Naresh Jain 2
  • 3. Consider this... Bug reported Customer Signoff 0 71 Time in days Licensed Under Creative Commons by Naresh Jain 3
  • 4. After Value Stream Mapping Licensed Under Creative Commons by Naresh Jain 4
  • 5. After Value Stream Mapping Bug reported 0 Time in days Licensed Under Creative Commons by Naresh Jain 4
  • 6. After Value Stream Mapping Reproduce Bug Bug reported 0 8 8 Time in days Licensed Under Creative Commons by Naresh Jain 4
  • 7. After Value Stream Mapping Write failing test Reproduce Bug Bug reported 0 8 10 8 2 Time in days Licensed Under Creative Commons by Naresh Jain 4
  • 8. After Value Stream Mapping Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 8 2 20 Time in days Licensed Under Creative Commons by Naresh Jain 4
  • 9. After Value Stream Mapping Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 8 2 20 8 Time in days Licensed Under Creative Commons by Naresh Jain 4
  • 10. After Value Stream Mapping Making a release Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 69 8 2 20 8 31 Time in days Licensed Under Creative Commons by Naresh Jain 4
  • 11. After Value Stream Mapping Customer Signoff Making a release Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 69 71 8 2 20 8 31 2 Time in days Licensed Under Creative Commons by Naresh Jain 4
  • 12. After Value Stream Mapping Customer Signoff Making a release Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 69 71 8 2 20 8 31 2 Time in days Licensed Under Creative Commons by Naresh Jain 4
  • 13. Identify Constraints/ bottleneck Subordinate everything else and Elevate the Set Goals Constraints/bottleneck Licensed Under Creative Commons by Naresh Jain 5
  • 14. Agenda Some background about ToC and JIT Technique Open Discussion with examples from audience Licensed Under Creative Commons by Naresh Jain 6
  • 15. Theory of Constraint is based on the premise that... “Every real system, such as a business, must have within it at least one constraint. If this were not the case then the system could produce unlimited amounts of whatever it was striving for, profit in the case of a business.……………….” Dr Eli Goldratt Licensed Under Creative Commons by Naresh Jain 7
  • 16. “Theory of Constraints” Licensed Under Creative Commons by Naresh Jain 8
  • 17. “Theory of Constraints” Global optimization does not emerge from local optima Licensed Under Creative Commons by Naresh Jain 8
  • 18. “Theory of Constraints” Global optimization does not emerge from local optima Managing by cost (optimizing local performance) is usually at odds with managing by throughput (exploiting constraints) Licensed Under Creative Commons by Naresh Jain 8
  • 19. Significance of bottlenecks Maximum speed of the process is the speed of the slowest operation Any improvements will be wasted unless the bottleneck is relieved Bottlenecks must be identified and improved if the process is to be improved Licensed Under Creative Commons by Naresh Jain 9
  • 20. Significance of bottlenecks Maximum speed of the process is the speed of the slowest operation Any improvements will be wasted unless the bottleneck is relieved Bottlenecks must be identified and improved if the process is to be improved Licensed Under Creative Commons by Naresh Jain 9
  • 21. Assume current constraints cannot be changed in the short-run Licensed Under Creative Commons by Naresh Jain 10
  • 22. Assume current constraints cannot be changed in the short-run What should be produced now, with current resources, to maximize profits? Licensed Under Creative Commons by Naresh Jain 10
  • 23. How to apply ToC? Licensed Under Creative Commons by Naresh Jain 11
  • 24. How to apply ToC? Step 1: Identify the system's constraint(s). Licensed Under Creative Commons by Naresh Jain 11
  • 25. How to apply ToC? Step 1: Identify the system's constraint(s). Step 2: Decide how to exploit the system's constraint(s). Licensed Under Creative Commons by Naresh Jain 11
  • 26. How to apply ToC? Step 1: Identify the system's constraint(s). Step 2: Decide how to exploit the system's constraint(s). Step 3: Subordinate everything else to the decisions of Step 2. Licensed Under Creative Commons by Naresh Jain 11
  • 27. How to apply ToC? Step 1: Identify the system's constraint(s). Step 2: Decide how to exploit the system's constraint(s). Step 3: Subordinate everything else to the decisions of Step 2. Step 4: Elevate the system's constraint(s). Licensed Under Creative Commons by Naresh Jain 11
  • 28. How to apply ToC? Step 1: Identify the system's constraint(s). Step 2: Decide how to exploit the system's constraint(s). Step 3: Subordinate everything else to the decisions of Step 2. Step 4: Elevate the system's constraint(s). Step 5: Back to Step 1, identify next constraint. Licensed Under Creative Commons by Naresh Jain 11
  • 29. Step 1: Identify the system’s constraint(s) Licensed Under Creative Commons by Naresh Jain 12
  • 30. Step 1: Identify the system’s constraint(s) Goal? Licensed Under Creative Commons by Naresh Jain 12
  • 31. Step 1: Identify the system’s constraint(s) Goal? Throughput? Licensed Under Creative Commons by Naresh Jain 12
  • 32. Step 1: Identify the system’s constraint(s) Goal? Throughput? Inventory? Licensed Under Creative Commons by Naresh Jain 12
  • 33. Step 1: Identify the system’s constraint(s) Goal? Throughput? Inventory? Operating Expense? Licensed Under Creative Commons by Naresh Jain 12
  • 34. Step 2: Decide how to exploit the system’s constraint(s) Licensed Under Creative Commons by Naresh Jain 13
  • 35. Step 3: Subordinate everything else to the decisions of Step 2 Licensed Under Creative Commons by Naresh Jain 14
  • 36. Step 4: Elevate the system’s constraint(s) Licensed Under Creative Commons by Naresh Jain 15
  • 37. Step 5: Back to Step 1, identify next constraint. What might happen if the constraint is elevated? Licensed Under Creative Commons by Naresh Jain 16
  • 38. ToC : 3 things can increase profitability of a plant Decrease Inventory Decrease Operating Expense Increase Throughput Licensed Under Creative Commons by Naresh Jain 17
  • 39. How does ToC apply to Software projects? Licensed Under Creative Commons by Naresh Jain 18
  • 40. How does ToC apply to Software projects? Inventory Licensed Under Creative Commons by Naresh Jain 18
  • 41. How does ToC apply to Software projects? Inventory Features requested but not specified Features specified and documented but not built Code that's written but not tested Code that's tested but not deployed to users Code that's deployed but not used Licensed Under Creative Commons by Naresh Jain 18
  • 42. How does ToC apply to Software projects?... Licensed Under Creative Commons by Naresh Jain 19
  • 43. How does ToC apply to Software projects?... Operating expenses Licensed Under Creative Commons by Naresh Jain 19
  • 44. How does ToC apply to Software projects?... Operating expenses Idle team members - Phased approach Licensed Under Creative Commons by Naresh Jain 19
  • 45. How does ToC apply to Software projects?... Operating expenses Idle team members - Phased approach Commercial Tools Licensed Under Creative Commons by Naresh Jain 19
  • 46. How does ToC apply to Software projects?... Operating expenses Idle team members - Phased approach Commercial Tools Cost of change curve - rework Licensed Under Creative Commons by Naresh Jain 19
  • 47. How does ToC apply to Software projects?... Operating expenses Idle team members - Phased approach Commercial Tools Cost of change curve - rework Constant thrashing of ideas Licensed Under Creative Commons by Naresh Jain 19
  • 48. How does ToC apply to Software projects?... Operating expenses Idle team members - Phased approach Commercial Tools Cost of change curve - rework Constant thrashing of ideas Technical Debt Licensed Under Creative Commons by Naresh Jain 19
  • 49. How does ToC apply to Software projects?... Throughput Large batch Size - Queuing Theory Licensed Under Creative Commons by Naresh Jain 20
  • 50. Queuing Theory Utilization (%) Source: Beyond Agile Software Development Becoming Lean, Mary Poppendieck, Poppendieck.llc Licensed Under Creative Commons by Naresh Jain 21
  • 51. How does ToC apply to Software projects?... Licensed Under Creative Commons by Naresh Jain 22
  • 52. How does ToC apply to Software projects?... Throughput Licensed Under Creative Commons by Naresh Jain 22
  • 53. How does ToC apply to Software projects?... Throughput Large batch Size - Queuing Theory Licensed Under Creative Commons by Naresh Jain 22
  • 54. How does ToC apply to Software projects?... Throughput Large batch Size - Queuing Theory Heavyweight methodology Licensed Under Creative Commons by Naresh Jain 22
  • 55. How does ToC apply to Software projects?... Throughput Large batch Size - Queuing Theory Heavyweight methodology Poor choice of tools Licensed Under Creative Commons by Naresh Jain 22
  • 56. How does ToC apply to Software projects?... Throughput Large batch Size - Queuing Theory Heavyweight methodology Poor choice of tools Real resource shortage Licensed Under Creative Commons by Naresh Jain 22
  • 57. Using Lean principles to Identify Waste Licensed Under Creative Commons by Naresh Jain 23
  • 58. Using Lean principles to Identify Waste Overproduction = Extra Features Licensed Under Creative Commons by Naresh Jain 23
  • 59. Using Lean principles to Identify Waste Overproduction = Extra Features Inventory = Requirements Licensed Under Creative Commons by Naresh Jain 23
  • 60. Using Lean principles to Identify Waste Overproduction = Extra Features Inventory = Requirements Extra Processing Steps = Extra Steps Licensed Under Creative Commons by Naresh Jain 23
  • 61. Using Lean principles to Identify Waste Overproduction = Extra Features Inventory = Requirements Extra Processing Steps = Extra Steps Motion = Finding Information Licensed Under Creative Commons by Naresh Jain 23
  • 62. Using Lean principles to Identify Waste Overproduction = Extra Features Inventory = Requirements Extra Processing Steps = Extra Steps Motion = Finding Information Defects = Defects Not Caught by Tests Licensed Under Creative Commons by Naresh Jain 23
  • 63. Using Lean principles to Identify Waste Overproduction = Extra Features Inventory = Requirements Extra Processing Steps = Extra Steps Motion = Finding Information Defects = Defects Not Caught by Tests Waiting = Waiting, Including Customers Licensed Under Creative Commons by Naresh Jain 23
  • 64. Using Lean principles to Identify Waste Overproduction = Extra Features Inventory = Requirements Extra Processing Steps = Extra Steps Motion = Finding Information Defects = Defects Not Caught by Tests Waiting = Waiting, Including Customers Transportation = Handoffs Licensed Under Creative Commons by Naresh Jain 23
  • 65. Just In Time Licensed Under Creative Commons by Naresh Jain 24
  • 66. Just In Time A pull system, driven by actual demand. The goal is to produce or provide one part just-in-time for the next operation. Reduces stock inventories, but leaves no room for schedule error. As much a managerial philosophy as it is an inventory system. Licensed Under Creative Commons by Naresh Jain 24
  • 67. Just In Time A pull system, driven by actual demand. The goal is to produce or provide one part just-in-time for the next operation. Reduces stock inventories, but leaves no room for schedule error. As much a managerial philosophy as it is an inventory system. Last Responsible Moment Licensed Under Creative Commons by Naresh Jain 24
  • 68. Just In Time A pull system, driven by actual demand. The goal is to produce or provide one part just-in-time for the next operation. Reduces stock inventories, but leaves no room for schedule error. As much a managerial philosophy as it is an inventory system. Last Responsible Moment Just-In-Time Training - Training provided to individuals or units just before the skills or function taught will be used in a practical application. Typically used to teach perishable or infrequently used skills Licensed Under Creative Commons by Naresh Jain 24
  • 69. Licensed Under Creative Commons by Naresh Jain 25
  • 70. Can we benefit more from ToC, JIT and Lean? Licensed Under Creative Commons by Naresh Jain 25
  • 71. What if... We consider software team members as the machines in our software factories? Can we apply ToC and benefit? Licensed Under Creative Commons by Naresh Jain 26
  • 72. Consider this... Licensed Under Creative Commons by Naresh Jain 27
  • 73. Consider this... Bug reported 0 Time in days Licensed Under Creative Commons by Naresh Jain 27
  • 74. Consider this... Reproduce Bug Bug reported 0 8 8 Time in days Licensed Under Creative Commons by Naresh Jain 27
  • 75. Consider this... Write failing test Reproduce Bug Bug reported 0 8 10 8 2 Time in days Licensed Under Creative Commons by Naresh Jain 27
  • 76. Consider this... Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 8 2 20 Time in days Licensed Under Creative Commons by Naresh Jain 27
  • 77. Consider this... Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 8 2 20 8 Time in days Licensed Under Creative Commons by Naresh Jain 27
  • 78. Consider this... Making a release Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 69 8 2 20 8 31 Time in days Licensed Under Creative Commons by Naresh Jain 27
  • 79. Consider this... Customer Signoff Making a release Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 69 71 8 2 20 8 31 2 Time in days Licensed Under Creative Commons by Naresh Jain 27
  • 80. Consider this... Customer Signoff Making a release Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 69 71 8 2 20 8 31 2 Time in days Licensed Under Creative Commons by Naresh Jain 27
  • 81. Challenges making a Release Developers not checking in frequently Complicated and non-standard build process Real Build owned by Config Mgmt Team ... Licensed Under Creative Commons by Naresh Jain 28
  • 82. Fixing Release issues by applying JIT Practice Licensed Under Creative Commons by Naresh Jain 29
  • 83. Fixing Release issues by applying JIT Practice Standardize build process for the whole team Licensed Under Creative Commons by Naresh Jain 29
  • 84. Fixing Release issues by applying JIT Practice Standardize build process for the whole team Manual integration on developers machines before checking in Licensed Under Creative Commons by Naresh Jain 29
  • 85. Fixing Release issues by applying JIT Practice Standardize build process for the whole team Manual integration on developers machines before checking in Manual integration on an independent server machine Licensed Under Creative Commons by Naresh Jain 29
  • 86. Fixing Release issues by applying JIT Practice Standardize build process for the whole team Manual integration on developers machines before checking in Manual integration on an independent server machine Continuous integration using CI servers like CruiseControl Licensed Under Creative Commons by Naresh Jain 29
  • 87. After optimizing biggest bottleneck... Licensed Under Creative Commons by Naresh Jain 30
  • 88. After optimizing biggest bottleneck... Bug reported 0 Time in days Licensed Under Creative Commons by Naresh Jain 30
  • 89. After optimizing biggest bottleneck... Reproduce Bug Bug reported 0 8 8 Time in days Licensed Under Creative Commons by Naresh Jain 30
  • 90. After optimizing biggest bottleneck... Write failing test Reproduce Bug Bug reported 0 8 10 8 2 Time in days Licensed Under Creative Commons by Naresh Jain 30
  • 91. After optimizing biggest bottleneck... Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 8 2 20 Time in days Licensed Under Creative Commons by Naresh Jain 30
  • 92. After optimizing biggest bottleneck... Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 8 2 20 8 Time in days Licensed Under Creative Commons by Naresh Jain 30
  • 93. After optimizing biggest bottleneck... Making a release Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 43 8 2 20 8 5 Time in days Licensed Under Creative Commons by Naresh Jain 30
  • 94. After optimizing biggest bottleneck... Customer Signoff Making a release Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 43 45 8 2 20 8 5 2 Time in days Licensed Under Creative Commons by Naresh Jain 30
  • 95. After optimizing biggest bottleneck... Customer Signoff Making a release Regression Testing Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 38 43 45 8 2 20 8 5 2 Time in days Licensed Under Creative Commons by Naresh Jain 30
  • 96. After recursively applying ToC Licensed Under Creative Commons by Naresh Jain 31
  • 97. After recursively applying ToC Total time to fix any bug was 10 days...one two-week iteration Licensed Under Creative Commons by Naresh Jain 31
  • 98. After recursively applying ToC Total time to fix any bug was 10 days...one two-week iteration Find practices or techniques that help solve this problem and recurse. Licensed Under Creative Commons by Naresh Jain 31
  • 99. Summary ToC and JIT can be applied to software team’s “business” process Using Retrospectives and other techniques Identify biggest stinkers [bottlenecks] Use a JIT practice to elevate the bottleneck Baby Steps - No Silver Bullets! Recurse Licensed Under Creative Commons by Naresh Jain 32