SlideShare a Scribd company logo
1 of 191
COMPLEXITY
   THEORY                     SOFTWARE
                               DEVELOPMENT
                        and




                                         by Tim Berglund
Monday, June 21, 2010
ACKNOWLEDGMENTS




Monday, June 21, 2010
ACKNOWLEDGMENTS




                        http://bit.ly/unde
                                          rstanding-compl
                                                         exity

Monday, June 21, 2010
ACKNOWLEDGMENTS




                        http://bit.ly/unde
                                          rstanding-compl
                                                         exity

Monday, June 21, 2010
ACKNOWLEDGMENTS




                        http://bit.ly/understanding-complexity
Monday, June 21, 2010
The Santa Fe Institute is a private, not-for-profit,
                                 independent research and education center founded in 1984,
                                       for multidisciplinary collaborations in the physical,
       http://www.santafe.edu                 biological, computational, and social sciences.
                                    Understanding of complex adaptive systems is critical to
                                   addressing key environmental, technological, biological,
                                                          economic, and political challenges.

                                        Renowned scientists and researchers come to Santa Fe
                                  Institute from universities, government agencies, research
                                institutes, and private industry to collaborate in attempts to
                                   uncover the mechanisms that underlie the deep simplicity
                                                               present in our complex world.

Monday, June 21, 2010
Agents
                                         Landscapes
       Emergence


                           Complexity

                                        Criticality
                    Connectedness

Monday, June 21, 2010
Agents

Monday, June 21, 2010
Agents are...




Monday, June 21, 2010
Agents are...



                  Simple


Monday, June 21, 2010
Agents are...



                  Simple
                   Interactive

Monday, June 21, 2010
Agents are...



                  Simple
                   Interactive
                        Adaptive
Monday, June 21, 2010
Why Does

                        TRAFFIC
                                   Jam?
Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in




Monday, June 21, 2010
Stuck
                            in           TRAFFIC

                            all this
                          space! I'm'a
                           speed up.




Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in




Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in

                                    Talking on cell
                                   phone, not paying
                                      attention...




Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in




Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in




                                 I sure am in
                                   a hurry!




Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in




Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in




Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in
                                 maniAc!




Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in




Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in


                                 Oh, my
                                  bad.




Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in




Monday, June 21, 2010
Stuck
                             TRAFFIC
                            in




                                 @%$#%!




Monday, June 21, 2010
Gameof
                        Conway’s
                                   LIFE



Monday, June 21, 2010
Gameof
                                Conway’s
                                                          LIFE
                        1. Any live cell with fewer than two live neighbors
                           dies.

                        2. Any live cell with more than three live neighbors
                           dies.

                        3. Any live cell with two or three live neighbors lives.

                        4. Any dead cell with exactly three live neighbors
                           comes to life.



Monday, June 21, 2010
Gameof
                        Conway’s
                                   LIFE



Monday, June 21, 2010
Gameof
                        Conway’s
                                   LIFE



Monday, June 21, 2010
Gameof
                        Conway’s
                                   LIFE



Monday, June 21, 2010
Monday, June 21, 2010
Monday, June 21, 2010
Agents
                                         Landscapes
       Emergence


                           Complexity

                                        Criticality
                    Connectedness

Monday, June 21, 2010
Landscapes

Monday, June 21, 2010
Monday, June 21, 2010
Think of a


                        Problem
                             as a




           SURFACE
Monday, June 21, 2010
MT. FUJI



Monday, June 21, 2010
Monday, June 21, 2010
Frederick
                             Winslow
                        TAYLOR


Monday, June 21, 2010
RUGGED
                        LANDSCAPES




Monday, June 21, 2010
Dancing
                        LANDSCAPES


Monday, June 21, 2010
Monday, June 21, 2010
What’s the

          Quickest Way               to the



    SUMMIT?
Monday, June 21, 2010
Monday, June 21, 2010
EXPLORATION          vs.



   EXPLOITATION
Monday, June 21, 2010
Agents
                                         Landscapes
       Emergence


                           Complexity

                                        Criticality
                    Connectedness

Monday, June 21, 2010
Criticality

Monday, June 21, 2010
the           Normal
         DISTRIBUTION



Monday, June 21, 2010
the   Central
                                      LIMIT
                                   Theorem




Monday, June 21, 2010
the   Central
                                                  LIMIT
                                               Theorem

                        “The mean value of a repeatedly
                        sampled random variable approaches a
                        normal distribution as the sample size
                        approaches infinity.”




Monday, June 21, 2010
the   Central
                                      LIMIT
                                   Theorem




