Mit agiler Entwicklung gegen Softwarefehler

30.09.2004
Von Chris Rupp

Wichtigster Baustein aller Prozessmodelle, ob nun schwer- oder leichtgewichtig, ist die Anforderungsanalyse. Ohne Kenntnis darüber, was der Kunde will, ohne konkrete, schlüssige und priorisierte Anforderungen, läuft jegliche Anstrengung ins Leere. Projekte mutierten dann zeitlich, finanziell oder qualitativ zum desaströsen Unterfangen. Die Wünsche der Kunden sind indes meist nicht stabil. So wird in einigen Projekten häufig Neuland betreten, so dass sich 30 bis 50 Prozent der Anforderungen erst während der Entwicklung ergeben. Auslöser für die Veränderungen sind wechselnde Umgebungsbedingungen oder neue Erfahrungen, die in das Projekt einfließen sollen. Wer also die Anforderungen ab einem bestimmten Zeitpunkt als fix betrachtet, verdrängt diese Tatsache und beseitigt das Problem nicht.

Agile Lösungsansätze hierfür gibt es inzwischen viele. Ihnen ist gemein, dass sie den Kunden mit seinen Bedürfnissen in den Mittelpunkt stellen und eine gemeinsame Sprache für das Gesamtteam fordern, statt Wissen rein über Spezifikationen weiter zu geben. Diese Prinzipien machen dieses Vorgehen erfolgreich und führen zu besseren Spezifikationen und Produkten.

So bezeichnete in einer Umfrage in der Yahoo-XP-Usergroup rund die Hälfte der Projektmitarbeiter den persönlichen Austausch mit dem Kunden für eine wichtige Errungenschaft. Allerdings unterscheiden sich die agilen Ansätze erheblich, wenn es darum geht, die Anforderungen zu erfassen. So werden bei XP beispielsweise nur kurze Szenarien festgehalten (User Stories) und genauere Anforderungen in Form von Testfällen dokumentiert, während andere Ansätze objektorientierte Modelle oder umfassendere natürlich sprachliche Dokumentationen fordern.

Seit 2003 werden in der Praxis zudem Ideen erprobt, Anforderungen von vornherein so zu dokumentieren, dass sie sich auch als Benutzerhandbuch oder als Abnahmekriterien anderweitig verwenden lassen. Erste Ergebnisse sind bisher viel versprechend. Wie sich Systeme verhalten, bei denen in langen Jahren der Wartung sehr wenig in Prosa oder nur in Modellen dokumentiert wurde, ist derzeit leider noch nicht untersucht.

Agil heißt, sich der passenden Methode aus einem riesigen Angebot zu bedienen. Orientierungshilfe bietet das Manifest der agilen Softwareentwicklung. In Projekten in Industrie und Handel haben sich zudem weitere Erfahrungen herauskristallisiert, die den Kurs in einem agilen Projekt bestimmen helfen können, auch wenn sie sich teilweise überschneiden oder widersprechen.

So bewahrt ein aktives Risiko-Management Projekte davor, unnötige Schritte zu unternehmen. Insbesondere die Draufgänger unter den Projektleitern folgen hingegen dem Motto "Immer dem größten Nutzen nach". Sie bevorzugen es, den Nutzen und Profit zu steigern, statt Risiken zu minimieren. Eine weitere Erfahrung zeigt, dass Standardsituationen oft Standardlösungen haben und dass es ratsam ist, den Instinkten von Schlüsselpersonen zu trauen. Herrscht hingegen Unklarheit über das richtige agile Vorgehen oder ist der Anwender noch ungeübt, sollte man anhand eines definierten Vorgehensmodells arbeiten.