1. Was ist SCRUM und agile Entwicklung?
SCRUM ist ein Framework, das Menschen, Teams und Organisationen hilft, durch adaptive Lösungen für komplexe Probleme Wert zu generieren. Anstatt den Menschen detaillierte Anweisungen zu geben, leiten die Regeln von SCRUM ihre Beziehungen und Interaktionen. SCRUM basiert auf Empirie und Lean Thinking. Der Empirismus behauptet, dass Wissen aus Erfahrung kommt und Entscheidungen auf der Grundlage des Beobachteten getroffen werden. Lean Thinking reduziert „Abfall“ und konzentriert sich auf das Wesentliche.
SCRUM verwendet einen iterativen, inkrementellen Ansatz, um die Vorhersehbarkeit zu optimieren und Risiken zu kontrollieren, und bindet Gruppen von Personen ein, die zusammen über alle Fähigkeiten und Fachkenntnisse verfügen, um die Arbeit zu erledigen und diese Fähigkeiten bei Bedarf zu teilen oder zu erwerben. SCRUM basiert auf den folgenden Werten:
Engagement, Fokus, Offenheit, Respekt und Mut
Die SCRUM-Säulen sind
- Transparenz: Der Prozess und die Arbeit müssen sowohl für diejenigen, die die Arbeit ausführen, als auch für diejenigen, die die Ergebnisse der Arbeit erhalten, sichtbar sein. Transparenz ermöglicht Inspektion. Inspektion ohne Transparenz ist irreführend und verschwenderisch.
- Inspektion: Artefakte und der Fortschritt bei der Erreichung vereinbarter Ziele müssen häufig und sorgfältig überprüft werden, um potenziell unerwünschte Abweichungen oder Probleme zu erkennen
- Anpassung: Wenn Aspekte eines Prozesses außerhalb akzeptabler Grenzen abweichen oder wenn das resultierende Produkt inakzeptabel ist, muss der angewandte Prozess oder die zu produzierenden Materialien angepasst werden. Die Anpassung muss so schnell wie möglich vorgenommen werden, um weitere Abweichungen zu minimieren.
Zu den agilen Praktiken gehören die Erkennung von Anforderungen und die Verbesserung von Lösungen durch die Zusammenarbeit selbstorganisierender und funktionsübergreifender Teams mit ihren Kunden / Endbenutzern, adaptive Planung, evolutionäre Entwicklung, frühzeitige Bereitstellung, kontinuierliche Verbesserung und flexible Reaktionen auf Änderungen der Anforderungen, der Kapazität und des Verständnisses der zu lösenden Probleme.
Die Werte des agilen Manifests sind:
- Individuen und Interaktionen über Prozesse und Tools. Werkzeuge und Prozesse sind wichtig, aber es ist wichtiger, kompetente Menschen effektiv zusammenarbeiten zu lassen.
- Funktionierende Lösungen über eine umfassende Dokumentation. Eine gute Dokumentation ist nützlich, um den Menschen zu helfen, zu verstehen, wie die Lösung aufgebaut ist und wie sie verwendet wird, aber der Hauptpunkt der Entwicklung besteht darin, Lösungen zu erstellen, nicht die Dokumentation.
- Zusammenarbeit mit dem Kunden über Vertragsverhandlungen. Ein Vertrag ist wichtig, aber kein Ersatz für die enge Zusammenarbeit mit den Kunden, um herauszufinden, was sie brauchen.
- Auf Veränderungen reagieren, anstatt einem Plan zu folgen. Ein Projektplan ist wichtig, aber er darf nicht zu starr sein, um Veränderungen in der Technologie oder der Umwelt, die Prioritäten der Interessengruppen und das Verständnis der Menschen für das Problem und seine Lösung zu berücksichtigen.
Die meisten agilen Entwicklungsmethoden unterteilen die Produktentwicklungsarbeit in kleine Schritte, die den Aufwand für die Planung und das Design im Voraus minimieren. Iterationen oder Sprints sind kurze Zeitrahmen, auch Timeboxen genannt. Das Team arbeitet in allen Funktionen: Analyse, Planung, Design, Codierung und Testen. Am Ende der Iteration wird den Stakeholdern ein funktionierendes Produkt demonstriert. Dies minimiert das Gesamtrisiko und ermöglicht es dem Produkt, sich schnell an Änderungen anzupassen. Eine wichtige Regel ist „fail often and early“, da dies in den frühen Stadien in der Regel viel billiger ist Fehler zu machen und zu beheben, als wenn man sich einem endgültigen Veröffentlichungsdatum nähert. Ziel ist es natürlich, am Ende erfolgreich zu sein. Aber frühe Misserfolge, z.B. durch Missverständnisse in einem sehr frühen Stadium, können besser durch die ständige Einbeziehung der Stakeholder gelöst werden, und die Kosten und das Risiko von Ausfällen in einem frühen Prototyp-Stadion sind weniger entscheidend als in einer fertig entwickelten Lösung.
Der Hauptvorteil der agile-Methoden sind die schnellere Markteinführung, die Minderung von Risiken und eine bessere Kundenzufriedenheit. Die enge Zusammenarbeit mit Stakeholdern und Anwendern reduziert Zeit und Kosten sowie die Risiken der Entwicklung eines Produkts, das die Anforderungen der Benutzer nicht erfüllt.
Sprints sind der Herzschlag von SCRUM, bei dem Ideen in Werte / Kundennutzen verwandelt werden. Sie sind Ereignisse, die die Inspektion und Anpassung des Fortschritts in Richtung eines Produktziels sicherstellen. Wenn der Horizont eines Sprints zu lang ist, kann das Sprintziel ungültig werden, die Komplexität kann zunehmen und das Risiko kann größer werden. Kürzere Sprints können eingesetzt werden, um mehrere Lernzyklen zu generieren und das Risiko von Kosten und Aufwand auf einen kürzeren Zeitrahmen zu begrenzen. Jeder Sprint kann als kurzes Projekt betrachtet werden.
Phasen für jeden Sprint sind:
- Warum ist dieser Sprint wertvoll? Der Product Owner schlägt vor, wie das Produkt seinen Wert und Nutzen im aktuellen Sprint steigern könnte. Das Scrum-Team arbeitet zusammen, um ein Sprint-Ziel zu definieren und warum der Sprint für die Stakeholder wertvoll ist.
- Was kann man in diesem Sprint tun? Durch die Diskussion mit dem Product Owner wählen die Entwickler Elemente aus dem Product Backlog (im Grunde eine priorisierte Wunschliste von Aufgaben, die in einem Projekt erledigt werden müssen) aus, um sie in den aktuellen Sprint aufzunehmen. Die Auswahl mag eine Herausforderung sein, aber je mehr die Entwickler über ihre bisherige Leistung, ihre bevorstehende Kapazität und ihre Definition von Done wissen, desto zuversichtlicher werden sie in ihren Sprint-Prognosen sein.
- Wie wird die gewählte Arbeit erledigt? Für jedes ausgewählte Product Backlog-Element planen die Entwickler die Arbeit, die erforderlich ist, um ein Inkrement zu erstellen, das der Definition von done entspricht. Dies geschieht häufig durch die Zerlegung von Product Backlog-Elementen in kleinere Arbeitsaufgaben.
Das SCRUM-Team besteht aus einem SCRUM Master, einem Product Owner und Entwicklern. Innerhalb eines Scrum-Teams gibt es keine Unterteams oder Hierarchien. Es ist eine zusammenhängende Einheit von Fachleuten, die sich jeweils auf ein Ziel konzentrieren, das Produktziel. Die Teams sind funktionsübergreifend und selbstverwaltend. Das Team ist für alle produktbezogenen Aktivitäten verantwortlich, von der Zusammenarbeit mit den Stakeholdern, der Verifizierung, der Wartung, dem Betrieb, dem Experimentieren, der Forschung und Entwicklung und allem anderen, was erforderlich sein könnte.
Der SCRUM Master hilft jedem, SCRUM-Theorie und -Praxis zu verstehen, sowohl innerhalb des SCRUM-Teams als auch in der Organisation. Er / Sie ist verantwortlich für die Effektivität des SCRUM-Teams, indem er/sie es dem SCRUM-Team ermöglicht, seine Praktiken innerhalb des SCRUM-Frameworks zu verbessern. In der Regel werden sie dies tun, indem sie die Teammitglieder in Selbstmanagement und Cross-Funktionalität einbeziehen und das SCRUM-Team sich auf die Schaffung hochwertiger Verbesserungen konzentriert, die der „Definition of Done“ entsprechen, die Beseitigung von Hindernissen und durch die Schaffung eines positiven und produktiven Arbeitsfeldes, dass das Projekt innerhalb des Budgets und des Zeitrahmens bleibt.
Der SCRUM Master hilft dem Product-Owner bei der effektiven Produkt-Ziel-Definition und dem Product-Backlog-Management, und stellt sicher, dass das Scrum-Team die Notwendigkeit klarer und prägnanter Product Backlog-Elemente versteht. Er / sie hilft bei der Etablierung einer empirischen Produktplanung für ein komplexes Umfeld und fördert die Zusammenarbeit mit den Stakeholdern.
SCRUM Master führen, trainieren und coachen die Organisation auch bei der SCRUM-Einführung, planen und beraten SCRUM-Implementierungen innerhalb der Organisation, helfen Mitarbeiter*innen und Stakeholdern dabei, SCRUM zu verstehen und beseitigen Barrieren.
Der Product Owner ist dafür verantwortlich, den Wert des Produkts, der sich aus der Arbeit des Scrum-Teams ergibt, zu maximieren. Er / Sie ist auch für ein effektives Product Backlog-Management verantwortlich, das das Developing und die explizite Kommunikation des Produkt-Ziels, das Schneiden, Bestellen und klare Kommunizieren von Produkt-Backlog-Artikeln umfasst und sicherstellt, dass der Product backlog transparent, sichtbar und verständlich ist. Damit Product Owner erfolgreich sein können, muss die gesamte Organisation ihre Entscheidungen respektieren.
Der Product Owner ist eine Person, kein Komitee!
Developers sind die Leute im SCRUM-Umfeld, die das Ergebnis schaffen. Oft sind die spezifischen Fähigkeiten, die benötigt werden, breit gefächert, und daher ist Multi- oder Transdisziplinarität ein Muss. Entwickler sind immer dafür verantwortlich, einen Plan für den Sprint zu erstellen, die Qualität zu verbessern, ihre Pläne auf das Sprint-Ziel auszurichten und sich gegenseitig als Profis verantwortlich zu machen.