Monday, June 21, 2010
the   Central
                                         LIMIT
                                      Theorem


             “The world is pretty much a normal place.”




Monday, June 21, 2010
the           Power Law
         DISTRIBUTION



Monday, June 21, 2010
Monday, June 21, 2010
                        Rice   PILES
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Work
                         LOAD


Monday, June 21, 2010
Monday, June 21, 2010
Too much

             Optimization          leads to



   CRITICALITY
Monday, June 21, 2010
Agents
                                         Landscapes
       Emergence


                           Complexity

                                        Criticality
                    Connectedness

Monday, June 21, 2010
Connectedness

Monday, June 21, 2010
Monday, June 21, 2010
A really basic refresher in



                        Graph
        THEORY
Monday, June 21, 2010
A really basic refresher in



                        Graph
        THEORY           Seriously...BASIC.

Monday, June 21, 2010
Monday, June 21, 2010
Degree 5




Monday, June 21, 2010
Degree 4


Monday, June 21, 2010
Degree 1




Monday, June 21, 2010
Monday, June 21, 2010
Monday, June 21, 2010
From here




Monday, June 21, 2010
To here


   From here




Monday, June 21, 2010
To here


   From here



                    Path Length=   3
Monday, June 21, 2010
CLUSTERING



Monday, June 21, 2010
SmallWORLDS




Monday, June 21, 2010
Network
        FUNCTIONALITY

Monday, June 21, 2010
Monday, June 21, 2010
Information
           DIFFUSION
Monday, June 21, 2010
Information
           DIFFUSION    depends on Path Length



Monday, June 21, 2010
Monday, June 21, 2010
Robustness                              to




       FAILURE          depends on degree distribution


Monday, June 21, 2010
Networks   and



   COMPLEXITY
Monday, June 21, 2010
NODES



Monday, June 21, 2010
AGENTS



Monday, June 21, 2010
Monday, June 21, 2010
Schools            of




              FISH
Monday, June 21, 2010
Schools            of




              FISH
                        Flocks   of




                BIRDS
Monday, June 21, 2010
Monday, June 21, 2010
Standing
    OVATIONS
Monday, June 21, 2010
Standing
    OVATIONS
                        Audience
   PARTICIPATION
Monday, June 21, 2010
Agents
                                         Landscapes
       Emergence


                           Complexity

                                        Criticality
                    Connectedness

Monday, June 21, 2010
Emergence

Monday, June 21, 2010
Slime

Monday, June 21, 2010
                        MOLD
Slime Mold Emergence



Monday, June 21, 2010
Monday, June 21, 2010
Conway’s

                        Game
                           of




Monday, June 21, 2010
                          LIFE
Gameof
                                Conway’s
                                                          LIFE
                        1. Any live cell with fewer than two live neighbours
                           dies.

                        2. Any live cell with more than three live neighbours
                           dies.

                        3. Any live cell with two or three live neighbors lives.

                        4. Any dead cell with exactly three live neighbors
                           comes to life.



Monday, June 21, 2010
Monday, June 21, 2010
Monday, June 21, 2010
Monday, June 21, 2010
Surprise!
                        it’s a
                                 COMPUTER


Monday, June 21, 2010
Von Neumann
                    ARCHITECTURE



Monday, June 21, 2010
Monday, June 21, 2010
Monday, June 21, 2010
Monday, June 21, 2010
Ant
                  COLONIES
Monday, June 21, 2010
Monday, June 21, 2010
Proceed with


          CAUTION
Monday, June 21, 2010
Weak
          EMERGENCE
Monday, June 21, 2010
Weak
           EMERGENCE


Monday, June 21, 2010
Weak
           EMERGENCE
                               Can’t predict it




Monday, June 21, 2010
Weak
           EMERGENCE
                                Can’t predict it

                          CAN explain it after the fact




Monday, June 21, 2010
Strong
          EMERGENCE
Monday, June 21, 2010
Strong
          EMERGENCE


Monday, June 21, 2010
Strong
          EMERGENCE
                        Can’t predict it




Monday, June 21, 2010
Strong
          EMERGENCE
                                   Can’t predict it

                        Can’t explain it after the fact either!




Monday, June 21, 2010
Strong
          EMERGENCE
                                   Can’t predict it

                        Can’t explain it after the fact either!

                                 It’s just there, man



Monday, June 21, 2010
Strong
          EMERGENCE
                                   Can’t predict it

                        Can’t explain it after the fact either!

                                 It’s just there, man

                                     Deal with it
Monday, June 21, 2010
I said...


          CAUTION
