SlideShare uma empresa Scribd logo
1 de 121
Baixar para ler offline
Copyright © 2009 by Fred George   1

Tuesday, September 15, 2009
The Secret
                                           Assumption
                                               of Agile



         Fred George
         TrafficBroker, Ltd., London, United Kingdom



         Copyright © 2009 by Fred George                  1

Tuesday, September 15, 2009
Agile is Productive




         Copyright © 2009 by Fred George                         2

Tuesday, September 15, 2009
Agile is Productive



                                           Traditional


                              12             Months


                     $28                       per Hour


                               $2,000,000




         Copyright © 2009 by Fred George                                        2

Tuesday, September 15, 2009
Agile is Productive



                                           Traditional                        Agile

                                                                                  3
                              12             Months             8         .............
                                                                                  5
                                                                                  8

                     $28                                            $87
                                                          6x
                                               per Hour


                               $2,000,000                        $1,100,000



         Copyright © 2009 by Fred George                                                  2

Tuesday, September 15, 2009
How?




         Copyright © 2009 by Fred George          3

Tuesday, September 15, 2009
How?




          1.                               Code That Can Change

          2.                                    Lean Management


          3.                                    Processing Power




         Copyright © 2009 by Fred George                           3

Tuesday, September 15, 2009
“Objects are only good for
                                             programs that change.”

         “
                                                    ”
         Rick DeNatale, IBM
         1988




         Copyright © 2009 by Fred George                                4

Tuesday, September 15, 2009
Stories Assume Easy Change




         Copyright © 2009 by Fred George                                5

Tuesday, September 15, 2009
Stories Assume Easy Change



             Story                    Story   Story    Story



             Story                    Story   Story    Story




         Copyright © 2009 by Fred George                                           5

Tuesday, September 15, 2009
Stories Assume Easy Change



             Story                            Story    Story



             Story                    Story   Story    Story




                                                                          Story




         Copyright © 2009 by Fred George                                           5

Tuesday, September 15, 2009
Stories Assume Easy Change



                                                       Story



             Story                    Story            Story




                                              Story       Story   Story   Story




         Copyright © 2009 by Fred George                                           5

Tuesday, September 15, 2009
Typical Program




         Copyright © 2009 by Fred George                     6

Tuesday, September 15, 2009
Typical Program


                   public void foo( ) {
                     ...
                     ...
                     ...
                     ...
                     ...
                     ...
                     ...
                     ...
                   }
         Copyright © 2009 by Fred George                     6

Tuesday, September 15, 2009
Typical Program


                   public void foo( ) {          How many lines?
                     ...
                     ...
                     ...
                     ...
                     ...
                     ...
                     ...
                     ...
                   }
         Copyright © 2009 by Fred George                           6

Tuesday, September 15, 2009
Typical Program


                   public void foo( ) {          How many lines?
                     ...
                     ...
                     ...
                     ...
                     ...                       2.3
                     ...
                     ...
                     ...
                   }
         Copyright © 2009 by Fred George                           6

Tuesday, September 15, 2009
Typical Program


                   public void foo( ) {          How many lines?
                     ...
                     ...
                     ...
                     ...
                     ...                       2.3
                     ...                     25
                     ...
                     ...
                   }
         Copyright © 2009 by Fred George                           6

Tuesday, September 15, 2009
Typical Program


                   public void foo( ) {               How many lines?
                     ...
                     ...
                     ...
                     ...
                     ...                            2.3
                     ...                          25
                     ...
                     ...                   Smalltalk:
                   }                                 1.1
         Copyright © 2009 by Fred George                                6

Tuesday, September 15, 2009
Replacement Application




         Copyright © 2009 by Fred George                             7

Tuesday, September 15, 2009
Replacement Application




         Copyright © 2009 by Fred George                             7

Tuesday, September 15, 2009
Replacement Application
                                              Old


                                           Java

                                 Oracle DB

                                     Web UI




         Copyright © 2009 by Fred George                                      7

Tuesday, September 15, 2009
Replacement Application
                                              Old                  New


                                           Java                Java

                                 Oracle DB                   Oracle DB

                                     Web UI                   Web UI




         Copyright © 2009 by Fred George                                      7

