Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Soziotechnische Architekturen - Was treibt Softwarearchitekturen und Teams an

Soziotechnische Architekturen - Was treibt Softwarearchitekturen und Teams an

Heutzutage werden Softwaresysteme immer mehr für komplexe Problemdomänen geschaffen. Die Lösungen, die dabei entstehen sind teilweise unglaublich. Leider lässt sich in regelmäßgen Abständen beobachten, dass die Innovationskraft und Entwicklungsgeschwindigkeit einiger Organisationen nachlassen. Insbesondere gilt dies wenn Systeme sich zu einer Microservice-Architektur evolvieren. Microservices sind ein vielversprechender Ansatz, um eine schnelle und autonome Entwicklung von Teilen des Gesamtsystems zu erreichen. Ein Leitfaden dafür ist das strategische Design aus dem Domain-Driven Design. Anstatt ein System naiv aufzuteilen, kann dieses Werkzeug helfen eine Architektur zu etablieren, die zudem eine Schlüsselrolle bei der Umgestaltung der Organisation spielt. Dabei werden Bounded Contexts häufig als Grundlage genommen. Ein weiterer Aspekt ist der Leitsatz - A microservice is owned by one team. Diese Ideen sind valide sollten jedoch mit Bedacht eingesetzt werden. Unternehmen, die vor der Herausforderung stehen ihre System zu teilen und damit einhergehend ihr Organisation anpassen sei an dieser Stelle gesagt es gibt keine Blaupause. Und wenn es diese gäbe, dann wäre sie sicherlich mit vielen Warnungen gespickt. In diesem Vortrag gehe ich auf einige dieser Gefahren ein und welche möglichen Auswirkungen diese sowohl auf das System, als auch die Organisation haben.

Martin Schmidt

October 27, 2020
Tweet

Other Decks in Technology

