Agile Softwareentwicklung – und wie sie Kunden und Entwicklern entgegenkommt

Agile Softwareentwicklung – und wie sie Kunden und Entwicklern entgegenkommt

Agile Softwareentwicklung – und wie sie Kunden und Entwicklern entgegenkommt

Nicht immer lassen sich Softwareprojekte bis auf das letzte Zeichen im Code exakt planen – sodass Veränderungen und Verzögerungen während des Entwicklungsprozesses in einigen Projekten an der Tagesordnung sind. Jene Schwankungen wirken sich natürlich auch auf den Preis aus, und das wiederum gefällt Kunden, die einen Festpreis haben möchten, gar nicht. Kann agile Softwareentwicklung also beide Seiten zufriedenstellen? Ja – wenn man weiß, wie.

Ein Konflikt – oder?

Softwareentwickler haben es mitunter nicht leicht: Sie würden gerne alle Ziele bei der Entwicklung einer App umsetzen und sich dabei so viel oder wenig Zeit lassen wie möglich. Dann kommen jedoch das Management und die Kunden: Ersteres setzt Deadlines, damit das Projekt zu einem bestimmten Zeitpunkt garantiert fertig ist, und letztere verlangen einen exakten Preis, um Planungssicherheit zu haben und sich nicht plötzlich völlig ausufernden Kosten ausgeliefert zu sehen.

Was zuerst wie ein Interessenkonflikt aus dem Lehrbuch aussieht, verliert schnell seinen Schrecken, wenn beide Parteien auch die Möglichkeiten dieses zuerst als Paradoxon wahrgenommenen Situation verstehen. Aus diesem Wissen entsteht der agile Festpreis: Er beschreibt einen Kompromiss aus dem Bedürfnis nach relativ festen Preisen und nimmt gleichzeitig Rücksicht auf die nun einmal sehr agile Umgebung der Softwareentwicklung. Wer sich darauf einlässt, erhält vor allem einen sehr greifbaren Bonus: Vertrauen.

Synthese schafft Vertrauen

Wer das Experiment wagt, wird feststellen, dass eine gewisse Vertrauensstärkung eintreten wird: Die Kunden werden den Entwicklern den notwendigen Freiraum geben, während jene Entwickler wissen, dass der Kunde sich auf sie verlässt – und so werden, im besten Fall, beide Seiten ihr Möglichstes tun, um die Ziele zu erreichen.

Dass ein agiler Festpreis Vorteile hat, lässt sich auch im Hinblick auf klassisches Projektmanagement im Softwarebereich feststellen – denn das läuft ungefähr so ab:

  • Entwickler und Kunde definieren Ziele und Anforderungen eines Projekts. Danach werden der Zeitbedarf und die Kosten möglichst exakt geschätzt.
  • Der Kunde freut sich über seine scheinbare Planungs- und Kostensicherheit. Nach kurzer Zeit fährt jedoch die bösartige Realität ihre Klauen aus.
  • Abläufe dauern länger als geplant, die Deadline verschiebt sich mehr oder weniger deutlich, die Kosten steigen. Aus der scheinbaren Sicherheit wird am Ende Chaos.

Unter jenem Chaos leiden dann sowohl die Entwickler, denen der Kunde jetzt wie ein Raubvogel im Nacken sitzt, als auch die Kunden, die jede Verzögerung bezahlen müssen. Frust entsteht auf beiden Seiten und das gegenseitige Vertrauen ist zwar vielleicht nicht völlig ruiniert, aber doch angeknackst.

Die Lösung liegt in der folgenden Vorstellung: Bei der klassischen Form der Softwareentwicklung geht es darum, Kosten und Termine ungefähr abzuschätzen. Der Fixpunkt hingegen ist das Projektziel. „Unsere App mussdas und das und das können.“ Hieraus entsteht natürlich gleich ein hohes Risiko:

Wenn eine App bestimmte Anforderungen unbedingt erfüllen muss, aber diese Ziele in der gesetzten Deadline einfach nicht zu erreichen sind, führt dies automatisch zum Scheitern.

Daher ist der Ansatz des agilen Festpreises eine oft bessere Lösung: Fest gesetzt sind hier der Termin und die Kosten.