Monday, June 21, 2010
Software           as a

                        COMPLEX
                         Profession
Monday, June 21, 2010
Lean says:




Monday, June 21, 2010
Lean says:


                Optimize
                        the

                  WHOLE
Monday, June 21, 2010
Lean says:


                Optimize
                                        the

                  WHOLE
           http://agilesoftwaredevelopment.com/blog/pbielicki/optimize-the-whole
Monday, June 21, 2010
Optimize

                        THIS!
Monday, June 21, 2010
“This is the constitutional limitation of

                        man's knowledge and interests, the fact

                        that he cannot know more than a tiny

                         part of the whole of society and that

                         therefore all that can enter into his

                        motives are the immediate effects which

                          his actions will have in the sphere he

                                        knows.”




       —F.A. Hayek
Monday, June 21, 2010
AGENT-
                         BASED
                          DECISION
                            MAKING


Monday, June 21, 2010
Monday, June 21, 2010
Software
      Architecture

Monday, June 21, 2010
What kind of


     Software
      Architecture      would look like an



                          ANT
Monday, June 21, 2010
                           COLONY?
Monday, June 21, 2010
Monday, June 21, 2010
Monday, June 21, 2010
SOAP
                        the way

                            Works




Monday, June 21, 2010
SOAP
                           the way

                               Works
             Desktop App




                                 Web Service
Monday, June 21, 2010
SOAP
                           the way

                               Works
             Desktop App

                                <soap:Envelope>
                                  make me a sandwich
                                </soap:Envelope>




                                 Web Service
Monday, June 21, 2010
SOAP
                           the way

                               Works
             Desktop App




                                 Web Service
Monday, June 21, 2010
the way

                           <soap:Envelope>
                                               SOAP
                                              Works
                             FAIL
                             DELI009283
                           </soap:Envelope>
             Desktop App




                                              Web Service
Monday, June 21, 2010
SOAP
                           the way

                               Works
             Desktop App




                                 Web Service
Monday, June 21, 2010
SOAP
                           the way

                               Works
             Desktop App

                                 <soap:Envelope>
                                   make me a pastrami
                                    on rye?
                                 </soap:Envelope>




                                 Web Service
Monday, June 21, 2010
SOAP
                           the way

                               Works
             Desktop App




                                 Web Service
Monday, June 21, 2010
the way

                           <soap:Envelope>
                                               SOAP
                                              Works
                             FAIL
                             DELI276193
                           </soap:Envelope>
             Desktop App




                                              Web Service
Monday, June 21, 2010
Monday, June 21, 2010
Contracts              are


           Imposed
                        from the


                         TOP
Monday, June 21, 2010
                        DOWN
Monday, June 21, 2010
Hypertext                          as the


     Engine
                                of



      APPLICATION
           STATE
        http://bit.ly/HATEOAS

Monday, June 21, 2010
HATEOAS
                        the way

                            Works




Monday, June 21, 2010
HATEOAS
                                  the way

                                      Works
                        Service




                                            Web Service
Monday, June 21, 2010
HATEOAS
                                  the way

                                      Works
                        Service




                                            GET /sandwich




                                             Web Service
Monday, June 21, 2010
HATEOAS
                                  the way

                                      Works
                        Service




                                            Web Service
Monday, June 21, 2010
the way
                                          HATEOAS
                                         Works
                                  500 ERROR
                                  <link rel=”bread” />
                                  <link rel=”ingredient” />
                        Service




                                                              Web Service
Monday, June 21, 2010
HATEOAS
                                  the way

                                      Works
                        Service




                                            Web Service
Monday, June 21, 2010
HATEOAS
                                  the way

                                      Works
                        Service



                                            POST /sandwich
                                            bread=rye
                                            meat=pastrami




                                            Web Service
Monday, June 21, 2010
HATEOAS
                                  the way

                                      Works
                        Service




                                            Web Service
Monday, June 21, 2010
the way
                                         HATEOAS
                                        Works
                                  200 OK
                                  <link href=”eat” />
                                  <link href=”side” />
                        Service   <sandwich-body>...




                                                         Web Service
Monday, June 21, 2010
Make me a
                                      Add Toppings
                        Sandwich




                                    Checkout
                        Toast Bun

Monday, June 21, 2010
Make me a
                                                    Add Toppings
                        Sandwich      I make
                                    sandwiches.




                                                  Checkout
                        Toast Bun

Monday, June 21, 2010
Make me a
                                                        Add Toppings
                        Sandwich       Give me a
                                    sandwich, and I
                                    can decorate it
                                    with toppings.




                                                      Checkout
                        Toast Bun

