View
371
Download
8
Tags:
Embed Size (px)
DESCRIPTION
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?)