Agile Softwareentwicklung: Denkansatz mit Vorteil
Im Rahmen unserer Berichterstattung zur Juni-Ausgabe 2015 sprachen wir mit Dipl.-Inform. Alfred Peisl über die Agile Softwareentwicklung, Unternehmenskultur und den insbesondere für Deutschland relevanten Ansatz „Industrie 4.0“.
Welche Wettbewerbsvorteile werden durch den Denkansatz der Agilen Softwareentwicklung generiert?
Mit der agilen Softwareentwicklung wird der Entwicklungsprozess leichtgewichtig und wendig. Ergebnisse sind wesentlich schneller erziel- und kommunizierbar als mit traditionellen Vorgehensweisen. Der Kunde kann den Entwicklungsfortschritt miterleben. Durch die kontinuierliche Abstimmung und die kurzen Design- und Build-Zyklen lassen sich Fehlentwicklungen frühzeitig erkennen und vermeiden. Dadurch ist der Prozess insgesamt kostengünstiger und zielgenauer und sorgt für ein höheres Maß an Kundenzufriedenheit.
Was kann die Unternehmenskultur von dem Prinzip der „Agilen Softwareentwicklung“ lernen?
Im Zentrum der agilen Entwicklung stehen die im agilen Manifest formulierten Grundsätze. Menschen und ihre Interaktionen sind wichtiger als die Prozesse und Werkzeuge. Eine funktionsfähige Software ist wichtiger als allumfassende Dokumentation, eine vertrauensvolle Zusammenarbeit mit dem Auftraggeber ist wichtiger als wasserdichte Verträge und Anpassungsfähigkeit ist wichtiger als stures Festhalten an einem starren Plan.
Mehr Miteinander, schlanke Prozesse, weniger Bürokratie, gegenseitiges Vertrauen, hohe Anpassungsfähigkeit: Welche Unternehmenskultur kann von diesen Leitsätze nicht profitieren? Wenn Unternehmen die Grundsätze des agilen Manifests in ihrer Firmenkultur verankern, profitieren nicht nur die Mitarbeiter von einem besseren Arbeitsklima. Die Unternehmen wären in der Regel auch im Wettbewerb erfolgreicher. Das ist zumindest für die Softwareindustrie klar erkennbar.
Wie lässt sich das Risiko bei der Softwareentwicklung minimieren?
Bei Softwareprojekten sind die Ziele in seltensten Fällen schon von Beginn an im Detail definiert. Zumeist sind die Anforderungen noch unscharf, die Ziele beweglich. Ein starres Phasenmodell in der Softwarewicklung, das keine Rückgriffe in den Phasen erlaubt, birgt das Risiko, das wirkliche Ziel meilenweit zu verfehlen. Das führt oft zu langen Entwicklungszeiten, Fehlentwicklungen, allseitiger Unzufriedenheit und wirtschaftlichem Misserfolg.
Die agile Softwareentwicklung trägt diesem Umstand durch ein inkrementelles und zyklisches Vorgehen Rechnung. Bei ihr ist der Entwicklungsfortschritt für alle – Entwickler, Management und den Kunden – schritthaltend sicht- und messbar. Das Ziel kann wie bei einem Lenkgeschoß ständig nachjustiert werden. So verkürzen sich die Entwicklungszeiten und das fertige Programm trifft die wirklichen Anforderungen bestmöglich. Teure Fehlentwicklungen werden so frühzeitig erkannt und vermieden.
Stichwort Simulation und Entwicklung: wie verhält sich die Agilität zu Industrie 4.0?
Die Wandlungsfähigkeit ist ein wesentliches Ziel der „intelligenten Fabrik“ im Rahmen von Industrie 4.0. Sie ist auch die zentrale Eigenschaft des agilen Entwicklungsprozesses. Setzt man im agilen Entwicklungsprozess eine entsprechende Komponententechnologie mit generischen Bausteinen, die einfach nach dem Baukastenprinzip zusammengesetzt werden können, ein, entsteht ein agiles Softwaresystem. Es zeichnet sich durch eine besonders hohe Anpassungsfähigkeit aus. Im besten Fall spiegelt es die Domäne strukturtreu, ist selbst ein Modell der Domäne mit inhärenter Lösung des Anwendungsproblems.
Ändern sich die Geschäftsprozesse, kann ein agiles System mit einem adäquaten, linearen Aufwand angepasst werden. Dazu muss man nur Komponenten austauschen, neue hinzufügen oder nicht mehr benötigte entfernen. Es bedarf standardisierter Schnittstellen und passender Bausteine. Idealerweise entstammen sie einem generischen Baukasten und können für beliebige Domänen ausgeprägt werden. Die Basistechnologien hierfür stehen durch die Kombination objektorientierter und funktionaler Paradigmen bereit. In einem adaptiven, agilen System kann man auf Änderungen der Geschäftsprozesse situativ reagieren, wenn man die nötigen Anpassungen bereits durch Simulation im Vorgriff ermittelt hat. Dann liegen für spezifische Kontexte bereits fertig Pläne vor, nach denen sich das agile System selbst anpassen kann. Mit JFCO verfügen wir über ein Baukastensystem, dass die Erstellung solcher Systeme ermöglicht.