Sprint (Softwareentwicklung)
Was ist ein Sprint (Softwareentwicklung)?
In der agilen Produktentwicklung und im Softwareprojektmanagement ist ein Sprint ein festgelegter Zeitraum, in dem bestimmte Arbeiten abgeschlossen und für die Überprüfung vorbereitet werden müssen.
Die Einbindung von Sprints in den Softwareentwicklungslebenszyklus fördert die iterative Entwicklung und kontinuierliche Verbesserung und unterstützt Unternehmen dabei, qualitativ hochwertige Software schneller und oft zu geringeren Kosten zu produzieren.
So planen Sie Sprints in Agile
In Agile-Frameworks wie Scrum und Kanban sind mehrere Sprints die Norm. Die Dauer eines Sprints wird vom Scrum Master festgelegt, der als Moderator des Teams und Manager des Scrum-Frameworks fungiert.
Vor einem Sprint
Jeder Sprint beginnt mit einer Planungssitzung, an der der Product Owner (die Person, die die Arbeit in Auftrag gibt), der Scrum Master und das Entwicklungsteam gemeinsam teilnehmen. Während der Sitzung vereinbaren alle Beteiligten genau, welche Arbeiten während des Sprints erledigt werden sollen. Außerdem legen sie die Kriterien fest, anhand derer der Product Owner am Ende des Sprints entscheidet, ob die Arbeit angenommen oder abgelehnt wird, und unterzeichnen diese Kriterien. Einfach ausgedrückt hilft die Sitzung ihnen dabei, Folgendes zu bestimmen:
- Welche Arbeiten werden wir in diesem Sprint durchführen?
- Wie werden wir sie durchführen?
Das Entwicklungsteam hat das letzte Wort, wenn es darum geht, zu bestimmen, wie viel Arbeit während des Sprints realistisch erledigt werden kann, und der Product Owner bespricht das Ziel des Sprints und die Product Backlog-Elemente, die zur Erreichung dieses Ziels erledigt werden müssen. Der Product Owner hat auch das letzte Wort darüber, welche Kriterien erfüllt sein müssen, damit die Arbeit genehmigt und akzeptiert wird.
Das Team und der Product Owner müssen sich auf die Erstellung des Sprint-Backlogs einigen, das heißt auf die spezifischen Arbeitsaufgaben, die während eines Sprints erledigt werden sollen, sowie auf einen Plan zur Erledigung dieser Aufgaben. Diese Parteien besprechen auch, wie viele Tage ein Sprint dauern soll. Sobald dies festgelegt ist, sollte die Dauer aller zukünftigen Sprints gleich sein. Traditionell dauert ein Sprint 30 Tage.
Während eines Sprints
Nach Beginn eines Sprints tritt der Product Owner in den Hintergrund und lässt das Team seine Arbeit erledigen. Während des Sprints nimmt das Team Elemente aus dem Sprint-Backlog und markiert sie als in Bearbeitung oder erledigt. Außerdem hält es täglich Stand-up-Meetings ab – sogenannte Daily Scrums –, um den Fortschritt zu besprechen und Lösungen für Probleme zu finden, die das Team daran hindern können, das Sprint-Ziel zu erreichen.
Der Projektverantwortliche kann an diesen Besprechungen als Beobachter teilnehmen, darf jedoch nicht mitwirken oder Änderungswünsche äußern. Er darf lediglich Fragen des Teams beantworten. Nur der Scrum Master oder Projektmanager ist befugt, den Sprint zu unterbrechen oder zu beenden.
Nach einem Sprint
Am Ende des Sprints präsentiert das Team seine abgeschlossenen Arbeiten dem Projektverantwortlichen und anderen Stakeholdern im Rahmen des Sprint Reviews. Dieser entscheidet dann anhand der in der Sprint-Planungssitzung festgelegten Kriterien, ob die Arbeit akzeptiert oder abgelehnt wird.