Monday, June 21, 2010
Make me a
                                                 Add Toppings
                        Sandwich




                                     I toast
                                    sandwich
                                      buns.




                                               Checkout
                        Toast Bun

Monday, June 21, 2010
Make me a
                                                    Add Toppings
                        Sandwich


                                     I exchange
                                    sandwiches
                                    for Federal
                                       Reserve
                                       Notes.




                                                  Checkout
                        Toast Bun

Monday, June 21, 2010
Make me a
                                      Add Toppings
                        Sandwich




                                    Checkout
                        Toast Bun

Monday, June 21, 2010
Monday, June 21, 2010
Behavior
       Emerges
                        from the


                        EDGES
Monday, June 21, 2010
                          IN
Monday, June 21, 2010
Class
                            Are your


                        Dependencies
   like a


        RICE PILE?
Monday, June 21, 2010
Monday, June 21, 2010
Afferent
          COUPLING
                 A class's afferent coupling is a measure of how many

                 other classes are coupled to it through method calls,

                 field accesses, inheritance, arguments, return

                 types, and exceptions.



Monday, June 21, 2010
remember the       Power Law
                        DISTRIBUTION



Monday, June 21, 2010
grails-web
                        900




                        675




                        450




                        225




                         0

Monday, June 21, 2010
Hibernate 3
                        1500



                        1125



                        750



                        375



                          0


Monday, June 21, 2010
Spring 3 Core
                        300



                        225



                        150



                        75



                         0


Monday, June 21, 2010
having a




Monday, June 21, 2010
having a
                                   Scale-Free
 CODE BASE
Monday, June 21, 2010
Monday, June 21, 2010
toward a
                        COMPLEX
           THEORY           of

    SOFTWARE
                    DEVELOPMENT
Monday, June 21, 2010
Agents
                                         Landscapes
       Emergence


                           Complexity

                                        Criticality
                    Connectedness

Monday, June 21, 2010
Thank You
                                Tim Berglund
                            www.augusttechgroup.com
                        tim.berglund@augusttechgroup.com
                                    @tlberglund




Monday, June 21, 2010
Photo Credits
     Slime Mold Cells
     http://campus.queens.edu/faculty/jannr/Botany/images/slimies/slimeMolds/slimeMold1152.jpg

     Car Top View
     http://www.motiontrends.com/2006/m09/Volvo/C30.shtml

     Ants
     http://www.flickr.com/photos/binux/2495709841

     Traffic Jam
     http://www.flickr.com/photos/lynac/321100379/

     Turning Machine
     http://www.ecs.syr.edu/faculty/fawcett/handouts/webpages/CoreTechnologies.htm

     VonNeumann Machine
     http://en.wikipedia.org/wiki/File:Von_Neumann_architecture.svg

     Ant Colony
     http://www.bioone.org/doi/full/10.1672/1536-2442%282004%29004%5B0001%3ATNAOTF%5D2.0.CO%3B2

     Mt. Fuji
     http://www.flickr.com/photos/mtsn/229410448

     Snowy Mountains
     http://www.flickr.com/photos/huzhead/85362599

     Portrait of Frederick Winslow Taylor
     http://upload.wikimedia.org/wikipedia/commons/9/90/Frederick_Winslow_Taylor_crop.jpg

     Female Velvet Ant (in Work Load Illustration)
     http://www.flickr.com/photos/markop/1036891509

     Frederick Hayek
     http://www.lancs.ac.uk/staff/ecagrs/Hayek%20quotes.htm



Monday, June 21, 2010

More Related Content

More from Tim Berglund

Distributed Systems In One Lesson
Distributed Systems In One LessonDistributed Systems In One Lesson
Distributed Systems In One LessonTim Berglund
 
Decision Making in Software Teams
Decision Making in Software TeamsDecision Making in Software Teams
Decision Making in Software TeamsTim Berglund
 
Then our buildings shape us 10 minutes
Then our buildings shape us   10 minutesThen our buildings shape us   10 minutes
Then our buildings shape us 10 minutesTim Berglund
 
Gaelyk: Lightweight Groovy on the Google App Engine
Gaelyk: Lightweight Groovy on the Google App EngineGaelyk: Lightweight Groovy on the Google App Engine
Gaelyk: Lightweight Groovy on the Google App EngineTim Berglund
 
Slaying The Legacy Dragon: Practical Lessons in Replacing Old Software
Slaying The Legacy Dragon: Practical Lessons in Replacing Old SoftwareSlaying The Legacy Dragon: Practical Lessons in Replacing Old Software
Slaying The Legacy Dragon: Practical Lessons in Replacing Old SoftwareTim Berglund
 
