Warum eure Microservice Architektur nicht funktioniert

… und was bei Team Topologies missverstanden wurde.

Agile Coach • Scrum Master • Product Owner

15 Jahre Projektmanagementerfahrung und seit 2015 als Agile Coach in Projekten tätig. Seine Leidenschaft ist es, Menschen & Teams zu inspirieren und für ihre Aufgabe zu begeistern, damit sie fokussierter und motivierter wertschöpfende Produkte erzeugen können.

Microservice-Architektur und Team Topologies

  • In alter Software stecken Abhängigkeiten
  • Compliance & Security
  • Neue Anforderungen
  • Geänderte Aufgabenstellungen erfordern andere Konzepte

  • Software Aging (Dead Code, Complexity, Deprecated Code, Entropy)

  • Wartbarkeit & Erlernbarkeit

  • Bugs und Features dauern lange

  • Fluktuation & Brain Drain

Warum überhaupt modernisieren?

→ Also: Modernisieren!

Microservice Architektur

Conways LAW

"Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure"

Kognitive Belastung

  • Intrinsisch

  • Extrinsisch

  • Bedeutende /
    Lernbezogen

Mental Load bei Microservices

Team-archetypen nach Team topologies

Complicated-subsystem team

Enabling team

Stream-aligned team

Platform team

Team Interactions Modes

Facilitation

X-as-a-Service

Collaboration

Team-archetypen nach Team topologies

Complicated-subsystem team

Enabling team

Stream-aligned team

Platform team

Intrinsisch

Dinge, die ich für meine aktuelle Aufgabe einfach brauche. 

Wie viele Dinge muss ich berücksichtigen?

Wie interagieren die Dinge miteinander?

EXTRINSISCH

Was muss ich dazu noch beachten? Welche äusseren Anforderungen gibt es noch? 

Lernbezogen

Kognitive Belastung um das benötigte Wissen zu lernen, das ich dann als intrinische oder extrinische kognitive Belastung jonglieren muss.

SUM(INTRINSISCH
        +EXTRINSISCH
        +LERNBEZOGEN)
<= CONST

Status: Es gibt immer noch Schwierigkeiten und schneller sind wir auch nicht geworden

Team-Struktur nach Team topologies

Stream-aligned Team

Stream-aligned Team

Platform Team

Complicated-Subsystem Team

Enabling Team

Team Interactions Modes

Facilitation

X-as-a-Service

Collaboration

The danger of allowing multiple teams to change the same system or subsystem is that no one owns either the changes made or the resulting mess.

Every part of the software system needs to be owned by exactly one team.

Team-Silos durch Team topologies

Stream-aligned Team

Stream-aligned Team

Platform Team

Complicated-Subsystem Team

Enabling Team

Kommunikationswege

  • Kann ein Team einen Pull-request für eine Änderung an ein anderes Team stellen?
     
  • Wie viel Hops liegen zwischen den Entwicklern und einem Nutzer?
     
  • Kann ein Team direkt mit dem Product Owner von einem anderen Team sprechen?

Lösungen

Identifizierung von

Bottle necks

(Gatekeeper, Gateways)

Team Interactions Modes

Facilitation

X-as-a-Service

Collaboration

Teams should ask: “What kind of interaction should we have with this other team? Should we be collaborating closely with the other team? Should we be expecting or providing a service? Or should we be expecting or providing facilitation?”

Team Interaction Modes

(Kommunikationsmuster)

Collaboration

Enge zusammenarbeit zwischen zwei Teams

X-as-a-Service

Klare Verantwortungen mit vorhersagbarer Delivery und gutem Product Management

Facilitating

Erkennen und Reduzieren von fehlenden Fähigkeiten

Mindset / Haltung

“The roots of Toyota’s success lie not in its organizational structures, but in developing capability and habits in its people.”

<Mike Rother>

Frage:

Was braucht es noch, damit Kooperation umfassend angewendet wird?

Team Topologies

Team Topologies

Organizing business and technology teams for fast flow

Cloud Native Transformation Patterns

Tools for creating effective Cloud Native architecture—and remaking the way we work

Viel Erfolg!😀

… und vielen Dank für eure Aufmerksamkeit🙇🏼

 

Landsberger Straße 314
80687 München

fon (089) 242054 - 11 77
fax (089) 242054 - 29

