Vorlesungszusammenfassung: Agile Projektmethoden und Scrum

Inhaltsverzeichnis

  1. Begrüßung und Organisatorisches
  2. Rückblick: Agile vs. Traditionelle Projektmethoden
  3. Einführung in Scrum
  4. Werkvertrag vs. Dienstvertrag in Agilen Projekten
  5. Verantwortung und Kommunikation im Scrum-Team
  6. Qualität und Dokumentation in Scrum
  7. Change-Request-Verfahren in Agilen Projekten
  8. Lizenz- und Vertragsfragen
  9. Abnahme der Leistungen
  10. Thesen zu Agilen Projekten
  11. Abschluss und Ausblick

Begrüßung und Organisatorisches

Die Vorlesung begann mit einer herzlichen Begrüßung und organisatorischen Hinweisen:

  • Aufzeichnung der Vorlesung: Die Vorlesung wird regelmäßig aufgezeichnet. Das Audiofile ist in wenigen Tagen über LMUcast abrufbar, was den Studierenden ermöglicht, den Inhalt nachträglich noch einmal anzuhören.

  • Studentische Vorträge im Januar:

    • Termine: Die Vorträge finden an vier Dienstagen statt: 7., 14., 21., und 28. Januar.
    • Format: Alle Veranstaltungen im Januar sind komplett online und über Zoom zugänglich. Die entsprechenden Links werden auf der Moodle-Webseite bereitgestellt.
    • ECTS-Punkte: Studierende können durch das Halten eines Vortrags sechs ECTS-Punkte erwerben, vorausgesetzt, sie bestehen auch die Klausur.
    • Themenfestlegung: Interessierte Studierende sollen bis Weihnachten ein Thema festlegen. Dies geschieht durch eine E-Mail an den Dozenten. Die Themen können entweder vom Studierenden selbst vorgeschlagen werden oder vom Dozenten bereitgestellt werden, sodass die Vorbereitungszeit in den Tagen zwischen den Jahren genutzt werden kann.
  • Klausurtermin im Februar: Im Februar gibt es keine weiteren Veranstaltungen außer dem bereits bekannten Klausurtermin.

Diese organisatorischen Informationen sind essentiell für die Planung und Teilnahme der Studierenden an den Vorlesungen und den damit verbundenen Aktivitäten.

Rückblick: Agile vs. Traditionelle Projektmethoden

Traditionelle Methoden (Wasserfallmodell)

Die Dozentin erinnerte an die traditionellen, wasserfallbasierten Projektmethoden, die in der Informatik und IT-Entwicklung weit verbreitet sind:

  • Phasenmodell:

    1. Planung: Anfangsphase mit detaillierter Projektplanung und Festlegung der Anforderungen.
    2. Design: Entwurf des Systems basierend auf den festgelegten Spezifikationen.
    3. Implementierung: Programmierung und Entwicklung des Systems.
    4. Test: Überprüfung der Software auf Fehler und Mängel.
    5. Integration: Zusammenführung der einzelnen Systemkomponenten.
    6. Betrieb: Einsatz und Wartung des fertigen Systems.
  • Frühzeitige Festlegung der Spezifikation:

    • Ein zentrales Merkmal des Wasserfallmodells ist die umfassende Spezifikation der Anforderungen bereits zu Beginn des Projekts. Dies bedeutet, dass nahezu alle funktionalen und nicht-funktionalen Anforderungen festgelegt werden, bevor die eigentliche Entwicklung startet.
  • Merkmale:

    • Schrittweise Abarbeitung: Jede Phase wird nacheinander abgeschlossen, bevor die nächste beginnt.
    • Geringe Flexibilität: Änderungen während des Projekts sind schwierig und kostspielig, da die Spezifikationen frühzeitig festgelegt sind.
    • Festgelegter Projektumfang und -zeitplan: Das Projekt folgt einem festen Plan, was zu einer vorhersehbaren Dauer und Kosten führt.

Diese Methodik eignet sich besonders für Projekte mit klar definierten Anforderungen und wenig Veränderungsbedarf während der Entwicklungsphase.

Agile Methoden

