SlideShare a Scribd company logo
The Secret
Assumption
of Agile
Fred George
fredgeorge@acm.org
@fgeorge52


Copyright © 2009-2013 by Fred George   1
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,000




Copyright © 2009-2013 by Fred George                                  2
How?


1. Code That Can Change
2. Lean Management
3. Processing Power



Copyright © 2009-2013 by Fred George   3
“Objects are only good for
programs that change.”
Rick DeNatale, IBM
1988




Copyright © 2009-2013 by Fred George   4
Stories Assume Easy
Change



Copyright © 2009-2013 by Fred George   5
Typical Program
          public void foo( ) {
            ...                        How many lines?
            ...
            ...
            ...
            ...                        2.3 lines / method
            ...                        25 lines / class
            ...
            ...                        Smalltalk:
          }                            1.1 lines / method
Copyright © 2009-2013 by Fred George                        6
Replacement Application
                                 Old       New

                               Java        Java

                        Oracle DB       Oracle DB

                            Web UI       Web UI

                       72 Classes      1400 Classes


Copyright © 2009-2013 by Fred George                  7
Tasking Cycle
                                               Task
                         Integrate                      Design




Ship                                    Code          Test
 Copyright © 2009-2013 by Fred George                            8
Task Cycle Case Study
                                       Task
    Integrate                                       Design
                                              1,000,000 Lines of J2EE Code

            2-4 Hours                         50 Programmers
                                              4000 Tests
                                              Cycle Time?


                           Code                  Test
Copyright © 2009-2013 by Fred George                                         9
Tasking Cycle
                                              Task          15 Minutes
              Integrate                                Design




                                              15 Minutes

                                       Code          Test
Copyright © 2009-2013 by Fred George                                     10
Simple Design
1. Works
2. Communicates
3. No duplicate code
4. Least classes and methods


       Applies to Application and Tests


Copyright © 2009-2013 by Fred George      12
Refactoring
Martin Fowler




Copyright © 2009-2013 by Fred George   13
Tasking Cycle
                                               Task
                Integrate                               Design
                                 Simple
                                 Design
Refactoring


                                        Code          Test
 Copyright © 2009-2013 by Fred George                            14
Refactoring
to Patterns
Joshua Kerievsky




Copyright © 2009-2013 by Fred George   15
Tasking Cycle
                                               Task
                Integrate                                Design
                                                      Introduce
                                                       Patterns
Refactoring                                               Refactoring


                                        Code          Test
 Copyright © 2009-2013 by Fred George                                   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 hours



Copyright © 2009-2013 by Fred George                  17
Path to Proficiency

                                                                   en ce
                                                          xp eri
                                                         E

                                               ng
                                          i ni
                                       Tra
                                                    ng
                                                ki
                                              or
                                             W




Copyright © 2009-2013 by Fred George                                       18
Product Requests (London)
        Payback:                                28 Stories
        11 Days                                 12 Days
                                        Class
                  23 Stories           5 Days
                  15 Days




Copyright © 2009-2013 by Fred George                         19
OO Boot Camp
“...teaches you to think like a programmer...”




Copyright © 2009-2013 by Fred George             20
“15 minutes after the class
started, I realized I knew
nothing about
programming.”
Lead Designer, Consulting Firm, commenting to
CIO of a large US manufacturer.



Copyright © 2009-2013 by Fred George            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 Solutions


Copyright © 2009-2013 by Fred George                  22
Master


                        Journeyman


                              Apprentice



Copyright © 2009-2013 by Fred George       23
Master
                                        2Y
                                          ear
                                             s-
                                                  Ne
                                                     ver
                                                           Journeyman



                                                  on ths
                                           2-   6M




Apprentice
 Copyright © 2009-2013 by Fred George                                   24
Part 1: Principles
     Encapsulation                            Collaborating Objects
     Object Relationships                     Interfaces
           Inheritance                        Coding Patterns
           Delegation                         Refactoring
     Polymorphism                             Recursion


                                       40-50 Hours
Copyright © 2009-2013 by Fred George                                  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 Hours
Copyright © 2009-2013 by Fred George                               26
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-2013 by Fred George                27
Suspicious Methods


     getters - Violates Encapsulation

     setters - Worse: violates Encapsulation and Object
     integrity
     Methods with 2 or more levels of indenting




Copyright © 2009-2013 by Fred George                      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 variables




Copyright © 2009-2013 by Fred George               29
Results
                         Dropouts                 20%

                     Journeymen                   20%
                                       Architecture, Design, Multiple
                        Predictors              Languages

                         Retention     Must be used within a month


                           Support     Journeymen, Masters


