Pro Yearly is on sale from $80 to $50! »

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.

D549e6ca48ede8b9afb318f13ac3fce2?s=128

Martin Schmidt

October 27, 2020
Tweet

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 Europace AG Selbstorganisiert und Netzwerkzentriert Wir verbinden Wünsche mit

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

    software architecture and teams? Photo by Mpho Mojapelo on Unsplash
  7. @maschmiddy Von der Idee zum Projekt Photo by Marvin Meyer

    on Unsplash
  8. @maschmiddy Los arbeitet zusammen!

  9. @maschmiddy Los arbeitet zusammen!

  10. @maschmiddy Los arbeitet zusammen!

  11. @maschmiddy Los arbeitet zusammen!

  12. @maschmiddy Los arbeitet zusammen!

  13. @maschmiddy Los arbeitet zusammen!

  14. @maschmiddy Los arbeitet zusammen!

  15. @maschmiddy Flache Organisation - Viel Kommunikation !

  16. @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
  17. @maschmiddy Viel Koordination Meetings Abstimmungen Missverständnisse Release Planung Lange Feedbackzyklen

    Frustration Hohe Kopplung Latenz Downtime Hohe Buildzeiten … Big Ball of Mud
  18. @maschmiddy Viel Koordination Meetings Abstimmungen Missverständnisse Release Planung Lange Feedbackzyklen

    Frustration Hohe Kopplung Latenz Downtime YAGNI … Big Ball of Mud
  19. @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
  20. @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
  21. @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
  22. @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
  23. @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
  24. @maschmiddy „ … achieve a loosely-coupled, well-encapsulated architecture with an

    organizational structure to match we can achieve better delivery performance …
  25. @maschmiddy Ok. Wie kommen wir dahin? Photo by Simone Secci

    on Unsplash
  26. @maschmiddy loosely-coupled Weniger Kommunikation

  27. @maschmiddy loosely-coupled Weniger Kommunikation

  28. @maschmiddy loosely-coupled Weniger Kommunikation

  29. @maschmiddy „ Dunbar- Zahl

  30. @maschmiddy Teamgröße 150 Tribe 50 Clan 15 Super Family 5

    Close Friends Vertrauen ~150 Personen Org 5-9 Personen Team
  31. @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
  32. @maschmiddy Ok. Wer arbeitet jetzt woran? Photo by Simone Secci

    on Unsplash
  33. @maschmiddy Inverse Conway Maneuver Forme deine Organisation und die Teams,

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

    1 Feature 2 Feature 3
  35. @maschmiddy Component 1 Component 2 Component 3 Feature 1 Feature

    2 Feature 3 Feature Teams
  36. @maschmiddy Component 1 Component 2 Component 3 Feature 1 Feature

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

    kleines Team die Arbeit für ein Produkt ?
  38. @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?)
  39. @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.
  40. @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
  41. @maschmiddy Domain-Driven Design (DDD) Bändigung von Komplexität Strategisches Design Betrachtung

    des Gesamtproblems als Domäne Sub domains -> Boundaries
  42. @maschmiddy Entdecken Bounded Contexts Alberto Brandolino – Event Storming Event

    Storming
  43. @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.
  44. @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.
  45. @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.
  46. @maschmiddy Abschluss Photo by Adi Goldstein on Unsplash

  47. @maschmiddy Sociotechnical Architecture - Teams und Architektur miteinander verbinden und

    weiterentwickeln
  48. @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
  49. @maschmiddy Cross- funktionale Produkt- teams Minimiere Cognitive Load Boundaries innen

    außen Sub- domain Persona 5-9 Leute
  50. @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
  51. @maschmiddy Sociotechnical Architecture Martin Schmidt Photo by Kelly Sikkema on

    Unsplash