Learn4Life – Erfolg ohne Fixpreis-Offerte und vorgeschobene Konzeptionsphase

Idea start Dekorations-Element

27. November 2024

|

Artikel

|

7min

Wie wir agile Methoden angewendet haben, um ein neues Verwaltungssystem für Learn4Life zu entwickeln

Was würdest du machen, wenn du eine massgeschneiderte Softwarelösung brauchst, aber über ein begrenztes Budget verfügst?

Viele würden wohl (vereinfacht) ein ähnliches Vorgehen wie dieses hier wählen:

  1. Einen Anforderungskatalog erarbeiten
  2. Offerten einholen und vergleichen
  3. Auftrag erteilen

Warum? Digitale Produkte und deren Entwicklung sind schwer zu greifen, und Softwareentwicklung ist teuer. Unter diesen Umständen ist es für viele naheliegend, den Gesamtumfang ihrer Anforderungen möglichst detailliert in einem Katalog niederzuschreiben und darauf basierende Angebote einzuholen. So kann sichergestellt werden, dass am Ende das gelieferte Ergebnis mit den Anforderungen übereinstimmt, oder?

Oft starten Projekte dieser Art mit einer Konzeptionsphase, in der versucht wird, die Gesamtlösung gleich am Anfang möglichst gut zu verstehen.

Wie Softwareentwicklung auch ohne Anforderungskatalog und vorgeschobene Konzeptionsphase gelingen kann, möchten wir euch anhand unserer Zusammenarbeit mit Learn4Life in Köniz zeigen.

Wer ist Learn4Life

Die Non-Profit-Organisation Learn4Life setzt sich für eine bessere Chancengleichheit in der Grundbildung ein, indem sie professionelle Lernförderung zu fairen Preisen anbietet. Bisher auf die Berner Vororte Köniz und Ostermundigen fokussiert, möchte Learn4Life ihr Angebot auf weitere Standorte ausweiten, um es so vielen Schüler:innen wie möglich zu gleichen Bedingungen zugänglich zu machen.

Vision

Als Learn4Life mit der Idee auf uns zugekommen ist, eine Verwaltungssoftware für ihren Schulbetrieb zu entwickeln, hatten sie bereits einen ausführlichen Anforderungskatalog ausgearbeitet. Wir wollten zu diesem frühen Zeitpunkt jedoch möglichst wenig Budget in arbeitsintensive Konzepte, Analysen und Aufwandsschätzungen investieren. Stattdessen setzten wir uns mit Learn4Life an einen Tisch und erarbeiteten eine gemeinsame Projektvision:

Wir wollen es ermöglichen, das Angebot von Learn4Life für alle Jugendlichen in der Schweiz zum jetzigen Preis anzubieten.

Mit Hilfe dieser Vision definierten wir die absolut notwendige Kernfunktionalität, welche die neue Verwaltungssoftware braucht, um Learn4Life dieser Vision einen Schritt näher zu bringen.

Diese nun wesentlich einfacher beschriebene Kernfunktionalität, konnten wir mit vernünftigem Aufwand schätzen. Dabei fanden wir heraus, dass wir die Kernfunktionalität wahrscheinlich innerhalb des Budgets umsetzen können, aber nicht garantiert.

Wie wir Aufwände schätzen und kommunizieren

Uns ist es wichtig, Aufwandsschätzungen transparent zu kommunizieren. Deswegen ist das Ergebnis einer Aufwandschätzung bei uns immer ein Wertebereich, in dem der wirkliche Aufwand mit sehr grosser Wahrscheinlichkeit liegt. Diesen Bereich fassen wir normalerweise mit drei Zahlen zusammen: Dem minimal zu erwartenden Aufwand (best case), dem zu erwartenden Aufwand und dem maximal zu erwartenden Aufwand (worst case). Im Falle von Learn4Life lag der zu erwartende Aufwand noch im Budget, der maximal zu erwartende Aufwand lag über dem Budget.

Da wir zuversichtlich waren, im Budget eine abgerundete Lösung entwickeln zu können, haben wir uns zusammen mit Learn4Life entschieden, die Entwicklung trotz dieses Risikos in Angriff zu nehmen.

Kein vereinbarter Fixpreis

Die Auftragserteilung erfolgte nicht auf Basis einer Fixpreis-Offerte. In unserer Erfahrung braucht es in diesem Schritt oft etwas Überzeugungsarbeit, weil es für viele sehr ungewohnt ist, ein solches Vorhaben ohne Anforderungskatalog und Fixpreis zu starten. Wer will schon ein Projekt in Angriff nehmen, ohne zu wissen, was am Ende genau dabei rauskommt?