Copyright © 2009-2013 by Fred George                                    30
Maintenance
                                 Old       New

                               Java        Java

                        Oracle DB       Oracle DB

                            Web UI       Web UI

                       72 Classes      1400 Classes


Copyright © 2009-2013 by Fred George                  31
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 classes so far


Copyright © 2009-2013 by Fred George   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 November


Copyright © 2009-2013 by Fred George                  34
Currently...
     5 Tables running
     Each Table has it’s own business problem
     Only developers
     Speaker designated
     Processes are varying, particularly metrics

Copyright © 2009-2013 by Fred George               35
Questions?



Copyright © 2009-2013 by Fred George   36

More Related Content

PDF
Agile is the New Black
PDF
MicroService Architecture
PDF
Technical debt
PPTX
Mix challenge video(slide_show)
PDF
Mary Poppendieck: Agile under contract
PDF
Project Controls Expo, 13th Nov 2013 - "Challenges in Project Controls" By Ji...
KEY
Is a Zero Email Inbox Possible? GTD, OmniFocus and Productivity in the Digita...
PDF
Agile for project managers - a sailing analogy-UPDATE
Agile is the New Black
MicroService Architecture
Technical debt
Mix challenge video(slide_show)
Mary Poppendieck: Agile under contract
Project Controls Expo, 13th Nov 2013 - "Challenges in Project Controls" By Ji...
Is a Zero Email Inbox Possible? GTD, OmniFocus and Productivity in the Digita...
Agile for project managers - a sailing analogy-UPDATE

Viewers also liked (8)

PPTX
Programmer Anarchy and Managerless Processes
PPTX
Go Faster - Remove Inhibitors to Rapid Innovation
PDF
It's a Bird, It's a Plan, No It's Superman
KEY
Programmer Anarchy (English)
KEY
Programmer Anarchy (Chinese Mandarin)
PDF
Secret Assumption of Agile (Chinese)
PDF
It's A Bird, It's a Plane, ... (in Chinese)
PPTX
A People's History of Microservices
Programmer Anarchy and Managerless Processes
Go Faster - Remove Inhibitors to Rapid Innovation
It's a Bird, It's a Plan, No It's Superman
Programmer Anarchy (English)
Programmer Anarchy (Chinese Mandarin)
Secret Assumption of Agile (Chinese)
It's A Bird, It's a Plane, ... (in Chinese)
A People's History of Microservices
Ad

Similar to Secret Assumption of Agile (20)

PDF
Testingonandroid v2-091203161835-phpapp02
PDF
Testingonandroid v2-091203161835-phpapp02
PDF
Testing on Android
PDF
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
PDF
Current Testing Challenges Ireland
PDF
Janet Gregory presents Current Testing Challenges with SoftTest Ireland
PDF
What Is Visualization?
PDF
Three key concepts for java batch
ODP
The xsp starter kit
PDF
Five Steps to Kanban
PDF
Hacking lab
PDF
X Means Y
PDF
Testing: Chances and Challenges in an agile World
PPT
Design for Interaction
PDF
Agile Project Management - coClarity
PDF
Jdojo@Gbg Introduction
PPTX
SOLID Principles part 1
PDF
Intro To Starling Framework for ActionScript 3.0
PDF
Pivotal agile development_the_software-defined_enterprise
 
PDF
Modular architecture today
Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02
Testing on Android
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Current Testing Challenges Ireland
Janet Gregory presents Current Testing Challenges with SoftTest Ireland
What Is Visualization?
Three key concepts for java batch
The xsp starter kit
Five Steps to Kanban
Hacking lab
X Means Y
Testing: Chances and Challenges in an agile World
Design for Interaction
Agile Project Management - coClarity
Jdojo@Gbg Introduction
SOLID Principles part 1
Intro To Starling Framework for ActionScript 3.0
Pivotal agile development_the_software-defined_enterprise
 
Modular architecture today
Ad

Recently uploaded (20)

PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
1. Introduction to Computer Programming.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation theory and applications.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Tartificialntelligence_presentation.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Unlocking AI with Model Context Protocol (MCP)
Accuracy of neural networks in brain wave diagnosis of schizophrenia
gpt5_lecture_notes_comprehensive_20250812015547.pdf
cuic standard and advanced reporting.pdf
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
1. Introduction to Computer Programming.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Spectral efficient network and resource selection model in 5G networks
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation theory and applications.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Network Security Unit 5.pdf for BCA BBA.
NewMind AI Weekly Chronicles - August'25-Week II
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
A comparative analysis of optical character recognition models for extracting...
Tartificialntelligence_presentation.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Unlocking AI with Model Context Protocol (MCP)

