SlideShare una empresa de Scribd logo
1 de 82
COMPLEXITY
   THEORY                   SOFTWARE
                             DEVELOPMENT
                     and




                                       @tlberglund
Wednesday, October 17, 12                            1
Agents
                                         Landscapes
       Emergence


                            Complexity

                                        Criticality
                    Connectedness

Wednesday, October 17, 12                             2
Agents

Wednesday, October 17, 12            3
Agents are...



                  Simple
                   Interactive
                        Adaptive
Wednesday, October 17, 12          4
Why Does

                            TRAFFIC
                                       Jam?
Wednesday, October 17, 12                     5
Stuck
                                in           TRAFFIC
                                                                 Talking on cell
                                                                phone, not paying
                                                                   attention...




                                                 I sure am in
                                all this
                                                   a hurry!
                              space! I'm'a
                               speed up.




Wednesday, October 17, 12                                                           6
Stuck
                                 TRAFFIC
                                in
                                      maniAc!




                                     Oh, my
                                      bad.




                                     @%$#%!




Wednesday, October 17, 12                       7
Net
                                                  LOGO
                            http://ccl.northwestern.edu/netlogo/




Wednesday, October 17, 12                                          8
Net
                                  LOGO


Wednesday, October 17, 12                9
Net
                                                            LOGO
         Flocking
                            Alignment: a bird tends to move in the same
                            direction of nearby birds.

                            Separation: a bird will turn to avoid another bird
                            if they get too close.

                            Cohesion: a bird will tend to move towards other
                            nearby birds.


Wednesday, October 17, 12                                                        10
Net
                                  LOGO


Wednesday, October 17, 12                11
Agents
                                         Landscapes
       Emergence


                            Complexity

                                        Criticality
                    Connectedness

Wednesday, October 17, 12                             12
Landscapes

Wednesday, October 17, 12           13
Think of a


                       Problem
                            as a




            SURFACE
Wednesday, October 17, 12          14
MT. FUJI



Wednesday, October 17, 12    15
Frederick
                                 Winslow
                            TAYLOR


Wednesday, October 17, 12               16
RUGGED
                            LANDSCAPES




Wednesday, October 17, 12                17
Dancing
                            LANDSCAPES


Wednesday, October 17, 12                18
Agents
                                         Landscapes
       Emergence


                            Complexity

                                        Criticality
                    Connectedness

Wednesday, October 17, 12                             19
Criticality

Wednesday, October 17, 12                 20
the           Normal
         DISTRIBUTION



Wednesday, October 17, 12        21
the          Power Law
         DISTRIBUTION



Wednesday, October 17, 12          22
Wednesday, October 17, 12
                            Rice   PILES   23
Work
                             LOAD


Wednesday, October 17, 12           24
Work
                             LOAD


Wednesday, October 17, 12           25
Work
                             LOAD


Wednesday, October 17, 12           26
Work
                             LOAD


Wednesday, October 17, 12           27
Work
                             LOAD


Wednesday, October 17, 12           28
Work
                             LOAD


Wednesday, October 17, 12           29
Work
                             LOAD


Wednesday, October 17, 12           30
Work
                             LOAD


Wednesday, October 17, 12           31
Work
                             LOAD


Wednesday, October 17, 12           32
Work
                             LOAD


Wednesday, October 17, 12           33
Too much


                    Utilization        leads to


   CRITICALITY
Wednesday, October 17, 12                         34
Agents
                                         Landscapes
       Emergence


                            Complexity

                                        Criticality
                    Connectedness

Wednesday, October 17, 12                             35
Connectedness

Wednesday, October 17, 12   36
A really basic refresher in



                            Graph
        THEORY              Seriously...BASIC.

Wednesday, October 17, 12                        37
Degree 5

                                       Degree 1




                            Degree 4


Wednesday, October 17, 12                         38
To here


   From here



                    Path Length=   3
Wednesday, October 17, 12                    39
Network
        FUNCTIONALITY

Wednesday, October 17, 12   40
Information
           DIFFUSION        depends on Path Length



Wednesday, October 17, 12                            41
Robustness                                  to




       FAILURE              depends on degree distribution


Wednesday, October 17, 12                                    42
Agents
                                         Landscapes
       Emergence


                            Complexity

                                        Criticality
                    Connectedness

Wednesday, October 17, 12                             43
Emergence

Wednesday, October 17, 12         44
Slime

Wednesday, October 17, 12
                            MOLD     45
Slime Mold Emergence



Wednesday, October 17, 12               46
Conway’s

                      Game
                            of




Wednesday, October 17, 12
                            LIFE   47
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.