Test First Refresh Second: Test-Driven Development in Grails
Test First Refresh Second: Test-Driven Development in GrailsTest First Refresh Second: Test-Driven Development in Grails
Test First Refresh Second: Test-Driven Development in GrailsTim Berglund
 
Test First, Refresh Second: Web App TDD in Grails
Test First, Refresh Second: Web App TDD in GrailsTest First, Refresh Second: Web App TDD in Grails
Test First, Refresh Second: Web App TDD in GrailsTim Berglund
 
Agile Database Development with Liquibase
Agile Database Development with LiquibaseAgile Database Development with Liquibase
Agile Database Development with LiquibaseTim Berglund
 
Database Refactoring With Liquibase
Database Refactoring With LiquibaseDatabase Refactoring With Liquibase
Database Refactoring With LiquibaseTim Berglund
 

More from Tim Berglund (10)

Distributed Systems In One Lesson
Distributed Systems In One LessonDistributed Systems In One Lesson
Distributed Systems In One Lesson
 
NoSQL Smackdown!
NoSQL Smackdown!NoSQL Smackdown!
NoSQL Smackdown!
 
Decision Making in Software Teams
Decision Making in Software TeamsDecision Making in Software Teams
Decision Making in Software Teams
 
Then our buildings shape us 10 minutes
Then our buildings shape us   10 minutesThen our buildings shape us   10 minutes
Then our buildings shape us 10 minutes
 
Gaelyk: Lightweight Groovy on the Google App Engine
Gaelyk: Lightweight Groovy on the Google App EngineGaelyk: Lightweight Groovy on the Google App Engine
Gaelyk: Lightweight Groovy on the Google App Engine
 
Slaying The Legacy Dragon: Practical Lessons in Replacing Old Software
Slaying The Legacy Dragon: Practical Lessons in Replacing Old SoftwareSlaying The Legacy Dragon: Practical Lessons in Replacing Old Software
Slaying The Legacy Dragon: Practical Lessons in Replacing Old Software
 
Test First Refresh Second: Test-Driven Development in Grails
Test First Refresh Second: Test-Driven Development in GrailsTest First Refresh Second: Test-Driven Development in Grails
Test First Refresh Second: Test-Driven Development in Grails
 
Test First, Refresh Second: Web App TDD in Grails
Test First, Refresh Second: Web App TDD in GrailsTest First, Refresh Second: Web App TDD in Grails
Test First, Refresh Second: Web App TDD in Grails
 
Agile Database Development with Liquibase
Agile Database Development with LiquibaseAgile Database Development with Liquibase
Agile Database Development with Liquibase
 
Database Refactoring With Liquibase
Database Refactoring With LiquibaseDatabase Refactoring With Liquibase
Database Refactoring With Liquibase
 

Recently uploaded

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
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 2024Victor Rentea
 
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 REVIEWERMadyBayot
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
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 AmsterdamUiPathCommunity
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
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 2024Victor Rentea
 
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...Jeffrey Haguewood
 
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...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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, Adobeapidays
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
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 DiscoveryTrustArc
 
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...DianaGray10
 
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 TerraformAndrey Devyatkin
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
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.pptxRemote DBA Services
 

