Beispielmodell

Eine App zur Verwaltung von Projekten mit Scrum

Agile Softwareentwicklung verwendet oft Scrum als Vorgehensmodell. Daher sollte dieses Konzept jedem Softwareentwickler bekannt sein, außerdem gibt es viel Literatur dazu im Internet (z.B. auf Wikipedia). Und daher eignet es sich gut als Beispiel für dieses Tutorial, das sich weiter ausbauen lässt. Wir beginnen mit dem Kern von Scrum als Basis für unsere Domain-Klassen:

UML Klassenmodell der zentralen Scrum Konzepte
Scrum Klassenmodell

Die Klassen des Beispielmodells sind in Java (Project und Task) und Groovy (Sprint, CompoundTask und Subtask) implementiert. Es enthält die wichtigsten Assoziationstypen (1:n, m:n, Vererbung), so dass wesentliche Konzepte demonstriert werden können.

Motivation für eine Scrum App

Eine Scrum App erscheint aus zwei Gründen als geeignetes Anwendungsbeispiel:

  1. Inhaltlich-sachlich:
    Je genauer der bisherige Projektverlauf mit allen Erfolgen und Fehlern verstanden wird, desto besser lässt sich auch die zukünftige Arbeit planen. Der alte Satz von Tom DeMarco „You can’t control what you can’t measure“ gilt auch bei agiler Softwareentwicklung. Eine Scrum App kann damit die eigene agile Softwareentwicklung unterstützen.
  2. Didaktisch:
    Jede halbwegs realistische Softwareentwicklung braucht ein hohes Fachwissen in der Anwendungsdomain. Die Domain, die Softwareentwickler am besten verstehen (sollten), ist die Softwareentwicklung. Daher ist das Beispiel in diesem Bereich angesiedelt und trägt vielleicht auch noch zum besseren Verständnis von Scrum bei.

Weiterentwicklung

Naheliegende Richtungen der Weiterentwicklung sind:

  1. Einführung von Personen und Rollen:
    Wer managed ein Projekt, wer arbeitet mit, wer kann neue Projekte, Sprints und Tasks anlegen oder bestehende bearbeiten?
  2. Aufwandsplanung und Aufwandserfassung:
    Wie wird der Aufwand für Tasks und Sprints geplant (z.B. Planungspoker) und tatsächlich erfasst (durch eine eigene Zeiterfassung oder bspw. eine Verbindung zu einem redmine oder github Projekt)?

Der Wikipedia-Artikel enthält noch viele weitere Anregungen zur Weiterentwicklung.

Aufgaben

  1. Erweitern Sie das Klassendiagramm um die Klassen, die notwendig sind, um die unter Weiterentwicklung genannten Features zu realisieren.
  2. Entwickeln Sie eine eigene Idee für die inhaltliche Weiterentwicklung, beschreiben Sie diese und bringen Sie sie in das Modell ein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.