3. “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.”
8. 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
9. 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
10. 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
12. 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.gif
https://upload.wikimedia.org/wikipedia/de/d/d8/Game_of_life_U.gif
https://upload.wikimedia.org/wikipedia/commons/e/e5/Gospers_glider_gun.gif
13. 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.gif
https://upload.wikimedia.org/wikipedia/de/d/d8/Game_of_life_U.gif
https://upload.wikimedia.org/wikipedia/commons/e/e5/Gospers_glider_gun.gif
14. 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.gif
https://upload.wikimedia.org/wikipedia/de/d/d8/Game_of_life_U.gif
https://upload.wikimedia.org/wikipedia/commons/e/e5/Gospers_glider_gun.gif
16. Level of uncertainty
Level of disagreement
Easy
Complicated
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”
17. 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?
19. Level of uncertainty
Level of disagreement
Easy
Complicated
Complicated
Chaotic
Complex
Edge of chaos
How many applications
do we actually have?
But: Every decision has to
be made by one single
person
21. Level of uncertainty
Level of disagreement
Easy
Complicated
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?
23. „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)
26. Main lessons
1. 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?)