Setup agiler Projekte

Erfolgreiche agile Projekte bestehen aus weit mehr als der eingesetzten Methodik. Für Projekte in denen Software entwickelt wird, ist die Entscheidung ob beispielsweise Scrum oder Kanban eingesetzt werden soll, nur eine von vielen. Um sicher zu stellen, dass alle für das konkrete Projekt wichtigen Aspekte berücksichtigt werden, muss bereits in der Anfangsphase strukturiert vorgegangen werden. Nach meiner Erfahrung haben sich die folgenden Schritte bewährt:

Schritt 1: Analysiere die Problemstellung

Jedes Projekt ist anders. Neben den unterschiedlichen fachlichen Anforderungen sind auch die Rahmenbedingungen und die nicht fachlichen Anforderungen individuell. Aus diesem Grund ist es nicht sinnvoll ein generisches Projektsetup zu definieren, das man für alle Arten von Problemstellungen als Lösung heranzieht.
Es ist jedoch möglich, einen Lösungsraum zu definieren, der einen Art Werkzeugkoffer mit allen für die Projektabwicklung benötigten Methoden, Technologien und Werkzeugen darstellt. Dieser Lösungsraum stellt eine Sammlung aller dem Projektteam zur Verfügung stehenden Hilfsmittel dar, die dazu dienen können, das Projektziel möglichst effizient zu erreichen.

Ziel ist es, aus dem zur Verfügung stehenden Lösungsraum die richtigen Werkzeuge auszuwählen. Dazu muss zunächst die Problemstellung analysiert werden. (Eine Web Seite für eine Werbekampagne, die nur eine gewisse Zeit online ist und danach wieder abgeschaltet wird, hat zum Beispiel ganz andere Anforderungen an die Qualitätssicherung, als die Entwicklung eines neuen Produkts, das über Jahre hinweg weiter entwickelt werden soll.)

Bei der Analyse der Anforderungen an das Projektsetup spielen vor allem die nicht fachlichen Anforderungen (manche sagen auch “nicht funktionale Anforderungen”) und die Rahmenbedingungen eine große Rolle. Gemeinsam mit allen Projektbeteiligten sollten daher vor allem die Anforderungen in Bezug auf die folgenden Themengebiete definiert werden:

  • Lebenszyklus
  • Release Häufigkeit
  • Rechtliche Rahmenbedingungen
  • Bestehendes Systemumfeld
  • Konsequenzen eines Systemausfalls
  • Performance
  • Qualität
  • Dokumentation
  • Verfügbarkeit
  • Wartbarkeit

Diese Liste ist nicht priorisiert und stellt nur einen Ausschnitt der möglicherweise relevanten Themengebiete dar. Wenn euch weitere einfallen, bin ich für einen entsprechenden Kommentar dankbar.

Die Analyse geschieht am besten in Form von Workshops, an denen das Projektteam gemeinsam mit den je nach Themengebiet notwendigen Stakeholdern teilnimmt. Wichtig ist, dass diese Analyse als Teil des Projekts gesehen wird und nicht ausschließlich von Personen durchgeführt wird, die später keine Rolle im Projekt einnehmen.
Bereits zu diesem Zeitpunkt ist es wichtig, die gewonnenen Erkenntnisse und die daraus resultierenden Entscheidungen zu dokumentieren, um sie zu einem späteren Zeitpunkt gut nachvollziehen zu können.

Schritt 2: Identifiziere die zur Problemlösung zu adressierenden Themengebiete

Auf Basis der in Schritt 1 gewonnenen Erkenntnissen über die Problemstellung werden nun die zur Lösung des Problems relevanten Themengebiete innerhalb des Lösungsraums identifiziert:

Screen Shot 2014-05-03 at 20.57.55Dazu wird für jedes der im Lösungsraum vorhandenen Themengebiete geprüft, ob es für die Problemstellung adressiert werden muss oder nicht. Ziel ist es, alle relevanten Themengebiete zunächst auf oberster Ebene zu ermitteln, um dann im nächsten Schritt nur noch die für eine konkrete Problemlösung relevanten detaillierter zu betrachten.