Wednesday, October 17, 12                                                       48
Wednesday, October 17, 12   49
Wednesday, October 17, 12   50
Wednesday, October 17, 12   51
Surprise!
                            it’s a
                                     COMPUTER


Wednesday, October 17, 12                       52
Von Neumann
                    ARCHITECTURE



Wednesday, October 17, 12          53
Wednesday, October 17, 12   54
Wednesday, October 17, 12   55
Ant
                  COLONIES
Wednesday, October 17, 12         56
Wednesday, October 17, 12   57
Proceed with


          CAUTION
Wednesday, October 17, 12                  58
Software               as a

                            COMPLEX
                             Profession
Wednesday, October 17, 12                 59
AGENT-
                             BASED
                              DECISION
                                MAKING


Wednesday, October 17, 12            60
Wednesday, October 17, 12   61
What kind of


     Software
      Architecture          would look like an



                              ANT
Wednesday, October 17, 12
                               COLONY?           62
Wednesday, October 17, 12   63
Wednesday, October 17, 12   64
Hypertext                          as the


     Engine
                                of



       APPLICATION
            STATE
        http://bit.ly/HATEOAS

Wednesday, October 17, 12                     65
the way
                                        HATEOAS
                                       Works
                                 GET /sandwich
                       Service




                                                 Web Service
Wednesday, October 17, 12                                      66
HATEOAS
                                 the way

                                     Works
                       Service



                                           400 ERROR
                                           <link rel=”bread” />
                                           <link rel=”ingredient” />




                                           Web Service
Wednesday, October 17, 12                                         67
HATEOAS
                                 the way

                                      Works
                                  POST /sandwich
                                  bread=rye
                       Service    meat=pastrami




                                                   Web Service
Wednesday, October 17, 12                                        68
HATEOAS
                                 the way

                                     Works
                       Service
                                           201 OK
                                           <link href=”sandwich”>
                                           <link href=”eat” />
                                           <link href=”side” />




                                               Web Service
Wednesday, October 17, 12                                           69
Make me a
                                                                   Add Toppings
                     Sandwich         I make     Give me a
                                    sandwiches.
                                              sandwich, and I
                                               can decorate it
                                               with toppings.
                                             I exchange
                                            sandwiches
                                        I toast Federal
                                            for
                                       sandwichReserve
                                         buns.Notes.




                                                                 Checkout
                        Toast Bun

Wednesday, October 17, 12                                                         70
REST  done

      RIGHT

Wednesday, October 17, 12   71
Class
                                Are your


                            Dependencies
   like a


        RICE PILE?
Wednesday, October 17, 12                   72
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.



Wednesday, October 17, 12                                                73
remember the           Power Law
                            DISTRIBUTION



Wednesday, October 17, 12                  74
grails-web
                            900




                            675




                            450




                            225




                             0

Wednesday, October 17, 12                 75
Hibernate 3
                            1500



                            1125



                            750



                            375



                              0


Wednesday, October 17, 12                 76
Spring 3 Core
                            300



                            225



                            150



                            75



                             0


Wednesday, October 17, 12          77
toward a
                            COMPLEX
           THEORY               of

    SOFTWARE
                    DEVELOPMENT
Wednesday, October 17, 12             78
Agents
                                         Landscapes
       Emergence


                            Complexity

                                        Criticality
                    Connectedness

Wednesday, October 17, 12                             79
Thank You
                             Tim Berglund
                              tlberglund@github.com
                                    @tlberglund




Wednesday, October 17, 12                             80
ACKNOWLEDGMENTS




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

Wednesday, October 17, 12                                            81
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



Wednesday, October 17, 12                                                                         82

Más contenido relacionado

Más de JAX London

Everything I know about software in spaghetti bolognese: managing complexity
Everything I know about software in spaghetti bolognese: managing complexityEverything I know about software in spaghetti bolognese: managing complexity
Everything I know about software in spaghetti bolognese: managing complexityJAX London
 
Devops with the S for Sharing - Patrick Debois
Devops with the S for Sharing - Patrick DeboisDevops with the S for Sharing - Patrick Debois
Devops with the S for Sharing - Patrick DeboisJAX London
 
Busy Developer's Guide to Windows 8 HTML/JavaScript Apps
Busy Developer's Guide to Windows 8 HTML/JavaScript AppsBusy Developer's Guide to Windows 8 HTML/JavaScript Apps
Busy Developer's Guide to Windows 8 HTML/JavaScript AppsJAX London
 
