SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Andere mochten auch

Programmer Anarchy and Managerless Processes
Programmer Anarchy and Managerless ProcessesProgrammer Anarchy and Managerless Processes
Programmer Anarchy and Managerless ProcessesFred George
 
Go Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationGo Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationFred George
 
It's a Bird, It's a Plan, No It's Superman
It's a Bird, It's a Plan, No It's SupermanIt's a Bird, It's a Plan, No It's Superman
It's a Bird, It's a Plan, No It's SupermanFred George
 
Programmer Anarchy (English)
Programmer Anarchy (English)Programmer Anarchy (English)
Programmer Anarchy (English)Fred George
 
Programmer Anarchy (Chinese Mandarin)
Programmer Anarchy (Chinese Mandarin)Programmer Anarchy (Chinese Mandarin)
Programmer Anarchy (Chinese Mandarin)Fred George
 
Secret Assumption of Agile (Chinese)
Secret Assumption of Agile (Chinese)Secret Assumption of Agile (Chinese)
Secret Assumption of Agile (Chinese)Fred George
 
It's A Bird, It's a Plane, ... (in Chinese)
It's A Bird, It's a Plane, ... (in Chinese)It's A Bird, It's a Plane, ... (in Chinese)
It's A Bird, It's a Plane, ... (in Chinese)Fred George
 
A People's History of Microservices
A People's History of MicroservicesA People's History of Microservices
A People's History of MicroservicesCamille Fournier
 

Andere mochten auch (8)

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

Ähnlich wie Secret Assumption of Agile

Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Gustavo Fuentes Zurita
 
Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Gustavo Fuentes Zurita
 
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)siouxhotornot
 
Janet Gregory presents Current Testing Challenges with SoftTest Ireland
Janet Gregory presents Current Testing Challenges with SoftTest IrelandJanet Gregory presents Current Testing Challenges with SoftTest Ireland
Janet Gregory presents Current Testing Challenges with SoftTest IrelandDavid O'Dowd
 
Current Testing Challenges Ireland
Current Testing Challenges IrelandCurrent Testing Challenges Ireland
Current Testing Challenges IrelandDavid O'Dowd
 
What Is Visualization?
What Is Visualization?What Is Visualization?
What Is Visualization?OneSpring LLC
 
Three key concepts for java batch
Three key concepts for java batchThree key concepts for java batch
Three key concepts for java batchtimfanelli
 
Five Steps to Kanban
Five Steps to KanbanFive Steps to Kanban
Five Steps to KanbanSkills Matter
 
Testing: Chances and Challenges in an agile World
Testing: Chances and Challenges in an agile WorldTesting: Chances and Challenges in an agile World
Testing: Chances and Challenges in an agile Worldjbandi
 
Agile Project Management - coClarity
Agile Project Management - coClarityAgile Project Management - coClarity
Agile Project Management - coClarityGerard Hartnett
 
Jdojo@Gbg Introduction
Jdojo@Gbg IntroductionJdojo@Gbg Introduction
Jdojo@Gbg IntroductionFredrik Wendt
 
Pivotal agile development_the_software-defined_enterprise
Pivotal agile development_the_software-defined_enterprisePivotal agile development_the_software-defined_enterprise
Pivotal agile development_the_software-defined_enterpriseEMC
 
Modular architecture today
Modular architecture todayModular architecture today
Modular architecture todaypragkirk
 

Ähnlich wie Secret Assumption of Agile (20)

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

Kürzlich hochgeladen

React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 

Kürzlich hochgeladen (20)

React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 

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