Im Gegensatz dazu stehen die agilen Methoden, die in den letzten Jahrzehnten zunehmend an Bedeutung gewonnen haben:

  • Iterative Entwicklung:

    • Agile Projekte werden in kleinen, flexiblen Schritten, sogenannten Iterationen oder Sprints, durchgeführt. Jede Iteration liefert ein funktionsfähiges Inkrement des Produkts.
  • Flexible Spezifikation:

    • Anforderungen werden nicht zu Beginn umfassend festgelegt, sondern werden schrittweise verfeinert und angepasst, basierend auf Feedback und sich ändernden Bedürfnissen.
  • Merkmale:

    • Kontinuierliche Planung und Anpassung: Planung erfolgt iterativ und wird regelmäßig überprüft und angepasst.
    • Hohe Flexibilität: Fähigkeit, schnell auf Änderungen und neue Anforderungen zu reagieren.
    • Kunden- und Stakeholder-Zusammenarbeit: Enge Zusammenarbeit mit den Kunden und Stakeholdern während des gesamten Projekts, um sicherzustellen, dass das Endprodukt den aktuellen Bedürfnissen entspricht.
  • Beispiel: Beim Bau eines Hauses würde man zuerst das Erdgeschoss bauen und danach schrittweise den ersten Stock, den zweiten Stock und so weiter erweitern, basierend auf den aktuellen Bedürfnissen und Feedback.

Agile Methoden bieten somit eine höhere Anpassungsfähigkeit und fördern die kontinuierliche Verbesserung und Zusammenarbeit im Projektteam.

Einführung in Scrum

Scrum ist einer der prominentesten Vertreter agiler Projektmethoden. Die Dozentin erläuterte die wesentlichen Merkmale und den Prozess von Scrum im Detail.

Wesentliche Rollen

  1. Product Owner:

    • Verantwortlichkeiten:
      • Verantwortlich für das Product Backlog, eine priorisierte Liste von Anforderungen und Funktionen, die entwickelt werden sollen.
      • Definiert die Anforderungen basierend auf den Bedürfnissen der Endbenutzer, Kunden und Stakeholder.
      • Priorisiert die Anforderungen nach ihrem geschäftlichen Wert und ihrer Wichtigkeit.
    • Eigenschaften:
      • Agiert als Bindeglied zwischen dem Entwicklungsteam und den Stakeholdern.
      • Muss die Vision des Produkts klar kommunizieren und aufrechterhalten.
  2. Scrum Master:

    • Verantwortlichkeiten:
      • Gewährleistet den reibungslosen Ablauf des Scrum-Prozesses.
      • Unterstützt das Team bei der Beseitigung von Hindernissen und Problemen.
      • Fördert die Einhaltung der Scrum-Prinzipien und -Praktiken.
    • Eigenschaften:
      • Servant Leader: Unterstützt das Team, ohne autoritär zu agieren.
      • Fördert die Selbstorganisation und die kontinuierliche Verbesserung.
  3. Entwicklungsteam:

    • Verantwortlichkeiten:
      • Verantwortlich für die Umsetzung der Anforderungen aus dem Sprint Backlog.
      • Selbstorganisierend und cross-funktional, das heißt, das Team umfasst alle notwendigen Fähigkeiten zur Entwicklung des Produkts.
    • Eigenschaften:
      • Hohe Teamfähigkeit und Kommunikationsfähigkeit.
      • Verantwortung für die Qualität und Termintreue der gelieferten Inkremente.

Scrum-Prozess

