Some systems are too large to be understood entirely by any one human mind. They are composed of a diverse array of individual components capable of interacting with each other and adapting to a changing environment. As systems, they produce behavior that differs in kind from the behavior of their components. Complexity Theory is an emerging discipline that seeks to describe such phenomena previously encountered in biology, sociology, economics, and other disciplines. Beyond new ways of looking at ant colonies, fashion trends, and national economies, complexity theory promises powerful insights to software development. The Internet—perhaps the most valuable piece of computing infrastructure of the present day—may fit the description of a complex system. Large corporate organizations in which developers are employed have complex characteristics. In this session, we'll explore what makes a complex system, what advantages complexity has to offer us, and how to harness these in the systems we build.
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
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
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
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
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