It's code but not as we know: Infrastructure as Code - Patrick Debois
It's code but not as we know: Infrastructure as Code - Patrick DeboisIt's code but not as we know: Infrastructure as Code - Patrick Debois
It's code but not as we know: Infrastructure as Code - Patrick DeboisJAX London
 
Locks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael BarkerLocks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael BarkerJAX London
 
Worse is better, for better or for worse - Kevlin Henney
Worse is better, for better or for worse - Kevlin HenneyWorse is better, for better or for worse - Kevlin Henney
Worse is better, for better or for worse - Kevlin HenneyJAX London
 
Java performance: What's the big deal? - Trisha Gee
Java performance: What's the big deal? - Trisha GeeJava performance: What's the big deal? - Trisha Gee
Java performance: What's the big deal? - Trisha GeeJAX London
 
Clojure made-simple - John Stevenson
Clojure made-simple - John StevensonClojure made-simple - John Stevenson
Clojure made-simple - John StevensonJAX London
 
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfHTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfJAX London
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter HiltonJAX London
 
Why FLOSS is a Java developer's best friend: Dave Gruber
Why FLOSS is a Java developer's best friend: Dave GruberWhy FLOSS is a Java developer's best friend: Dave Gruber
Why FLOSS is a Java developer's best friend: Dave GruberJAX London
 
Akka in Action: Heiko Seeburger
Akka in Action: Heiko SeeburgerAkka in Action: Heiko Seeburger
Akka in Action: Heiko SeeburgerJAX London
 
NoSQL Smackdown 2012 : Tim Berglund
NoSQL Smackdown 2012 : Tim BerglundNoSQL Smackdown 2012 : Tim Berglund
NoSQL Smackdown 2012 : Tim BerglundJAX London
 
Closures, the next "Big Thing" in Java: Russel Winder
Closures, the next "Big Thing" in Java: Russel WinderClosures, the next "Big Thing" in Java: Russel Winder
Closures, the next "Big Thing" in Java: Russel WinderJAX London
 
Java and the machine - Martijn Verburg and Kirk Pepperdine
Java and the machine - Martijn Verburg and Kirk PepperdineJava and the machine - Martijn Verburg and Kirk Pepperdine
Java and the machine - Martijn Verburg and Kirk PepperdineJAX London
 
Mongo DB on the JVM - Brendan McAdams
Mongo DB on the JVM - Brendan McAdamsMongo DB on the JVM - Brendan McAdams
Mongo DB on the JVM - Brendan McAdamsJAX London
 
New opportunities for connected data - Ian Robinson
New opportunities for connected data - Ian RobinsonNew opportunities for connected data - Ian Robinson
New opportunities for connected data - Ian RobinsonJAX London
 
HTML5 Websockets and Java - Arun Gupta
HTML5 Websockets and Java - Arun GuptaHTML5 Websockets and Java - Arun Gupta
HTML5 Websockets and Java - Arun GuptaJAX London
 
The Big Data Con: Why Big Data is a Problem, not a Solution - Ian Plosker
The Big Data Con: Why Big Data is a Problem, not a Solution - Ian PloskerThe Big Data Con: Why Big Data is a Problem, not a Solution - Ian Plosker
The Big Data Con: Why Big Data is a Problem, not a Solution - Ian PloskerJAX London
 
Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...
Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...
Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...JAX London
 

Más de JAX London (20)

Everything I know about software in spaghetti bolognese: managing complexity
Everything I know about software in spaghetti bolognese: managing complexityEverything I know about software in spaghetti bolognese: managing complexity
Everything I know about software in spaghetti bolognese: managing complexity
 
Devops with the S for Sharing - Patrick Debois
Devops with the S for Sharing - Patrick DeboisDevops with the S for Sharing - Patrick Debois
Devops with the S for Sharing - Patrick Debois
 
Busy Developer's Guide to Windows 8 HTML/JavaScript Apps
Busy Developer's Guide to Windows 8 HTML/JavaScript AppsBusy Developer's Guide to Windows 8 HTML/JavaScript Apps
Busy Developer's Guide to Windows 8 HTML/JavaScript Apps
 
It's code but not as we know: Infrastructure as Code - Patrick Debois
It's code but not as we know: Infrastructure as Code - Patrick DeboisIt's code but not as we know: Infrastructure as Code - Patrick Debois
It's code but not as we know: Infrastructure as Code - Patrick Debois
 
Locks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael BarkerLocks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael Barker
 
Worse is better, for better or for worse - Kevlin Henney
Worse is better, for better or for worse - Kevlin HenneyWorse is better, for better or for worse - Kevlin Henney
Worse is better, for better or for worse - Kevlin Henney
 