Der Scrum-Prozess besteht aus mehreren klar definierten Ereignissen und Artefakten:

  1. Sprint Planung (Sprint Planning):

    • Zweck: Auswahl der wichtigsten Anforderungen aus dem Product Backlog für den kommenden Sprint.
    • Aktivitäten:
      • Das Team und der Product Owner treffen sich, um die Ziele des Sprints festzulegen.
      • Auswahl der User Stories (Anforderungen), die im Sprint umgesetzt werden sollen.
      • Erstellung des Sprint Backlogs, das die ausgewählten Anforderungen und die notwendigen Aufgaben enthält.
  2. Sprints:

    • Definition: Zeitlich festgelegte Iterationen, in der Regel zwischen 1 und 4 Wochen.
    • Aktivitäten:
      • Umsetzung der ausgewählten Anforderungen aus dem Sprint Backlog.
      • Regelmäßige Überprüfung des Fortschritts und Anpassung bei Bedarf.
  3. Daily Scrum:

    • Definition: Tägliches, kurzes (ca. 15 Minuten) Meeting des Entwicklungsteams.
    • Zweck: Statusbesprechung, bei der jedes Teammitglied berichtet, was es seit dem letzten Meeting getan hat, was es bis zum nächsten Meeting tun wird und welche Hindernisse bestehen.
    • Vorteile:
      • Fördert die Kommunikation und Transparenz.
      • Ermöglicht schnelle Identifikation und Beseitigung von Problemen.
  4. Sprint Review:

    • Definition: Überprüfung der Ergebnisse des Sprints am Ende der Iteration.
    • Zweck: Präsentation der entwickelten Funktionen vor den Stakeholdern und Sammeln von Feedback.
    • Aktivitäten:
      • Demonstration der neuen Features.
      • Diskussion über Verbesserungen und Anpassungen für zukünftige Sprints.
  5. Sprint Retrospektive:

    • Definition: Reflexion über den vergangenen Sprint.
    • Zweck: Identifikation von Verbesserungsmöglichkeiten im Teamprozess und in der Zusammenarbeit.
    • Aktivitäten:
      • Diskussion über das, was gut gelaufen ist und was verbessert werden kann.
      • Festlegung konkreter Maßnahmen zur Prozessoptimierung.

Scrum-Artefakte

  1. Product Backlog:

    • Beschreibung: Eine priorisierte Liste aller gewünschten Funktionen und Anforderungen an das Produkt.
    • Eigenschaften:
      • Dynamisch und kontinuierlich weiterentwickelt.
      • Priorisierung basiert auf Geschäftswert und Dringlichkeit.
  2. Sprint Backlog:

    • Beschreibung: Die spezifischen Anforderungen und Aufgaben, die im aktuellen Sprint umgesetzt werden sollen.
    • Eigenschaften:
      • Wird zu Beginn jedes Sprints festgelegt.
      • Enthält eine detaillierte Aufschlüsselung der Aufgaben.
  3. Shippable Product Increment:

    • Beschreibung: Das funktionsfähige Produktinkrement, das am Ende eines Sprints geliefert wird.
    • Eigenschaften:
      • Muss den Definition of Done-Kriterien entsprechen.
      • Sollte potenziell auslieferbar und einsatzbereit sein.

Werkvertrag vs. Dienstvertrag in Agilen Projekten

Ein wesentlicher Diskussionspunkt der Vorlesung war die Integration agiler Methoden in traditionelle Vertragsformen, insbesondere der Werkvertrag und der Dienstvertrag.

Werkvertrag

  • Merkmale:
    • Abnahme und Erfolg: Der Werkvertrag ist durch die Abnahme des fertigen Produkts und den geschuldeten Erfolg gekennzeichnet.
    • Klare Leistungsbeschreibung: Zu Beginn werden die zu erbringenden Leistungen detailliert beschrieben.
  • Herausforderungen bei Agilität:
    • Flexible Spezifikationen: Agile Methoden erfordern flexible und sich ändernde Anforderungen, was mit den festen Spezifikationen eines Werkvertrags kollidieren kann.
    • Vertragsänderungen: Änderungen während des Projekts können den ursprünglichen Vertrag sprengen und zu Konflikten führen.

Dienstvertrag

  • Merkmale:
    • Vergütung nach Aufwand: Der Dienstvertrag sieht eine Vergütung basierend auf erbrachten Leistungen (z.B. Stunden- oder Tagessätze) vor.
    • Flexibilität bei Änderungen: Änderungen können einfacher integriert werden, da die Vergütung an den Aufwand gekoppelt ist.
  • Vorteile:
    • Anpassungsfähig: Besser geeignet für iterative und flexible Entwicklungsprozesse.
    • Kontinuierliche Vergütung: Der Dienstleister erhält regelmäßig Zahlungen, was eine kontinuierliche Finanzierung des Projekts ermöglicht.

