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.

  • 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?

  • 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?

  • 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.

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?

  • 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.

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.

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.

K Agile Entwicklungsprozesse

1. Geben Sie an, ob die folgenden Aussagen über agile Softwareentwicklung wahr oder falsch sind. Korrigieren Sie gegebenenfalls falsche Aussagen:

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:

  • 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.

3. Ordnen Sie den folgenden Aussagen eine Vorgehensweise der Agilen Methoden zu:

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.