Embrace chaos

Post on 21-Oct-2014

379 views 8 download

Tags:

description

 

Transcript of Embrace chaos

Embrace chaosdominik.rose@interface-ag.de

@dominikrose

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

“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.”

http://www.scrum-kompakt.de

The team is responsible for the software architecture.

Agile = Chaos?

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

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

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

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

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

FeedbackEmergenceNon linearitySensitivity to initial conditionsHigh AdaptabilityInformation exchangeCooperationSpecializationSelf-organization

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

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

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

Level of uncertainty

Level of disagreement

EasyComplicated

Complicated

Chaotic

Complex

Edge of 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”

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?

vs.

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

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

vs.

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

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?

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

„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)

Industrialisierungsdimensionen

• Standardisierung• Automatisierung• Wiederverwendung• Spezialisierung• kontinuierliche Verbesserung

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

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…

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?)