of 26 /26
Embrace chaos [email protected] @dominikrose

Embrace chaos

  • View
    379

  • Download
    8

Embed Size (px)

DESCRIPTION

 

Text of Embrace chaos

Page 1: Embrace chaos

Embrace [email protected]

@dominikrose

Page 2: Embrace chaos

Bass, Clements, Kazman: Software Architecture in Practice (2003)

Page 3: Embrace chaos

“The software architecture of a program or computing system is the structure or structures of the system,

which comprise software elements, the externally visible properties of those elements, and the relationships among them.”

Page 4: Embrace chaos

http://www.scrum-kompakt.de

The team is responsible for the software architecture.

Page 5: Embrace chaos

Agile = Chaos?

Page 6: Embrace chaos

https://en.wikipedia.org/wiki/File:Double-compound-pendulum.gif

Page 7: Embrace chaos

https://commons.wikimedia.org/wiki/File:Mandelbrot-Menge_farbig.png

Page 8: Embrace chaos

A Complex Adaptive System (CAS) is a dynamic network of many agents acting in parallel, constantly acting and reacting to what the other agents are doing.

The control of a CAS tends to be highly dispersed and decentralized.

If there is to be any coherent behavior in the system, it has to arise from competition and cooperation among the agents themselves.

The overall behavior of the system is the result of a huge number of decisions made every moment by many individual agents.

John H. Holland

Page 9: Embrace chaos

A Complex Adaptive System (CAS) is a dynamic network of many agents acting in parallel, constantly acting and reacting to what the other agents are doing.

The control of a CAS tends to be highly dispersed and decentralized.

If there is to be any coherent behavior in the system, it has to arise from competition and cooperation among the agents themselves.

The overall behavior of the system is the result of a huge number of decisions made every moment by many individual agents.

John H. Holland

Page 10: Embrace chaos

A Complex Adaptive System (CAS) is a dynamic network of many agents acting in parallel, constantly acting and reacting to what the other agents are doing.

The control of a CAS tends to be highly dispersed and decentralized.

If there is to be any coherent behavior in the system, it has to arise from competition and cooperation among the agents themselves.

The overall behavior of the system is the result of a huge number of decisions made every moment by many individual agents.

John H. Holland

Page 11: Embrace chaos

FeedbackEmergenceNon linearitySensitivity to initial conditionsHigh AdaptabilityInformation exchangeCooperationSpecializationSelf-organization

Page 12: Embrace chaos

A system in equilibrium does not have the internal dynamics that enables it to respond to the environment and will slowly (or quickly) die.

https://commons.wikimedia.org/wiki/File:Fuse.gifhttps://upload.wikimedia.org/wikipedia/de/d/d8/Game_of_life_U.gifhttps://upload.wikimedia.org/wikipedia/commons/e/e5/Gospers_glider_gun.gif

Page 13: Embrace chaos

A system in equilibrium does not have the internal dynamics that enables it to respond to the environment and will slowly (or quickly) die.

A system in chaos stops functioning as a system.

https://commons.wikimedia.org/wiki/File:Fuse.gifhttps://upload.wikimedia.org/wikipedia/de/d/d8/Game_of_life_U.gifhttps://upload.wikimedia.org/wikipedia/commons/e/e5/Gospers_glider_gun.gif

Page 14: Embrace chaos

A system in equilibrium does not have the internal dynamics that enables it to respond to the environment and will slowly (or quickly) die.

A system in chaos stops functioning as a system.

The most productive state to be in is at the Edge of Chaos where there is maximum variety and creativity, leading to new possibilities.

https://commons.wikimedia.org/wiki/File:Fuse.gifhttps://upload.wikimedia.org/wikipedia/de/d/d8/Game_of_life_U.gifhttps://upload.wikimedia.org/wikipedia/commons/e/e5/Gospers_glider_gun.gif

Page 15: Embrace chaos

Level of uncertainty

Level of disagreement

EasyComplicated

Complicated

Chaotic

Complex

Edge of chaos

Page 16: Embrace chaos

Level of uncertainty

Level of disagreement

EasyComplicated

Complicated

Chaotic

Complex

Edge of chaos

“Everybody does what he wants – it takes us too long to react”

“We have to throw away everything because the requirements changed”

“There must be an easier way to do it – if we only

spent some days on architecture”

“Every architecture decision is made by a sole person – I feel frustrated”

Page 17: Embrace chaos

Embrace chaos…… but respect the necessities of architecture

- level of planning that fits the context- level of documentation that fits the context- communication & stakeholder management

Huh? What about structure, elements,

relationships, properties?

Page 18: Embrace chaos

vs.

https://upload.wikimedia.org/wikipedia/commons/thumb/a/a1/TOGAF_ADM.jpg/220px-TOGAF_ADM.jpg

Page 19: Embrace chaos

Level of uncertainty

Level of disagreement

EasyComplicated

Complicated

Chaotic

Complex

Edge of chaos

How many applications do we actually have?

But: Every decision has to be made by one single

person

Page 20: Embrace chaos

vs.

https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Devops.svg/220px-Devops.svg.png

Page 21: Embrace chaos

Level of uncertainty

Level of disagreement

EasyComplicated

Complicated

Chaotic

Complex

Edge of chaos

Do we need these SLAs? Can’t we just collaborate

directly? Is devops collaboration enough to guarantee a

stable operations of our large IT?

Page 22: Embrace chaos

Embrace chaosOther examples- Customer involvement in projects- Usability & Design- Knowledge management- …

Page 23: Embrace chaos

„Während zu Beginn des IT-Zeitalters die Entwicklung von IT-Systemen noch als ausschließlich kreativer Akt den Fokus auf der grundsätzlichen Machbarkeit hatte, gewinnt aktuell ein

industrialisiertes Vorgehen (Software Engineering) immer mehr an Bedeutung, um die IT in das Spannungsfeld von Effektivität und Effizienz zu integrieren.

Die damit erwartete Garantie von Qualität und Produktivität ist die Voraussetzung für Wertschöpfung und für Arbeitsplätze in der IT-Industrie in Hochlohnländern wie Deutschland.“

http://www.bitkom.org/files/documents/Industrielle_Softwareentwicklung_web.pdf (2010)

Page 24: Embrace chaos

Industrialisierungsdimensionen

• Standardisierung• Automatisierung• Wiederverwendung• Spezialisierung• kontinuierliche Verbesserung

http://www.bitkom.org/files/documents/Industrielle_Softwareentwicklung_web.pdf (2010)

Page 25: Embrace chaos

https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/Aplerbecker_H%C3%BCtte2.JPG/250px-Aplerbecker_H%C3%BCtte2.JPG

vs.

Compatible? If yes, how to sell it?

Time for discussions…

Page 26: Embrace chaos

Main lessons1. Know where you are!

2. To find the edge of chaos, you have to allow chaos!

(3. Is this really a solid base for SW industrialization?)