Integration von Agilen Methoden

  • Teilabnahmen: Möglichkeit, Teilabnahmen für einzelne Sprints oder Iterationen zu vereinbaren, um den Fortschritt kontinuierlich zu überprüfen und zu bewerten.
  • Vertragsanpassungen: Verträge müssen flexibel gestaltet sein, um iterative Prozesse und Änderungen zu berücksichtigen. Dies kann durch spezielle Vereinbarungen oder Erweiterungen im Vertrag erfolgen.
  • Beispiel: Ein Werkvertrag kann angepasst werden, indem Teilabnahmen für einzelne Sprints definiert werden, sodass der Auftraggeber den Fortschritt regelmäßig überprüft und bei Bedarf Anpassungen vornimmt.

Die Integration agiler Methoden in traditionelle Vertragsformen erfordert eine sorgfältige Anpassung der Verträge, um die Flexibilität und Iterativität der agilen Methoden zu ermöglichen, ohne die rechtlichen Rahmenbedingungen zu verletzen.

Verantwortung und Kommunikation im Scrum-Team

Eine effektive Kommunikation und klare Verantwortlichkeiten sind essenziell für den Erfolg eines Scrum-Teams:

  • Product Owner:

    • Definiert die fachlichen Anforderungen und priorisiert das Product Backlog.
    • Kommuniziert die Vision und Ziele des Produkts an das Team.
  • Entwicklungsteam:

    • Verantwortlich für die Umsetzung der Anforderungen aus dem Sprint Backlog.
    • Selbstorganisierend: Das Team entscheidet eigenständig, wie die Arbeit am besten erledigt wird.
    • Höhere Verantwortung für die Qualität und Termintreue der Ergebnisse.
  • Scrum Master:

    • Unterstützt das Team bei der Einhaltung der Scrum-Prinzipien.
    • Beseitigt Hindernisse, die das Team bei der Arbeit behindern.
    • Fördert eine offene und kollaborative Teamkultur.
  • Transparenz und Zusammenarbeit:

    • Offene Kommunikation über Fortschritte und Herausforderungen.
    • Gemeinsame Problemlösung und Entscheidungsfindung.
    • Regelmäßiger Austausch und Feedback, um kontinuierliche Verbesserungen zu ermöglichen.

Eine transparente und offene Kommunikation fördert das Vertrauen innerhalb des Teams und ermöglicht eine effiziente Zusammenarbeit, was letztendlich zu besseren Projektergebnissen führt.

Qualität und Dokumentation in Scrum

Qualitätssicherung

Agile Methoden legen großen Wert auf die kontinuierliche Verbesserung der Softwarequalität durch iterative Entwicklung:

  • Kontinuierliche Verbesserung:

    • Nach jedem Sprint wird das Produkt überprüft und verbessert.
    • Feedback aus dem Sprint Review und der Retrospektive fließt direkt in die nächste Iteration ein.
  • Testen während der Entwicklung:

    • Regelmäßige Tests werden durchgeführt, um Fehler frühzeitig zu erkennen und zu beheben.
    • Automatisierte Tests und kontinuierliche Integration sind gängige Praktiken zur Sicherstellung der Qualität.
  • Definition of Done:

    • Klare Kriterien, die erfüllt sein müssen, damit eine User Story als abgeschlossen gilt.
    • Stellt sicher, dass alle notwendigen Qualitätsstandards eingehalten werden.

Dokumentation

Die Dokumentation in Scrum ist zielgerichtet und effizient, wobei der Fokus auf der Erstellung funktionierender Software liegt:

  • Priorität: Lauffähige Software hat Vorrang vor umfangreicher Dokumentation.

  • Notwendige Dokumentation:

    • User Stories: Beschreibungen der Anforderungen aus Sicht des Endnutzers.
    • Technische Dokumentation: Notwendige technische Details zur Wartung und Weiterentwicklung der Software.
    • Projekt-Tagebuch: Dokumentation des Projektverlaufs, wichtiger Entscheidungen und Änderungen, um Transparenz und Nachvollziehbarkeit zu gewährleisten.
  • Herausforderungen:

    • Wenig Dokumentation kann die Abnahmeprozesse erschweren.
    • Notwendigkeit eines Projekt-Tagebuchs zur Unterstützung bei Konflikten oder rechtlichen Fragen.

