Embrace chaos
-
date post
21-Oct-2014 -
Category
Technology
-
view
361 -
download
8
Embed Size (px)
description
Transcript of Embrace chaos
PowerPoint-Prsentation
Embrace chaos
[email protected]@dominikrose
Bass, Clements, Kazman: Software Architecture in Practice (2003)
1620: Schweden im Krieg mit PolenVasa grtes Kriegschiff der Welt (70 m, 64 Kanonen)Ziel: zweites Deck mit Kanonen hinzufgenHenrik Hybertsson: Simples Extrapolieren (Quality, Cost, Time)10.8.1628: Jungfernfahrt Schiff kippt um, Duzende Seeleute sterben
Motivation fr Software Architektur
Architekt start schon ein jahr vorher
2
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.
Geht gut, in vielen Fllen.
Aber
Fehlende DokumentationFehlende AbspracheOrganisation ist nicht bereit
4
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
Easy
Complicated
Complicated
Chaotic
Complex
Edge of chaos
15
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
16
Embrace chaos
but respect the necessities of architecture
level of planning that fits the contextlevel of documentation that fits the contextcommunication & 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
18
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
19
vs.
https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Devops.svg/220px-Devops.svg.png
20
Level of uncertainty
Level of disagreement
Easy
Complicated
Complicated
Chaotic
Complex
Edge of chaos
Do we need these SLAs? Cant we just collaborate directly?
Is devops collaboration enough to guarantee a stable operations of our large IT?
Weitere Beispiele
User involvementUser experience / usabilityWissensmanagement
21
Embrace chaos
Other examplesCustomer involvement in projectsUsability & DesignKnowledge management
Whrend zu Beginn des IT-Zeitalters die Entwicklung von IT-Systemen noch als ausschlielich kreativer Akt den Fokus auf der grundstzlichen Machbarkeit hatte, gewinnt aktuell ein
industrialisiertes Vorgehen (Software Engineering) immer mehr an Bedeutung, um die IT in das Spannungsfeld von Effektivitt und Effizienz zu integrieren.
Die damit erwartete Garantie von Qualitt und Produktivitt ist die Voraussetzung fr Wertschpfung und fr Arbeitspltze in der IT-Industrie in Hochlohnlndern wie Deutschland.
http://www.bitkom.org/files/documents/Industrielle_Softwareentwicklung_web.pdf (2010)
Industrialisierungsdimensionen
StandardisierungAutomatisierungWiederverwendungSpezialisierungkontinuierliche 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 lessons
Know where you are!
To find the edge of chaos, you have to allow chaos!
(3. Is this really a solid base for SW industrialization?)