Schritt 3: Auswahl der Techniken innerhalb der relevanten Themengebiete

Alle im Lösungsraum vorhandenen Themengebiete lassen sich mit unterschiedlichen Praktiken, Techniken, Werkzeugen oder Methoden gestalten.

Screen Shot 2014-05-03 at 21.12.16 Wurde zum Beispiel in Schritt 2 erkannt, dass für das zu lösende Problem ein Vorgehensmodell benötigt wird, wird in Schritt 3 das konkrete Modell ausgewählt. Wurde in Schritt 2 erkannt, dass Dokumentation benötigt wird, werden in diesem Schritt die Arten der Dokumentation bestimmt die später erstellt werden sollen. Diese Detaillierung wird für jedes der zuvor als relevant erkannten Themengebiete durchgeführt. Dabei kann es passieren, dass während der Planung bemerkt wird, dass das Projektteam oder die Organisation insgesamt, nicht die benötigten Kenntnisse besitzt, um die in einem Themenbereich erforderlichen Maßnahmen leisten zu können. In diesem Fall ist es notwendig, die fehlenden Fähigkeiten mit dem Wissen externer Mitarbeiter abzudecken.

Schritt 4: Technologieauswahl

Nachdem in Schritt 3 genauer definiert wurde, wie die einzelnen Themengebiete ausgestaltet werden, legt man in Schritt 4 ganz konkret einen Technologie Stack, sowie die einzusetzenden Tools und Frameworks fest. Die in diesem Schritt getroffenen Entscheidungen sind keineswegs endgültig. Sie definieren nur den Stand, mit dem die erste Iteration der Projektdurchführung startet. Im weiteren Verlauf des Projekts können diese Festlegungen z.T. noch revidiert werden. Solche Änderungen sollten jedoch möglichst frühzeitig entschieden werden.

Die Technologieauswahl für ein Java Web Projekt könnte beispielsweise so aussehen:

Screen Shot 2014-01-21 at 21.25.26

Schritt 5: Priorisiere die Problemstellungen und starte mit der Umsetzung

Auch ein agiles Projekt benötigt Zeit für das Projekt Setup. Eine funktionierende Continuous Delivery Umgebung bekommt man nicht geschenkt. Auch die Einführung neuer Methoden, wie ATDD oder Testautomatisierung benötigen Zeit. Jedoch sollte man auch beim Projekt Setup agil vorgehen. Das bedeutet: Die Bereitstellung der benötigten Umgebungen und Tools ist Teil des Projekts und geschieht im Rahmen der Iterationen. Ziel einer Iteration ist es, lauffähige Software zu liefern. Eine erste Iteration, in der sich das Team nur um Infrastruktur und Bereitstellung  einer Entwicklungsumgebung kümmert ist daher nicht gewünscht. Vielmehr sollte man die zu lösenden nicht fachlichen Probleme priorisieren und jeweils nur einige der wichtigsten in den ersten Iterationen einplanen. Ziel der ersten Iteration sollte es also sein, ein Walking Skeleton zumindest einer fachlichen Anforderung zu erstellen, das man möglichst bis nach Produktion ausliefern kann. Natürlich hat diese erste Version der Software mit großer Wahrscheinlichkeit noch nicht genügend Wert für den Kunden und wird in Produktion nicht genutzt. Der Vorteil ist aber, dass alle wichtigen Mechanismen, Tools und Technologien bereits rudimentär vorhanden sein müssen, um diese Ziel zu erreichen. In den folgenden Iterationen können die nicht fachlichen Anforderungen dann mit jeweils angepasster Priorität weiter verbessert werden, wobei immer auch die jeweils wichtigsten fachlichen Anforderungen berücksichtigt werden. Nach einigen Iterationen sinkt der Anteil der Umsetzung nicht fachlicher Anforderungen zugunsten der fachlichen Funktionen.

Hinterlasse eine Antwort

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

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>