Secret Assumption of Agile

  • 1. The Secret Assumption of Agile Fred George fredgeorge@acm.org @fgeorge52 Copyright © 2009-2013 by Fred George 1
  • 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,000 Copyright © 2009-2013 by Fred George 2
  • 3. How? 1. Code That Can Change 2. Lean Management 3. Processing Power Copyright © 2009-2013 by Fred George 3
  • 4. “Objects are only good for programs that change.” Rick DeNatale, IBM 1988 Copyright © 2009-2013 by Fred George 4
  • 5. Stories Assume Easy Change Copyright © 2009-2013 by Fred George 5
  • 6. Typical Program public void foo( ) { ... How many lines? ... ... ... ... 2.3 lines / method ... 25 lines / class ... ... Smalltalk: } 1.1 lines / method Copyright © 2009-2013 by Fred George 6
  • 7. Replacement Application Old New Java Java Oracle DB Oracle DB Web UI Web UI 72 Classes 1400 Classes Copyright © 2009-2013 by Fred George 7
  • 8. Tasking Cycle Task Integrate Design Ship Code Test Copyright © 2009-2013 by Fred George 8
  • 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 Test Copyright © 2009-2013 by Fred George 9
  • 10. Tasking Cycle Task 15 Minutes Integrate Design 15 Minutes Code Test Copyright © 2009-2013 by Fred George 10
  • 11. Simple Design 1. Works 2. Communicates 3. No duplicate code 4. Least classes and methods Applies to Application and Tests Copyright © 2009-2013 by Fred George 12
  • 12. Refactoring Martin Fowler Copyright © 2009-2013 by Fred George 13
  • 13. Tasking Cycle Task Integrate Design Simple Design Refactoring Code Test Copyright © 2009-2013 by Fred George 14
  • 14. Refactoring to Patterns Joshua Kerievsky Copyright © 2009-2013 by Fred George 15
  • 15. Tasking Cycle Task Integrate Design Introduce Patterns Refactoring Refactoring Code Test Copyright © 2009-2013 by Fred George 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 hours Copyright © 2009-2013 by Fred George 17
  • 17. Path to Proficiency en ce xp eri E ng i ni Tra ng ki or W Copyright © 2009-2013 by Fred George 18
  • 18. Product Requests (London) Payback: 28 Stories 11 Days 12 Days Class 23 Stories 5 Days 15 Days Copyright © 2009-2013 by Fred George 19
  • 19. OO Boot Camp “...teaches you to think like a programmer...” Copyright © 2009-2013 by Fred George 20
  • 20. “15 minutes after the class started, I realized I knew nothing about programming.” Lead Designer, Consulting Firm, commenting to CIO of a large US manufacturer. Copyright © 2009-2013 by Fred George 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 Solutions Copyright © 2009-2013 by Fred George 22
  • 22. Master Journeyman Apprentice Copyright © 2009-2013 by Fred George 23
  • 23. Master 2Y ear s- Ne ver Journeyman on ths 2- 6M Apprentice Copyright © 2009-2013 by Fred George 24
  • 24. Part 1: Principles Encapsulation Collaborating Objects Object Relationships Interfaces Inheritance Coding Patterns Delegation Refactoring Polymorphism Recursion 40-50 Hours Copyright © 2009-2013 by Fred George 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 Hours Copyright © 2009-2013 by Fred George 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 these Copyright © 2009-2013 by Fred George 27
  • 27. Suspicious Methods getters - Violates Encapsulation setters - Worse: violates Encapsulation and Object integrity Methods with 2 or more levels of indenting Copyright © 2009-2013 by Fred George 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 variables Copyright © 2009-2013 by Fred George 29
  • 29. Results Dropouts 20% Journeymen 20% Architecture, Design, Multiple Predictors Languages Retention Must be used within a month Support Journeymen, Masters Copyright © 2009-2013 by Fred George 30
  • 30. Maintenance Old New Java Java Oracle DB Oracle DB Web UI Web UI 72 Classes 1400 Classes Copyright © 2009-2013 by Fred George 31
  • 31. Transition Plan No Documentation No Training No Time No Problem! Copyright © 2009-2013 by Fred George 32
  • 32. Training -- OO Boot Camp First class 1 October 9-12 students / class Include project managers and QA 4 classes so far Copyright © 2009-2013 by Fred George 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 November Copyright © 2009-2013 by Fred George 34
  • 34. Currently... 5 Tables running Each Table has it’s own business problem Only developers Speaker designated Processes are varying, particularly metrics Copyright © 2009-2013 by Fred George 35