Java performance: What's the big deal? - Trisha Gee
Java performance: What's the big deal? - Trisha GeeJava performance: What's the big deal? - Trisha Gee
Java performance: What's the big deal? - Trisha Gee
 
Clojure made-simple - John Stevenson
Clojure made-simple - John StevensonClojure made-simple - John Stevenson
Clojure made-simple - John Stevenson
 
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfHTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter Hilton
 
Why FLOSS is a Java developer's best friend: Dave Gruber
Why FLOSS is a Java developer's best friend: Dave GruberWhy FLOSS is a Java developer's best friend: Dave Gruber
Why FLOSS is a Java developer's best friend: Dave Gruber
 
Akka in Action: Heiko Seeburger
Akka in Action: Heiko SeeburgerAkka in Action: Heiko Seeburger
Akka in Action: Heiko Seeburger
 
NoSQL Smackdown 2012 : Tim Berglund
NoSQL Smackdown 2012 : Tim BerglundNoSQL Smackdown 2012 : Tim Berglund
NoSQL Smackdown 2012 : Tim Berglund
 
Closures, the next "Big Thing" in Java: Russel Winder
Closures, the next "Big Thing" in Java: Russel WinderClosures, the next "Big Thing" in Java: Russel Winder
Closures, the next "Big Thing" in Java: Russel Winder
 
Java and the machine - Martijn Verburg and Kirk Pepperdine
Java and the machine - Martijn Verburg and Kirk PepperdineJava and the machine - Martijn Verburg and Kirk Pepperdine
Java and the machine - Martijn Verburg and Kirk Pepperdine
 
Mongo DB on the JVM - Brendan McAdams
Mongo DB on the JVM - Brendan McAdamsMongo DB on the JVM - Brendan McAdams
Mongo DB on the JVM - Brendan McAdams
 
New opportunities for connected data - Ian Robinson
New opportunities for connected data - Ian RobinsonNew opportunities for connected data - Ian Robinson
New opportunities for connected data - Ian Robinson
 
HTML5 Websockets and Java - Arun Gupta
HTML5 Websockets and Java - Arun GuptaHTML5 Websockets and Java - Arun Gupta
HTML5 Websockets and Java - Arun Gupta
 
The Big Data Con: Why Big Data is a Problem, not a Solution - Ian Plosker
The Big Data Con: Why Big Data is a Problem, not a Solution - Ian PloskerThe Big Data Con: Why Big Data is a Problem, not a Solution - Ian Plosker
The Big Data Con: Why Big Data is a Problem, not a Solution - Ian Plosker
 
Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...
Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...
Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...
 