„Das Projekt ist beendet am 1. November zum Preis von 15.000 Euro.“

Die Variable ist hingegen das Projektziel: Zwar wird vorgegeben, was die App im besten Fall können sollte, aber wenn nicht alle Features umgesetzt werden – dann ist das nun einmal so. Im Nachhinein ist es immer möglich, nachzubessern. Ist der Kunde bereits zufrieden, erhält er den bestmöglichen Gegenwert für sein Geld in der kürzesten Zeit. Falls noch etwas fehlt, kann nachgebessert werden – wieder zum Festpreis.

Beide Seiten müssen mitspielen

So schön, wie es in der Vision klingt, ist es in der Realität leider nicht. Entwickler sind aktuell schnell damit konfrontiert, dass sie bestimmte Deadlines unbedingt einhalten müssen. Das ist zwar in der Theorie einfach – pünktlich zum Ablieferungstermin wird einfach die Arbeit aus der Hand gelegt und der Code abgeliefert –, aber in der Realität wird der Kunde gelegentlich anfragen, „ob man nicht doch noch dieses eine Feature unterbringen kann“. Dagegen hilft eine offene Kommunikation: Zeigt der Entwickler stets an, wo er sich gerade befindet, und entwickelt er so, dass eine Beendigung des Projekts jederzeit möglich ist, profitieren beide Seiten.

Kunden haben es auch nicht einfach: Sie sind natürlich daran interessiert, für jeden Euro einen höchstmöglichen Gegenwert zu erhalten – daher die Verlockung eines absoluten Fixpreises. Das Modell des agilen Festpreises, bei dem zu einem bestimmten Punkt einfach abgeliefert wird, egal, wie weit das Projekt wirklich fortgeschritten ist, lässt daher schnell einen Verdacht aufkommen: Die Softwareentwickler drehen einfach Däumchen und arbeiten gemächlich vor sich hin, denn die Bezahlung steht ja ohnehin schon fest. Nicht möglichst viel, sondern möglichst wenig soll jetzt geleistet werden – so jedenfalls besagt es das Vorurteil.

Womit wir wieder beim Vertrauen sind…

Um diese Probleme zu umgehen, entstand 2001 in den USA ein heute wichtiges Dokument: das Manifest der agilen Softwareentwicklung, einsehbar unter http://agilemanifesto.org/iso/de/manifesto.html. Darin finden sich einige wichtige Leitsätze, wovon einer besonders wertvoll ist:

„Reagieren auf Veränderung ist mehr wert als das Befolgen eines Plans.“

Wer sich die wenigen Zeilen genauer durchliest, wird schnell bemerken, dass hier ehrliche Kommunikation und häufiges Feedback (von beiden Seiten) wichtiger ist als beispielsweise der Fokus auf die verwendeten Prozesse und Werkzeuge bei der Softwareentwicklung. Man könnte auch sagen: Die Karten gehören offen auf den Tisch. Gegenseitiges Verständnis und Interaktion sind der Schlüssel zur Vertragsverhandlung.

Als Modell für die Softwareentwicklung postuliert der agile Festpreis unter anderem, dass im Voraus ein klarer Ablauf definiert wird: Wie informieren wir uns gegenseitig über den Fortschritt des Projekts und wie erreichen wir, sollte es notwendig sein, Konsens bei notwendigen Änderungen im Ablauf? Ein einfacher Ablauf dieser Feedbackschleifen wäre folgendes Szenario: Der Entwickler schafft es nicht, die Vorgaben in Bezug auf einen bestimmten Aspekt einer App umzusetzen und informiert sofort den Kunden. Jener Kunde gibt dann ebenfalls sofort Feedback und zeigt entweder an, dass das Ergebnis trotzdem akzeptabel ist oder dass die Fertigstellung unbedingt wie vorgegeben erfolgen muss – und dann muss eben an einer anderen Stelle der Rotstift angesetzt werden.