Sprint-Rollen
An einem Sprint sind verschiedene Rollen beteiligt, die jeweils unterschiedliche Teile des Prozesses übernehmen. Zu diesen Rollen gehören die folgenden:
- Product Owner oder Produktverantwortlicher. Diese Person vertritt das Unternehmen oder die Nutzergemeinschaft und ist die Schnittstelle zwischen dem Entwicklungsteam und den Kunden. Der Product Owner ist dafür zuständig, gemeinsam mit der Nutzergruppe zu definieren, zu priorisieren und anzupassen, welche Funktionen die Produktversion enthalten soll. Außerdem akzeptiert oder lehnt er Arbeitsergebnisse ab und hält die Kunden über den Projektstatus auf dem Laufenden.
- Scrum Master. Diese Person ist der Hauptmoderator für das Entwicklungsteam des Projekts. Sie verwaltet den Prozess des Informationsaustauschs während des Sprints, leitet Stand-up-Meetings und hilft dem Team, durch die Schlichtung von Problemen und die Beseitigung von Hindernissen auf Kurs zu bleiben. Ihr Hauptziel ist es, die Sprints zu beobachten, während jedes Sprints für Informationstransparenz zu sorgen, das restliche Team zu coachen und Möglichkeiten zur Verbesserung der Arbeitsabläufe im Verlauf eines Sprints zu identifizieren.
- Scrum-Team. Diese Gruppe von Personen ist für die Ausführung der Arbeit verantwortlich, insbesondere für die Produkt-Backlog-Elemente, die zur Erreichung des Sprint-Ziels abgeschlossen werden müssen. Zum Team können auch Tester, Architekten, Designer und Mitarbeiter aus dem IT-Betrieb gehören, die zusammenarbeiten, um eine Reihe von Arbeitsaufgaben innerhalb des zeitlich begrenzten Zeitraums eines Sprints zu erledigen. Während der Scrum Master dafür verantwortlich ist, das Team zu schützen und sicherzustellen, dass es während jedes Sprints konzentriert bleibt, ist das Team selbstverwaltet und letztendlich dafür verantwortlich, gemeinsam zu bestimmen, wie seine Ziele erreicht werden sollen.
Sprint-Artefakte und -Zeremonien
In der Agile Scrum-Methodik liefern Artefakte die wichtigsten Informationen, die ein Scrum-Team benötigt, um das zu entwickelnde Produkt sowie die abgeschlossenen und geplanten Aktivitäten für das Projekt zu verstehen.
Beispiele für Artefakte sind:
- Produkt-Backlogs
- Sprint Backlogs
- Burndown Charts
- Planungstreffeninkremente
- Sprint Reviews und Retrospektiven
- User Stories
Zusammen fördern diese Artefakte die Transparenz im Sprint und liefern nützliche Einblicke in die Leistung eines Sprints. Sie können erstellt werden, wenn das Team, der Product Owner und der Scrum Master die Arbeit planen, Sprint-Ziele festlegen, Aufgaben zur Erreichung dieser Ziele erstellen oder organisieren oder Ergebnisse analysieren und mit den Zielen vergleichen.
Zeremonien sind die Meetings, die für jeden Sprint abgehalten werden. Die Hauptteilnehmer dieser Zeremonien sind das Entwicklungsteam, der Product Owner und der Scrum Master.
Ein Sprint kann viele Zeremonien umfassen, darunter die folgenden:
- Sprint-Planungstreffen
- Tägliche Scrum- oder tägliche Stand-up-Treffen
- Sprint Review
- Sprint- oder Agile-Retrospektive
Allerdings sind nicht alle diese Zeremonien obligatorisch. Um einen Sprint durchzuführen, muss ein Team nicht alle diese Meetings durchführen. Außerdem müssen Teams keine Scrum-Teams sein, um an diesen Zeremonien teilzunehmen und von den Vorteilen zu profitieren.
Sprint-Workflow und -Prozess
Der Sprint-Workflow soll den Teammitgliedern helfen, ihre Arbeit zu bewerten und während des gesamten Prozesses miteinander zu kommunizieren. Der Workflow wird für jeden Sprint befolgt und umfasst in der Regel die folgenden Schritte:
- Product Backlog erstellen und Produktziel definieren. Erstellen Sie eine Liste der Aufgaben, die vor der Veröffentlichung des Produkts erledigt werden müssen. Das Produktziel, das den zukünftigen Zustand des in der Entwicklung befindlichen Produkts beschreibt, ist im Produkt-Backlog enthalten. Das Backlog wird vom Product Owner erstellt, der dem Scrum Master und dem Scrum-Team eine Liste mit priorisierten Elementen zur Verfügung stellt. Das Backlog basiert auf User Stories, die sich auf Funktionen konzentrieren, die den Typ des Endnutzers, seine Anforderungen an das Produkt und die Gründe dafür berücksichtigen. Es wird während des Sprints nach Bedarf verfeinert.
- Sprint planen. Das Team bespricht die User Stories mit der höchsten Priorität und entscheidet, was im Sprint geliefert werden kann.
- Sprint-Backlog erstellen und Sprint-Ziel definieren. Der Sprint-Backlog wird vom gesamten Team vereinbart und ist eine Liste von Elementen, die festlegt, was das Entwicklungsteam während des Sprints fertigstellen wird. Dies sorgt für die notwendige Fokussierung, um den Sprint und die Backlog-Elemente erfolgreich abzuschließen.
- Sprint durchführen. Der Zeitrahmen, in dem die im Sprint-Backlog definierten Arbeiten abgeschlossen werden müssen. Idealerweise sollte dieser Zeitraum lang genug sein, um dem Team Flexibilität und Freiheit bei der Arbeit zu geben. Er sollte aber auch kurz genug sein, um Komplexität und Risiken zu minimieren und häufiges Feedback und schnelle Änderungen zu ermöglichen.
- Tägliche Scrum Meetings abhalten. Unter der Leitung des Scrum Masters kommt das Team zu kurzen täglichen Besprechungen zusammen, in denen es bespricht, was es fertiggestellt hat, woran es gerade arbeitet und welche Probleme die Arbeit behindern.
- Das Ergebnis festlegen. Das Ergebnis eines Sprints ist ein hypothetisch nutzbares Produkt. Der Product Owner kann entscheiden, ob das Produkt zur Freigabe bereit ist oder ob zusätzliche Funktionen erforderlich sind.
- Sprint beenden. Am Ende eines Sprints finden zwei Meetings statt:
- Sprint Review. Das Team präsentiert seine Arbeit dem Product Owner.
- Sprint-Retrospektive. Das Team bespricht gemeinsam mit dem Scrum Master und dem Product Manager, was zur Verbesserung der Prozesse getan werden kann. Ein wichtiges Ziel ist die Förderung der kontinuierlichen Verbesserung.
Scrum versus Sprint
Ein weit verbreiteter Irrtum ist, dass Scrum und Sprints dasselbe sind. Es handelt sich um verwandte Konzepte, aber nicht um dasselbe.
Sprints sind zeitlich begrenzte Zeiträume von einer Woche bis zu einem Monat, in denen ein Product Owner, ein Scrum Master und ein Scrum-Team daran arbeiten, eine bestimmte Produktergänzung fertigzustellen. Während eines Sprints wird daran gearbeitet, neue Funktionen auf der Grundlage der User Stories und des Backlogs zu erstellen. Ein neuer Sprint beginnt unmittelbar nach Ende des aktuellen Sprints. Durch die Aufteilung des Entwicklungsprozesses in eine Reihe von Iterationen oder Sprints können Entwicklungsteams flexibler auf Veränderungen reagieren und sich daran anpassen, häufig funktionsfähige Software liefern und die Bereitstellung des Endprodukts beschleunigen.
Scrum ist das spezifische Framework, das unter dem Dach von Agile zur Entwicklung komplexer Produkte verwendet wird. In diesem Framework wird der Entwicklungslebenszyklus in mehrere Sprints unterteilt. Der Zweck dieser Sprints besteht darin, einem Team dabei zu unterstützen, ein Softwareprodukt iterativ zu entwickeln und ein ansonsten großes, komplexes Projekt einfacher und überschaubarer zu gestalten. Der Begriff Scrum wird auch verwendet, um die täglichen Stand-up-Meetings zu beschreiben, die während eines Sprints stattfinden.
Scrum-Produktivitätswerkzeuge
In der modernen Produktentwicklung kann aus einer Vielzahl von Scrum-Produktivitätswerkzeugen ausgewählt werden. Jedes Werkzeug hat seine eigenen Funktionen und Fähigkeiten, aber die meisten sind darauf ausgelegt, Teams dabei zu helfen, die Scrum-/Sprint-Methodik optimal zu nutzen und Herausforderungen zu minimieren, die während des Softwareentwicklungslebenszyklus auftreten können. Die besten Werkzeuge unterstützen auch Sprint-Zeremonien, erleichtern datengesteuerte kontinuierliche Verbesserungen, liefern Sprint-Updates in Echtzeit, ermöglichen die Zusammenarbeit und ermöglichen es Teams, Task Boards zu erstellen, User Stories zu dokumentieren und Sprint-Aufgaben effizient zu planen und abzuschließen.
Zu den beliebten Scrum-Tools gehören die folgenden:
- Jira. Jira von Atlassian ist ein Projektmanagement-Tool, das Teams dabei unterstützt, Aufgaben zu planen und zu organisieren, die Arbeit zu verfolgen, Backlogs zu verfeinern, Sprints zu planen und auf Änderungen und Herausforderungen zu reagieren.
- nTask. nTask ist eine End-to-End-Projektmanagement-Plattform mit Kanban-Boards zur Planung von Projekten, zur Verwaltung der Arbeit und zur Aufrechterhaltung der Konzentration. Es umfasst Gantt-Diagramme und Funktionen zum Teilen von Dateien, Verfolgen von Problemen, Planen von Besprechungen, Bewerten von Risiken und Verfolgen von Projekten, Problemen und Leistungskennzahlen.
- QuickScrum. QuickScrum ist ein umfassendes Framework für Projektmanagement, Ressourcenmanagement und Zeitmanagement. Es umfasst zahlreiche Funktionen, mit denen Teams auf einfache Weise Produkt-Backlogs erstellen, Ressourcen planen, Sprints und Releases planen, Projektzeiterfassungen erstellen, Berichte erstellen und Zeremonien durchführen können.
- ScrumDo. Die ScrumDo-Plattform unterstützt alle wichtigen agilen Management-Frameworks, einschließlich Scrum und Kanban. Sie umfasst Boards, Aufgaben, kontextbezogene Mehrkanal-Konversationen, Meilensteine und Synchronisierungsfunktionen, um Aktivitäten zu organisieren, Ideen zu sammeln, die Dokumentation zu vereinfachen und Abhängigkeiten zu verwalten.
- Scrumwise. Scrumwise ist ein Tool zur Verwaltung von Scrum-Projekten, zur Erstellung von Backlogs und zur Planung von Releases. Benutzer können ihre eigenen Scrum-Boards und Kanban-Boards entwerfen, um die Arbeit zu visualisieren und den Fortschritt mit Sprint-Burndown-Diagrammen und Release-Burnup-Diagrammen zu verfolgen.
Zusätzlich zu diesen Tools können Teams von Tools profitieren, die die Kommunikation, Zusammenarbeit, Wissensverwaltung und Planung verbessern. Beispiele hierfür sind Zoom, Trello, Slack und Confluence.
Vorteile von Scrum-Sprints gegenüber traditionellen Entwicklungsmethoden
Heutzutage werden viele Softwareentwicklungsmethoden verwendet, darunter Rapid Application Development und DevOps. Die meisten Entwicklungsteams verwenden das Agile- oder das Wasserfallmodell.
Das Wasserfallmodell stammt aus den 1950er Jahren und wird oft als traditionelle Softwareentwicklung bezeichnet. Es geht Projekte linear und sequenziell in verschiedenen Phasen an:
- Anforderungen
- Analyse
- Entwurf
- Codierung/Implementierung
- Testen
- Betrieb/Bereitstellung
- Wartung
Diese Phasen sind voneinander isoliert, wobei jede von der Fertigstellung der vorherigen Phase abhängt, und bis zur letzten Phase gibt es wenig oder gar kein Feedback von den Benutzern. Das Modell lässt wenig Spielraum für Designanpassungen in den mittleren Phasen des Entwicklungslebenszyklus, was die Produktauslieferung verzögern oder Teams daran hindern kann, ein Produkt zu liefern, das die Endbenutzer wünschen.
Agile Scrum-Sprints sind kollaborativer und anpassungsfähiger als die Phasen im Wasserfallmodell, da Sprints Softwarefunktionen und -anforderungen in Iterationen aufteilen, die in kurzen Zeiträumen bearbeitet werden. Sprints umfassen außerdem häufige Tests, sofortiges Feedback, tägliche Besprechungen, die kontinuierliche Behebung von Problemen und die Berücksichtigung der Geschichten und Bedürfnisse der Endnutzer, was zu einer schnelleren Veröffentlichung von Produkten mit äußerst relevanten Funktionen führen kann.
Weitere Vorteile von Sprints sind eine verkürzte Markteinführungszeit, eine schnellere Kapitalrendite, eine höhere Kundenzufriedenheit, eine verbesserte Teammoral und eine bessere Projektkontrolle.