Eine ausgewogene Dokumentation ist entscheidend, um die Nachvollziehbarkeit und Wartbarkeit der Software sicherzustellen, ohne den Entwicklungsprozess unnötig zu verlangsamen.

Change-Request-Verfahren in Agilen Projekten

Die Handhabung von Änderungsanforderungen ist ein zentraler Aspekt sowohl in traditionellen als auch in agilen Projekten:

  • Theorie:

    • Änderungen können direkt ins Product Backlog aufgenommen und priorisiert werden.
    • Agile Methoden ermöglichen eine flexible und schnelle Integration von Änderungen ohne formelle Change-Request-Prozesse.
  • Praxis:

    • Große Änderungen, die den Projektumfang erheblich beeinflussen, erfordern oft vertragliche Anpassungen.
    • Änderungen können Zeit- und Budgetüberschreitungen verursachen, weshalb eine sorgfältige Bewertung und Planung notwendig ist.
    • Mögliche Lösungen:
      • Vertragliche Regelungen: Festlegung, wie größere Änderungen behandelt werden, z.B. durch zusätzliche Budgets oder erweiterte Zeitpläne.
      • Teilprojekte: Aufteilung großer Änderungen in separate Projekte oder Module.
      • Ressourcenanpassung: Erhöhung der Teamgröße oder Erweiterung der Ressourcen zur Bewältigung der Änderungen.

Agile Projekte müssen eine Balance zwischen Flexibilität und Kontrolle finden, um sicherzustellen, dass Änderungen sinnvoll integriert werden, ohne das Projekt zu destabilisieren.

Lizenz- und Vertragsfragen

Lizenz- und Vertragsfragen sind in Softwareprojekten von großer Bedeutung und erfordern klare Regelungen:

  • Lizenzmanagement:

    • Nutzungslizenzen: Klare Definition, welche Lizenzen der Auftraggeber zur Nutzung der Software erhält.
    • Externe Bibliotheken: Regelung der Nutzung und Lizenzierung von Drittanbieter-Komponenten, um rechtliche Konflikte zu vermeiden.
  • Vertragsgestaltung:

    • Rechte des Auftraggebers: Sicherstellung, dass der Auftraggeber die Software uneingeschränkt nutzen darf.
    • Verantwortlichkeit für Lizenzkosten: Klare Zuordnung, wer die Kosten für notwendige Lizenzen trägt (Auftragnehmer oder Auftraggeber).
  • Beispiel:

    • Ein Entwickler kauft eine Bibliothek, die nur vom Auftragnehmer genutzt werden darf. Der Auftraggeber darf die Software nicht nutzen, ohne eine entsprechende Lizenz zu erwerben.
    • Der Vertrag sollte festlegen, dass alle externen Bibliotheken, die in die Software integriert werden, ordnungsgemäß lizenziert sind und der Auftraggeber die entsprechenden Rechte zur Nutzung erhält.

Ein sorgfältiges Lizenz- und Vertragsmanagement verhindert rechtliche Probleme und stellt sicher, dass alle Parteien die Software legal und ohne Einschränkungen nutzen können.

Abnahme der Leistungen

Die Abnahme der erbrachten Leistungen ist ein zentraler Punkt sowohl in traditionellen als auch in agilen Projekten:

Abnahmeprozess

  • Traditionell:

    • Klare, umfassende Testdokumentationen und festgelegte Testfälle basierend auf den Anfangsspezifikationen.
    • Durchführung der Abnahme durch das Testen der festgelegten Testfälle.
  • Agil:

    • Sprint Review: Präsentation der Sprint-Ergebnisse vor den Stakeholdern zur Überprüfung und Feedback.
    • Herausforderungen:
      • Wenige oder keine detaillierten Testdokumentationen.
      • Möglicherweise unzureichende Prüfung der Software auf Mängel.
      • Abhängigkeit von der Bereitschaft des Auftraggebers, detailliertes Feedback zu geben.