Tuesday, September 15, 2009
Replacement Application
                                              Old                  New


                                           Java                Java

                                 Oracle DB                   Oracle DB

                                     Web UI                   Web UI

                                72 Classes


         Copyright © 2009 by Fred George                                      7

Tuesday, September 15, 2009
Replacement Application
                                              Old                  New


                                           Java                Java

                                 Oracle DB                   Oracle DB

                                     Web UI                   Web UI

                                72 Classes                 1400 Classes


         Copyright © 2009 by Fred George                                      7

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   8

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   8

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   8

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   8

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   8

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   8

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   8

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   8

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   8

Tuesday, September 15, 2009
Task Cycle Case Study




         Copyright © 2009 by Fred George                           9

Tuesday, September 15, 2009
Task Cycle Case Study




                                               1,000,000   J2EE
                                               50
                                               8000




         Copyright © 2009 by Fred George                           9

Tuesday, September 15, 2009
Task Cycle Case Study




                                               1,000,000   J2EE
                                               50
                                               8000




         Copyright © 2009 by Fred George                           9

Tuesday, September 15, 2009
Task Cycle Case Study




                                               1,000,000   J2EE

                          2-4                  50
                                               8000




         Copyright © 2009 by Fred George                           9

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   10

Tuesday, September 15, 2009
Tasking Cycle




                                           15


         Copyright © 2009 by Fred George                        10

Tuesday, September 15, 2009
Tasking Cycle


                                                    15




                                           15


         Copyright © 2009 by Fred George                        10

Tuesday, September 15, 2009
Tasking Cycle


                                                    15




                                           15


         Copyright © 2009 by Fred George                        10

Tuesday, September 15, 2009
Copyright © 2009 by Fred George   11

Tuesday, September 15, 2009
Copyright © 2009 by Fred George   12

Tuesday, September 15, 2009
Simple Design




         Copyright © 2009 by Fred George                   12

Tuesday, September 15, 2009
Simple Design



         1.                                Works




         Copyright © 2009 by Fred George                   12

Tuesday, September 15, 2009
Simple Design



         1.                                Works


         2.                           Communicates




         Copyright © 2009 by Fred George                   12

Tuesday, September 15, 2009
Simple Design



         1.                                Works


         2.                           Communicates


         3.                                   No duplicate code




         Copyright © 2009 by Fred George                          12

Tuesday, September 15, 2009
Simple Design



         1.                                Works


         2.                           Communicates


         3.                                   No duplicate code


         4.                                            Least classes and methods




         Copyright © 2009 by Fred George                                           12

Tuesday, September 15, 2009
Simple Design



         1.                                Works


         2.                           Communicates


         3.                                   No duplicate code


         4.                                            Least classes and methods


                                                     Applies to Application and Tests




         Copyright © 2009 by Fred George                                                12

Tuesday, September 15, 2009
Refactoring
         Martin Fowler




         Copyright © 2009 by Fred George   13

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   14

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   14

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   14

Tuesday, September 15, 2009
Refactoring
         to Patterns
         Joshua Kerievsky




         Copyright © 2009 by Fred George   15

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   16

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   16

Tuesday, September 15, 2009
Tasking Cycle




         Copyright © 2009 by Fred George                   16

Tuesday, September 15, 2009
Case Study: Complexity




         Copyright © 2009 by Fred George                            17

Tuesday, September 15, 2009
Case Study: Complexity



                                           Cyclomatic Complexity




         Copyright © 2009 by Fred George                                          17

Tuesday, September 15, 2009
Case Study: Complexity



                                           Cyclomatic Complexity


              100                                  100 is Bad




         Copyright © 2009 by Fred George                                          17

Tuesday, September 15, 2009
Case Study: Complexity



                                           Cyclomatic Complexity


              100                                  100 is Bad


              “...                             5          ”-
              “...never seen less than 5” - Senior Architect




         Copyright © 2009 by Fred George                                          17

Tuesday, September 15, 2009
Case Study: Complexity



                                           Cyclomatic Complexity


              100                                    100 is Bad


              “...                             5            ”-
              “...never seen less than 5” - Senior Architect

                                       : 1.8       Cyclomatic Complexity




         Copyright © 2009 by Fred George                                            17