Dieses Vorgehen hat gleich mehrere Vorteile: Einmal bleiben Kosten und Termin trotz des aktuellen Konflikts beständig – ein Vorteil für den Kunden. Außerdem lernen beide Parteien dazu: Der Entwickler weiß, dass er im Rahmen der Kosten und Zeit operieren muss, während sich der Kunde als wichtiger Teil der Entwicklung sieht, denn seine Entscheidungen beeinflussen die Fertigstellung der App direkt.

Kunden „ertragen“ dann nicht mehr einfach die Entscheidungen des Entwicklers und müssen dann eben in den sauren Apfel beißen, sondern sind Entscheidungsträger, deren Wort am Ende Gesetz ist.

„Aber bekomme ich dann überhaupt eine funktionierende App?“

Ja! Nach dem Modell des agilen Festpreises sieht es so aus, dass das gesamte Projekt in kleinere Teilprojekte gestückelt wird. In jedem Fall fertiggestellt – und damit ganz am Anfang der Pipeline – werden diejenigen Bestandteile einer App, die unentbehrlich sind. So weiß der Kunde, dass am Ende auf jeden Fall ein funktionsfähiges Gesamtprodukt abgeliefert wird.

Davon abgesehen findet die weitere Entwicklung jedoch in kleinen Abschnitten statt. Stellen wir uns vielleicht eine App vor, die Nutzern dabei helfen soll, Sprachen zu lernen. Denkbare Teilprojekte wären vielleicht Funktionen für Sprachen außerhalb von Englisch, Französisch und Spanisch (die der Kunde als unentbehrliches Grundgerüst definiert hat), ein Feature für das Teilen der Erfolge mit anderen Nutzern und vielleicht Erfolgsanimationen für das Bestehen bestimmter Lektionen.

Durch die Definition des unentbehrlichen Anteils bekommt der Kunde also in jedem Fall seine Lern-App für Sprachen. Von den anderen Teilprojekten schaffen es vielleicht nur die Animationen und das Sharing-Feature – die zusätzlichen Sprachen müssen warten. Die wichtigsten Aspekte werden also auf jeden Fall zuerst geliefert, während die optionalen Funktionen zwar bei Abgabetermin wegfallen – aber sie können später noch nachgeliefert werden.

Preisgestaltung beim agilen Festpreis

Dieses Vorgehen erlaubt auch die Ausstattung jenes kleinen Projekts mit einem kleinen Festpreis. Die zusätzlichen Sprachen? 1.000 Euro. Sharing-Feature? 500 Euro. Am Ende ergeben sich also viele Miniatur-Festpreise, die dem Kunden seine gewünschte Planungs- und Kostensicherheit gibt.

Diese Staffelung sorgt für sehr schnelle Abschlüsse der einzelnen Projektphasen. Beim klassischen Modell läuft es meist auf eine lange Anlaufphase hinaus, die dazu genutzt wird, eine sehr umfangreiche Liste von Anforderungen zu definieren. Das ist auch notwendig, um am Ende Zeitbedarf und Kosten möglichst genau zu definieren. Daher ist diese Herangehensweise zwar verständlich, aber auch kontraproduktiv – denn bei derart ausufernden Projekten ist es kaum möglich, alle Wünsche umzusetzen, was dann am Ende zu Unzufriedenheit beim Kunden führt, obwohl der Entwickler alles Menschenmögliche versucht hat.

Fazit: agile Softwareentwicklung mit Orlyapps

Sicherlich ist für das Modell des agilen Festpreises gerade bei zwei Parteien, die sich gegenseitig völlig unbekannt sind, ein gewisser Vertrauensvorschuss notwendig. Der wird jedoch am Ende auch belohnt: Die hohe Transparenz – sowohl in Bezug auf die Kosten als auch die Kommunikation – sorgt für ein wesentlich entspannteres Arbeitsumfeld. Deadlines werden eingehalten, Kosten bleiben kalkulierbar und der Fortschritt der Entwicklung ist jederzeit einsehbar. Genau das wünschen sich Kunden – und auch Softwareentwickler.

Mehr Informationen zu Mobile App Entwicklung

Einheitliche Codebasis und plattformübergreifende Entwicklung, das gehört für Orlyapps einfach zusammen. Denn genau das macht Ihre App flexibel und pflegeleicht, egal für welches Endgerät. Oder gleich mehrere.