Mittlerer Ausführungsstandard

  • Definition:

    • Festlegung eines durchschnittlichen Leistungsumfangs für die Abnahme, insbesondere wenn keine detaillierten Spezifikationen vorhanden sind.
  • Herausforderungen:

    • Schwierigkeit, einen angemessenen Durchschnittswert zu definieren, der für alle Projekte zutrifft.
    • Unterschiedliche Erwartungen und Anforderungen je nach Projekt und Kunde.
  • Beispiel:

    • Ein Adressenverwaltungssystem für einen kleinen Friseurladen benötigt weniger Funktionen und eine geringere Skalierbarkeit als ein System für ein großes Unternehmen wie BMW.

Ein klar definierter Abnahmeprozess, der sowohl traditionelle als auch agile Elemente integriert, ist entscheidend, um sicherzustellen, dass die gelieferten Leistungen den Erwartungen entsprechen und rechtliche Anforderungen erfüllt werden.

Thesen zu Agilen Projekten

Die Dozentin stellte mehrere Thesen zu agilen Projekten vor, die im Rahmen der Vorlesung diskutiert wurden:

  1. Agile Projekte sind steuerbar:

    • Aussage: Agile Projekte können aus Sicht des Auftraggebers über die Priorisierung der Anforderungen gesteuert werden, ohne dass ein zentraler Projektleiter erforderlich ist.
    • Begründung: Durch die Priorisierung im Product Backlog kann der Auftraggeber den Fokus des Projekts lenken und sicherstellen, dass die wichtigsten Anforderungen zuerst umgesetzt werden.
  2. Agile Projekte funktionieren nur bei kleinen Projektteams:

    • Aussage: Agile Methoden sind effektiv in kleinen Teams mit etwa 5 bis 12 Mitgliedern.
    • Begründung: Kleine Teams fördern die Kommunikation, Zusammenarbeit und Flexibilität, die für agile Methoden essenziell sind. Größere Teams können Schwierigkeiten haben, diese Dynamik aufrechtzuerhalten.
  3. Agile Projekte benötigen erfahrene und teamfähige Mitarbeiter:

    • Aussage: Erfolgreiche agile Projekte setzen auf erfahrene und gut zusammenarbeitende Teammitglieder.
    • Begründung: Agile Methoden erfordern Selbstorganisation, Eigenverantwortung und die Fähigkeit, schnell auf Veränderungen zu reagieren. Erfahrene Teammitglieder sind besser in der Lage, diese Anforderungen zu erfüllen.
  4. Verantwortung wandert teilweise zum Auftraggeber:

    • Aussage: In agilen Projekten trägt der Auftraggeber eine größere Verantwortung, insbesondere in der Definition und Priorisierung der Anforderungen.
    • Begründung: Der Auftraggeber muss kontinuierlich Anforderungen einbringen und priorisieren, um den Entwicklungsprozess zu steuern und sicherzustellen, dass das Team an den wichtigsten Aufgaben arbeitet.

Diese Thesen verdeutlichen die zentralen Unterschiede zwischen agilen und traditionellen Projektmethoden und unterstreichen die Notwendigkeit einer angepassten Teamstruktur und Verantwortungszuweisung.

Abschluss und Ausblick

Die Vorlesung schloss mit einer Zusammenfassung der besprochenen Themen und einem Ausblick auf die nächste Sitzung:

  • Zusammenfassung:

    • Überblick über agile und traditionelle Projektmethoden.
    • Detaillierte Einführung in Scrum und dessen Prozess.
    • Diskussion über Vertragsformen und deren Anpassung an agile Methoden.
    • Bedeutung von Verantwortung, Kommunikation, Qualitätssicherung und Dokumentation in Scrum.
    • Herausforderungen bei der Abnahme und dem Change-Request-Verfahren in agilen Projekten.
  • Nächste Vorlesung:

    • Vertiefung der Gegenüberstellung zwischen agilen und klassischen Methoden.
    • Weitere Diskussionen zu spezifischen Herausforderungen und Lösungsansätzen in der Praxis.
  • Verabschiedung:

    • Dank an die Studierenden für ihre Teilnahme trotz des schlechten Wetters.
    • Erinnerung an den nächsten Termin und Ermutigung zur weiteren Teilnahme.