Agil arbeiten für die optimale Softwareentwicklung

[Gastbeitrag] Bei einer klassischen Software-Entwicklung wird darauf aufgebaut, dass die Software planerisch erfasst wird und dann in einer bestimmten Umgebung zum Beispiel bei einem Unternehmen nach einem im Vorfeld gefassten und aufgestellten Plan ohne vorzunehmende Änderungen auch umgesetzt wird.

Somit beruht eine klassische Software-Entwicklung (wird auch als Wasserfall-Softwareentwicklung bezeichnet) auf einer genauen Vorausplanung und dann der Umsetzung des bei der Planung aufgestellten Ablaufs.

Im Unterschied dazu basiert eine agile Softwareentwicklung auf Anpassbarkeit und Flexibilität.

Was ist eine agile Softwareentwicklung?

Bei der klassischen Software-Entwicklung erfolgt zunächst die Erfassung der erarbeiteten Anforderungen in einem ausführlichen Pflichtenheft und diese werden dort festgehalten.

Für die Aufwandschätzung der Umsetzung dieser Software-Entwicklung ist eine solche Vorgehensweise erforderlich und ist somit häufig die Vereinbarungsgrundlage, was in einem Software-Produkt umgesetzt werden soll.

Die Aufstellung von solchen Pflichtenheften verursacht für ein solches Software-Projekt erste umfangreiche Kosten und zusätzlich nimmt diese Erstellung erhebliche Zeit in Anspruch.

Bei einem solchen starren Konzept können nachträgliche Änderungswünsche nur mit erhöhten Kosten bewerkstelligt werden.

Deshalb haben gerade in der digitalen Welt solche sogenannten Wasserfallprojekte aufgrund des sehr starren Charakters nur einen geringeren Stellenwert oder kommen dann nur zur Anwendung, wenn bereits im Vorfeld sicher festgelegt worden ist, was diese Software-Entwicklung dann können soll und variable Anforderungen und Veränderungen werden in der Zeit der Software-Entwicklung nicht vorgenommen.

Bei einer agilen Software-Entwicklung dagegen kommt kein detailliertes Pflichtenheft, welches zu Beginn erstellt wird, zum Einsatz.

Trotzdem gibt es auch hier genaue Anforderungen während der Prozess-Durchführung. Dabei ist die Einsparung eines Pflichtenheftes und die dadurch entstehende höhere Geschwindigkeit bei der Umsetzung ein Vorteil bei einer agilen Software-Entwicklung.

Hier müssen die Auftraggeber für eine agile Software-Entwicklung die am höchsten priorisierten Anforderungen festlegen. Dadurch sind die Anforderungen erheblich begrenzt und ein solches Software-Projekt geht dann sofort mit der Konzeption (hier wird auch von Backlog-Refinement gesprochen) an den Start und anschließend werden die wichtigsten Funktionen entwickelt.

Der Auftraggeber oder Kunde bestimmt dann, welche Schritte als Nächstes umgesetzt werden. Hier werden dann die nächsten Anforderungen in Form von Epics (die nächsten größeren Anforderungen) sowie User Stories (die genauen Umsetzungen) von den jeweiligen Auftraggebern oder Kunden festgelegt.

Dabei läuft dann die aktuelle Entwicklung und Umsetzung parallel weiter. Eine solche Vorgehensweise mit der anschließenden Priorisierung wird in der agilen Software-Entwicklung auch als „Backlog-Refinement“ bezeichnet.

Somit entsteht bei der agilen Software-Entwicklung nach jeden Auftragsschritt eine funktionierende Software (hier wird in der Fachsprache auch von Inkrement gesprochen).

Dadurch ist jederzeit auch für den Auftraggeber oder Kunden ein Überblick über den Fortschritt der Entwicklung vorhanden, die dann von ihm auch kontrolliert werden kann.

Die Vorteile der agilen Software-Entwicklung

Hohes Maß an Zusammenarbeit zwischen Projektteam und dem Kunden

Grundsätzlich ist ja das Feedback der Kunden oder Auftraggeber der Hauptantrieb für die Verbesserungen bei einem Software-Projekt.

Aufgrund der gerade bei der agilen Software-Entwicklung stattfindenden regelmäßigen Kunden- oder Auftraggeber-Kontakte gibt es eine Vielzahl von Gelegenheiten, den aktuellen Zustand des Projekts zu sehen und seine Kommentare dazu abzugeben.

Somit kommt es bereits in einem relativ frühen Stadium von einer Software-Entwicklung zu einer Formung des Projekts. Dadurch wird der Auftraggeber oder der Kunde wesentlich besser verstanden und es kommt dazu, Missverständnisse vorzubeugen.

Ebenfalls wird durch diese enge Zusammenarbeit die Wahrscheinlichkeit erheblich reduziert, dass bei dem Projekt aus der Sicht des Auftraggebers oder Kunden etwas schiefläuft.

