Secret Assumption of Agile

2,955 views

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
4 Likes
Statistics
Notes
No Downloads
Views
Total views
2,955
On SlideShare
0
From Embeds
0
Number of Embeds
184
Actions
Shares
0
Downloads
31
Comments
2
Likes
4
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

×