Transcript

  1. @maschmiddy Wir verbinden Wünsche mit Banken. Sociotechnical Architecture What drives

    software architecture and teams? Photo by Mpho Mojapelo on Unsplash
  2. @maschmiddy Software Developer bei Europace AG … mit mehreren Rollen

    Themen Legacy und Monolithen Domain-Driven Design APIs Developer Experience Sociotechnical Stuff Über mich
  3. @maschmiddy Hypoport AG Netzwerk von Unternehmen TECHNOLOGY CREDIT PLATFORM REAL

    ESTATE PLATFORM INSURANCE PLATFORM Digitalisierung der Kredit-, Immobilien- und Versicherungsindustrie
  4. @maschmiddy Europace AG in Zahlen >200 Kollegen ~700 Partner auf

    der Plattform 53.5 Milliarden EUR Baufinanzierung Transaktionsvolumen in 2019 3.5 Milliarden EUR 11.0 Milliarden EUR Bausparen Transaktionsvolumen in 2019 Ratenkredit Transaktionsvolumen in 2019
  5. @maschmiddy Wir verbinden Wünsche mit Banken. Sociotechnical Architecture What drives

    software architecture and teams? Photo by Mpho Mojapelo on Unsplash
  6. @maschmiddy „ Conway‘s Law Organizations which design systems […] are

    constrained to produce designs which are copies of the communication structures of these organizations. - Melwin Conway
  7. @maschmiddy Viel Koordination Meetings Abstimmungen Missverständnisse Release Planung Lange Feedbackzyklen

    Frustration Hohe Kopplung Latenz Downtime Hohe Buildzeiten … Big Ball of Mud
  8. @maschmiddy „ Definition Sociotechnical Architecture Sociotechnical Architecture is about taking

    an holistic co-design approach to technical and organizational systems, given the inherent impact they have on each other. - Eduardo da Silva
  9. @maschmiddy Teams teilt Erwartungen mit Kunde Markt Software(architektur) realisieren liefert

    Mehrwert für Sociotechnical Evolution Loop nach Nick Tune Credits – Nick Tune – Blog about Aspects of Sociotechnical Architecture
  10. @maschmiddy teilt Erwartungen mit Kunde Markt Software(architektur) realisieren liefert Mehrwert

    für Sociotechnical Evolution Loop nach Nick Tune Credits – Nick Tune – Blog about Aspects of Sociotechnical Architecture Teamstruktur häufig nicht betrachtet Teams
  11. @maschmiddy Teams teilt Erwartungen mit Kunde Markt Software(architektur) realisieren liefert

    Mehrwert für Sociotechnical Evolution Loop nach Nick Tune entwickeln sich gemeinsam Credits – Nick Tune – Blog about Aspects of Sociotechnical Architecture
  12. @maschmiddy Teams teilt Erwartungen mit Kunde Markt Software(architektur) realisieren liefert

    Mehrwert für Sociotechnical Evolution Loop nach Nick Tune entwickeln sich gemeinsam Credits – Nick Tune – Blog about Aspects of Sociotechnical Architecture
  13. @maschmiddy „ … achieve a loosely-coupled, well-encapsulated architecture with an

    organizational structure to match we can achieve better delivery performance …
  14. @maschmiddy Teamgröße 150 Tribe 50 Clan 15 Super Family 5

    Close Friends Vertrauen ~150 Personen Org 5-9 Personen Team
  15. @maschmiddy Wer ist Teil des Teams? Photo by Bruno Kelzer

    on Unsplash Jeder, der etwas zum Erfolg beitragen kann! UX Dev QA OPs … Product People
  16. @maschmiddy Inverse Conway Maneuver Forme deine Organisation und die Teams,

    so dass sie der gewünschten Architektur entsprechen. Credits Thoughtworks – Inverse Conway Maneurver
  17. @maschmiddy Component 1 Component 2 Component 3 Feature 1 Feature

    2 Feature 3 Product 1 Product 2 Product Teams
  18. @maschmiddy Photo by Luis Villasmil on Unsplash Wie schafft ein

    kleines Team die Arbeit für ein Produkt ?
  19. @maschmiddy Team Cognitive Load Intrinsic cognitive load Grundlegende Aspekte, um

    ein Problem zu lösen. (bspw. Wie ist eine Java-Klasse aufgebaut?) Extrinsic cognitive load Bezieht sich auf die Umgebung in der Entwicklung stattfindet (Deployment, Konfiguration, etc.) Germane cognitive load (lernbezogene kognitive Belastung) Essentieller Teil des Lernprozesses und Leistungserbringung (Wie sollte Service X mit Service Y interagieren?)
  20. @maschmiddy Team Topologies Teamtypen Enabling Team Stream-Aligned Team Stream-Aligned Team

    Platform Team Complicated- Subsystem Team Stream-Aligned Team Cross-funktional und in der Lage eigenständig signifikante Fachlickeiten umzusetzen. Complicated-Subsystem Team Team mit besonderen Auftrag, für komplizierte Prozesse, Technologien, o.ä. Enabling Team Unterstützung bei der Einführung und Modifikation von Software während Übergangs- und Lernphasen. Platform Team Liefert die zugrundeliegende Plattform für Stream-Aligned Teams, mit dem Ziel komplexe Technologien leicht zugänglich zu machen.
  21. @maschmiddy Team Topologies Interaktions- formen Enabling Team Stream-Aligned Team Stream-Aligned

    Team Platform Team Complicated- Subsystem Team live Interaction mode: X-as-a-Service Interaction mode: X-as-a-Service Interaction mode: Collaboration Interaction mode: Facilitating Rapid Feedback Collaboration Enge Zusammenarbeit zwischen den Teams. Facilitating Helfende Hand, um Hindernisse anderer Teams zu beseitigen X-as-a-Service Provider oder Consumer von Diensten mit minimaler Kollaboration
  22. @maschmiddy Aufteilen Bounded Contexts Credits – Chris Richardson – Pattern:

    Decompose by Subdomain Context Domain besteht aus mehreren Subdomains Klassifikation von Subdomains Core Domain Hauptunterscheidungsmerkmal für das Unternehmen und den wertvollsten Teil der Anwendung Supporting Domain Domäne ist inhaltlich verbunden mit dem, was das Unternehmen tut, aber kein Alleinstellungsmerkmal. Diese Domäne kann intern umgesetzt oder ausgelagert werden. Generic Domain nicht unternehmensspezifisch und kann idealerweise mit handelsüblicher Software implementiert oder eingekauft werden.
  23. @maschmiddy Aufteilen Bounded Contexts Credits – Chris Richardson – Pattern:

    Decompose by Subdomain Context Domain besteht aus mehreren Subdomains Klassifikation von Subdomains Core Domain Hauptunterscheidungsmerkmal für das Unternehmen und den wertvollsten Teil der Anwendung Supporting Domain Domäne ist inhaltlich verbunden mit dem, was das Unternehmen tut, aber kein Alleinstellungsmerkmal. Diese Domäne kann intern umgesetzt oder ausgelagert werden. Generic Domain nicht unternehmensspezifisch und kann idealerweise mit handelsüblicher Software implementiert oder eingekauft werden.
  24. @maschmiddy Aufteilen Boundaries Credits – Chris Richardson – Pattern: Decompose

    by Subdomain Context Stream-Aligned Team Stream-Aligned Team Stream-Aligned Team Stream-Aligned Team X-as-a-Service X-as-a-Service X-as-a-Service X-as-a-Service Domain besteht aus mehreren Subdomains Klassifikation von Subdomains Core Domain Hauptunterscheidungsmerkmal für das Unternehmen und den wertvollsten Teil der Anwendung Supporting Domain Domäne ist inhaltlich verbunden mit dem, was das Unternehmen tut, aber kein Alleinstellungsmerkmal. Diese Domäne kann intern umgesetzt oder ausgelagert werden. Generic Domain nicht unternehmensspezifisch und kann idealerweise mit handelsüblicher Software implementiert oder eingekauft werden.
  25. @maschmiddy Teams teilt Erwartungen mit Kunde Markt Software(architektur) realisieren liefert

    Mehrwert für entwickeln sich gemeinsam Credits – Nick Tune – Blog about Aspects of Sociotechnical Architecture
  26. @maschmiddy Bookmarks und Bücher Nick Tune Strategic Technology Blog Eduardo

    da Silva Introduction to Sociotechnical Architecture: Why &What it is Henry Portman Review: Team Topologies