Außerdem basiert die agile Software-Entwicklung auch auf einem fortlaufenden Feedback des eigenen Teams. Dadurch werden ebenfalls frühzeitig Fehlentwicklungen erkannt und können sofort beseitigt werden.

Transparenz

Wie oben bereits erwähnt, ist bei der agilen Software-Entwicklung die Basis eine transparente und regelmäßige Kommunikation sowie der persönliche Austausch zwischen dem Auftraggeber oder dem Kunden sowie innerhalb der Teammitglieder.

Bei dieser Art von Softwareentwicklung hat jedes Projekt-Mitglied seine spezielle Verantwortlichkeit sowie eine dabei genau definierte Rolle. Dadurch wird auch von jedem Teammitglied verstanden, zu welchen Teil des Puzzles er oder auch sie beiträgt.

Regelmäßige und planbare Lieferung der Teilergebnisse

Das Arbeiten in einzelnen Teilbereichen und die Aufteilung der Arbeit auf möglichst kleine Teilaufgaben mit einheitlichen und klaren Prioritäten erlaubt es dem gesamten Team sowie den einzelnen Teammitgliedern die dann erreichten Teilergebnisse regelmäßig zu liefern.

Dabei wird dann die Zusammenarbeit innerhalb des Teams aufgrund des vorhandenen regelmäßigen Sitzungskalenders sichergestellt und ein fortlaufendes Feedback erhält dann jeder der Teammitglieder.

Planbare Kosten und Termine

Auch bei der agilen Software-Entwicklung muss ein Budget vorhanden sein. Hierfür wird ein geschätzter Kostenrahmen benötigt. Dabei geht es hier nicht darum, dass der Aufwand genau auf den Cent ermittelt wird.

Sondern es sollte hier ein Rahmen (mit Aufbau von Puffern) für die Budgetierung abgeschätzt werden. Somit wird bei der agilen Software-Entwicklung von einem starren Rahmen auch bei den Kosten abgewichen.

Von dem Termin her gibt es bei einer agilen Software-Entwicklung hier einen ungefähren Fertigstellungs-Termin, der dann zu Beginn festgelegt wird.

Dadurch kann dann auch gegenüber der Öffentlichkeit mit einer entsprechenden Zeitspanne operiert werden. Aber einen exakten und genauen Termin mit dem Fertigstellungstermin ist hier im Unterschied zu einer starren Planung nicht erforderlich.

Hier genügt dann zum Beispiel die Angabe „zum Ende eines bestimmten Quartals“ als Beispiel.

Fokus auf den Business-Nutzen

Bei der agilen Vorgehensweise entsteht der Business Nutzen dadurch, dass sich die am Projekt beteiligten Teams in Abstimmung mit dem Auftraggeber oder den Kunden stark auf die Anforderungen fokussieren, die dem Auftraggeber den maximalen  Business Nutzen bringen.

Agile Bewegung mit Fokus auf den Business-Nutzen ist aus der agilen Software-Entwicklung entstanden und hat die komplette Projektmanagementwelt erfasst, woraus auch agiles Projektmanagement entstanden ist, das sich weit über die agile Software-Entwicklung in allen möglichen Branchen verbreitet hat.

Höhere Qualität der Software Produkte

Nachdem bei der agilen Software-Entwicklung die Produkte aufgrund der immer wiederkehrenden Feedback-Aktionen überprüft werden, entsteht hier eine wesentlich höhere Qualität, als dies bei der starren Erstellung und Vorgehensweise der Fall ist.

Änderungen sind jederzeit willkommen

Ein wichtiger Punkt bei der agilen Software-Entwicklung ist auch die Thematik, dass bei den einzelnen Zwischenschritten der aktuelle Stand immer wieder hinterfragt und überprüft wird und wenn es dann notwendig sein sollte, können dann jederzeit Änderungen eingebracht werden.

Fazit

Die Umstellung von einer starren zu einer agilen Software-Entwicklung ist ein Prozess, der je nach Ausprägung länger dauern kann.

Eine solche Umstellung kann jedoch erheblich zu dem Erfolg eines Unternehmens beitragen. Dadurch entsteht dann auch mehr Kundenzufriedenheit. Ebenfalls wird das Klima im Team deutlich verbessert und die Motivation steigt.

Über den Autor

Dieter Zibert ist Trainer und Consultant für Projektmanagement mit über 10 Jahren Erfahrung im Projektmanagement. Er hat klassische, agile und hybride Projekte in den Branchen Bahnindustrie, Fabrikautomation, Automobilindustrie und Healthcare geleitet und verfügt über PMP, PMI-ACP, Professional Scrum Master und Professional Scrum Product Owner Zertifizierungen.

Darüber hinaus hat er langjährige Erfahrung im Projektportfolio-Management, Aufbau von professionellen PMOs, Business Transformation, Change Management, hybriden Projektmanagement durch Anwendung von klassischem, agilem und Critical Chain Projektmanagement und in der Anwendung von TOC Prinzipien. Mehr unter https://greenprojectsconsulting.com/