Bevor wir uns damit beschäftigen, wie ein ideales Entwicklungsteam in Scrum aussehen soll, ist es zweckmäßig, sich nochmals die Verantwortung bzw. die Rolle des Teams vor Augen zu führen.
Die Rolle bzw. Hauptverantwortung
Das Team, bei Softwareprojekten ist das Entwicklungsteam, ist dafür verantwortlich, sämtliche Features des Entwicklungsvorhabens Ende zu Ende entsprechend der vereinbarten Eigenschaften (z.B.: Qualität, Sicherheit, etc.) gemäß der „Definition of Done“ zu liefern.
Es trifft als Expertenteam im Zuge der Umsetzung technische Entscheidungen zum Wohle des Kunden bzw. der Anwender. Es ist sich somit für die technische Realisierung bzw. für das „Wie“ der Umsetzung verantwortlich.
Aus diesem Rollenverständnis ergeben sich eine Reihe von Anforderungen an ein ideales Scrum Entwicklungsteam, deren Berücksichtigung beim „Aufstellen“ eines Umsetzungsteams und somit für den Erfolg im agilen Vorgehen, im Vergleich zum Wasserfall Modell, von zentraler Bedeutung sind. Wir zeigen die 6 wichtigsten Dinge, die zu beachten sind.
1. Ende zu Ende Verantwortung
In Scrum hat das Entwicklungsteam die Verantwortung, innerhalb eines Sprints, welcher einer Timebox von maximal vier Wochen entspricht, voll funktionsfähige Software zu liefern. Im Sprint Planning wird das Team selbst entscheiden, wie viele der am höchsten priorisierten Anforderungen sie im Sprint umsetzen und somit in einem getesteten, auslieferbaren Inkrement frei von bekannten Fehlern liefern wird. Sollten vor dem 1.Sprint noch nicht alle notwendigen Vorraussetzungen (z.B.: in Infrastruktur oder Architektur) geschaffen sein, kann es Sinn machen einen Sprint Zero zu machen.
Neben der technischen Umsetzung selbst zählt auch das Ausliefern nach vorherigem Test, also die Bereitstellung der Software auf einer produktionsnahen Umgebung zum Verantwortungsbereich des Teams. Es verantwortet damit den gesamten Zyklus von Anforderung bis Lieferung.
Zusätzlich steht das Scrum Entwicklungsteam in der Verantwortung, über die Anwendungsdomäne der Lösung zu lernen und bei der Arbeit am Produkt-Backlog mitzuhelfen und somit den Product Owner zu unterstützen. Insbesondere ist das Entwicklerteam dafür verantwortlich, bei der Priorisierung des Product Backlogs aus technischer Sicht auf entsprechende Abhängigkeiten oder notwendigen Re-Priorisierungen hinzuweisen.
Das Scrum Entwicklungsteam ist somit nicht die verlängerte Werkbank des Product Owner, sondern hat neben seiner Kernaufgabe der technische Umsetzung auch die Pflicht, sich als Expertenteam proaktiv und auf Augenhöhe mit dem Product Owner einzubringen - stets mit dem Ziel, den Geschäftswert der Lösung zu maximieren.
2. Autonomes Arbeiten ist der Schlüssel zum Erfolg
Innerhalb eines Sprints organisiert sich das Entwicklungsteam und seine Arbeit selbständig, um das Sprint Ziel zu erreichen. Es gibt außerhalb des Teams keinen Manager, Teamleiter oder Chefentwickler, der einzelnen Personen im Team anweist, was sie zu tun haben oder wie sie ihre Aufgaben erledigen sollen.
Das Team in Scrum entscheidet eigenständig (im Rahmen von Unternehmensvorgaben und gegebenen Rahmenbedingungen), wie es die Aufgabenstellung am besten und zum Wohle des Kunden bzw. Anwenders löst.
Das Entwicklungsteam wird von einem laufenden Lernprozess begleitet, reflektiert nach jedem Sprint die Lieferung (Sprint Review) sowie den Prozess der Erstellung (Retrospektive) und identifiziert Verbesserungen auf Basis der gewonnenen Erkenntnisse, um diese in den folgenden Iterationen zur Umsetzung zu bringen (PDCA).
Um dem Anspruch gerecht zu werden, beherrscht das Team nicht nur diverse Techniken zur Entscheidungsfindung in Teams (beispielsweise systemisches Konsensieren), sondern ist auch davon angetrieben, sich und die Lösung ständig zu verbessern.
Im organisatorischen Kontext bedeutet Autonomie des Teams aber auch, dass das Team selbst über die Aufnahme eines neuen Teammitglieds entscheidet. Jedes neue Teammitglied verändert potenziell das Teamgefüge und daher müssen solche Entscheidungen durch das Team getragen werden.
3. Full Stack bzw. T-shaped
Im Idealfall beherrschen alle EntwicklerInnen in einem Team sämtliche Fähigkeiten für die Ende zu Ende Lieferung des Produktes.
Das bedeutet, dass sie in mindestens ein bis zwei Bereichen über echtes Expertenwissen, gleichzeitig aber über möglichst breites Basiswissen in den anderen Domänen verfügen, um auch andere Aufgaben im Team übernehmen zu können.
Befindet sich eine Organisation im Übergang von einer klassischen, nach Funktionen aufgebauten Organisation hin zu Scrum, werden diese Fähigkeiten zunächst durch einzelne Personen ausgefüllt sein. Mit Scrum vollzieht sich dann eine Erweiterung der Fähigkeiten einzelner Personen, sodass die ursprünglichen Funktionen (wie Testen und Programmieren) nicht mehr 1:1 auf Personen abzubilden sind. Innerhalb des Teams sind dann idealerweise keine spezifischen Rollen mehr definiert.
4. Crossfunktionalität ist ein Muss
Damit das Scrum Entwicklungsteam der Verantwortung gerecht werden kann, das Produkt Ende zu Ende zu liefern, müssen im Team sämtliche dafür notwendigen Skills (inkl. Soft Skills) vertreten sein.
In der Regel sind das:
- Konzeption
- Design
- Entwicklung (Frontend, Backend)
- Test
- Dokumentation
- Continuous Delivery
- Scrum
Es werden also alle entsprechenden Fähigkeiten im Team benötigt, um dem Auftrag gerecht zu werden. Im Team befinden sich Programmierer ebenso wie Tester, Designer, Architekten etc. So zum Beispiel wäre es nicht zweckmäßig, das laufende Testen der Software Inkremente einem eigenen Testteam zu überlassen, das nicht Teil des Entwicklungsteam ist.
Darüber hinaus müssen die notwendigen Skills laufend verbessert und auf dem aktuellen Stand der Technik gehalten werden. Dazu zählen nicht nur die Kenntnisse hinsichtlich bestimmter Frameworks, sondern auch Fähigkeiten beispielsweise im Kontext Entwurfsmuster, agile Techniken (z. B. testgetriebene Entwicklung), DevOps, Tools, etc.
5. Vollzeit und co-located zur Verfügung stehen
Die Teammitglieder sollten Vollzeit bzw. 100% ihre verfügbaren Arbeitszeit für das Projekt zur Verfügung stehen und an dem zu entwickelnden Produkt arbeiten. Das stellt Kontinuität sicher und vermeidet Verschwendung bzw. Ineffizienzen durch Multitasking. Daher ist das Arbeiten eines Teammitglieds an mehreren Projekten „parallel“ zu vermeiden.
Die Mitglieder eines Scrum Entwicklungsteam sollen möglichst nahe beieinander arbeiten, idealerweise in einem Teamraum. Dort wo das nicht der Fall ist, muss man typischerweise mit deutlich eingeschränkter Kommunikation rechnen, was wiederum zu potentiellen Einbußen hinsichtlich Effektivität und Effizienz führt.
6. Die richtige Teamgröße in Scrum
Entwicklungsteams in Scrum sind klein, 3 bis 9 Personen, um effiziente Kommunikation im Team zu gewährleisten. Bei Teams, deren Größe die Obergrenze von neun Personen übersteigt, ist eine drastische Abnahme der Effizienz in der Kommunikation und damit einhergehend auch in der Umsetzung zu beobachten.
Das Team in Scrum besteht aus Experten in ihrem Fach, die gemeinsam an der Erstellung einer Lösung für die gestellten Aufgaben arbeiten. Je „eingespielter“ ein solches Team ist, desto höher wird das Vertrauen im Team sein, was wiederum die Effektivität positiv beeinflusst. Daher sollte darauf geachtet werden, dass in den Teams, was deren Zusammensetzung betrifft, ein gewisses Maß an Kontinuität herrscht.
Änderungen sollte nur dann vorgenommen werden, wenn dies unabdingbar sind oder dem Teamgefüge tatsächlich zuträglich ist.
12 Dinge, die Sie unbedingt vermeiden sollten
Zusammenfassend noch die 12 Dinge, die Sie unbedingt vermeiden sollten, wenn Sie ein Entwicklungsteam in Scrum aufstellen. Unsere Takeaways, um Effektivität, Effizienz und Motivation im Team zu maximieren.
- Nicht alle notwendigen Kompetenzen, um das Produkt Ende zu Ende liefern, sind im Team vorhanden.
- Bestimmte Kompetenzen sind nur bei einer Person oder Teile des Teams vorhanden.
- Das Team arbeitet an mehreren Projekten parallel.
- Das Team ist auf mehrere Standorte verteilt.
- Im Team existieren unterschiedliche Verantwortungen und Hierarchien (z.B.: Chefentwickler, Teamleiter, etc.)
- Das Team erhält Anweisungen, wie es die gestellten Aufgaben zu erfüllen hat.
- Das Team kann nicht selbst darüber entscheiden, wie viele der am höchsten priorisierten Anforderungen es für den nächsten Sprint umsetzen kann.
- Die Anzahl der Teammitglieder ist größer als 9.
- Dem Team wird nicht ausreichend Zeit zur permanenten Weiterentwicklung bzw. Know-how Aufbau eingeräumt.
- Die Teammitglieder verfügen nicht über die entsprechende Scum Ausbildung bzw. Zertifizierung (Scrum Developer, Scrum Master).
- Das Team wird in regelmäßigen Abständen neu „aufgestellt“.
- Die Aufgaben im Team werden nicht nach Priorität, sondern nach Fähigkeiten der Teammitglieder verteilt.