The SecretAssumptionof AgileFred Georgefredgeorge@acm.org@fgeorge52Copyright © 2009-2013 by Fred George   1
Agile is Productive                        Traditional                  Agile                                             ...
How?1. Code That Can Change2. Lean Management3. Processing PowerCopyright © 2009-2013 by Fred George   3
“Objects are only good forprograms that change.”Rick DeNatale, IBM1988Copyright © 2009-2013 by Fred George   4
Stories Assume EasyChangeCopyright © 2009-2013 by Fred George   5
Typical Program          public void foo( ) {            ...                        How many lines?            ...        ...
Replacement Application                                 Old       New                               Java        Java      ...
Tasking Cycle                                               Task                         Integrate                      De...
Task Cycle Case Study                                       Task    Integrate                                       Design...
Tasking Cycle                                              Task          15 Minutes              Integrate                ...
Simple Design1. Works2. Communicates3. No duplicate code4. Least classes and methods       Applies to Application and Test...
RefactoringMartin FowlerCopyright © 2009-2013 by Fred George   13
Tasking Cycle                                               Task                Integrate                               De...
Refactoringto PatternsJoshua KerievskyCopyright © 2009-2013 by Fred George   15
Tasking Cycle                                               Task                Integrate                                D...
Case Study: Complexity     Cyclomatic Complexity     100 is Bad     “...never seen less than 5” - Senior Architect     Cyc...
Path to Proficiency                                                                   en ce                                ...
Product Requests (London)        Payback:                                28 Stories        11 Days                        ...
OO Boot Camp“...teaches you to think like a programmer...”Copyright © 2009-2013 by Fred George             20
“15 minutes after the classstarted, I realized I knewnothing aboutprogramming.”Lead Designer, Consulting Firm, commenting ...
OO Boot Camp     History: Since 1995     Over 1000 Students; 3 countries     Java, VB, C#, Ruby     Socratic Method (Quest...
Master                        Journeyman                              ApprenticeCopyright © 2009-2013 by Fred George      ...
Master                                        2Y                                          ear                             ...
Part 1: Principles     Encapsulation                            Collaborating Objects     Object Relationships            ...
Part 2: Design Patterns     Rationale                                Composite Pattern     Patterns vs. Principles        ...
Suspicious Statements     case - Almost always wrong     else - Mostly wrong     if - Suspicious           Unless guard cl...
Suspicious Methods     getters - Violates Encapsulation     setters - Worse: violates Encapsulation and Object     integri...
Suspicious Classes     Classes with names ending in -er or -or     Special naming conventions for Interfaces     Interface...
Results                         Dropouts                 20%                     Journeymen                   20%         ...
Maintenance                                 Old       New                               Java        Java                  ...
Transition Plan     No Documentation     No Training     No Time     No Problem!Copyright © 2009-2013 by Fred George   32
Training -- OO Boot Camp     First class 1 October     9-12 students / class     Include project managers and QA     4 cla...
Implementation     Start development on 15 October     Ruby used (never used before 1 October)     No stories - just busin...
Currently...     5 Tables running     Each Table has it’s own business problem     Only developers     Speaker designated ...
Questions?Copyright © 2009-2013 by Fred George   36
Upcoming SlideShare
Loading in...5
×

Secret Assumption of Agile

1,770

Published on

Early proponents of Agile assumed a certain style of programming that was an outgrowth of the Simple Design practice of eXtreme Programming. As Agile has been adopted, this particular style was not brought in as a co-requisite. This presentation explains aspects of this style, cites examples of the impact of its use, and describes a training program developed by Fred George to address this deficiency. This training program formed the basis of ThoughtWorks University several years after its creation. (Presentation given at Agile India 2013)

Published in: Technology
2 Comments
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,770
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
2
Likes
3
Embeds 0
No embeds

No notes for slide

Secret Assumption of Agile

  1. 1. The SecretAssumptionof AgileFred Georgefredgeorge@acm.org@fgeorge52Copyright © 2009-2013 by Fred George 1
  2. 2. Agile is Productive Traditional Agile 3 Months 12 Months 8 Months............. 5 Months 8 Months $28 / Hour $87 / Hour $2,000,000 6x $1,100,000Copyright © 2009-2013 by Fred George 2
  3. 3. How?1. Code That Can Change2. Lean Management3. Processing PowerCopyright © 2009-2013 by Fred George 3
  4. 4. “Objects are only good forprograms that change.”Rick DeNatale, IBM1988Copyright © 2009-2013 by Fred George 4
  5. 5. Stories Assume EasyChangeCopyright © 2009-2013 by Fred George 5
  6. 6. Typical Program public void foo( ) { ... How many lines? ... ... ... ... 2.3 lines / method ... 25 lines / class ... ... Smalltalk: } 1.1 lines / methodCopyright © 2009-2013 by Fred George 6
  7. 7. Replacement Application Old New Java Java Oracle DB Oracle DB Web UI Web UI 72 Classes 1400 ClassesCopyright © 2009-2013 by Fred George 7
  8. 8. Tasking Cycle Task Integrate DesignShip Code Test Copyright © 2009-2013 by Fred George 8
  9. 9. Task Cycle Case Study Task Integrate Design 1,000,000 Lines of J2EE Code 2-4 Hours 50 Programmers 4000 Tests Cycle Time? Code TestCopyright © 2009-2013 by Fred George 9
  10. 10. Tasking Cycle Task 15 Minutes Integrate Design 15 Minutes Code TestCopyright © 2009-2013 by Fred George 10
  11. 11. Simple Design1. Works2. Communicates3. No duplicate code4. Least classes and methods Applies to Application and TestsCopyright © 2009-2013 by Fred George 12
  12. 12. RefactoringMartin FowlerCopyright © 2009-2013 by Fred George 13
  13. 13. Tasking Cycle Task Integrate Design Simple DesignRefactoring Code Test Copyright © 2009-2013 by Fred George 14
  14. 14. Refactoringto PatternsJoshua KerievskyCopyright © 2009-2013 by Fred George 15
  15. 15. Tasking Cycle Task Integrate Design Introduce PatternsRefactoring Refactoring Code Test Copyright © 2009-2013 by Fred George 16
  16. 16. Case Study: Complexity Cyclomatic Complexity 100 is Bad “...never seen less than 5” - Senior Architect Cyclomatic Complexity: 1.8 9 week test: 1 bug, fixed within 2 hoursCopyright © 2009-2013 by Fred George 17
  17. 17. Path to Proficiency en ce xp eri E ng i ni Tra ng ki or WCopyright © 2009-2013 by Fred George 18
  18. 18. Product Requests (London) Payback: 28 Stories 11 Days 12 Days Class 23 Stories 5 Days 15 DaysCopyright © 2009-2013 by Fred George 19
  19. 19. OO Boot Camp“...teaches you to think like a programmer...”Copyright © 2009-2013 by Fred George 20
  20. 20. “15 minutes after the classstarted, I realized I knewnothing aboutprogramming.”Lead Designer, Consulting Firm, commenting toCIO of a large US manufacturer.Copyright © 2009-2013 by Fred George 21
  21. 21. OO Boot Camp History: Since 1995 Over 1000 Students; 3 countries Java, VB, C#, Ruby Socratic Method (Question - Answer - Question) 60%+ Lab Pair Programming Test First (15 Minute Cycle) Students Present SolutionsCopyright © 2009-2013 by Fred George 22
  22. 22. Master Journeyman ApprenticeCopyright © 2009-2013 by Fred George 23
  23. 23. Master 2Y ear s- Ne ver Journeyman on ths 2- 6MApprentice Copyright © 2009-2013 by Fred George 24
  24. 24. Part 1: Principles Encapsulation Collaborating Objects Object Relationships Interfaces Inheritance Coding Patterns Delegation Refactoring Polymorphism Recursion 40-50 HoursCopyright © 2009-2013 by Fred George 25
  25. 25. Part 2: Design Patterns Rationale Composite Pattern Patterns vs. Principles Visitor Pattern Observer Pattern Builder Pattern Iterator Pattern Concerts Mediator Pattern Survey of Patterns 40-50 HoursCopyright © 2009-2013 by Fred George 26
  26. 26. Suspicious Statements case - Almost always wrong else - Mostly wrong if - Suspicious Unless guard clause at start of method Substitute Design Patterns for all theseCopyright © 2009-2013 by Fred George 27
  27. 27. Suspicious Methods getters - Violates Encapsulation setters - Worse: violates Encapsulation and Object integrity Methods with 2 or more levels of indentingCopyright © 2009-2013 by Fred George 28
  28. 28. Suspicious Classes Classes with names ending in -er or -or Special naming conventions for Interfaces Interface with a single implementing Class Classes with more than 2 instance variablesCopyright © 2009-2013 by Fred George 29
  29. 29. Results Dropouts 20% Journeymen 20% Architecture, Design, Multiple Predictors Languages Retention Must be used within a month Support Journeymen, MastersCopyright © 2009-2013 by Fred George 30
  30. 30. Maintenance Old New Java Java Oracle DB Oracle DB Web UI Web UI 72 Classes 1400 ClassesCopyright © 2009-2013 by Fred George 31
  31. 31. Transition Plan No Documentation No Training No Time No Problem!Copyright © 2009-2013 by Fred George 32
  32. 32. Training -- OO Boot Camp First class 1 October 9-12 students / class Include project managers and QA 4 classes so farCopyright © 2009-2013 by Fred George 33
  33. 33. Implementation Start development on 15 October Ruby used (never used before 1 October) No stories - just business problem First page ready for review by end of NovemberCopyright © 2009-2013 by Fred George 34
  34. 34. Currently... 5 Tables running Each Table has it’s own business problem Only developers Speaker designated Processes are varying, particularly metricsCopyright © 2009-2013 by Fred George 35
  35. 35. Questions?Copyright © 2009-2013 by Fred George 36
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×