Embrace chaos

download Embrace chaos

of 26

  • date post

    21-Oct-2014
  • Category

    Technology

  • view

    317
  • download

    8

Embed Size (px)

description

 

Transcript of Embrace chaos

PowerPoint-Prsentation

Embrace chaos

dominik.rose@interface-ag.de@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?)