Methode und Werkzeug zur strategischen Planung der technischen Schuld in agilen Softwareprojekten
Hintergrund und Problemstellung: Bei der Weiterentwicklung und Anpassung von Software, z.B. an sich ändernde Nutzerwünsche, wird aus Kosten- und Zeitgründen oft die Softwarequalität vernachlässigt. Dies geschieht sowohl bewusst als auch unbewusst, wobei mit jeder neuen Version Kosten anfallen. Diese werden „technische Schulden“ genannt und beschreiben die Kosten der Arbeiten, die zur Qualitätsbehebung erbracht (zurückbezahlt) werden müssen, z.B. durch Verbesserung der Softwarestruktur. Gleichzeitig entstehen Folgekosten, die auch als Zinsen auf die technischen Schulden bezeichnet werden, etwa verringerte Entwicklungsgeschwindigkeit und erhöhte Wartungskosten. Werden die Schulden nicht zeitnah verringert, entsteht im Laufe der Zeit ein Schuldenberg, der Entwicklungsabteilungen zum funktionalen Stillstand zwingen kann. Die Herausforderung für Projektmanager ist, unter Berücksichtigung des gegebenen Budget- und Zeitrahmens, die Balance zwischen der Entwicklung neuer Features und der Reduzierung technischer Schulden zu finden. Ziel dieses Balanceakts ist es, die Time-to-Market für aktuelle Produkt-Releases kurz und gleichzeitig zukünftige Wartungskosten auf akzeptablem Niveau zu halten. Eine methodische Unterstützung oder gar Werkzeugunterstützung hierzu gibt es bisher nicht.
Zielsetzung und Lösungsansatz: Das Ziel des Vorhabens „ProDebt“ ist die Entwicklung einer innovativen, werkzeuggestützten Methodik zur Erfassung und Planung und Steuerung der technischen Schuld insbesondere im Rahmen agiler Softwareentwicklung bei KMUs. Die Lösung hilft Entscheidungsträgern bei der Beantwortung folgender Fragen: Wie viele technische Schulden kann ich mir leisten und welche Rückzahlungsstrategie sollte ich planen? Welche Kompromisse sollte und kann ich jetzt eingehen, damit ich meine Software rechtzeitig auf den Markt bringe und trotzdem noch in der Lage bin, die damit einhergehenden technischen Schulden zurückzuzahlen? Die Beantwortung dieser Fragen erfordert: (1) die Lücke zwischen der tatsächlichen und der angestrebten Qualität von Softwareprodukten zu messen, (2) die Kosten für das Schließen dieser Lücke zu schätzen und (3) die zukünftigen Kosten der aus der Qualitätslücke resultierenden Zinsen vorherzusagen.
Kernarbeiten des Projektes: Zur Erreichung der Ziele wird eine iterative Vorgehensweise gewählt, um durch frühe Evaluation von Teilergebnissen das Projektrisiko zu minimieren. Die Kernarbeiten bestehen aus: (1) Erhebung der Anwendungsszenarien und der IST-Situation bei den Anwendungspartnern sowie der daraus abgeleiteten Anforderungen an das Qualitätsmodell. (2) Spezifikation von Qualitätsmodellen (QMs) für die Bewertung des Qualitätsprofils (bzw. Qualitätslücken) und die Ermittlung von Brennpunkte in Softwareprodukten. (3) Erhebung und Analyse historischer Projektdaten sowie die Schaffung eines Verständnisses für die Anwendungsszenario- und damit Partner-spezifischen Baselines und Trends. (4) Entwicklung einer Methode zur Messung und Bewertung der technischen Schuld. (5) Entwicklung eines prototypischen Werkzeugs zur Erfassung historischer Daten und zur Vorhersage der technischen Schulden, inklusive Visualisierung. (5) Erprobung der Methode und deren Werkzeugunterstützung im realen Projektumfeld bei den Partnern.