Agiles OOP-Projekt mit Python

agiles
Projekt
Python

Aufgabe

Entwickle im Team mit Hilfe agiler Methoden eine Software nach dem objektorientierten Paradigma zu einem selbstgewählten Thema.

Projektinformationen

Der Projektablauf orientiert sich an folgender Planung. Die endgültige Terminplanung gibt die Lehrkraft rechtzeitig vor. (Anpassungen sind möglich)

UnterrichtsblockProjektphasenErgebnisse
1Planung


Modellierung
Projektbeschreibung (vorgegebene Struktur)

UML-Klassendiagramm
(mit draw.io)
2-5Implementierung (Sprints)Product-Increment
6Präsentationgeeignetes Format
+ZusatzHandbuch, Anleitung, Dokumentation, …

Die Abbildung zeigt beispielhaft einen Scrum-Prozess, den wir ähnlich durchlaufen:

Scrum_process.svg: Lakeworksderivative work: Sebastian Wallroth, CC BY-SA 3.0 https://creativecommons.org/licenses/by-sa/3.0, via Wikimedia Commons

Ein zusammenfassendes Video zur Erklärung findet sich hier:
Scrum-Methode https://studyflix.de/wirtschaft/scrum-methode-3426

Ablauf eines Unterrichtsblockes in einer Iteration / einem Sprint:

  • 15 min Team-Meeting: Sprint-Review, Sprint-Restrospective, Sprint-Planning
  • 70 min individuelle Arbeit
  • 5 min Versionierung / Sicherung des Product-Increments

Regeln während des Sprints:

- Jede Woche wird in der Informatik-Stunde der vergangene Sprint reviewt und eine Sprint-Retrospective gemacht. Danach wird der neue Sprint geplant. Dafür stehen automatisiert erstellte Aufgabenkarten auf dem Kanban-Board bereit.
- Die Aufgaben im Sprint-Backlog sollen binnen 7 Tagen bearbeitet werden
- Es zieht nur der Aufgabenverantwortliche die entsprechende Karte zu "In Progress"
- Änderungen der Verantwortlichkeiten während der Bearbeitung oder das Verwerfen einer Aufgabe müssen begründet werden (z.B. in der Beschreibung der Aufgabenkarte)
- Es wird mit den Kategorien Kann, Soll, Muss und Kritisch gearbeitet
- Kritische Aufgaben haben oberste Priorität und müssen umgehend bearbeitet werden
- Jeder arbeitet zu einer Zeit an maximal einer Aufgabe
- Aufgaben, die fertiggestellt wurden sollen jede Bearbeitungsphase durchlaufen sein
- Aufgaben dürfen sich nur mit gutem Grund rückwärts durch die Phasen bewegen
- Am Ende jedes Sprints muss ein funktionsfähiges (Teil-)Produkt vorliegen. Das Product-Increment wird reflektiert.

Versionierung / Sicherung des Product-Increments:

- neue Versionen eines Moduls werden an die entsprechende Karte des Kanban-Boards angehängt
- jede Woche wird das Product-Increment als zip-Datei auf LernSax gesichert
- die Dateien müssen so heißen, wie sie als Modul in anderen Teilen der Software importiert werden

Ersteinrichtung:

  1. Erhalte deine Zugangsdaten zum Kanban-Board auf board.herrschultz.info von deiner Lehrkraft.
  2. Logge dich ein.
  3. Richte unter „Mein Profil –> Avatar“ ein individuelles Profilbild ein.
  4. Finde dein Projektboard und mache dich mit dessen Struktur und Funktionalität vertraut.
  5. Nutze das Board von nun an für dein agiles Aufgabenmanagement.

Boardaufbau:

  • Product-Backlog: Aufgaben des Projekts
  • Sprint-Backlog: Aufgaben des aktuellen Sprints (nach Meeting; wiederkehrende Aufgaben: Sprint-Planning, -Retrospective, -Review)
  • In Progress: in Bearbeitung befindende Aufgaben
  • Review: in Prüfung befindende Aufgaben (Testcases, Driver Code, Kommentare)
  • Done: abgeschlossene Aufgaben
  • Discarded: verworfene Aufgaben

Hinweis: in dem Board sind Regeln und Automatisierungen eingerichtet


Zusammenfassende Videos zur Erklärung finden sich hier:
Backlog https://studyflix.de/wirtschaft/backlog-4580
Kanban-Board https://studyflix.de/wirtschaft/kanban-board-3486

Die Bewertung aller Projektleistungen erfolgt nach diesem Schema:

Projektbeschreibung

Werkzeuge & Hilfestellungen

Ideen für Projektthemen:

  • Ein Textadventure
  • Eine Anwendung mit graphischer Benutzeroberfläche
  • Eine Anwendung die mit einer Datenbank arbeitet
  • Ein eigenes Spiel
  • Buchungssystem