Tuesday, September 15, 2009
Case Study: Complexity



                                           Cyclomatic Complexity


              100                                      100 is Bad


              “...                               5            ”-
              “...never seen less than 5” - Senior Architect

                                       : 1.8         Cyclomatic Complexity


              9                            : 1       bug


         Copyright © 2009 by Fred George                                              17

Tuesday, September 15, 2009
Path to Proficiency




         Copyright © 2009 by Fred George                        18

Tuesday, September 15, 2009
Path to Proficiency




         Copyright © 2009 by Fred George                        18

Tuesday, September 15, 2009
Path to Proficiency




         Copyright © 2009 by Fred George                        18

Tuesday, September 15, 2009
Path to Proficiency




         Copyright © 2009 by Fred George                        18

Tuesday, September 15, 2009
Path to Proficiency




         Copyright © 2009 by Fred George                        18

Tuesday, September 15, 2009
Path to Proficiency




         Copyright © 2009 by Fred George                        18

Tuesday, September 15, 2009
Copyright © 2009 by Fred George   19

Tuesday, September 15, 2009
Copyright © 2009 by Fred George   19

Tuesday, September 15, 2009
28
                                               12

                              23           5
                              15




         Copyright © 2009 by Fred George            19

Tuesday, September 15, 2009
:       28
                          (Payback)
                          11                       12

                              23               5
                              15




         Copyright © 2009 by Fred George                19

Tuesday, September 15, 2009
OO Boot Camp
         OO




         Copyright © 2009 by Fred George                  20

Tuesday, September 15, 2009
OO Boot Camp
         OO
         “...                                                        ...”

                                           “...teaches you to think like a programmer...”




         Copyright © 2009 by Fred George                                                    20

Tuesday, September 15, 2009
Copyright © 2009 by Fred George   21

Tuesday, September 15, 2009
CIO

                  Lead Designer, Consulting Firm, commenting to CIO of a large US manufacturer.

         Copyright © 2009 by Fred George                                                          21

Tuesday, September 15, 2009
“15 minutes after the class started, I realized I
                                                    knew nothing about programming.”


         “                            15
                                                                           ”

                       CIO

                  Lead Designer, Consulting Firm, commenting to CIO of a large US manufacturer.

         Copyright © 2009 by Fred George                                                          21

Tuesday, September 15, 2009
OO Boot Camp
         OO




         Copyright © 2009 by Fred George                  22

Tuesday, September 15, 2009
OO Boot Camp
         OO
                                   1995        History: Since 1995

              1000                         3        Over 1000 Students; 3 countries




         Copyright © 2009 by Fred George                                              22

Tuesday, September 15, 2009
OO Boot Camp
         OO
                                   1995        History: Since 1995

              1000                         3        Over 1000 Students; 3 countries

              Java, VB, C#, Ruby




         Copyright © 2009 by Fred George                                              22

Tuesday, September 15, 2009
OO Boot Camp
         OO
                                   1995          History: Since 1995

              1000                         3          Over 1000 Students; 3 countries

              Java, VB, C#, Ruby

              Socratic Method (Question - Answer - Question)




         Copyright © 2009 by Fred George                                                22

Tuesday, September 15, 2009
OO Boot Camp
         OO
                                   1995                History: Since 1995

              1000                           3                 Over 1000 Students; 3 countries

              Java, VB, C#, Ruby

              Socratic Method (Question - Answer - Question)

                         60%                              60%+ Lab

                                            Pair Programming

                                           15                         Test First (15 Minute Cycle)

                                                      Students Present Solutions



         Copyright © 2009 by Fred George                                                             22

Tuesday, September 15, 2009
Copyright © 2009 by Fred George   23

Tuesday, September 15, 2009
Copyright © 2009 by Fred George   23

Tuesday, September 15, 2009
Copyright © 2009 by Fred George   24

Tuesday, September 15, 2009
2-6




         Copyright © 2009 by Fred George         24

Tuesday, September 15, 2009
2




                                               2-6




         Copyright © 2009 by Fred George             24

Tuesday, September 15, 2009
Part 1: Principles




         Copyright © 2009 by Fred George                        25

Tuesday, September 15, 2009
Part 1: Principles


                               Encapsulation                               Collaborating Objects


                                           Object Relationships      Interfaces


                                       Inheritance                          Coding Patterns


                                       Delegation                    Refactoring


                                 Polymorphism                        Recursion




         Copyright © 2009 by Fred George                                                           25

