Secret Assumption of Agile (Chinese)

980 views
886 views

Published on

The secret assumption of Agile is that you write programs that are easy to change. The presentation talks about how very different that style can be. Case studies from real project reinforce these techniques. Finally, the training for this style is described. (most slides in English, too)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
980
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Secret Assumption of Agile (Chinese)

  1. 1. Copyright © 2009 by Fred George 1 Tuesday, September 15, 2009
  2. 2. The Secret Assumption of Agile Fred George TrafficBroker, Ltd., London, United Kingdom Copyright © 2009 by Fred George 1 Tuesday, September 15, 2009
  3. 3. Agile is Productive Copyright © 2009 by Fred George 2 Tuesday, September 15, 2009
  4. 4. Agile is Productive Traditional 12 Months $28 per Hour $2,000,000 Copyright © 2009 by Fred George 2 Tuesday, September 15, 2009
  5. 5. Agile is Productive Traditional Agile 3 12 Months 8 ............. 5 8 $28 $87 6x per Hour $2,000,000 $1,100,000 Copyright © 2009 by Fred George 2 Tuesday, September 15, 2009
  6. 6. How? Copyright © 2009 by Fred George 3 Tuesday, September 15, 2009
  7. 7. How? 1. Code That Can Change 2. Lean Management 3. Processing Power Copyright © 2009 by Fred George 3 Tuesday, September 15, 2009
  8. 8. “Objects are only good for programs that change.” “ ” Rick DeNatale, IBM 1988 Copyright © 2009 by Fred George 4 Tuesday, September 15, 2009
  9. 9. Stories Assume Easy Change Copyright © 2009 by Fred George 5 Tuesday, September 15, 2009
  10. 10. Stories Assume Easy Change Story Story Story Story Story Story Story Story Copyright © 2009 by Fred George 5 Tuesday, September 15, 2009
  11. 11. Stories Assume Easy Change Story Story Story Story Story Story Story Story Copyright © 2009 by Fred George 5 Tuesday, September 15, 2009
  12. 12. Stories Assume Easy Change Story Story Story Story Story Story Story Story Copyright © 2009 by Fred George 5 Tuesday, September 15, 2009
  13. 13. Typical Program Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  14. 14. Typical Program public void foo( ) { ... ... ... ... ... ... ... ... } Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  15. 15. Typical Program public void foo( ) { How many lines? ... ... ... ... ... ... ... ... } Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  16. 16. Typical Program public void foo( ) { How many lines? ... ... ... ... ... 2.3 ... ... ... } Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  17. 17. Typical Program public void foo( ) { How many lines? ... ... ... ... ... 2.3 ... 25 ... ... } Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  18. 18. Typical Program public void foo( ) { How many lines? ... ... ... ... ... 2.3 ... 25 ... ... Smalltalk: } 1.1 Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  19. 19. Replacement Application Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  20. 20. Replacement Application Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  21. 21. Replacement Application Old Java Oracle DB Web UI Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  22. 22. Replacement Application Old New Java Java Oracle DB Oracle DB Web UI Web UI Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  23. 23. Replacement Application Old New Java Java Oracle DB Oracle DB Web UI Web UI 72 Classes Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  24. 24. Replacement Application Old New Java Java Oracle DB Oracle DB Web UI Web UI 72 Classes 1400 Classes Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  25. 25. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  26. 26. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  27. 27. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  28. 28. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  29. 29. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  30. 30. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  31. 31. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  32. 32. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  33. 33. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  34. 34. Task Cycle Case Study Copyright © 2009 by Fred George 9 Tuesday, September 15, 2009
  35. 35. Task Cycle Case Study 1,000,000 J2EE 50 8000 Copyright © 2009 by Fred George 9 Tuesday, September 15, 2009
  36. 36. Task Cycle Case Study 1,000,000 J2EE 50 8000 Copyright © 2009 by Fred George 9 Tuesday, September 15, 2009
  37. 37. Task Cycle Case Study 1,000,000 J2EE 2-4 50 8000 Copyright © 2009 by Fred George 9 Tuesday, September 15, 2009
  38. 38. Tasking Cycle Copyright © 2009 by Fred George 10 Tuesday, September 15, 2009
  39. 39. Tasking Cycle 15 Copyright © 2009 by Fred George 10 Tuesday, September 15, 2009
  40. 40. Tasking Cycle 15 15 Copyright © 2009 by Fred George 10 Tuesday, September 15, 2009
  41. 41. Tasking Cycle 15 15 Copyright © 2009 by Fred George 10 Tuesday, September 15, 2009
  42. 42. Copyright © 2009 by Fred George 11 Tuesday, September 15, 2009
  43. 43. Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  44. 44. Simple Design Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  45. 45. Simple Design 1. Works Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  46. 46. Simple Design 1. Works 2. Communicates Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  47. 47. Simple Design 1. Works 2. Communicates 3. No duplicate code Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  48. 48. Simple Design 1. Works 2. Communicates 3. No duplicate code 4. Least classes and methods Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  49. 49. Simple Design 1. Works 2. Communicates 3. No duplicate code 4. Least classes and methods Applies to Application and Tests Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  50. 50. Refactoring Martin Fowler Copyright © 2009 by Fred George 13 Tuesday, September 15, 2009
  51. 51. Tasking Cycle Copyright © 2009 by Fred George 14 Tuesday, September 15, 2009
  52. 52. Tasking Cycle Copyright © 2009 by Fred George 14 Tuesday, September 15, 2009
  53. 53. Tasking Cycle Copyright © 2009 by Fred George 14 Tuesday, September 15, 2009
  54. 54. Refactoring to Patterns Joshua Kerievsky Copyright © 2009 by Fred George 15 Tuesday, September 15, 2009
  55. 55. Tasking Cycle Copyright © 2009 by Fred George 16 Tuesday, September 15, 2009
  56. 56. Tasking Cycle Copyright © 2009 by Fred George 16 Tuesday, September 15, 2009
  57. 57. Tasking Cycle Copyright © 2009 by Fred George 16 Tuesday, September 15, 2009
  58. 58. Case Study: Complexity Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  59. 59. Case Study: Complexity Cyclomatic Complexity Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  60. 60. Case Study: Complexity Cyclomatic Complexity 100 100 is Bad Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  61. 61. Case Study: Complexity Cyclomatic Complexity 100 100 is Bad “... 5 ”- “...never seen less than 5” - Senior Architect Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  62. 62. Case Study: Complexity Cyclomatic Complexity 100 100 is Bad “... 5 ”- “...never seen less than 5” - Senior Architect : 1.8 Cyclomatic Complexity Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  63. 63. Case Study: Complexity Cyclomatic Complexity 100 100 is Bad “... 5 ”- “...never seen less than 5” - Senior Architect : 1.8 Cyclomatic Complexity 9 : 1 bug Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  64. 64. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  65. 65. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  66. 66. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  67. 67. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  68. 68. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  69. 69. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  70. 70. Copyright © 2009 by Fred George 19 Tuesday, September 15, 2009
  71. 71. Copyright © 2009 by Fred George 19 Tuesday, September 15, 2009
  72. 72. 28 12 23 5 15 Copyright © 2009 by Fred George 19 Tuesday, September 15, 2009
  73. 73. : 28 (Payback) 11 12 23 5 15 Copyright © 2009 by Fred George 19 Tuesday, September 15, 2009
  74. 74. OO Boot Camp OO Copyright © 2009 by Fred George 20 Tuesday, September 15, 2009
  75. 75. OO Boot Camp OO “... ...” “...teaches you to think like a programmer...” Copyright © 2009 by Fred George 20 Tuesday, September 15, 2009
  76. 76. Copyright © 2009 by Fred George 21 Tuesday, September 15, 2009
  77. 77. CIO Lead Designer, Consulting Firm, commenting to CIO of a large US manufacturer. Copyright © 2009 by Fred George 21 Tuesday, September 15, 2009
  78. 78. “15 minutes after the class started, I realized I knew nothing about programming.” “ 15 ” CIO Lead Designer, Consulting Firm, commenting to CIO of a large US manufacturer. Copyright © 2009 by Fred George 21 Tuesday, September 15, 2009
  79. 79. OO Boot Camp OO Copyright © 2009 by Fred George 22 Tuesday, September 15, 2009
  80. 80. OO Boot Camp OO 1995 History: Since 1995 1000 3 Over 1000 Students; 3 countries Copyright © 2009 by Fred George 22 Tuesday, September 15, 2009
  81. 81. OO Boot Camp OO 1995 History: Since 1995 1000 3 Over 1000 Students; 3 countries Java, VB, C#, Ruby Copyright © 2009 by Fred George 22 Tuesday, September 15, 2009
  82. 82. OO Boot Camp OO 1995 History: Since 1995 1000 3 Over 1000 Students; 3 countries Java, VB, C#, Ruby Socratic Method (Question - Answer - Question) Copyright © 2009 by Fred George 22 Tuesday, September 15, 2009
  83. 83. OO Boot Camp OO 1995 History: Since 1995 1000 3 Over 1000 Students; 3 countries Java, VB, C#, Ruby Socratic Method (Question - Answer - Question) 60% 60%+ Lab Pair Programming 15 Test First (15 Minute Cycle) Students Present Solutions Copyright © 2009 by Fred George 22 Tuesday, September 15, 2009
  84. 84. Copyright © 2009 by Fred George 23 Tuesday, September 15, 2009
  85. 85. Copyright © 2009 by Fred George 23 Tuesday, September 15, 2009
  86. 86. Copyright © 2009 by Fred George 24 Tuesday, September 15, 2009
  87. 87. 2-6 Copyright © 2009 by Fred George 24 Tuesday, September 15, 2009
  88. 88. 2 2-6 Copyright © 2009 by Fred George 24 Tuesday, September 15, 2009
  89. 89. Part 1: Principles Copyright © 2009 by Fred George 25 Tuesday, September 15, 2009
  90. 90. Part 1: Principles Encapsulation Collaborating Objects Object Relationships Interfaces Inheritance Coding Patterns Delegation Refactoring Polymorphism Recursion Copyright © 2009 by Fred George 25 Tuesday, September 15, 2009
  91. 91. Part 1: Principles Encapsulation Collaborating Objects Object Relationships Interfaces Inheritance Coding Patterns Delegation Refactoring Polymorphism Recursion 40-50 Copyright © 2009 by Fred George 25 Tuesday, September 15, 2009
  92. 92. Part 2: Design Patterns Copyright © 2009 by Fred George 26 Tuesday, September 15, 2009
  93. 93. Part 2: Design Patterns Rationale Composite Pattern vs. Patterns vs. Visitor Pattern Principles Builder Pattern Observer Pattern Concerts Iterator Pattern Survey of Patterns Mediator Pattern Copyright © 2009 by Fred George 26 Tuesday, September 15, 2009
  94. 94. Part 2: Design Patterns Rationale Composite Pattern vs. Patterns vs. Visitor Pattern Principles Builder Pattern Observer Pattern Concerts Iterator Pattern Survey of Patterns Mediator Pattern 40-50 Copyright © 2009 by Fred George 26 Tuesday, September 15, 2009
  95. 95. Suspicious Statements Copyright © 2009 by Fred George 27 Tuesday, September 15, 2009
  96. 96. Suspicious Statements case - Almost always wrong Copyright © 2009 by Fred George 27 Tuesday, September 15, 2009
  97. 97. Suspicious Statements case - Almost always wrong else - Mostly wrong Copyright © 2009 by Fred George 27 Tuesday, September 15, 2009
  98. 98. Suspicious Statements case - Almost always wrong else - Mostly wrong if - Suspicious Unless guard clause at start of method Copyright © 2009 by Fred George 27 Tuesday, September 15, 2009
  99. 99. Suspicious Statements case - Almost always wrong else - Mostly wrong if - Suspicious Unless guard clause at start of method Substitute Design Patterns for all these Copyright © 2009 by Fred George 27 Tuesday, September 15, 2009
  100. 100. Suspicious Methods Copyright © 2009 by Fred George 28 Tuesday, September 15, 2009
  101. 101. Suspicious Methods getters - Violates Encapsulation Copyright © 2009 by Fred George 28 Tuesday, September 15, 2009
  102. 102. Suspicious Methods getters - Violates Encapsulation setters - Worse: violates Encapsulation and Object integrity Copyright © 2009 by Fred George 28 Tuesday, September 15, 2009
  103. 103. Suspicious Methods getters - Violates Encapsulation setters - Worse: violates Encapsulation and Object integrity 2 Methods with 2 or more levels of indenting Copyright © 2009 by Fred George 28 Tuesday, September 15, 2009
  104. 104. Suspicious Classes Copyright © 2009 by Fred George 29 Tuesday, September 15, 2009
  105. 105. Suspicious Classes Special naming conventions for Interfaces Copyright © 2009 by Fred George 29 Tuesday, September 15, 2009
  106. 106. Suspicious Classes Special naming conventions for Interfaces Interface with a single implementing Class Copyright © 2009 by Fred George 29 Tuesday, September 15, 2009
  107. 107. Suspicious Classes Special naming conventions for Interfaces Interface with a single implementing Class 2 Classes with more than 2 instance variables Copyright © 2009 by Fred George 29 Tuesday, September 15, 2009
  108. 108. Results Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  109. 109. Results Dropouts 20% Journeymen 20% Predictors Retention Must be used within a month Support Journeymen, Masters Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  110. 110. Results Dropouts 20% Journeymen 20% Predictors Retention Must be used within a month Support Journeymen, Masters Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  111. 111. Results Dropouts 20% Journeymen 20% Predictors Retention Must be used within a month Support Journeymen, Masters Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  112. 112. Results Dropouts 20% Journeymen 20% Predictors Retention Must be used within a month Support Journeymen, Masters Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  113. 113. Results Dropouts 20% Journeymen 20% Predictors Retention Must be used within a month Support Journeymen, Masters Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  114. 114. Maintenance Copyright © 2009 by Fred George 31 Tuesday, September 15, 2009
  115. 115. Maintenance Old New Java Java Oracle DB Oracle DB Web UI Web UI 72 Classes 1400 Classes Copyright © 2009 by Fred George 31 Tuesday, September 15, 2009
  116. 116. Transition Plan Copyright © 2009 by Fred George 32 Tuesday, September 15, 2009
  117. 117. Transition Plan No Documentation No Training No Time Copyright © 2009 by Fred George 32 Tuesday, September 15, 2009
  118. 118. Transition Plan No Documentation No Training No Time No Problem! Copyright © 2009 by Fred George 32 Tuesday, September 15, 2009
  119. 119. Team with Pair Programming Copyright © 2009 by Fred George 33 Tuesday, September 15, 2009
  120. 120. Copyright © 2009 by Fred George 34 Tuesday, September 15, 2009
  121. 121. Copyright © 2009 by Fred George 34 Tuesday, September 15, 2009

×