Embrace chaos

Download Embrace chaos

Post on 21-Oct-2014

307 views

Category:

Technology

8 download

Embed Size (px)

DESCRIPTION

 

TRANSCRIPT

<p>PowerPoint-Prsentation</p> <p>Embrace chaos</p> <p>dominik.rose@interface-ag.de@dominikrose</p> <p>Bass, Clements, Kazman: Software Architecture in Practice (2003)</p> <p>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</p> <p>Motivation fr Software Architektur</p> <p>Architekt start schon ein jahr vorher </p> <p>2</p> <p>The software architecture of a program or computing system is the structure or structures of the system, </p> <p>which comprise software elements, the externally visible properties of those elements, and the relationships among them.</p> <p>http://www.scrum-kompakt.de</p> <p>The team is responsible for the software architecture.</p> <p>Geht gut, in vielen Fllen.</p> <p>Aber</p> <p>Fehlende DokumentationFehlende AbspracheOrganisation ist nicht bereit </p> <p>4</p> <p>Agile = Chaos?</p> <p>https://en.wikipedia.org/wiki/File:Double-compound-pendulum.gif</p> <p>https://commons.wikimedia.org/wiki/File:Mandelbrot-Menge_farbig.png</p> <p>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. </p> <p>The control of a CAS tends to be highly dispersed and decentralized. </p> <p>If there is to be any coherent behavior in the system, it has to arise from competition and cooperation among the agents themselves. </p> <p>The overall behavior of the system is the result of a huge number of decisions made every moment by many individual agents.</p> <p>John H. Holland</p> <p>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. </p> <p>The control of a CAS tends to be highly dispersed and decentralized. </p> <p>If there is to be any coherent behavior in the system, it has to arise from competition and cooperation among the agents themselves. </p> <p>The overall behavior of the system is the result of a huge number of decisions made every moment by many individual agents.</p> <p>John H. Holland</p> <p>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. </p> <p>The control of a CAS tends to be highly dispersed and decentralized. </p> <p>If there is to be any coherent behavior in the system, it has to arise from competition and cooperation among the agents themselves. </p> <p>The overall behavior of the system is the result of a huge number of decisions made every moment by many individual agents.</p> <p>John H. Holland</p> <p>FeedbackEmergenceNon linearitySensitivity to initial conditionsHigh AdaptabilityInformation exchangeCooperationSpecializationSelf-organization</p> <p>A system in equilibrium does not have the internal dynamics that enables it to respond to the environment and will slowly (or quickly) die. </p> <p>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</p> <p>A system in equilibrium does not have the internal dynamics that enables it to respond to the environment and will slowly (or quickly) die. </p> <p>A system in chaos stops functioning as a system. </p> <p>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</p> <p>A system in equilibrium does not have the internal dynamics that enables it to respond to the environment and will slowly (or quickly) die. </p> <p>A system in chaos stops functioning as a system. </p> <p>The most productive state to be in is at the Edge of Chaos where there is maximum variety and creativity, leading to new possibilities.</p> <p>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</p> <p>Level of uncertainty</p> <p>Level of disagreement</p> <p>Easy</p> <p>Complicated</p> <p>Complicated</p> <p>Chaotic</p> <p>Complex</p> <p>Edge of chaos</p> <p>15</p> <p>Level of uncertainty</p> <p>Level of disagreement</p> <p>Easy</p> <p>Complicated</p> <p>Complicated</p> <p>Chaotic</p> <p>Complex</p> <p>Edge of chaos</p> <p>Everybody does what he wants it takes us too long to react</p> <p>We have to throw away everything because the requirements changed </p> <p>There must be an easier way to do it if we only spent some days on architecture</p> <p>Every architecture decision is made by a sole person I feel frustrated </p> <p>16</p> <p>Embrace chaos</p> <p> but respect the necessities of architecture</p> <p>level of planning that fits the contextlevel of documentation that fits the contextcommunication &amp; stakeholder management </p> <p>Huh? What about structure, elements, relationships, properties?</p> <p>vs.</p> <p>https://upload.wikimedia.org/wikipedia/commons/thumb/a/a1/TOGAF_ADM.jpg/220px-TOGAF_ADM.jpg</p> <p>18</p> <p>Level of uncertainty</p> <p>Level of disagreement</p> <p>Easy</p> <p>Complicated</p> <p>Complicated</p> <p>Chaotic</p> <p>Complex</p> <p>Edge of chaos</p> <p>How many applications do we actually have?</p> <p>But: Every decision has to be made by one single person </p> <p>19</p> <p>vs.</p> <p>https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Devops.svg/220px-Devops.svg.png</p> <p>20</p> <p>Level of uncertainty</p> <p>Level of disagreement</p> <p>Easy</p> <p>Complicated</p> <p>Complicated</p> <p>Chaotic</p> <p>Complex</p> <p>Edge of chaos</p> <p>Do we need these SLAs? Cant we just collaborate directly?</p> <p>Is devops collaboration enough to guarantee a stable operations of our large IT?</p> <p>Weitere Beispiele</p> <p>User involvementUser experience / usabilityWissensmanagement</p> <p>21</p> <p>Embrace chaos</p> <p>Other examplesCustomer involvement in projectsUsability &amp; DesignKnowledge management</p> <p>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 </p> <p>industrialisiertes Vorgehen (Software Engineering) immer mehr an Bedeutung, um die IT in das Spannungsfeld von Effektivitt und Effizienz zu integrieren. </p> <p>Die damit erwartete Garantie von Qualitt und Produktivitt ist die Voraussetzung fr Wertschpfung und fr Arbeitspltze in der IT-Industrie in Hochlohnlndern wie Deutschland.</p> <p>http://www.bitkom.org/files/documents/Industrielle_Softwareentwicklung_web.pdf (2010)</p> <p>Industrialisierungsdimensionen</p> <p>StandardisierungAutomatisierungWiederverwendungSpezialisierungkontinuierliche Verbesserung</p> <p>http://www.bitkom.org/files/documents/Industrielle_Softwareentwicklung_web.pdf (2010)</p> <p>https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/Aplerbecker_H%C3%BCtte2.JPG/250px-Aplerbecker_H%C3%BCtte2.JPG</p> <p>vs.</p> <p>Compatible? If yes, how to sell it?</p> <p>Time for discussions</p> <p>Main lessons</p> <p>Know where you are!</p> <p>To find the edge of chaos, you have to allow chaos!</p> <p>(3. Is this really a solid base for SW industrialization?)</p>