1 Entwicklungsmodelle
Das Management des deutschlandweit empfangbaren Fernsehsenders SWT-TV hat erkannt, dass die Zukunft des Fernsehens online stattfinden wird. Daher wurde beschlossen das Online-Angebot des Senders insbesondere um eine zeitgemäße Mediathek zu erweitern. In der Mediathek sollen gesendete Inhalte zeitnah für die Zuschauerschaft bereitgestellt werden. Außerdem soll es möglich sein, für ausgewählte Inhalte einen Live-Stream zur Verfügung zu stellen. Um den Zuschauern eine Anmeldung für das zukünftig geplante SWT-TV-Premium Angebot schmackhaft zu machen, ist außerdem ein Premium-Bereich mit besonderen Inhalten angedacht. Das Management tritt an Sie und Ihr Entwicklerteam heran und bittet Sie um eine Umsetzung der oben beschriebenen Anforderungen.
a) Mit welchem Entwicklungsmodell würden Sie geschickter Weise das oben beschriebene Projekt umsetzen? Begründen Sie ihre Entscheidung gegenüber dem Management, indem Sie Vor- und Nachteile von etablierten Prozessmodellen abwägen.
📚 Know-how zur Wahl des Entwicklungsmodells
Scrum ist ein agiles Framework, das sich besonders gut für Projekte eignet, bei denen Anforderungen noch unklar oder sich häufig ändern. Es fördert die iterative Entwicklung, regelmäßiges Feedback und eine enge Zusammenarbeit im Team, was zu einer höheren Flexibilität und Anpassungsfähigkeit führt.
-
Ich würde Scrum als iteratives Entwicklungsmodell vorschlagen. Die jetzige Beschreibung von SWT-TV ist noch relativ grob, und Scrum bietet eine hohe Flexibilität, um unklare oder sich verändernde Anforderungen schrittweise zu konkretisieren.
-
Mit Scrum könnten wir mithilfe von User Stories und Sprints das Projekt in kleine, greifbare Einheiten zerlegen und regelmäßig funktionierende Inkremente liefern. Dadurch hätten wir die Möglichkeit, frühzeitig Feedback vom Management oder den zukünftigen Nutzern einzuholen und die Anforderungen dynamisch anzupassen.
-
Zusätzlich ermöglichen die Scrum-Rituale wie Retrospektiven eine kontinuierliche Verbesserung des Entwicklungsprozesses, was die Qualität des Endprodukts steigert. Insgesamt bietet Scrum eine transparente, iterative und kollaborative Methode, um ein gutes Produkt für den Markt zu entwickeln.
b) Welche besonderen Gefahren und Nachteile müssen Sie ggf. bei dem von Ihnen gewählten Entwicklungsmodell in Kauf nehmen?
⚠️ Risiken bei der Anwendung von Scrum
- Unklare Anforderungen können zu Missverständnissen und Verzögerungen führen.
- Hoher Kommunikationsaufwand durch regelmäßige Meetings kann Ressourcen binden.
- Scope Creep besteht, wenn ständig neue Anforderungen hinzugefügt werden.
- Abhängigkeit von einem erfahrenen Team: Unerfahrene Teams könnten Schwierigkeiten mit der Selbstorganisation haben.
- Unklare User Stories: Missverständnisse durch unpräzise formulierte Anforderungen können die Entwicklung verzögern.
- Hoher Kommunikationsaufwand: Regelmäßige Meetings und Abstimmungen erfordern viel Zeit und Ressourcen.
- Schwierige Planbarkeit: Kosten und Zeitrahmen sind schwer exakt im Voraus festzulegen.
- Gefahr von Scope Creep: Neue Anforderungen können den ursprünglichen Projektumfang überdehnen.
- Teamabhängigkeit: Scrum setzt ein hohes Maß an Selbstorganisation voraus, was bei einem weniger erfahrenen Team problematisch sein kann.
2 Skalierung agiler Methoden
a) Warum ist es notwendig, Methoden und Dokumentation von plangesteuerten Ansätzen zu übernehmen, wenn agile Methoden auf große Projekte skaliert werden, die von verteilten Entwicklerteams entwickelt werden?
💡 Ansätze zur Skalierung agiler Methoden
- SAFe (Scaled Agile Framework): Bietet eine umfassende Struktur zur Skalierung von Agile auf Unternehmensebene.
- LeSS (Large Scale Scrum): Erweiterung von Scrum für größere Teams, die eine gemeinsame Vision verfolgen.
- Spotify-Modell: Fokus auf autonome, funktionsübergreifende Teams (Squads) mit einer starken Kultur der Zusammenarbeit.
-
Agile Methoden in größeren Teams sind schwer durchzusetzen, da diese verglichen zu plangesteuerten Ansätzen viel Overhead haben. Beispielsweise erfordern sie regelmäßige Meetings und eine enge Abstimmung zwischen den Teams, was in großen Projekten zeitaufwändig ist.
-
In größeren und verteilten Entwicklerteams ist es nicht möglich, zu wissen, was jedes Team und jeder Mitarbeiter genau zu tun hat. Die Verantwortung darüber, wer welche Aufgaben in welchem Sprint übernimmt, wird schwerer nachvollziehbar und erfordert klare Strukturen.
-
Plangesteuerte Methoden bieten eine stabile Grundlage mit klar definierten Prozessen und Rollen, die den Overhead in großen Teams reduzieren und eine einheitliche Organisation ermöglichen.
b) Erklären Sie kurz, was das Scrum of Scrums ist und wie es funktioniert.
📝 Wichtig bei Scrum of Scrums
- Regelmäßige Kommunikation: Stellen Sie sicher, dass Vertreter regelmäßig und effektiv kommunizieren.
- Klare Rollen: Jeder Vertreter sollte klar wissen, welche Informationen relevant sind und wie sie weitergegeben werden.
- Transparenz: Halten Sie alle Teams über den Gesamtfortschritt informiert, um Synchronisation zu erleichtern.
Scrum of Scrums ist eine skalierte agile Technik, die es mehreren Entwicklerteams ermöglicht, sich auszutauschen und gemeinsam an komplexen Lösungen zu arbeiten. Ein großes Team wird hierbei in kleinere Teams aufgeteilt, die unabhängig voneinander arbeiten, aber in engem Kontakt stehen.
Jedes dieser Teams wählt einen Vertreter, den sogenannten Scrum of Scrums Master. Diese Vertreter treffen sich regelmäßig, um den Fortschritt zu besprechen, Abhängigkeiten zwischen den Teams zu identifizieren und mögliche Hindernisse zu lösen. Dadurch wird sichergestellt, dass die Zusammenarbeit zwischen den Teams reibungslos funktioniert und das Projektziel effizient erreicht wird.
c) Bei Scrum in größeren Projekten sollen die Auslieferungszyklen der Teams aufeinander abgestimmt sein. Welche Probleme können hierbei auftreten?
⚠️ Herausforderungen bei der Synchronisation
- Timing: Unterschiedliche Sprint-Dauern oder -Startzeiten können die Koordination erschweren.
- Transparente Abhängigkeiten: Identifizieren und kommunizieren Sie Abhängigkeiten frühzeitig, um Verzögerungen zu minimieren.
- Gemeinsame Ziele: Fördern Sie eine gemeinsame Vision und Ziele, um unterschiedliche Prioritäten zu harmonisieren.
-
Abhängigkeiten zwischen Teams: Wenn ein Team länger braucht als geplant, können andere Teams, die auf dessen Ergebnisse angewiesen sind, ebenfalls Verzögerungen erleiden. Dies führt zu einer Kettenreaktion, die den gesamten Auslieferungszeitplan beeinflusst.
-
Koordinationsaufwand: Die Synchronisation der Sprints und Auslieferungszyklen zwischen mehreren Teams erfordert einen hohen Abstimmungsaufwand, was zusätzliche Ressourcen und Zeit benötigt.
-
Unterschiedliche Prioritäten: Teams könnten unterschiedliche Ziele oder Prioritäten innerhalb eines Projekts haben, was die Abstimmung erschwert.
-
Kommunikationsprobleme: In großen oder verteilten Teams kann es zu Missverständnissen kommen, die die Zusammenarbeit behindern und den Projektfortschritt verzögern.
U User Stories
U Aufgaben sind Aufgaben mit größerer kreativer Flexibilität. Sie werden in den Zentralübungen behandelt, z.B., in dem Sie ihre Lösung vorstellen. Die große Varianz der U Aufgaben erlaubt keine Musterlösungen. Die Lösungen, die Sie hier finden, sind daher nur Beispiele, die als Anhaltspunkt dienen.
a) Erstellen Sie eine User Story eines Kunden der SWT-TV Mediathek.
🛠️ Best Practices für User Stories
- INVEST-Prinzip: User Stories sollten unabhängig, verhandelbar, wertvoll, schätzbar, klein und testbar sein.
- Klarheit und Präzision: Stellen Sie sicher, dass die Anforderungen klar und präzise formuliert sind, um Missverständnisse zu vermeiden.
- Akzeptanzkriterien definieren: Detaillierte Akzeptanzkriterien helfen dem Entwicklungsteam, die Anforderungen besser zu verstehen und umzusetzen.
User-Story:
- Als Benutzer möchte ich in der SWT-TV Mediathek all meine angefangenen Shows leicht weiterschauen können, um mein Seherlebnis nahtlos fortzusetzen.
Akzeptanzkriterien:
- Die Homepage hat einen Bereich „Weiterschauen“, in dem der Nutzer seine angefangenen Inhalte sehen kann.
- Alle Inhalte werden in einer vertikal scrollbaren Liste karussellartig dargestellt.
- Beim Klicken auf die Vorschau des jeweiligen Inhalts wird der Stream an der Stelle fortgesetzt, an der der Nutzer das letzte Mal aufgehört hat.
- Der Fortschritt wird zuverlässig gespeichert, auch bei einem Gerätewechsel.
(Definition of Done (DoD):)
- Die Funktion „Weiterschauen“ wurde erfolgreich implementiert und getestet.
- Alle angefangenen Inhalte werden korrekt gespeichert und angezeigt.
- Der Stream setzt immer zuverlässig an der letzten Stelle fort.
- Die Funktion wurde im Team-Review geprüft und dokumentiert.
b) Erstellen Sie eine User Story eines Mitarbeiters, der Inhalte auf SWT-TV Mediathek bereitstellt.
📋 Erweiterte Akzeptanzkriterien
- Dateiformat-Unterstützung: Unterstützen Sie verschiedene Dateiformate, um Flexibilität beim Hochladen zu gewährleisten.
- Sicherheitsaspekte: Implementieren Sie Sicherheitsmaßnahmen wie Authentifizierung und Autorisierung, um unbefugten Zugriff zu verhindern.
- Fehlerbehandlung: Stellen Sie sicher, dass Fehler klar und verständlich kommuniziert werden, damit Mitarbeiter schnell reagieren können.
User-Story:
- Als Mitarbeiter möchte ich Inhalte auf der SWT-TV Mediathek hochladen können, um die Webseite aktuell zu halten.
Akzeptanzkriterien:
- Die Mitarbeiterseite bietet eine einfache, intuitive Benutzeroberfläche.
- Es gibt eine leicht auffindbare Option „Hochladen“, idealerweise in der Navigationsleiste der Mitarbeiter-/Admin-Seite.
- Beim Klick auf „Hochladen“ kann der Mitarbeiter folgende Details eingeben: Titel, Kategorie, Erscheinungsjahr, Beschreibung, etc.
- Ein „Hochladen“-Button lädt die Inhalte auf die Webseite hoch.
- Der Mitarbeiter wird über den Status des Uploads benachrichtigt:
- Bei Erfolg: Eine Nachricht bestätigt, dass der Inhalt erfolgreich hochgeladen wurde.
- Bei Fehler: Eine Nachricht weist auf den Fehler hin.
- Bei Erfolg: Eine Nachricht bestätigt, dass der Inhalt erfolgreich hochgeladen wurde.
K Agile Entwicklungsprozesse
1. Geben Sie an, ob die folgenden Aussagen über agile Softwareentwicklung wahr oder falsch sind. Korrigieren Sie gegebenenfalls falsche Aussagen:
🧩 Zusätzliche Agile Prinzipien
- Kundenzufriedenheit: Durch kontinuierliche Lieferung wertvoller Software wird die Kundenzufriedenheit erhöht.
- Anpassungsfähigkeit: Agile Teams passen sich flexibel an Veränderungen an, um stets den besten Mehrwert zu liefern.
i) Pair Programming ist eine Praktik der agilen Softwareentwicklung.
- Wahr
ii) Ausführliche Dokumentation ist wichtiger als funktionierende Software.
- Falsch, zuerst sollte eine funktionierende Software bereitgestellt werden und idealerweise beim Entwickeln eine Dokumentation dazu erstellt werden, sonst spätestens im Nachhinein. Eine Dokumentation für eine nicht funktionierende Software bringt rein gar nichts, außer eventuell aus dem Fehler zu lernen.
iii) Prozesse und Werkzeuge sind wichtiger als Individuen und Interaktionen.
- Falsch, die Individuen stehen bei der agilen Entwicklung im Vordergrund, da man die Annahme trifft, dass nur glückliche Individuen auch gute Arbeit leisten können.
2. Ordnen Sie den Scrum-Artefakten die zuständige Rolle zu:
📌 Wichtiges Know-how zu Scrum-Rollen und Aufgaben
Scrum-Rollen:
- Product Owner:
- Verantwortlich für das Product Backlog: Erstellen, Priorisieren und Pflegen.
- Vermittler zwischen Stakeholdern und Team.
- Ziel: Maximierung des Produktwertes.
- Scrum Master:
- Moderiert den Scrum-Prozess und stellt sicher, dass die Prinzipien eingehalten werden.
- Entfernt Hindernisse (Impediments) für das Team.
- Unterstützt das Team bei der Selbstorganisation und Effizienzsteigerung.
- Development Team:
- Cross-funktionales Team, das für die Umsetzung der Aufgaben zuständig ist.
- Verantwortlich für das Sprint Backlog und das Potentially Shippable Product Increment.
- Organisiert sich selbst und entscheidet, wie Aufgaben umgesetzt werden.
Aufgabenübersicht:
- Product Backlog:
- Erstellt und gepflegt vom Product Owner.
- Sprint Backlog:
- Erstellt und verwaltet vom Development Team.
- Potentially Shippable Product Increment:
- Entwickelt vom Development Team.
Weitere wichtige Punkte:
- Daily Scrum: Kurzes tägliches Meeting zur Abstimmung.
- Sprint Review: Vorstellung des Inkrements, um Feedback zu erhalten.
- Sprint Retrospektive: Reflexion und Verbesserung des Teams.
- Timeboxing: Alle Scrum-Events haben eine feste Zeitvorgabe.
-
Product Backlog → Product Owner
Verantwortlich für Erstellung, Priorisierung und Pflege. -
Sprint Backlog → Development Team
Erstellt und verwaltet während des Sprint-Planning. -
Potentially Shippable Product Increment → Development Team
Liefert ein funktionsfähiges Inkrement am Ende jedes Sprints.
🛠️ Zusätzliche Tipps zu Scrum-Artefakten
- Product Backlog Refinement: Regelmäßiges Überarbeiten und Detaillieren des Product Backlogs hilft, die nächsten Sprints besser zu planen.
- Definition of Done (DoD): Eine klare DoD stellt sicher, dass alle Teammitglieder wissen, wann eine Aufgabe als abgeschlossen gilt.
3. Ordnen Sie den folgenden Aussagen eine Vorgehensweise der Agilen Methoden zu:
📚 Weitere Agile Praktiken
- Continuous Integration (CI): Automatisieren Sie den Integrationsprozess, um frühzeitig Fehler zu erkennen.
- Test-Driven Development (TDD): Schreiben Sie Tests vor dem Code, um die Qualität und Wartbarkeit zu erhöhen.
i) Entwickler:innen arbeiten an allen Bereichen des Systems, sodass sich keine „Experteninseln“ herausbilden.
- Vorgehensweise: Cross-funktionale Teams / Collective Code Ownership - Diese Vorgehensweise fördert die Zusammenarbeit und verhindert, dass Wissen nur bei einzelnen Personen („Experteninseln“) bleibt.
ii) Kontinuierliche Verbesserungen, die die Wartbarkeit des Codes erhöhen.
- Vorgehensweise: Refactoring - Refactoring ist ein zentraler Bestandteil agiler Methoden, um den Code ständig zu verbessern und wartbar zu halten.