Tuesday, September 15, 2009
Part 1: Principles


                               Encapsulation                               Collaborating Objects


                                           Object Relationships      Interfaces


                                       Inheritance                          Coding Patterns


                                       Delegation                    Refactoring


                                 Polymorphism                        Recursion



                                                      40-50
         Copyright © 2009 by Fred George                                                           25

Tuesday, September 15, 2009
Part 2: Design Patterns




         Copyright © 2009 by Fred George                             26

Tuesday, September 15, 2009
Part 2: Design Patterns


                                           Rationale                             Composite Pattern


                              vs.                Patterns vs.                         Visitor Pattern
              Principles
                                                                                      Builder Pattern
                                               Observer Pattern

                                                                           Concerts
                                               Iterator Pattern

                                                                                Survey of Patterns
                                               Mediator Pattern




         Copyright © 2009 by Fred George                                                                26

Tuesday, September 15, 2009
Part 2: Design Patterns


                                           Rationale                             Composite Pattern


                              vs.                Patterns vs.                         Visitor Pattern
              Principles
                                                                                      Builder Pattern
                                               Observer Pattern

                                                                           Concerts
                                               Iterator Pattern

                                                                                Survey of Patterns
                                               Mediator Pattern



                                                       40-50
         Copyright © 2009 by Fred George                                                                26

Tuesday, September 15, 2009
Suspicious Statements




         Copyright © 2009 by Fred George                           27

Tuesday, September 15, 2009
Suspicious Statements



              case -                       Almost always wrong




         Copyright © 2009 by Fred George                               27

Tuesday, September 15, 2009
Suspicious Statements



              case -                            Almost always wrong

              else -                       Mostly wrong




         Copyright © 2009 by Fred George                                     27

Tuesday, September 15, 2009
Suspicious Statements



              case -                                    Almost always wrong

              else -                           Mostly wrong

              if -                         Suspicious

                                                                         Unless guard clause at start of
                    method




         Copyright © 2009 by Fred George                                                                   27

Tuesday, September 15, 2009
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 by Fred George                                                                     27

Tuesday, September 15, 2009
Suspicious Methods




         Copyright © 2009 by Fred George                        28

Tuesday, September 15, 2009
Suspicious Methods




              getters -                    Violates Encapsulation




         Copyright © 2009 by Fred George                                  28

Tuesday, September 15, 2009
Suspicious Methods




              getters -                       Violates Encapsulation


              setters -
              Worse: violates Encapsulation and Object integrity




         Copyright © 2009 by Fred George                                     28

Tuesday, September 15, 2009
Suspicious Methods




              getters -                       Violates Encapsulation


              setters -
              Worse: violates Encapsulation and Object integrity

                           2                             Methods with 2 or more levels of indenting




         Copyright © 2009 by Fred George                                                              28

Tuesday, September 15, 2009
Suspicious Classes




         Copyright © 2009 by Fred George                        29

Tuesday, September 15, 2009
Suspicious Classes




              Special naming conventions for Interfaces




         Copyright © 2009 by Fred George                                  29

Tuesday, September 15, 2009
Suspicious Classes




              Special naming conventions for Interfaces



              Interface with a single implementing Class




         Copyright © 2009 by Fred George                                  29

Tuesday, September 15, 2009
Suspicious Classes




              Special naming conventions for Interfaces



              Interface with a single implementing Class

                                       2
              Classes with more than 2 instance variables




         Copyright © 2009 by Fred George                                         29

Tuesday, September 15, 2009
Results




         Copyright © 2009 by Fred George             30

Tuesday, September 15, 2009
Results



                                            Dropouts               20%

                                           Journeymen              20%

                                            Predictors


                                           Retention
                                                         Must be used within a month


                                           Support
                                                            Journeymen, Masters



         Copyright © 2009 by Fred George                                               30

Tuesday, September 15, 2009
Results



                                            Dropouts               20%

                                           Journeymen              20%

                                            Predictors


                                           Retention
                                                         Must be used within a month


                                           Support
                                                            Journeymen, Masters



         Copyright © 2009 by Fred George                                               30