DevOps — was ist das?

Header 1

Subnote

Empfehlungen

Fokus:
Dämpfung von
Mentaler LAST

Alte Software

Neue Platform

Methoden & Struktur

MAX

  • Software

  • Teamstruktur

  • Kommunikationsstruktur

  • Know-how aufbau

gemeinsam behandeln

  • Self-Service

  • Reproduzierbare (DEv-) Environments

Stream Aligned Team

X-AS-A-Service

Blue prints
Referenzarchitekturen
Golden Paths
Bootcamps

Stream Aligned Team

X-AS-A-Service

lernbezogene kognitive Last / Technisch

Developer Portals

https://backstage.spotify.com/

Developer Experience wird ZUR Organisationsaufgabe

  • Die Pioniere für die neue Plattform
  • erste Version der 
    • neuen Platform
    • eines neuen Service
    • des neuen Toolings
    • des Onboardings
  • Experimente, PoCs

https://www.cnpatterns.org/organization-culture/core-team

Core team

Core-Team

MVP Platform

  • Sobald es von anderen nutzbar ist können auch andere Teams darauf aufsetzen
  • nach ca 2 Monaten vorhanden
  • 20%-40% der finalen Plattformfeatures

    Basis-Infrastruktur für die ersten Siedler

https://www.cnpatterns.org/organization-culture/mvp-platform

Graduelles Onboarding

https://www.cnpatterns.org/organization-culture/gradual-onboarding

  • Team für Team wird in Kollaboration
    auf die neue Plattform gehoben
     
  • Knowhowaufbau beginnt
    vor tatsächlichem Einsatz
     
  • das Core-Team supported und
    trainiert aktiv

Graduelles Onboarding

https://www.cnpatterns.org/organization-culture/gradual-onboarding

Legacy-Monolith-Team

Core Team

Enabling
Core-Team

Service 2 Team

Service 1 Team

Die ALT-Software
ist ein Complicated Subsystem

Legacy-Monolith-Team

Core Team

Enabling
Core-Team

Service 2 Team

Service 1 Team


Extraktion/Integration
VON APIs

Legacy-Monolith-Team

Service 2 Team

API-Definition & Integration: Kollaboration

Legacy-Monolith-Team

Service 2 Team

Nach Fertigstellung: NIL / X-As-A-Service


Divide & Conquer

Legacy-Monolith-Team

Extraction-Team

Service-Extraktion: Kollaboration

Legacy-Monolith-Team

Extracted-Service-Team

Nach Extraktion: NIL / X-As-A-Service

Enabling
Core-Team

Temporäre
Kollaboration
für Komplexe
Aufgabenstellungen

Legacy-Monolith-Team

Extracted-Service-Team

EnablingCore-Team

Beratung,
Event storming oder Wardley Maps

Service 1 Team

Service 2 Team

Enabling
Core-Team

Legacy-Monolith-Team

Facilitating

PLATFORM-Team

https://www.cnpatterns.org/organization-culture/platform-team

  • Übernimmt die Platform vom
    Core-Team
     
  • Ist selbst ein Product-Team
     
  • die Stream-aligned Teams
    sind der Kunde

Strangler-Fig-
Pattern

https://cmfirstgroup.com/modernize-with-the-strangler-application-pattern-and-microservices/

Strangle Monolithic Organization

https://www.cnpatterns.org/organization-culture/strangle-monolithic-organization

Core-Team ➔ Enabling team

https://www.cnpatterns.org/organization-culture/sre-team

Stream-Aligned Team 1

SRE-Team

Platform Team

Stream-Aligned Team 2

Enabling-
Team (SRE)

Platform Team as a Service

EVOLUTION über
Learning-Loops & SENSING

https://teamtopologies.com/book

Spotify? LESS?
Safe 5.1: Evolution != Design

https://teamtopologies.com/book

Ziel:
Evolutionäre Organisation mit evolutionärer Architektur

3 Phasen:

  1. Bootstrap: Core, Platform-MVP

  2. Modernisierung: onboarding & Strangling

  3. evolution

Warum eure Microservice-Architektur nicht funktioniert [POcamp 2023]

By Mick Hohmann

Warum eure Microservice-Architektur nicht funktioniert [POcamp 2023]

  • 33