SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
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

Mais conteúdo relacionado

Destaque

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
 

Destaque (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
 

Semelhante a Secret Assumption of Agile

Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02
Gustavo Fuentes Zurita
 
Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02Testingonandroid v2-091203161835-phpapp02
Testingonandroid v2-091203161835-phpapp02
Gustavo Fuentes Zurita
 
Current Testing Challenges Ireland
Current Testing Challenges IrelandCurrent Testing Challenges Ireland
Current Testing Challenges Ireland
David O'Dowd
 
Design for Interaction
Design for InteractionDesign for Interaction
Design for Interaction
Daniel Tunkelang
 
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
EMC
 

Semelhante a 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)
 
Current Testing Challenges Ireland
Current Testing Challenges IrelandCurrent Testing Challenges Ireland
Current Testing Challenges Ireland
 
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
 
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
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

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