Tuesday, September 15, 2009
Results



                                            Dropouts               20%

                                           Journeymen              20%

                                            Predictors


                                           Retention
                                                         Must be used within a month


                                           Support
                                                            Journeymen, Masters



         Copyright © 2009 by Fred George                                               30

Tuesday, September 15, 2009
Results



                                            Dropouts               20%

                                           Journeymen              20%

                                            Predictors


                                           Retention
                                                         Must be used within a month


                                           Support
                                                            Journeymen, Masters



         Copyright © 2009 by Fred George                                               30

Tuesday, September 15, 2009
Results



                                            Dropouts               20%

                                           Journeymen              20%

                                            Predictors


                                           Retention
                                                         Must be used within a month


                                           Support
                                                            Journeymen, Masters



         Copyright © 2009 by Fred George                                               30

Tuesday, September 15, 2009
Maintenance




         Copyright © 2009 by Fred George                 31

Tuesday, September 15, 2009
Maintenance
                                              Old          New


                                           Java         Java

                                 Oracle DB           Oracle DB

                                     Web UI           Web UI

                                72 Classes          1400 Classes


         Copyright © 2009 by Fred George                             31

Tuesday, September 15, 2009
Transition Plan




         Copyright © 2009 by Fred George                     32

Tuesday, September 15, 2009
Transition Plan




                                           No Documentation


                                           No Training


                                           No Time




         Copyright © 2009 by Fred George                                        32

Tuesday, September 15, 2009
Transition Plan




                                           No Documentation


                                           No Training


                                           No Time


                                                 No Problem!




         Copyright © 2009 by Fred George                                         32

Tuesday, September 15, 2009
Team with Pair
                                            Programming




         Copyright © 2009 by Fred George                    33

Tuesday, September 15, 2009
Copyright © 2009 by Fred George   34

Tuesday, September 15, 2009
Copyright © 2009 by Fred George   34

Tuesday, September 15, 2009

Mais conteúdo relacionado

Último

+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@
 
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
 
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
 

Último (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
+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...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
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)
 
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
 
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
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
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
 
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
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 