Último

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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 WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Último (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Complexity theory and software development : Tim Berglund

  • 1. COMPLEXITY THEORY SOFTWARE DEVELOPMENT and @tlberglund Wednesday, October 17, 12 1
  • 2. Agents Landscapes Emergence Complexity Criticality Connectedness Wednesday, October 17, 12 2
  • 4. Agents are... Simple Interactive Adaptive Wednesday, October 17, 12 4
  • 5. Why Does TRAFFIC Jam? Wednesday, October 17, 12 5
  • 6. Stuck in TRAFFIC Talking on cell phone, not paying attention... I sure am in all this a hurry! space! I'm'a speed up. Wednesday, October 17, 12 6
  • 7. Stuck TRAFFIC in maniAc! Oh, my bad. @%$#%! Wednesday, October 17, 12 7
  • 8. Net LOGO http://ccl.northwestern.edu/netlogo/ Wednesday, October 17, 12 8
  • 9. Net LOGO Wednesday, October 17, 12 9
  • 10. Net LOGO Flocking Alignment: a bird tends to move in the same direction of nearby birds. Separation: a bird will turn to avoid another bird if they get too close. Cohesion: a bird will tend to move towards other nearby birds. Wednesday, October 17, 12 10
  • 11. Net LOGO Wednesday, October 17, 12 11
  • 12. Agents Landscapes Emergence Complexity Criticality Connectedness Wednesday, October 17, 12 12
  • 14. Think of a Problem as a SURFACE Wednesday, October 17, 12 14
  • 16. Frederick Winslow TAYLOR Wednesday, October 17, 12 16
  • 17. RUGGED LANDSCAPES Wednesday, October 17, 12 17
  • 18. Dancing LANDSCAPES Wednesday, October 17, 12 18
  • 19. Agents Landscapes Emergence Complexity Criticality Connectedness Wednesday, October 17, 12 19
  • 21. the Normal DISTRIBUTION Wednesday, October 17, 12 21
  • 22. the Power Law DISTRIBUTION Wednesday, October 17, 12 22
  • 23. Wednesday, October 17, 12 Rice PILES 23
  • 24. Work LOAD Wednesday, October 17, 12 24
  • 25. Work LOAD Wednesday, October 17, 12 25
  • 26. Work LOAD Wednesday, October 17, 12 26
  • 27. Work LOAD Wednesday, October 17, 12 27
  • 28. Work LOAD Wednesday, October 17, 12 28
  • 29. Work LOAD Wednesday, October 17, 12 29
  • 30. Work LOAD Wednesday, October 17, 12 30
  • 31. Work LOAD Wednesday, October 17, 12 31
  • 32. Work LOAD Wednesday, October 17, 12 32
  • 33. Work LOAD Wednesday, October 17, 12 33
  • 34. Too much Utilization leads to CRITICALITY Wednesday, October 17, 12 34
  • 35. Agents Landscapes Emergence Complexity Criticality Connectedness Wednesday, October 17, 12 35
  • 37. A really basic refresher in Graph THEORY Seriously...BASIC. Wednesday, October 17, 12 37
  • 38. Degree 5 Degree 1 Degree 4 Wednesday, October 17, 12 38
  • 39. To here From here Path Length= 3 Wednesday, October 17, 12 39
  • 40. Network FUNCTIONALITY Wednesday, October 17, 12 40
  • 41. Information DIFFUSION depends on Path Length Wednesday, October 17, 12 41
  • 42. Robustness to FAILURE depends on degree distribution Wednesday, October 17, 12 42
  • 43. Agents Landscapes Emergence Complexity Criticality Connectedness Wednesday, October 17, 12 43
  • 46. Slime Mold Emergence Wednesday, October 17, 12 46
  • 47. Conway’s Game of Wednesday, October 17, 12 LIFE 47
  • 48. 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. Wednesday, October 17, 12 48
  • 52. Surprise! it’s a COMPUTER Wednesday, October 17, 12 52
  • 53. Von Neumann ARCHITECTURE Wednesday, October 17, 12 53
  • 56. Ant COLONIES Wednesday, October 17, 12 56
  • 58. Proceed with CAUTION Wednesday, October 17, 12 58
  • 59. Software as a COMPLEX Profession Wednesday, October 17, 12 59
  • 60. AGENT- BASED DECISION MAKING Wednesday, October 17, 12 60
  • 62. What kind of Software Architecture would look like an ANT Wednesday, October 17, 12 COLONY? 62
  • 65. Hypertext as the Engine of APPLICATION STATE http://bit.ly/HATEOAS Wednesday, October 17, 12 65
  • 66. the way HATEOAS Works GET /sandwich Service Web Service Wednesday, October 17, 12 66
  • 67. HATEOAS the way Works Service 400 ERROR <link rel=”bread” /> <link rel=”ingredient” /> Web Service Wednesday, October 17, 12 67
  • 68. HATEOAS the way Works POST /sandwich bread=rye Service meat=pastrami Web Service Wednesday, October 17, 12 68
  • 69. HATEOAS the way Works Service 201 OK <link href=”sandwich”> <link href=”eat” /> <link href=”side” /> Web Service Wednesday, October 17, 12 69
  • 70. Make me a Add Toppings Sandwich I make Give me a sandwiches. sandwich, and I can decorate it with toppings. I exchange sandwiches I toast Federal for sandwichReserve buns.Notes. Checkout Toast Bun Wednesday, October 17, 12 70
  • 71. REST done RIGHT Wednesday, October 17, 12 71
  • 72. Class Are your Dependencies like a RICE PILE? Wednesday, October 17, 12 72
  • 73. 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. Wednesday, October 17, 12 73
  • 74. remember the Power Law DISTRIBUTION Wednesday, October 17, 12 74
  • 75. grails-web 900 675 450 225 0 Wednesday, October 17, 12 75
  • 76. Hibernate 3 1500 1125 750 375 0 Wednesday, October 17, 12 76
  • 77. Spring 3 Core 300 225 150 75 0 Wednesday, October 17, 12 77
  • 78. toward a COMPLEX THEORY of SOFTWARE DEVELOPMENT Wednesday, October 17, 12 78
  • 79. Agents Landscapes Emergence Complexity Criticality Connectedness Wednesday, October 17, 12 79
  • 80. Thank You Tim Berglund tlberglund@github.com @tlberglund Wednesday, October 17, 12 80
  • 81. ACKNOWLEDGMENTS http://bit.ly/unde rstanding-compl exity Wednesday, October 17, 12 81
  • 82. 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 Wednesday, October 17, 12 82