Natürlich gibt es Lebensbereiche, da sind diese Ansätze weniger geeignet, z.B. wenn die Aufgabe lautet, eine Software zur Steuerung einer Raumstation zu entwickeln. Auf dem ersten Flug im Orbit sollte nichts mehr schiefgehen. Hier sind also sicherlich andere Vorgehensmodelle gefragt.
Aber es gibt auch sehr viele Bereiche, in denen das Paradigma des "Veröffentliche früh, veröffentliche häufig und höre auf deine Kunden" tatsächlich der Schlüssel zu besserer Softwareentwicklung ist. In einem unserer aktuellen Projekte entwickeln wir eine mobile App zur Nutzung auf Smartphones. Die Nutzer der App sollen damit verschiedene Einstellungen an einem Online-Service vornehmen können.
Nach Prüfung der Anforderungen und Abwägens der geeigneten technischen Plattform fiel die Entscheidung zur Entwicklung der App auf das Flutter-Framework. Flutter ermöglicht es uns, plattformübergreifende Apps mit nur einer Codebasis zu erstellen. Dies beschleunigt nicht nur den Entwicklungsprozess erheblich, sondern gewährleistet auch eine konsistente Benutzererfahrung auf verschiedenen Geräten. Mit seiner reichen Sammlung von Widgets und seiner hohen Performance ist Flutter eine ideale Ergänzung zu unserem agilen Ansatz, um qualitativ hochwertige Apps in kürzerer Zeit zu liefern.
Die Anfangszweifel
Ja, es ist verlockend, an einer Software monatelang zu feilen, bis sie als "fertiges" Produkt erscheint. Der Gedanke, man bringt dann zum Stichtag X eine perfekte Software raus, gefällt. Um das vorwegzunehmen: So läuft das nicht. Denn was passiert, wenn während der Entwicklung ein essentielles Bedürfnis übersehen wurde oder die anfängliche Vision nicht mehr aktuell ist? Das Produkt hat sich verändert, oder eine andere Funktion wurde wichtig? Die meisten unserer Kunden verlangen von uns, dynamisch reagieren zu können, um den Herausforderungen am Markt und gegenüber den Mitbewerbern gerecht werden zu können.
Hier kommt das Konzept der agilen Entwicklung ins Spiel. Anstatt ewig lange in einer Vakuumkammer zu arbeiten, setzen wir auf die kontinuierliche Zusammenarbeit mit unseren Kunden in kürzeren Abschnitten, unter früher Einbeziehung derer Endkunden.
Der praktische Ansatz
Nehmen wir also an, wir entwickeln diese App für unseren Kunden, mit der seine Endkunden ihre Einstellungen, Produkte und Dienste bequem und einfach verwalten können. Traditionell würden wir vielleicht Monate damit verbringen, alle Features auszuarbeiten und die Anwendung zu perfektionieren, bevor wir sie dem Kunden präsentieren. Doch in der agilen Welt teilen wir den Prozess in kleinere Abschnitte auf.
In der ersten Phase, die wir heute abgeschlossen haben 🎉, entwickelten wir die grundlegende Version der App, die die Kernfunktionalitäten abdeckt. Anstatt alle möglichen Features einzubauen, konzentrierten wir uns auf das, was am wichtigsten ist. Wir haben vom ersten Handschlag bis zur Fertigstellung dieser grundlegenden Version genau 4 Wochen benötigt. Heute wurde die App präsentiert. Nun wird sie gerade an "Friends & Family" verteilt, um erste Erkenntnisse von echten Benutzern zu erhalten. Hier zeigt sich bereits der erste Vorteil: Unser Kunde kann frühzeitig Einfluss nehmen und sicherstellen, dass die Richtung stimmt. Nächster Schritt: AppStore.
Die Macht des Feedbacks
Statt blind voranzuschreiten, hören wir also auf das wertvolle Feedback unseres Kunden (und er auf das Feedback seiner Kunden). Vielleicht entdeckt er Bedürfnisse, die er vorher nicht genau benennen konnte. Oder er erkennt, dass einige geplante Features nicht so dringend sind wie andere. Dieses Feedback fließt direkt in die nächste Entwicklungsphase ein.
Stetige Verbesserung
Im heutigen Termin der Vorstellung der grundlegenden Version haben wir auch über die nächste Phase gesprochen. Während wir weiterhin in kurzen Zyklen arbeiten, verfeinern wir die App Schritt für Schritt. Fehler werden frühzeitig erkannt und behoben, anstatt bis zum Ende durchzuschlüpfen. Dies führt zu einer insgesamt stabileren und zuverlässigeren Software.
Da wir die App für unsere Kunden jetzt auch zur Veröffentlichung in den AppStores anmelden, sammelt unser Kunden schon frühzeitig erste Erfahrungen mit dem Veröffentlichungsprozess. Dieser Schritt kann zeitlich durchaus variieren und so einige Zeit in Anspruch nehmen, bevor die App schließlich im Store verfügbar ist. Je früher man hier Erfahrungen sammelt, desto besser.
Der Kunde als Partner
Der vielleicht größte Vorteil dieser Vorgehensweise ist, dass der Kunde sich als aktiver Partner fühlt. Er sieht, wie seine Ideen und Bedenken umgesetzt werden, und hat das Gefühl, wirklich Einfluss zu haben. Dadurch entsteht Vertrauen und eine engere Zusammenarbeit.
Fazit
Die Idee, "halbfertige" Software zu veröffentlichen, mag auf den ersten Blick abschreckend wirken. Doch in der agilen Softwareentwicklung geht es nicht darum, schlampige Arbeit zu rechtfertigen. Es geht vielmehr darum, die Entwicklung in greifbare Etappen zu unterteilen, den Kunden einzubeziehen und kontinuierliche Verbesserung zu ermöglichen.
Die Software ist also nicht "halbfertig", sondern das gesteckte Ziel ist eben genau eine bestimmte (reduzierte) Ausprägung der Software, die es unserem Kunden ermöglicht, den beabsichtigen Zweck und Nutzen der App an echten Kunden in kürzerer Zeit auszuprobieren, Erkenntnisse zu gewinnen, und diese in den nächsten Entwicklungsschritt einfließen zu lassen.
Unser aktuelles Projekt beweist, dass dieses Vorgehen nicht nur die Zufriedenheit des Kunden steigert, sondern auch zu besseren Endprodukten führt.