Destaque

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Secret Assumption of Agile (Chinese)

  • 1. Copyright © 2009 by Fred George 1 Tuesday, September 15, 2009
  • 2. The Secret Assumption of Agile Fred George TrafficBroker, Ltd., London, United Kingdom Copyright © 2009 by Fred George 1 Tuesday, September 15, 2009
  • 3. Agile is Productive Copyright © 2009 by Fred George 2 Tuesday, September 15, 2009
  • 4. Agile is Productive Traditional 12 Months $28 per Hour $2,000,000 Copyright © 2009 by Fred George 2 Tuesday, September 15, 2009
  • 5. Agile is Productive Traditional Agile 3 12 Months 8 ............. 5 8 $28 $87 6x per Hour $2,000,000 $1,100,000 Copyright © 2009 by Fred George 2 Tuesday, September 15, 2009
  • 6. How? Copyright © 2009 by Fred George 3 Tuesday, September 15, 2009
  • 7. How? 1. Code That Can Change 2. Lean Management 3. Processing Power Copyright © 2009 by Fred George 3 Tuesday, September 15, 2009
  • 8. “Objects are only good for programs that change.” “ ” Rick DeNatale, IBM 1988 Copyright © 2009 by Fred George 4 Tuesday, September 15, 2009
  • 9. Stories Assume Easy Change Copyright © 2009 by Fred George 5 Tuesday, September 15, 2009
  • 10. Stories Assume Easy Change Story Story Story Story Story Story Story Story Copyright © 2009 by Fred George 5 Tuesday, September 15, 2009
  • 11. Stories Assume Easy Change Story Story Story Story Story Story Story Story Copyright © 2009 by Fred George 5 Tuesday, September 15, 2009
  • 12. Stories Assume Easy Change Story Story Story Story Story Story Story Story Copyright © 2009 by Fred George 5 Tuesday, September 15, 2009
  • 13. Typical Program Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  • 14. Typical Program public void foo( ) { ... ... ... ... ... ... ... ... } Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  • 15. Typical Program public void foo( ) { How many lines? ... ... ... ... ... ... ... ... } Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  • 16. Typical Program public void foo( ) { How many lines? ... ... ... ... ... 2.3 ... ... ... } Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  • 17. Typical Program public void foo( ) { How many lines? ... ... ... ... ... 2.3 ... 25 ... ... } Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  • 18. Typical Program public void foo( ) { How many lines? ... ... ... ... ... 2.3 ... 25 ... ... Smalltalk: } 1.1 Copyright © 2009 by Fred George 6 Tuesday, September 15, 2009
  • 19. Replacement Application Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  • 20. Replacement Application Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  • 21. Replacement Application Old Java Oracle DB Web UI Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  • 22. Replacement Application Old New Java Java Oracle DB Oracle DB Web UI Web UI Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  • 23. Replacement Application Old New Java Java Oracle DB Oracle DB Web UI Web UI 72 Classes Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  • 24. Replacement Application Old New Java Java Oracle DB Oracle DB Web UI Web UI 72 Classes 1400 Classes Copyright © 2009 by Fred George 7 Tuesday, September 15, 2009
  • 25. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  • 26. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  • 27. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  • 28. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  • 29. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  • 30. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  • 31. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  • 32. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  • 33. Tasking Cycle Copyright © 2009 by Fred George 8 Tuesday, September 15, 2009
  • 34. Task Cycle Case Study Copyright © 2009 by Fred George 9 Tuesday, September 15, 2009
  • 35. Task Cycle Case Study 1,000,000 J2EE 50 8000 Copyright © 2009 by Fred George 9 Tuesday, September 15, 2009
  • 36. Task Cycle Case Study 1,000,000 J2EE 50 8000 Copyright © 2009 by Fred George 9 Tuesday, September 15, 2009
  • 37. Task Cycle Case Study 1,000,000 J2EE 2-4 50 8000 Copyright © 2009 by Fred George 9 Tuesday, September 15, 2009
  • 38. Tasking Cycle Copyright © 2009 by Fred George 10 Tuesday, September 15, 2009
  • 39. Tasking Cycle 15 Copyright © 2009 by Fred George 10 Tuesday, September 15, 2009
  • 40. Tasking Cycle 15 15 Copyright © 2009 by Fred George 10 Tuesday, September 15, 2009
  • 41. Tasking Cycle 15 15 Copyright © 2009 by Fred George 10 Tuesday, September 15, 2009
  • 42. Copyright © 2009 by Fred George 11 Tuesday, September 15, 2009
  • 43. Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  • 44. Simple Design Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  • 45. Simple Design 1. Works Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  • 46. Simple Design 1. Works 2. Communicates Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  • 47. Simple Design 1. Works 2. Communicates 3. No duplicate code Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  • 48. Simple Design 1. Works 2. Communicates 3. No duplicate code 4. Least classes and methods Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  • 49. Simple Design 1. Works 2. Communicates 3. No duplicate code 4. Least classes and methods Applies to Application and Tests Copyright © 2009 by Fred George 12 Tuesday, September 15, 2009
  • 50. Refactoring Martin Fowler Copyright © 2009 by Fred George 13 Tuesday, September 15, 2009
  • 51. Tasking Cycle Copyright © 2009 by Fred George 14 Tuesday, September 15, 2009
  • 52. Tasking Cycle Copyright © 2009 by Fred George 14 Tuesday, September 15, 2009
  • 53. Tasking Cycle Copyright © 2009 by Fred George 14 Tuesday, September 15, 2009
  • 54. Refactoring to Patterns Joshua Kerievsky Copyright © 2009 by Fred George 15 Tuesday, September 15, 2009
  • 55. Tasking Cycle Copyright © 2009 by Fred George 16 Tuesday, September 15, 2009
  • 56. Tasking Cycle Copyright © 2009 by Fred George 16 Tuesday, September 15, 2009
  • 57. Tasking Cycle Copyright © 2009 by Fred George 16 Tuesday, September 15, 2009
  • 58. Case Study: Complexity Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  • 59. Case Study: Complexity Cyclomatic Complexity Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  • 60. Case Study: Complexity Cyclomatic Complexity 100 100 is Bad Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  • 61. Case Study: Complexity Cyclomatic Complexity 100 100 is Bad “... 5 ”- “...never seen less than 5” - Senior Architect Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  • 62. Case Study: Complexity Cyclomatic Complexity 100 100 is Bad “... 5 ”- “...never seen less than 5” - Senior Architect : 1.8 Cyclomatic Complexity Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  • 63. Case Study: Complexity Cyclomatic Complexity 100 100 is Bad “... 5 ”- “...never seen less than 5” - Senior Architect : 1.8 Cyclomatic Complexity 9 : 1 bug Copyright © 2009 by Fred George 17 Tuesday, September 15, 2009
  • 64. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  • 65. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  • 66. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  • 67. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  • 68. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  • 69. Path to Proficiency Copyright © 2009 by Fred George 18 Tuesday, September 15, 2009
  • 70. Copyright © 2009 by Fred George 19 Tuesday, September 15, 2009
  • 71. Copyright © 2009 by Fred George 19 Tuesday, September 15, 2009
  • 72. 28 12 23 5 15 Copyright © 2009 by Fred George 19 Tuesday, September 15, 2009
  • 73. : 28 (Payback) 11 12 23 5 15 Copyright © 2009 by Fred George 19 Tuesday, September 15, 2009
  • 74. OO Boot Camp OO Copyright © 2009 by Fred George 20 Tuesday, September 15, 2009
  • 75. OO Boot Camp OO “... ...” “...teaches you to think like a programmer...” Copyright © 2009 by Fred George 20 Tuesday, September 15, 2009
  • 76. Copyright © 2009 by Fred George 21 Tuesday, September 15, 2009
  • 77. CIO Lead Designer, Consulting Firm, commenting to CIO of a large US manufacturer. Copyright © 2009 by Fred George 21 Tuesday, September 15, 2009
  • 78. “15 minutes after the class started, I realized I knew nothing about programming.” “ 15 ” CIO Lead Designer, Consulting Firm, commenting to CIO of a large US manufacturer. Copyright © 2009 by Fred George 21 Tuesday, September 15, 2009
  • 79. OO Boot Camp OO Copyright © 2009 by Fred George 22 Tuesday, September 15, 2009
  • 80. OO Boot Camp OO 1995 History: Since 1995 1000 3 Over 1000 Students; 3 countries Copyright © 2009 by Fred George 22 Tuesday, September 15, 2009
  • 81. OO Boot Camp OO 1995 History: Since 1995 1000 3 Over 1000 Students; 3 countries Java, VB, C#, Ruby Copyright © 2009 by Fred George 22 Tuesday, September 15, 2009
  • 82. OO Boot Camp OO 1995 History: Since 1995 1000 3 Over 1000 Students; 3 countries Java, VB, C#, Ruby Socratic Method (Question - Answer - Question) Copyright © 2009 by Fred George 22 Tuesday, September 15, 2009
  • 83. OO Boot Camp OO 1995 History: Since 1995 1000 3 Over 1000 Students; 3 countries Java, VB, C#, Ruby Socratic Method (Question - Answer - Question) 60% 60%+ Lab Pair Programming 15 Test First (15 Minute Cycle) Students Present Solutions Copyright © 2009 by Fred George 22 Tuesday, September 15, 2009
  • 84. Copyright © 2009 by Fred George 23 Tuesday, September 15, 2009
  • 85. Copyright © 2009 by Fred George 23 Tuesday, September 15, 2009
  • 86. Copyright © 2009 by Fred George 24 Tuesday, September 15, 2009
  • 87. 2-6 Copyright © 2009 by Fred George 24 Tuesday, September 15, 2009
  • 88. 2 2-6 Copyright © 2009 by Fred George 24 Tuesday, September 15, 2009
  • 89. Part 1: Principles Copyright © 2009 by Fred George 25 Tuesday, September 15, 2009
  • 90. Part 1: Principles Encapsulation Collaborating Objects Object Relationships Interfaces Inheritance Coding Patterns Delegation Refactoring Polymorphism Recursion Copyright © 2009 by Fred George 25 Tuesday, September 15, 2009
  • 91. Part 1: Principles Encapsulation Collaborating Objects Object Relationships Interfaces Inheritance Coding Patterns Delegation Refactoring Polymorphism Recursion 40-50 Copyright © 2009 by Fred George 25 Tuesday, September 15, 2009
  • 92. Part 2: Design Patterns Copyright © 2009 by Fred George 26 Tuesday, September 15, 2009
  • 93. Part 2: Design Patterns Rationale Composite Pattern vs. Patterns vs. Visitor Pattern Principles Builder Pattern Observer Pattern Concerts Iterator Pattern Survey of Patterns Mediator Pattern Copyright © 2009 by Fred George 26 Tuesday, September 15, 2009
  • 94. Part 2: Design Patterns Rationale Composite Pattern vs. Patterns vs. Visitor Pattern Principles Builder Pattern Observer Pattern Concerts Iterator Pattern Survey of Patterns Mediator Pattern 40-50 Copyright © 2009 by Fred George 26 Tuesday, September 15, 2009
  • 95. Suspicious Statements Copyright © 2009 by Fred George 27 Tuesday, September 15, 2009
  • 96. Suspicious Statements case - Almost always wrong Copyright © 2009 by Fred George 27 Tuesday, September 15, 2009
  • 97. Suspicious Statements case - Almost always wrong else - Mostly wrong Copyright © 2009 by Fred George 27 Tuesday, September 15, 2009
  • 98. Suspicious Statements case - Almost always wrong else - Mostly wrong if - Suspicious Unless guard clause at start of method Copyright © 2009 by Fred George 27 Tuesday, September 15, 2009
  • 99. 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 by Fred George 27 Tuesday, September 15, 2009
  • 100. Suspicious Methods Copyright © 2009 by Fred George 28 Tuesday, September 15, 2009
  • 101. Suspicious Methods getters - Violates Encapsulation Copyright © 2009 by Fred George 28 Tuesday, September 15, 2009
  • 102. Suspicious Methods getters - Violates Encapsulation setters - Worse: violates Encapsulation and Object integrity Copyright © 2009 by Fred George 28 Tuesday, September 15, 2009
  • 103. Suspicious Methods getters - Violates Encapsulation setters - Worse: violates Encapsulation and Object integrity 2 Methods with 2 or more levels of indenting Copyright © 2009 by Fred George 28 Tuesday, September 15, 2009
  • 104. Suspicious Classes Copyright © 2009 by Fred George 29 Tuesday, September 15, 2009
  • 105. Suspicious Classes Special naming conventions for Interfaces Copyright © 2009 by Fred George 29 Tuesday, September 15, 2009
  • 106. Suspicious Classes Special naming conventions for Interfaces Interface with a single implementing Class Copyright © 2009 by Fred George 29 Tuesday, September 15, 2009
  • 107. Suspicious Classes Special naming conventions for Interfaces Interface with a single implementing Class 2 Classes with more than 2 instance variables Copyright © 2009 by Fred George 29 Tuesday, September 15, 2009
  • 108. Results Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  • 109. Results Dropouts 20% Journeymen 20% Predictors Retention Must be used within a month Support Journeymen, Masters Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  • 110. Results Dropouts 20% Journeymen 20% Predictors Retention Must be used within a month Support Journeymen, Masters Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  • 111. Results Dropouts 20% Journeymen 20% Predictors Retention Must be used within a month Support Journeymen, Masters Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  • 112. Results Dropouts 20% Journeymen 20% Predictors Retention Must be used within a month Support Journeymen, Masters Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  • 113. Results Dropouts 20% Journeymen 20% Predictors Retention Must be used within a month Support Journeymen, Masters Copyright © 2009 by Fred George 30 Tuesday, September 15, 2009
  • 114. Maintenance Copyright © 2009 by Fred George 31 Tuesday, September 15, 2009
  • 115. Maintenance Old New Java Java Oracle DB Oracle DB Web UI Web UI 72 Classes 1400 Classes Copyright © 2009 by Fred George 31 Tuesday, September 15, 2009
  • 116. Transition Plan Copyright © 2009 by Fred George 32 Tuesday, September 15, 2009
  • 117. Transition Plan No Documentation No Training No Time Copyright © 2009 by Fred George 32 Tuesday, September 15, 2009
  • 118. Transition Plan No Documentation No Training No Time No Problem! Copyright © 2009 by Fred George 32 Tuesday, September 15, 2009
  • 119. Team with Pair Programming Copyright © 2009 by Fred George 33 Tuesday, September 15, 2009
  • 120. Copyright © 2009 by Fred George 34 Tuesday, September 15, 2009
  • 121. Copyright © 2009 by Fred George 34 Tuesday, September 15, 2009