Recently uploaded (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
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
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
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
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
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
 
+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...
 
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...
 
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...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
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...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
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...
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 

Complexity Theory and Software Development

  • 1. COMPLEXITY THEORY SOFTWARE DEVELOPMENT and by Tim Berglund Monday, June 21, 2010
  • 3. ACKNOWLEDGMENTS http://bit.ly/unde rstanding-compl exity Monday, June 21, 2010
  • 4. ACKNOWLEDGMENTS http://bit.ly/unde rstanding-compl exity Monday, June 21, 2010
  • 5. ACKNOWLEDGMENTS http://bit.ly/understanding-complexity Monday, June 21, 2010
  • 6. The Santa Fe Institute is a private, not-for-profit, independent research and education center founded in 1984, for multidisciplinary collaborations in the physical, http://www.santafe.edu biological, computational, and social sciences. Understanding of complex adaptive systems is critical to addressing key environmental, technological, biological, economic, and political challenges. Renowned scientists and researchers come to Santa Fe Institute from universities, government agencies, research institutes, and private industry to collaborate in attempts to uncover the mechanisms that underlie the deep simplicity present in our complex world. Monday, June 21, 2010
  • 7. Agents Landscapes Emergence Complexity Criticality Connectedness Monday, June 21, 2010
  • 10. Agents are... Simple Monday, June 21, 2010
  • 11. Agents are... Simple Interactive Monday, June 21, 2010
  • 12. Agents are... Simple Interactive Adaptive Monday, June 21, 2010
  • 13. Why Does TRAFFIC Jam? Monday, June 21, 2010
  • 14. Stuck TRAFFIC in Monday, June 21, 2010
  • 15. Stuck in TRAFFIC all this space! I'm'a speed up. Monday, June 21, 2010
  • 16. Stuck TRAFFIC in Monday, June 21, 2010
  • 17. Stuck TRAFFIC in Talking on cell phone, not paying attention... Monday, June 21, 2010
  • 18. Stuck TRAFFIC in Monday, June 21, 2010
  • 19. Stuck TRAFFIC in I sure am in a hurry! Monday, June 21, 2010
  • 20. Stuck TRAFFIC in Monday, June 21, 2010
  • 21. Stuck TRAFFIC in Monday, June 21, 2010
  • 22. Stuck TRAFFIC in maniAc! Monday, June 21, 2010
  • 23. Stuck TRAFFIC in Monday, June 21, 2010
  • 24. Stuck TRAFFIC in Oh, my bad. Monday, June 21, 2010
  • 25. Stuck TRAFFIC in Monday, June 21, 2010
  • 26. Stuck TRAFFIC in @%$#%! Monday, June 21, 2010
  • 27. Gameof Conway’s LIFE Monday, June 21, 2010
  • 28. Gameof Conway’s LIFE 1. Any live cell with fewer than two live neighbors dies. 2. Any live cell with more than three live neighbors dies. 3. Any live cell with two or three live neighbors lives. 4. Any dead cell with exactly three live neighbors comes to life. Monday, June 21, 2010
  • 29. Gameof Conway’s LIFE Monday, June 21, 2010
  • 30. Gameof Conway’s LIFE Monday, June 21, 2010
  • 31. Gameof Conway’s LIFE Monday, June 21, 2010
  • 34. Agents Landscapes Emergence Complexity Criticality Connectedness Monday, June 21, 2010
  • 37. Think of a Problem as a SURFACE Monday, June 21, 2010
  • 40. Frederick Winslow TAYLOR Monday, June 21, 2010
  • 41. RUGGED LANDSCAPES Monday, June 21, 2010
  • 42. Dancing LANDSCAPES Monday, June 21, 2010
  • 44. What’s the Quickest Way to the SUMMIT? Monday, June 21, 2010
  • 46. EXPLORATION vs. EXPLOITATION Monday, June 21, 2010
  • 47. Agents Landscapes Emergence Complexity Criticality Connectedness Monday, June 21, 2010
  • 49. the Normal DISTRIBUTION Monday, June 21, 2010
  • 50. the Central LIMIT Theorem Monday, June 21, 2010
  • 51. the Central LIMIT Theorem “The mean value of a repeatedly sampled random variable approaches a normal distribution as the sample size approaches infinity.” Monday, June 21, 2010
  • 52. the Central LIMIT Theorem Monday, June 21, 2010
  • 53. the Central LIMIT Theorem “The world is pretty much a normal place.” Monday, June 21, 2010
  • 54. the Power Law DISTRIBUTION Monday, June 21, 2010
  • 55. Monday, June 21, 2010 Rice PILES
  • 56. Work LOAD Monday, June 21, 2010
  • 57. Work LOAD Monday, June 21, 2010
  • 58. Work LOAD Monday, June 21, 2010
  • 59. Work LOAD Monday, June 21, 2010
  • 60. Work LOAD Monday, June 21, 2010
  • 61. Work LOAD Monday, June 21, 2010
  • 62. Work LOAD Monday, June 21, 2010
  • 63. Work LOAD Monday, June 21, 2010
  • 64. Work LOAD Monday, June 21, 2010
  • 65. Work LOAD Monday, June 21, 2010
  • 66. Work LOAD Monday, June 21, 2010
  • 67. Work LOAD Monday, June 21, 2010
  • 68. Work LOAD Monday, June 21, 2010
  • 69. Work LOAD Monday, June 21, 2010
  • 70. Work LOAD Monday, June 21, 2010
  • 71. Work LOAD Monday, June 21, 2010
  • 73. Too much Optimization leads to CRITICALITY Monday, June 21, 2010
  • 74. Agents Landscapes Emergence Complexity Criticality Connectedness Monday, June 21, 2010
  • 77. A really basic refresher in Graph THEORY Monday, June 21, 2010
  • 78. A really basic refresher in Graph THEORY Seriously...BASIC. Monday, June 21, 2010
  • 86. To here From here Monday, June 21, 2010
  • 87. To here From here Path Length= 3 Monday, June 21, 2010
  • 90. Network FUNCTIONALITY Monday, June 21, 2010
  • 92. Information DIFFUSION Monday, June 21, 2010
  • 93. Information DIFFUSION depends on Path Length Monday, June 21, 2010
  • 95. Robustness to FAILURE depends on degree distribution Monday, June 21, 2010
  • 96. Networks and COMPLEXITY Monday, June 21, 2010
  • 100. Schools of FISH Monday, June 21, 2010
  • 101. Schools of FISH Flocks of BIRDS Monday, June 21, 2010
  • 103. Standing OVATIONS Monday, June 21, 2010
  • 104. Standing OVATIONS Audience PARTICIPATION Monday, June 21, 2010
  • 105. Agents Landscapes Emergence Complexity Criticality Connectedness Monday, June 21, 2010
  • 110. Conway’s Game of Monday, June 21, 2010 LIFE
  • 111. Gameof Conway’s LIFE 1. Any live cell with fewer than two live neighbours dies. 2. Any live cell with more than three live neighbours dies. 3. Any live cell with two or three live neighbors lives. 4. Any dead cell with exactly three live neighbors comes to life. Monday, June 21, 2010
  • 115. Surprise! it’s a COMPUTER Monday, June 21, 2010
  • 116. Von Neumann ARCHITECTURE Monday, June 21, 2010
  • 120. Ant COLONIES Monday, June 21, 2010
  • 122. Proceed with CAUTION Monday, June 21, 2010
  • 123. Weak EMERGENCE Monday, June 21, 2010
  • 124. Weak EMERGENCE Monday, June 21, 2010
  • 125. Weak EMERGENCE Can’t predict it Monday, June 21, 2010
  • 126. Weak EMERGENCE Can’t predict it CAN explain it after the fact Monday, June 21, 2010
  • 127. Strong EMERGENCE Monday, June 21, 2010
  • 128. Strong EMERGENCE Monday, June 21, 2010
  • 129. Strong EMERGENCE Can’t predict it Monday, June 21, 2010
  • 130. Strong EMERGENCE Can’t predict it Can’t explain it after the fact either! Monday, June 21, 2010
  • 131. Strong EMERGENCE Can’t predict it Can’t explain it after the fact either! It’s just there, man Monday, June 21, 2010
  • 132. Strong EMERGENCE Can’t predict it Can’t explain it after the fact either! It’s just there, man Deal with it Monday, June 21, 2010
  • 133. I said... CAUTION Monday, June 21, 2010
  • 134. Software as a COMPLEX Profession Monday, June 21, 2010
  • 136. Lean says: Optimize the WHOLE Monday, June 21, 2010
  • 137. Lean says: Optimize the WHOLE http://agilesoftwaredevelopment.com/blog/pbielicki/optimize-the-whole Monday, June 21, 2010
  • 138. Optimize THIS! Monday, June 21, 2010
  • 139. “This is the constitutional limitation of man's knowledge and interests, the fact that he cannot know more than a tiny part of the whole of society and that therefore all that can enter into his motives are the immediate effects which his actions will have in the sphere he knows.” —F.A. Hayek Monday, June 21, 2010
  • 140. AGENT- BASED DECISION MAKING Monday, June 21, 2010
  • 142. Software Architecture Monday, June 21, 2010
  • 143. What kind of Software Architecture would look like an ANT Monday, June 21, 2010 COLONY?
  • 147. SOAP the way Works Monday, June 21, 2010
  • 148. SOAP the way Works Desktop App Web Service Monday, June 21, 2010
  • 149. SOAP the way Works Desktop App <soap:Envelope> make me a sandwich </soap:Envelope> Web Service Monday, June 21, 2010
  • 150. SOAP the way Works Desktop App Web Service Monday, June 21, 2010
  • 151. the way <soap:Envelope> SOAP Works FAIL DELI009283 </soap:Envelope> Desktop App Web Service Monday, June 21, 2010
  • 152. SOAP the way Works Desktop App Web Service Monday, June 21, 2010
  • 153. SOAP the way Works Desktop App <soap:Envelope> make me a pastrami on rye? </soap:Envelope> Web Service Monday, June 21, 2010
  • 154. SOAP the way Works Desktop App Web Service Monday, June 21, 2010
  • 155. the way <soap:Envelope> SOAP Works FAIL DELI276193 </soap:Envelope> Desktop App Web Service Monday, June 21, 2010
  • 157. Contracts are Imposed from the TOP Monday, June 21, 2010 DOWN
  • 159. Hypertext as the Engine of APPLICATION STATE http://bit.ly/HATEOAS Monday, June 21, 2010
  • 160. HATEOAS the way Works Monday, June 21, 2010
  • 161. HATEOAS the way Works Service Web Service Monday, June 21, 2010
  • 162. HATEOAS the way Works Service GET /sandwich Web Service Monday, June 21, 2010
  • 163. HATEOAS the way Works Service Web Service Monday, June 21, 2010
  • 164. the way HATEOAS Works 500 ERROR <link rel=”bread” /> <link rel=”ingredient” /> Service Web Service Monday, June 21, 2010
  • 165. HATEOAS the way Works Service Web Service Monday, June 21, 2010
  • 166. HATEOAS the way Works Service POST /sandwich bread=rye meat=pastrami Web Service Monday, June 21, 2010
  • 167. HATEOAS the way Works Service Web Service Monday, June 21, 2010
  • 168. the way HATEOAS Works 200 OK <link href=”eat” /> <link href=”side” /> Service <sandwich-body>... Web Service Monday, June 21, 2010
  • 169. Make me a Add Toppings Sandwich Checkout Toast Bun Monday, June 21, 2010
  • 170. Make me a Add Toppings Sandwich I make sandwiches. Checkout Toast Bun Monday, June 21, 2010
  • 171. Make me a Add Toppings Sandwich Give me a sandwich, and I can decorate it with toppings. Checkout Toast Bun Monday, June 21, 2010
  • 172. Make me a Add Toppings Sandwich I toast sandwich buns. Checkout Toast Bun Monday, June 21, 2010
  • 173. Make me a Add Toppings Sandwich I exchange sandwiches for Federal Reserve Notes. Checkout Toast Bun Monday, June 21, 2010
  • 174. Make me a Add Toppings Sandwich Checkout Toast Bun Monday, June 21, 2010
  • 176. Behavior Emerges from the EDGES Monday, June 21, 2010 IN
  • 178. Class Are your Dependencies like a RICE PILE? Monday, June 21, 2010
  • 180. Afferent COUPLING A class's afferent coupling is a measure of how many other classes are coupled to it through method calls, field accesses, inheritance, arguments, return types, and exceptions. Monday, June 21, 2010
  • 181. remember the Power Law DISTRIBUTION Monday, June 21, 2010
  • 182. grails-web 900 675 450 225 0 Monday, June 21, 2010
  • 183. Hibernate 3 1500 1125 750 375 0 Monday, June 21, 2010
  • 184. Spring 3 Core 300 225 150 75 0 Monday, June 21, 2010
  • 186. having a Scale-Free CODE BASE Monday, June 21, 2010
  • 188. toward a COMPLEX THEORY of SOFTWARE DEVELOPMENT Monday, June 21, 2010
  • 189. Agents Landscapes Emergence Complexity Criticality Connectedness Monday, June 21, 2010
  • 190. Thank You Tim Berglund www.augusttechgroup.com tim.berglund@augusttechgroup.com @tlberglund Monday, June 21, 2010
  • 191. Photo Credits Slime Mold Cells http://campus.queens.edu/faculty/jannr/Botany/images/slimies/slimeMolds/slimeMold1152.jpg Car Top View http://www.motiontrends.com/2006/m09/Volvo/C30.shtml Ants http://www.flickr.com/photos/binux/2495709841 Traffic Jam http://www.flickr.com/photos/lynac/321100379/ Turning Machine http://www.ecs.syr.edu/faculty/fawcett/handouts/webpages/CoreTechnologies.htm VonNeumann Machine http://en.wikipedia.org/wiki/File:Von_Neumann_architecture.svg Ant Colony http://www.bioone.org/doi/full/10.1672/1536-2442%282004%29004%5B0001%3ATNAOTF%5D2.0.CO%3B2 Mt. Fuji http://www.flickr.com/photos/mtsn/229410448 Snowy Mountains http://www.flickr.com/photos/huzhead/85362599 Portrait of Frederick Winslow Taylor http://upload.wikimedia.org/wikipedia/commons/9/90/Frederick_Winslow_Taylor_crop.jpg Female Velvet Ant (in Work Load Illustration) http://www.flickr.com/photos/markop/1036891509 Frederick Hayek http://www.lancs.ac.uk/staff/ecagrs/Hayek%20quotes.htm Monday, June 21, 2010