Agile Softwareentwicklung – was habe ich als Anwender davon?
Software dient immer einem Zweck: Unternehmen beispielsweise möchten damit bestimmte betriebswirtschaftliche Aufgaben erledigen. Eine gute Software deckt den Bedarf der Anwender so ab, dass sie ihre Aufgaben effizient erfüllen können. Dieser Beitrag gibt einen nicht-technischen Einblick, wie agile Softwareentwicklung die Entstehung eines passenden Softwareprodukts unterstützt.
Die Kernaufgabe der Softwareentwicklung besteht darin, die Software an den Anforderungen der Kunden auszurichten und die geforderte Fachlichkeit zu liefern. Das ist der Sinn von Softwareentwicklung: Der Kunde erhält eine funktionsfähige Software, die seinen Anforderungen entspricht und technisch wie technologisch up to date ist (zum linguistischen Unterschied zwischen „technisch“ und „technologisch“).
Im Grunde ist es dem Kunden vermutlich relativ egal, wie die für ihn passende Software entsteht. Aber er hat ganz sicher nichts gegen ein Vorgehen, welches ihn intensiv einbindet und am Ende zu einem guten Ergebnis führt. Ein agiles Vorgehen in der Softwareentwicklung kann genau das sicherstellen.
Softwareentwicklung – die Basics
Softwareentwicklung ist eine durchaus komplexe Aufgabe. Zu der Fachlichkeit, sprich: den fachlichen Anforderungen, die eine Software abbilden soll, kommen weitere Aspekte hinzu: etwa die Architektur der Anwendung, welche wesentlichen Einfluss auf die Stabilität und langfristige Wartbarkeit hat. Auch technische und technologische Aspekte müssen berücksichtigt werden, damit der Lebenszyklus der Software langfristig gesichert ist. Alles muss am Ende so aufeinander abgestimmt sein, dass der Kunde mit der Lösung zufrieden ist und seine Aufgaben erfüllen kann.
Die initiale Herstellung einer neuen Software ist eine große Aufgabe, aber auch die dauerhafte Pflege von Software ist eine Herausforderung. Der Lebenszyklus einer Software ist geprägt von häufigen Änderungen aufgrund neuer Anforderungen. Dies können fachliche Änderungen sein, die sich wiederum aus gesetzlichen Neuerungen oder geänderten Prozessen ergeben. Auch technische Veränderungen, zum Beispiel durch eine neue Version des Betriebssystems, können Anpassungen der Software notwendig machen.
Eine Software muss stets so konstruiert sein, dass sie robust gegenüber Änderungen jeder Art ist. Das bedeutet, Änderungen dürfen weder die Stabilität noch die Funktionsweise beeinträchtigen.
Softwareentwicklung – die oftmals bittere Realität
Im Rahmen traditioneller, also nicht agiler Softwareentwicklungsprozesse versucht man üblicherweise, die erforderliche Fachlichkeit in mitunter langatmigen und schwerfälligen Konzeptionsphasen möglichst umfassend zu beschreiben. Dies ist sehr ressourcenintensiv. Nicht selten stehen jedoch am Anfang des Lebenszyklus einer Software die fachlichen Anforderungen im Detail noch gar nicht fest. Der Kunde kann zwar seine Anforderungen grob beschreiben, aber kaum detailliert benennen.
Im Laufe oder sogar erst am Ende der Entwicklungsphase stellt sich dann oft heraus, dass vieles in den Konzepten falsch oder unvollständig war. Dadurch geraten Softwareprojekte in Schieflage und Verzug oder scheitern sogar ganz – was wiederum die Gesamtkosten und den Frustrationspegel erheblich steigen lässt.
Agile Softwareentwicklung – in kurzen Schritten zu guter Software
Agilität in der Softwareentwicklung kann solche für Kunden, Projektmanager und Softwareentwickler frustrierenden Erlebnisse verhindern. Unter Agilität versteht man in diesem Zusammenhang die kontinuierliche Bereitschaft, Veränderungen schnell herbeizuführen, Wandel – auch unvorhergesehenen – aufzugreifen und aus der Veränderung zu lernen.
Als ein ganzheitliches Konzept zielt agile Softwareentwicklung darauf ab, Risiken im Entwicklungsprozess zu minimieren und zugleich den Kundennutzen durch Effizienz, Qualitätsorientierung und Einfachheit zu erhöhen.
Agile Softwareentwicklung umfasst eine Reihe von Methoden und Praktiken, die auf dem sogenannten Manifest für Agile Softwareentwicklung basieren (s. Kasten).
Was zeichnet agile Softwareentwicklung aus?
- Entsprechend dem Agilen Manifest hat die Erstellung einer funktionierenden Software als Dokumentation der Fachlichkeit bei der agilen Softwareentwicklung hohe Priorität. Die Fachlichkeit wird zu Beginn des Projekts durch den Kunden, die Fachexperten und die Softwareentwickler gemeinsam erarbeitet. Erst wenn mindestens grundsätzliche Einigkeit und Klarheit über die fachlichen Anforderungen herrschen, beginnt man mit der Entwicklung der Software.
- Aufgrund der intensiven und regelmäßigen Einbindung der Anwender und der Fachexperten in kurze Entwicklungsabschnitte kann die Software sehr zielgerichtet und bedarfsgerecht entwickelt werden. Der ständige Austausch der Beteiligten für zu einer kontinuierlich verbesserten Abbildung der Fachlichkeit in der Software.
- Bereits am Ende eines Entwicklungsabschnitts steht das jeweilige Ergebnis in Form einer funktionsfähigen Software zur Verfügung. Oft stellen die Softwareentwickler dem Kunden das Ergebnis vor und holen von diesem direkt ein Feedback dazu ein.
- Die Auslieferung der Software erfolgt in der Regel erst dann, wenn die Fachlichkeit soweit implementiert ist, dass die Software bei der Erledigung der Aufgaben tatsächlich helfen kann. Aber die Auslieferung sollte so schnell wie möglich erfolgen, was wiederum zu schnellem Feedback führt und weitere Umsetzungsschritte ermöglicht.
Fazit: Agile Softwareentwicklung führt zu besserer Software
Die agile Softwareentwicklung stellt konsequent die Anforderung des Kunden in den Fokus. Sie ermöglicht durch kurze Entwicklungsabschnitte ein intensives und zeitnahes Feedback der Anwender und der Fachexperten. Durch den ständigen Austausch sind alle Beteiligten eingebunden und die fachliche Implementierung entwickelt sich kontinuierlich bis zur Reife weiter. Unterm Strich erhalten die Kunden zügig eine funktionierende Software, die den Anforderungen entspricht.
Jan Spangl leitet den Bereich Forschung & Entwicklung bei HS – Hamburger Software und arbeitet in Forschungs- und Entwicklungsprojekten nach agilen Methoden der Softwareentwicklung.
Bildquellen: NicoElNino/Fotolia.com, Jan Spangl (Porträt)
Schreiben Sie einen Kommentar
Ihre E-Mail Adresse wird nicht veröffentlicht. Es gilt unsere Datenschutzerklärung.