using the theory of constraints to using the theory of
play

Using the Theory of Constraints to Using the Theory of Constraints - PDF document

T8 Concurrent Session Thursday 12/06/2007 12:45 PM Using the Theory of Constraints to Using the Theory of Constraints to Coach Agile Teams Coach Agile Teams Presented by: Naresh Jain ThoughtWorks Presented at: Agile Development Practices


  1. T8 Concurrent Session Thursday 12/06/2007 12:45 PM Using the Theory of Constraints to Using the Theory of Constraints to Coach Agile Teams Coach Agile Teams Presented by: Naresh Jain ThoughtWorks Presented at: Agile Development Practices December 3-6, 2007; Orlando, FL, USA 330 Corporate Way, Suite 300, Orange Park, FL 32043 888-268-8770 � 904-278-0524 � sqeinfo@sqe.com � www.sqe.com

  2. Naresh Jain Naresh Jain is a software craftsman working as a consultant for ThoughtWorks India. He has worked on a variety of software projects utilizing XP, Scrum, Crystal and CMMI5i in India and the US. Naresh is the founder and vice-chairman of the Agile Software Community of India ( ASCI ) and the organizer of the Simple Design and Testing Conference (SDTConf). He has helped start various agile user groups including the Agile Philly User Group and several groups in India. By becoming part of a team, Naresh helps software companies embrace agile. Naresh enjoys beer, music, adventure sports, and spicy food of any color. You can reach him at naresh@agilefaqs.com.

  3. Using ToC and JIT to Coach Agile Teams Naresh Jain naresh@agilefaqs.com 1

  4. Agenda • Some background about ToC and JIT • Context • Technique • Examples 2

  5. “Theory of Constraints” 3

  6. “Theory of Constraints” Global optimization does not emerge from local optima 3

  7. “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) 3

  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 4

  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 4

  10. Assumes current constraints cannot be changed in the short-run 5

  11. Assumes current constraints cannot be changed in the short-run What should be produced now, with current resources, to maximize profits? 5

  12. ToC 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 6

  13. How to apply ToC? 7

  14. How to apply ToC? • Step 1: Identify the system's constraint(s). 7

  15. How to apply ToC? • Step 1: Identify the system's constraint(s). • Step 2: Decide how to exploit the system's constraint(s). 7

  16. 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. 7

  17. 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). 7

  18. 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. 7

  19. Step 1: Identify the system’s constraint(s). 8

  20. Step 1: Identify the system’s constraint(s). • Goal? 8

  21. Step 1: Identify the system’s constraint(s). • Goal? • Throughput? 8

  22. Step 1: Identify the system’s constraint(s). • Goal? • Throughput? • Inventory? 8

  23. Step 1: Identify the system’s constraint(s). • Goal? • Throughput? • Inventory? • Operating Expense? 8

  24. Step 2: Decide how to exploit the system’s constraint(s). 9

  25. Step 3: Subordinate everything else to the decisions of Step 2 10

  26. Step 4: Elevate the system’s constraint(s). 11

  27. Step 5: Back to Step 1, identify next constraint. What might happen if the constraint is elevated? 12

  28. ToC : 3 things can increase profitability of a plant • Decrease Inventory • Decrease Operating Expense • Increase Throughput 13

  29. How does ToC apply to Software projects? 14

  30. How does ToC apply to Software projects? • Inventory 14

  31. 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 14

  32. How does ToC apply to Software projects?... 15

  33. How does ToC apply to Software projects?... • Operating expenses 15

  34. 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 15

  35. How does ToC apply to Software projects?... • Throughput • Large batch Size - Queuing Theory 16

  36. Queuing Theory Utilization (%) Source: Beyond Agile Software Development Becoming Lean, Mary Poppendieck, Poppendieck.llc 17

  37. How does ToC apply to Software projects?... 18

  38. How does ToC apply to Software projects?... • Throughput 18

  39. How does ToC apply to Software projects?... • Throughput • Large batch Size - Queuing Theory • Heavyweight methodology • Poor choice of tools • Real resource shortage 18

  40. Using Lean principles to Identify Waste 19

  41. Using Lean principles to Identify Waste • Overproduction = Extra Features 19

  42. Using Lean principles to Identify Waste • Overproduction = Extra Features • Inventory = Requirements 19

  43. Using Lean principles to Identify Waste • Overproduction = Extra Features • Inventory = Requirements • Extra Processing Steps = Extra Steps 19

  44. Using Lean principles to Identify Waste • Overproduction = Extra Features • Inventory = Requirements • Extra Processing Steps = Extra Steps • Motion = Finding Information 19

  45. 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 19

  46. 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 19

  47. 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 19

  48. Just In Time 20

  49. 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. 20

  50. 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 20

  51. 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 20

  52. 21

  53. Can we benefit more from ToC, JIT and Lean? 21

  54. Context • Large Enterprise clients [450 ppl + 30 teams] • Huge communication and delivery issues • Help teams adopt Agile thinking 22

  55. What if... • We consider software team members as the machines in our software factories? • Can we apply ToC and benefit? 23

  56. Consider this... 24

  57. Consider this... Time in days 24

  58. Consider this... Bug reported 0 Time in days 24

  59. Consider this... Reproduce Bug Bug reported 0 8 8 Time in days 24

  60. Consider this... Write failing test Reproduce Bug Bug reported 0 8 10 8 2 Time in days 24

  61. Consider this... Fix Bug Write failing test Reproduce Bug Bug reported 0 8 10 30 8 2 20 Time in days 24

  62. 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 24

Recommend


More recommend