Post Image
21. Aug, 2018

Projektmanagement & Planung in der Softwareentwicklung: Agile vs. klassische Methoden


Projektmanagement in der Softwareentwicklung beschreibt die Art und Weise wie Projekte zu planen, zu organisieren und durchzuführen sind. Da moderne Software immer komplexer, vorhandene Technologien immer vielfältiger und die Anforderungen an die Software immer anspruchsvoller werden, benötigt das Software-Projektmanagement klare Handlungsabläufe.

Vorgehensmodelle im Projektmanagement

Im folgenden werden starre, auf Fixpreisen basierende Abläufe als “klassische” und flexible, auf Sprints basierende Modelle als “Agile” Vorgehensmodelle zusammengefasst.

Klassisches Software Projektmanagement

Das klassische Software Projektmanagement umfasst mehrere Varianten und Ideen. Bekannte Vertreter sind der “Wasserfallprozess” (nach Winston Royce, 1970) oder das “V-Modell” des öffentlichen Bereichs. In diesem Artikel wird auf eine detaillierte Betrachtung einzelner Verfahren verzichtet, vielmehr geht es um eine Gruppierung zwischen klassischen und agilen Verfahren. Klassische Projektplanung in der Softwareentwicklung folgt prinzipiell - unabhängig vom gewählten Verfahren - mehreren verwandten Prinzipien. In den meisten Fällen werden Fixpreise vereinbart und vor Beginn ein detailliertes Lastenheft ausgearbeitet. Danach wird die Software innerhalb eines festgelegten Zeitraums entwickelt und (meist gegen Ende) eine umfangreiche Dokumentation erstellt und das Projekt abgenommen.

Das klassische Projektmanagement in der Softwareentwicklung wird in der Regel in 5 starre Phasen aufgeteilt die sequenziell abgearbeitet werden:

Abb. 1: 5 Phasen der klassischen Projektplanung gw_klassische_projetplanung.jpeg

In der 1. Phase (Planung) wird das Lasterhaft erstellt und weitere Rahmenbedingungen, wie bspw. der Zeitraum, festgelegt. Danach folgt die 2. Phase (Entwicklung) in der die Software vom Entwicklerteam selbstverantwortlich programmiert wird. Nach dem “Go Life” - häufig werden hier eine Beta- und Alpha Version zwischengeschoben - folgen Optimierungen und Bugfixing (ich würde gerne Lügen, aber keine Software ist fehlerfrei). Den meisten Softwareprojekten folgt eine 5. und letzte Phase (Maintenance) in der Updates und Erweiterungen integriert werden.

Kritik am klassischen Software Projektmanagement

In Zeiten moderner Webapplikationen und der Nutzung mobiler Endgeräte ist es häufig nicht ohne Weiteres möglich, eine Software in einem Stück zu planen und zu entwickeln. Anforderungen ändern sich während der Entwicklung, neue Hardware kommt auf den Markt, oder die Ansprüche des Kunden ändern sich. Erfahrungsgemäß kommen die ersten Ideen für neue Funktionen bereits während der Nutzung eines frühen Prototypen. Eine starre Methodik verhindert hier eine aktive Einbindung des Kunden in den Entwicklungsprozess. Programmierfehler können nicht frühzeitig erkannt werden und unnötige Funktionen werden eingebaut. Häufig ist dabei die Prozesseinhaltung wichtiger als das Endergebnis.

Agiles Projektmanagement (Agile)

Agiles Projektmanagement bündelt Maßnahmen, die mit einfachen und iterativen Vorgehensweisen eine höhere Flexibilität erzielen. Der Fokus liegt auf maximalem Geschäftsnutzen für den Kunden und nicht auf möglichst großzügig umgesetzter Funktionalität. Zentrale Ideen sind ein früher Einstige in die Programmierung, starke Einbeziehung der Nutzer und Kunden, konstantes Testing und die flexible Integration neuer Funktionen während der Entwicklung. Dies wird bspw. durch eine Einbindung des Kunden mit dem Testen früher Prototypen, erzielt. Am Ende geht es um qualitativ hochwertige und vor allem benutzbare Software. Agile Projektplanung kann folgendermaßen visualisiert werden:

Abb. 2: Agile Projektplanung gw_agile_projektplanung.jpeg

Der 1. Schritt umfasst, genau wie im klassischen Projektmanagement, die Planung des Softwareprojekts. Hier werden Budgets, Gesamtziele, und zeitliche Rahmen vereinbart.