Unsere Alternative zur Fixpreis-Offerte ist, für die Entwicklung der Software ein Budget festzulegen und dessen Einhaltung nach jeder Iteration zu kontrollieren. Sollten unsere Kunden mit dem Fortschritt nicht zufrieden sein, können Sie das Projekt jederzeit abbrechen. So müssen unsere Kunden jeweils nur einen Bruchteil des Gesamtbudgets freigeben und können so ihr Risiko minimieren.

Mit einem vorgegebenen Budget und iterativem Vorgehen das Risiko kontrollieren

Das Problem mit Fixpreis-Offerten ist in unseren Augen, dass der Entwicklungsaufwand besonders zu Beginn eines Projektes, wenn noch am wenigsten darüber bekannt ist, sehr schwierig einzuschätzen ist. Wenn man den geschätzten Projektaufwand mit einer fixen Zahl beziffert, wird diese Zahl mit sehr grosser Wahrscheinlichkeit daneben liegen. Die Frage ist nur, wie weit und ob der geschätzte Aufwand über oder unter dem effektiven Aufwand liegt. Liegt die Zahl darüber, profitiert der Lieferant, liegt die Zahl darunter, profitiert der Kunde.

Anstelle eines Auftrags über einen fixen Umfang und Preis bevorzugen wir es, das Risiko mittels Iterationen zu kontrollieren. Das gelingt uns, indem wir die Softwareentwicklung schrittweise finanzieren, entwickeln und erweitern. Diese Schritte nennen wir Iterationen. Jede Iteration hat ein Ziel, ein für die Erreichung dieses Zieles freigegebenes Budget, und als Ergebnis funktionierende Software.

Nach jeder Iteration können wir den Projektfortschritt gemeinsam kontrollieren und abschätzen, ob wir bezüglich des Gesamtbudgets auf Kurs sind. Glücklicherweise wird das mit jeder Iteration einfacher, weil wir die Problemstellung immer besser verstehen und den Restaufwand immer genauer beziffern können. Unsere Kunden können die Entwicklung dabei jederzeit ohne Mehrkosten abbrechen, falls sie mit dem Fortschritt nicht zufrieden sind. So müssen sie jeweils nur einen Teil ihres Budgets aufs Spiel setzen, und gehen so ein erheblich kleineres Risiko ein.

Keine vorgeschobe Konzeptionsphase

Wie der Name schon sagt, ist Software “Soft” und ermöglicht es uns, Produkte so zu bauen, dass sie veränderbar und erweiterbar bleiben. Oft wird erst dann, wenn die Software eingesetzt wird, wirklich klar, wie gut sie ihren Zweck erfüllt und welche weiteren Änderungen am wichtigsten sind.

Deshalb stellen wir unseren Kunden von Anfang an den aktuellen Entwicklungsstand laufend in Form von funktionierender Software zur Verfügung. So können wir den aktuellen Stand und Funktionsweise einfacher und schneller gemeinsam überprüfen.

Wir erstellen weiterhin Konzepte, und zwar immer dann, wenn wir ein komplexes Teilproblem zunächst besser verstehen möchten, bevor wir mit der Programmierung der Lösung beginnen. Da diese Konzepte nur relevante Aspekte eines Teilproblems beleuchten, genügt es, sie erst dann auszuarbeiten, wenn sie tatsächlich benötigt werden. So können neu gewonnene Erkenntnisse berücksichtigt werden, und das Wissen bleibt für die Implementierung noch frisch.

Schritt für schritt zum Ziel

Die notwendige Funktionalität haben wir im Rahmen von 5 Iterationen umgesetzt.

Iteration 0

Ziel: Nötige Infrastruktur bereitstellen, um eine schnelle Entwicklung der Verwaltungssoftware zu ermöglichen

Iteration und Fortschritt visualisierung

Eingesetzte Mittel: 15% des Budgets

Das Ziel der Iteration 0 war, die Grundlagen für die Entwicklung der neuen Verwaltungssoftware zu erarbeiten. Das beinhaltete das Bereitstellen der Cloud-Infrastruktur, Deployment-Infrastruktur, aber auch Backups und Monitoring. Die Software brachten wir auf einen Stand, der Daten aus der Datenbank anzeigen kann. So konnten wir die Infrastruktur End-to-End validieren.

Iteration 1

Ziel: Grundlage für die Planung von Unterrichtseinheiten schaffen

Iteration und Fortschritt visualisierung

Eingesetzte Mittel: 25% des Budgets (40% des Gesamtbudgets)

