Was ist agile Produktentwicklung?

Stellen Sie sich vor, sie wollen mit einem Segelschiff einen fremden Hafen ansteuern. Würden Sie dann vor der Reise den Wind messen, den Kurs berechnen, das Ruder festbinden und schließlich nach einer festgelegten Zeit kontrollieren, ob Sie auch wirklich am Ziel angekommen sind? Sicher nicht! Denn was passiert, wenn sich der Wind gedreht hat? Was wenn die Karte ungenau war oder wenn Sie feststellen, dass Sie doch lieber in einem anderen Hafen anlegen möchten?

In einer vergleichbaren Situation befindet sich häufig der Kunde im klassischen Softwareentwicklungsprojekt: Er muss seine Anforderungen an die neue Software in Pflichten- oder Lastenheften haarklein aufschreiben – und zwar vor Projektbeginn. Hierdurch verzögert sich nicht nur der Projektstart; in den meisten Fällen kristallisiert sich auch erst im Laufe des Entwicklungsprozesses heraus, welche Funktionen im Einzelnen überhaupt benötigt werden. Um die neuen Anforderungen noch in das System zu integrieren, sind dann meist große Anstrengungen nötig, häufig verbunden mit zeit- und kostenintensiven Nachverhandlungen, die weder dem Kunden noch den Entwicklern etwas nützen.

Welche Vorteile bietet agile Produktentwicklung?

  • wertvollere Produkte
  • kürzere Entwicklungszyklen
  • frühe und kontinuierliche Wertschöpfung
  • lernende Organisationen
  • begeisterte Kunden und Mitarbeiter

Vorteile für Kunden

Agile Softwareentwicklung bedeutet Flexibilität

Agile Entwicklungsmethoden kommen ohne Pflichtenhefte aus. Der Kunde gibt am Anfang nur einige wenige Basisfunktionalitäten vor, das Projekt startet sofort ohne Verzögerung. Während des Projektverlaufs können jederzeit neue oder geänderte Anforderungen definiert werden, z.B. weil festgestellt wurde, dass die Software andere Merkmale haben muss als bisher angenommen; oder weil sich die Wettbewerbssituation geändert hat. Durch dieses iterative Vorgehen können Erfahrungen aus dem laufenden Projekt in den weiteren Entwicklungsprozess mit einfließen, und es wird nur das entwickelt, was tatsächlich von Nutzen ist. 

Agile Methoden sparen Zeit und Nerven

Zum Erfolg von Entwicklungsprojekten trägt einfache und effiziente Kommunikation mindestens ebenso bei wie die eingesetzten Technologien. Deswegen arbeiten die Entwickler in agilen Projekten grundsätzlich beim Kunden vor Ort und stehen im ständigen Kontakt mit ihm. Details können so schnell geklärt, Missverständnisse sofort beseitigt werden. Niemand muss mehr schriftliche Anfragen stellen und sich ärgern, wenn diese zu spät beantwortet werden. Weil die Entwickler regelmäßig Feedback vom Kunden erhalten, wird die Gefahr minimiert, dass sie sich verrennen und die Software in eine falsche Richtung entwickeln. Auf der anderen Seite kann sich der Kunde jederzeit den aktuellen Systemzustand vorführen lassen, er behält so stets den Überblick und die Kontrolle über das Projekt.

Agiles Vorgehen heißt: sich einen echten Wettbewerbsvorteil verschaffen

Die kurzen Kommunikationswege mit den Entwicklern führen auch dazu, dass das System insgesamt früher fertig gestellt wird, was einen echten Wettbewerbsvorteil bedeutet (Time-To-Market). Darüber hinaus werden stets diejenigen Elemente des Systems zuerst fertig gestellt, die dem Kunden am wichtigsten sind – die also den höchsten Geschäftswert erzielen. So können große Teile der neuen Software schon lange vor Ende des Gesamtprojektes produktiv eingesetzt werden.

Vorteile für Entwickler

Wer agil vorgeht, liefert Qualitätsarbeit ab

Natürlich möchte jeder Entwickler sich mit seiner Arbeit identifizieren und wirklich gute Software erstellen. Agile Methoden liefern dafür den passenden Rahmen: So werden die Aufwände von den Entwicklern selbst geschätzt, denn diese müssen ja hinterher auch dafür geradestehen. Und durch das zyklische Vorgehen können immer wieder individuelle Messungen für das jeweilige Projekt vorgenommen werden, so dass jeder im Entwicklungsteam direkt aus seinen eigenen Erfahrungen lernen kann und stets eine realistische Vorstellung der tatsächlichen Entwicklungsgeschwindigkeit besteht. So muss niemand auf Kosten der Qualität einem unrealistischen Plan hinterherhetzen.

Agile Methoden führen zur direkten Kommunikation mit den Anwendern

