September 2020, Christian Bühler

Einleitung

Viele Firmen haben eine agile Transformation gestartet oder bereits hinter sich. Bestimmt wurden sie hierbei auch stark auf das “agile Mindset” hingewiesen. Mich selbst fasziniert das agile Mindset insbesondere, weil es die Selbstverantwortung jedes Mitarbeiters fördert und die Verantwortung des Teams in den Mittelpunkt stellt. Es gibt keinen Teamleiter, keinen Projektleiter mehr, der die Verantwortung trägt, nein das Team als ganzes ist verantwortlich, dass die entwickelten Systeme zuverlässig, sicher und korrekt funktionieren.

Auf Basis meiner mehrjährigen Erfahrung in solchen agilen Teams muss ich jedoch feststellen, dass ein agiles Mindset zwar eine ganz wichtige Voraussetzung für ein effizientes Team darstellt, dass ein solches Mindset allein jedoch nicht hinreichend ist, um Systeme effizient zu entwickeln und zu betreiben.

Das Thema haben wir an unserem 50. KnowTalk in Zürich vorgestellt und diskutiert und möchten es hier auf unserer Webseite einem breiteren Publikum zugänglich machen. Kontaktieren sie uns, wenn auch sie an unseren zukünftigen KnowTalks teilnehmen möchten! In diesem Artikel möchte ich an einem kleinen konkreten Beispiel darstellen, wie die Effizienz von agilen Entwicklungsteams durch die folgenden drei Faktoren massiv beeinflusst wird:

  • Zusammensetzung der Teams im Bezug auf die vorhandenen Fähigkeiten (Skills)
  • Verschiedene Systemlandschaften
  • Aufteilung der Systemverantwortlichkeiten auf die Teams

Hierzu werde ich die typischen Entwicklungsschritte eines Scrum Teams mit vier verschiedenen Szenarien am selben kleinen Beispiel aufzeigen. In jedem Szenario gilt es, die folgende Vision/Idee umzusetzen:

Vision / Idee

Unsere Kunden können ihre Rechnungsart selbständig im Kundencenter auf Direct debit, eBill oder Papierrechnung wechseln.

Diese Szenarien geben einen guten Einblick, wo in der Praxis ungewollter Aufwand und Abstimmungsbedarf entsteht und weshalb wir der Meinung sind, dass durch die geschickte Kombination von einer Teamorganisation und dazu passender Architektur, eine enorme Effizienzsteigerung möglich ist. Diese effiziente Variante ist beschrieben auf Optimale Teamorganisation mit passender aspektorientierter Systemarchitektur.

Überblick:

  • Agile Teams und Scrum
    Zeigt die wichtigsten Punkte von Scrum zum besseren Verständnis der nachfolgenden Kapiteln.
  • Szenario 1
    Dieses Szenario betrachtet einen einzigen Microservice der von einem Team mit full stack Entwicklern entwickelt und gewartet wird.
  • Szenario 2
    Dieses Szenario betrachtet einen einzigen Microservice der von einem Team gewartet wird, dessen Entwickler sich jeweils nur auf einem Layer auskennen.
  • Szenario 3
    Dieses Szenario betrachtet einen einzigen Microservice dessen Layer jeweils von verschiedenen Teams gewartet werden.
  • Szenario 4
    Systemarchitektur wie sie typischerweise in der realen Welt vorkommt.
  • Optimale Teamorganisation mit passender aspektorientierter Systemarchitektur
    Die Kombination von Teamorganisation und passender Architektur welche eine gute Effizient ermöglicht.

Scrum

Gemäss Scrum besteht ein agiles Team aus einem Product Owner, einem Scrummaster und weiteren Teammitgliedern. Moderne Teams versuchen nicht nur, die Entwicklungsaspekte abzudecken, sondern beinhalten auch die Skills, welche für das Testing, die Security und den Betrieb nötig sind. Ein solches Team könnte also wie folgt zusammengestellt werden:

Scrum arbeitet mit einem sich immer wiederholenden 2-4 wöchigen Ablauf, in welchem das Sprint Backlog abgearbeitet wird. Basierend auf einer vom Product Owner formulierten Vision werden User Stories geschrieben und dem Backlog zugefügt. Der Backlog sollte immer genügend gefüllt sein, sodass der Scrummaster den nächsten 2-4 wöchigen Sprint mit den User Stories füllen kann und das Team mit der Operationalisierung beginnen kann.

Unser oben beschriebenes Scrum Team würde wie folgt arbeiten um die Vision umzusetzen und zu operationalisieren:

Der Product Owner formuliert die Vision.
Experience Designer und Requirements Engineer analysieren die Vision, kreieren die Experience und erstellen User Stories.
Der Scrum Master plant den Sprint und weist die User Stories dem Sprint zu.
Entwickler, Tester, Sicherheitsverantwortliche und der Betriebsverantwortliche arbeiten gemeinsam an der Umsetzung und Operationalisierung der User Stories.

Die folgenden Kapitel werden diesen Prozess mit unterschiedlichen Randbedingungen der Teamorganisation und der IT-Architektur am konkreten Beispiel illustrieren.