Die Unterrichtseinheit ist das Herzstück der Unterrichtsplanung. Sie bildet ab, welche Lektionen mit welchen teilnehmenden Personen wann und wo stattfinden. Aus diesem Grund wollten wir die Unterrichtseinheit so schnell wie möglich mit der neuen Verwaltungssoftware abbilden. Dazu gehörte auch die Abbildung von grundlegenden Konzepten wie beispielsweise Personen, Anstellungen, Abos, Lerngruppen, Unterrichtszeiten und Räumen. Im Rahmen der Iteration 1 ermöglichten wir das manuelle Verwalten dieser Grundlagen.

Iteration 2

Ziel: Umsetzung der notwendigen Grundlagen und Konzeption für die Unterrichtsplanung

Iteration und Fortschritt visualisierung

Eingesetzte Mittel: 15% des Budgets (55% des Gesamtbudgets)

Zu Beginn der Iteration 2 verfügten wir bereits über eine Software, welche die für die Unterrichtsplanung notwendigen Konzepte kennt und deren manuelle Verwaltung unterstützt. Nun war die Zeit gekommen, uns mehr Gedanken über die Unterstützung bzw. Automatisierung der Unterrichtsplanung zu machen. Während wir noch einzelne Grundlagen wie z.B. Bestellungen einbauten, lag der Fokus von Iteration 2 auf der Erarbeitung eines Konzeptes für die Unterrichtsplanung.

Dabei sahen wir, dass sich der Planungsprozess in zwei Module unterteilen lässt: Die voraussichtliche Planung, und die effektive Planung. Wir nannten die voraussichtliche Planung “Planungsvorschlag” und die effektive Planung “Wochenplanung”.

Während beim Planungsvorschlag das Zuordnen von Personen zu Lerngruppen auf einen längeren Zeithorizont im Fokus liegt, konzentriert sich die Wochenplanung auf die effektive Planung einer Woche, respektive das Lösen von Problemen bei spontanen Abwesenheiten und Umteilungen. Die Wochenplanung kann wöchentlich aus dem Planungsvorschlag generiert werden.

Iteration 3

Ziel: Umsetzung der Gruppenverwaltung und Konzeption der Wochenplanung

Iteration und Fortschritt visualisierung

Eingesetzte Mittel: 15% des Budgets (70% des Gesamtbudgets)

Die vierte Iteration stand ganz im Zeichen der Optimierung des Planungsvorschlags. Das Ziel war es, die voraussichtliche Planung auf eine übersichtliche Art und Weise darzustellen und die Verwaltung von Lehrpersonen und Schüler:innen so zu erleichtern.

Parallel dazu konnten wir das Konzept für die Wochenplanung verfeinern.

Iteration 4

Ziel: Die minimale Funktionalität um den Betrieb zu starten

Iteration und Fortschritt visualisierung

Eingesetzte Mittel: 30% des Budgets (100% des Gesamtbudgets)

Im Rahmen von Iteration 4 setzten wir die Wochenplanung und andere noch fehlende zentrale Funktionalitäten der Verwaltungssoftware um. Unser Ziel war es, einen Stand zu erreichen, der die gesamte für den Betrieb notwendige Funktionalität enthält und eingeführt werden kann.

Fazit

Unsere Zusammenarbeit mit Learn4Life zeigt, dass ein agiles Vorgehen nicht nur Risiken minimiert, sondern auch maximale Flexibilität und Effizienz ermöglicht. Durch die iterative Entwicklung konnten wir die Kernfunktionalität Schritt für Schritt realisieren, neue Erkenntnisse nahtlos einfliessen lassen und das Budget optimal nutzen.

Learn4Life profitierte dabei von einer lückenlosen Transparenz und der Möglichkeit, den Projektfortschritt jederzeit zu überprüfen und zu beeinflussen.

Seit dem 1. Januar 2024 ist die Verwaltungssoftware im Einsatz. Seither konnten wir die Software mit Erkenntnissen aus dem Betrieb laufend optimieren und weiterentwickeln. In den nächsten Blogposts über Learn4Life werden wir dir weitere Einblicke hinter die Kulissen gewähren.

Möchtest auch du dein nächstes Softwareprojekt auf diese Weise erfolgreich umsetzen?

Kontaktiere uns, und lass uns gemeinsam herausfinden, wie wir deine Vision Wirklichkeit werden lassen können.

info@rethinc.ch

Projekt Details

  • Auftraggeber: Learn4Life
  • Technologien: Vue.js, Typescript, Spring Boot, Kotlin
  • Umsetzungszeitraum (Iteration 0-4): Dezember 2022 bis August 2023