In agilen Projekten sprechen die Entwickler direkt mit den Anwendern - und das am besten täglich. Diese direkte Kommunikation führt nicht nur dazu, dass die Entwickler besser verstehen, was die Anwender eigentlich für eine Software benötigen; gleichzeitig wächst auch das Verständnis der Anwender, wenn mal eine Schätzung von den Entwicklern korrigiert werden muss. Insgesamt ist eine gute Zusammenarbeit zwischen Entwicklern und Kunden sowie eine gemeinsame Vertrauensbasis von unschätzbarem Wert für jedes Projekt!

Mehr Spaß bei der Arbeit durch agiles Vorgehen

Zugegeben: alle Menschen sind verschieden, und was dem Einen Spaß bringt, kann für den Anderen ein Graus sein. Dennoch zeigt die Erfahrung, dass die meisten Entwickler in agilen Projekten mehr Spaß haben als in klassischen Projekten. Hierzu dürfte die enge Zusammenarbeit mit den Kollegen (tägliche Standup-Meetings, Retrospektiven,Pair-Programming ) ebenso beitragen wie die direkte Kommunikation mit den Anwendern, das häufige Ausliefern neuer Versionen, die eigenverantworliche Arbeit oder die Erlaubnis zum lebenslangen Lernen.

Iteratives Vorgehen und Feedback auf allen Ebenen

Im Kern geht es bei agiler Produktentwicklung um möglichst häufige Rückkopplungsprozesse und zyklisches (iteratives) Vorgehen auf allen Ebenen: bei der Programmierung, im Team und beim Management.

Anders als in der klassischen Vorgehensweise wird das neue System nicht im Voraus in allen Einzelheiten genau geplant und dann in einem einzigen langen Durchgang entwickelt, denn schließlich können sich die Anforderungen während der Projektlaufzeit noch ändern, und oft sind sie zu Projektbeginn noch gar nicht vollständig bekannt.

Stattdessen wechseln sich beim agilen Vorgehen kurze Planungs- und Entwicklungsphasen ab. Nachdem eine Vision für das neue System entwickelt wurde, also die Ziele festgelegt und gewichtet wurden, die mit dem Produkt erreicht werden sollen, wird ein Plan für eine erste Version ausgearbeitet, und die Entwicklung beginnt. Danach werden notwendige Anpassungen vorgenommen.

Früher Systemeinsatz zur Risikominimierung

Agiler Zyklus über schnellen Systemeinsatz

Mit jedem neuen Produkt sollen klare Geschäftsziele erreicht werden, die in der Regel vom Management/Kunden vorgegeben werden. Diese Geschäftsziele werden in Anforderungen überführt, denen dann wiederum das neue System entsprechen soll. Es findet also ein doppelter Übersetzungsprozess statt: von den Geschäftszielen zu den Anforderungen und von den Anforderungen zum System. Diese beiden Übersetzungsprozesse stellen die größten Herausforderungen in der Produktentwicklung dar, denn es ist weder trivial, für ein Geschäftsziel die exakten Anforderungen zu definieren, noch gegebene Anforderungen in ein Produktinkrement zu überführen. Wie aber können die Ergebnisse dieser Übersetzungsprozesse überprüft werden und zu welchen Zeitpunkten geschieht dies?

Agile Methoden gehen einen indirekten Weg, der darin besteht, das neue System möglichst früh einzusetzen und so gegen die Geschäftsziele zu prüfen. Es wäre äußerst ungünstig, wenn diese Überprüfung erst am Projektende erfolgen würde, weil es dann für Korrekturen und Umstellungen zu spät wäre. Stattdessen halten wir es für notwendig, dass diese Überprüfung so früh wie möglich erfolgt, damit bei Fehlentwicklungen noch während der Projektlaufzeit eingegriffen und umgesteuert werden kann.

Und wo ist der Haken?

Wenn agile Softwareentwicklung tatsächlich all die aufgezeigten Vorteile mit sich bringt, dann drängt sich die Frage geradezu auf, wo denn der Haken bei der Sache liegt. Tatsächlich ist es unbequem, agile Methoden erfolgreich einzuführen und durchzuhalten. Denn dazu muss man sich von alten Gewohnheiten trennen, neue Wege auskundschaften und immer wieder überprüfen, wie man sich noch weiter verbessern kann.

Wenn Sie bei sich agil vorgehen möchten, fangen Sie behutsam an. Führen Sie zu Beginn nur eine neue Methode ein und überprüfen Sie immer wieder, wie weit diese für Sie trägt.

 

Unser Angebot zu agiler Produktentwicklung

  • Wir coachen und betreuen Ihre Produktorganisation (z.B. Produktmanagement, Product Owner) bei agiler Produktentwicklung
  • Wir coachen und betreuen Ihre Entwicklerteams bei agiler Produktentwicklung.
  • Wir bieten Schulungen über agile Vorgehensweisen.
Alle Schulungen zum Thema Agilität

Wenn Fragen unbeantwortet geblieben sind, treten Sie mit uns in Kontakt.

Weitere Infos

Was ist eigentlich...