Als nächstes folgt eine Reihe von aufeinander folgenden Entwicklungsblocks - sog. “Sprints”. Jeder Sprint startet mit der Bestimmung der Zielsetzung für diesen Zeitraum. Nach der meist 2-wöchigen Entwicklungsphase wird der Sprint vom Kunden getestet und abgenommen.

Daraufhin werden die Ziele des nächsten Sprints definiert, mögliche neue Funktionen und Änderungswünsche notiert und ein neuer Entwicklungsblock angestoßen.

Agiles Manifest

Diese Werte wurden im "Manifest für Agile Softwareentwicklung" (Manifesto for Agile Software Development) festgehalten - einer Art Regelwert verfasst von einer Handvoll Industrieexperten:

  • Individuen und Interaktionen mehr als Prozesse und Werkzeuge
  • Funktionierende Software mehr als umfassende Dokumentation
  • Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
  • Reagieren auf Veränderung mehr als das Befolgen eines Plans

Das gesamte Manifest: Manifest für Agile Softwareentwicklung

Durch agiles Projektmanagement spart der Kunde sich Zeit durch reduzierte Bürokratie und flexible Prozesse. Außerdem werden Softwareprojekte insgesamt günstiger, da weniger Entwicklingsarbeit durch das Programmieren nicht benötigter Funktionen verschwendet (und bezahlt) wird. Der Kunde kann den Fortschritt der Software in Echtzeit miterleben, da nach jedem Sprint eine (soweit möglich) testbare Version der Software freigegeben wird.

Software für Projektmanagement: Einsatz in der Praxis

Wir nutzen webbasierte Projektmanagement Software um volle Transparenz für unsere Kunden zu gewährleisten und die Vorteile agiler Softwareentwicklung voll zur Geltung zu bringen. Kunden bekommen einen Zugang zur Projektmanagement Software und haben stets die selben Informationen wie das Entwicklungsteam. Folgende Anbieter haben sich besonders für Softwareentwickunsprozesse bewährt:

Planungsphase: Ziele & Anforderungen für alle sichtbar

In der Planungsphase werden Ziele und Anforderungen an die Software stichpunktartig niedergeschrieben. Der Kunde bekommt einen Zugang zum Projektmanagement Tool und kann selbst eigene Punkte hinzufügen oder Anpassungen vornehmen. Weitere Informationen über die Planung eines Softwareprojekts finden Sie hier: So planen Sie Ihr Softwareprojekt

Entwicklungspase: Sprints planen und überwachen

Während der Entwicklungsphase wird vor jedem Sprint eine neue Liste mit den konkreten, zu entwickelnden Funktionen für diesen Sprint, angelegt. In dieser Liste wird außerdem eine Zeitschätzung und der aktuelle Stand für jeden Punkt eingetragen (siehe Abb. 3).

Abb. 3: Sprintplanung über Projektmanagement Software gw_projektmanagement_sprint.jpeg

Wird bspw. an einer Funktion gearbeitet, so ändert sich der Status dieser einzelnen Funktion auf “Arbeite dran”. Sobald die Funktion entwickelt wurde wird der Status auf “Bereit zum Testen” geändert. Nach Sprintabnahme und erfolgreichem Testen wird der finale Status “Abgenommen & getestet” gesetzt.

Transparenz: Bugtracking in Echtzeit

Fehler die dem Kunden oder dem Entwicklungsteam während der Programmierung auffallen werden in einer separaten Liste “Bugs” eingetragen (siehe Abb. 4). Jeder Bug bekommt außerdem einen Status (siehe: Sprint-Funktion).

Abb. 4: Bugtracking über Projektmanagement Software gw_projektmanagemtn_bug.jpeg

Somit kann der Kunde den Status des Bugfixing jederzeit mitverfolgen und verschwendet keine Zeit mit Statusabfragen.

Nach Fertigstellung: neue Funktionen vorschlagen

Nach Fertgigstellung - soweit man eine Software jemals als “fertig” bezeichnen kann (vielleicht sollten wir an der Stelle den Begriff “Auslieferung” verwenden) - können neue Funktionen und Anpassungen jederzeit in einer neuen Tabelle eingetragen werden. Diese werden dann vom Entwicklungsteam evaluiert und eine Zeitschätzung wird abgegeben. Nach Absegnung durch den Kunden wird die Liste dann wieder interativ abgearbeitet.


Sollten Sie noch auf der Suche nach einem passenden Software-Anbieter sein, sprechen Sie mit uns! Über unseren interaktiven Projektplaner können Sie sich mit wenigen Klicks ein Angebot einholen.