von Arne Klein & Antje Rauschnabel, Software Engineering

Agile Softwareentwicklung

Unternehmen im hochdynamischen Umfeld setzen bei ihren Softwareprojekten auf agile Entwicklung. Diese verspricht intern einsatzfähige Software innerhalb weniger Tage. Was heißt agile Softwareentwicklung? Und was bedeutet es für mich als Kunde?

Was bedeutet „Agilität“ bei der Entwicklung von Software?

Agile Softwareentwicklung bedeutet transparente, flexible und kundennahe Umsetzung und Auslieferung von Software.

Ziel ist es, auf Kundenwünsche oder Veränderungen schnell reagieren zu können und gleichzeitig die Risiken so gering wie möglich zu halten.

Realisiert wird dies durch die Aufteilung des Entwicklungsprozesses in überschaubare und schätzbare Arbeitspakete, die iterativ in kurzen Zyklen (in der Regel 1-4 Wochen) umgesetzt werden. Das Ergebnis eines solchen Entwicklungszyklus’ ist immer eine auslieferungsfähige und funktionierende Software.

Bei den klassischen linearen Vorgehensmodellen der Softwareentwicklung (Wasserfallmodell, V-Modell etc.) dauert es von der Definition aller Anforderungen, Planung, Programmierung, Auslieferung, Test und Fehlerbehebung bis zum ersten Update meist mehrere Monate. Somit erhält der Kunde erst spät Einblick in die geleistete Arbeit und gewünschte Änderungen können nur schlecht oder überhaupt nicht umgesetzt werden.

Ein weiteres Merkmal der agilen Softwareentwicklung ist das Streben nach Automatisierung in der Entwicklung, im Test und in der Auslieferung. Optimierte Prozesse und unterstützende Werkzeuge ermöglichen es, täglich oder gar mehrfach täglich den aktuellen Stand der Software beim Kunden zu veröffentlichen.

Darin lässt sich auch das Grundprinzip der agilen Softwareentwicklung erkennen: die kontinuierliche Verbesserung der Software, der Prozesse und der Werkzeuge.

Was bedeutet das für den Kunden?

Agile Softwareentwicklung ermöglicht es dem Kunden, regelmäßig Updates der Software zu erhalten und rechtzeitig Feedback zu geben. Außerdem kann der Kunde schnell auf sich ändernde Marktgegebenheiten reagieren und die Anforderungen an die Software neu priorisieren oder ändern.

Es sind keine langen Betatestphasen mehr nötig. Im klassischen Vorgehensmodell dauert es mehrere Wochen, um die gelieferte Softwareversion beim Kunden zu implementieren, gefolgt von einer ausgiebigen Testphase. Dank der agilen Methode ist es hingegen möglich, Updates bereits nach wenigen Tagen beim Kunden auszuliefern.

Sollte es zu einem Fehler in der Umsetzung gekommen sein, kann dieser bei einer agilen Vorgehensweise wesentlich schneller behoben und eine neue fehlerfreie Version bereitgestellt werden. Das liegt daran, dass durch die inkrementelle Entwicklung sehr überschaubare Änderungen am Code durchgeführt werden, die sich einfacher und schneller zurücksetzen und korrigieren lassen.

Durch die angestrebte stetig wachsende Automatisierung in der Entwicklung und im Test von Software kommt es zu wesentlich weniger Fehlern. So können sich die Entwickler und Tester auf die relevanten und zum Teil komplexeren Tätigkeiten fokussieren.

Hinzu kommt ein monetärer Vorteil, da weniger Kapazitäten für die Implementierung, die Anpassung sowie den Support gebunden werden und die interne IT-Abteilung des Kunden entlastet wird.

Außerdem kann der Kunde nahtlos mit der Software weiterarbeiten und muss keine langen Stillstandzeiten für Softwareupdates einplanen.

Für welche Unternehmen ist dies interessant?

Prinzipiell ist diese Vorgehensweise für Unternehmen aller Arten und Branchen interessant: Forschung und Entwicklung, Automotive, Luft- und Raumfahrt, Finanz und Handel etc. Vor allem Unternehmen, die in einem hochdynamischen Umfeld agieren, profitieren von der agilen Softwareentwicklung.

 

Agile Softwareentwicklung bei k+k

Das k+k Software Engineering Team bei täglichen Stand-up-Meeting.

 

Was wir heute schon können und woran wir arbeiten

Wir bei k+k arbeiten in der Softwareentwicklung seit einigen Jahren agil. Hierzu setzen wir eine Mischung aus Scrum und Kanban ein. Dadurch sind wir in der Lage, nahezu täglich eine neue Version einer Software fertigzustellen.

Für unsere internen Anwendungen sowie Applikationen, die innerhalb einer Cloud laufen, haben wir diesen Prozess bereits vollautomatisiert. Unser aktuelles Ziel ist es, dies auch für die Bereitstellung von Updates für WissIntra NG, unsere hauseigene Software für das Integrierte Management, oder ausgewählte Produktivumgebungen bei unseren Kunden umzusetzen.

Wie erreicht man das?

Wir konzentrieren uns bei unserer Arbeit stets auf das Wesentliche: die Aufgaben oder Features zu identifizieren, die am wichtigsten sind und den größten Nutzen bringen, und diese dann zuerst umzusetzen.

Gleichzeitig versuchen wir, die Komplexität einzelner Änderungen gering zu halten, indem wir große Anforderungen aufteilen. Dies hat zum einen den Vorteil, dass wir jederzeit eine hohe Qualität unserer Entwicklung gewährleisten können. Zum anderen können unsere Kunden diese Teillösungen bereits frühzeitig einsetzen und von deren Mehrwerten profitieren.

Ein weiterer Punkt ist der kontinuierliche Test im Rahmen der Entwicklung. Wir trennen nicht zwischen der Qualitätssicherung und der Entwicklung, denn diese haben wir innerhalb eines Prozesses zusammengefasst. Alle Änderungen werden im Rahmen einer Code Review auf ihre Qualität hin geprüft und durchlaufen sowohl automatisierte als auch manuelle Tests durch speziell geschulte Mitarbeiter. Dazu veröffentlichen wir alle Änderungen vollautomatisch und isoliert in unserer internen Testumgebung. In dieser versuchen wir immer möglichst genau, die Systemlandschaft unserer Kunden nachzubilden.

Auf diese Weise können unsere Kunden schnell von unseren Entwicklungserfolgen profitieren.

Wann haben agile Softwareprojekte Erfolg?

Der Erfolg agiler Projekte hängt maßgeblich von der Größe der Arbeitspakete sowie von der Verfügbarkeit der Ansprechpartner ab. Ein agiles Projekt ist dann erfolgreich und bringt den gewünschten Mehrwert, wenn Kunden und Dienstleister gemeinsam schnell viele kleine Runden drehen.

Die flexible und transparente Arbeitsweise erfordert eine regelmäßige und zeitnahe Kommunikation zwischen den beteiligten Parteien. Die Anforderungen werden im laufenden Projekt iterativ von den Experten aus Software Engineering und Consulting gemeinsam mit den Kunden verfeinert und ausformuliert. Anschließend werden diese von unseren Experten direkt umgesetzt und stehen den Kunden nach zwei Wochen zur Verfügung.

Um den angestrebten Automatisierungsprozess realisieren zu können, ist darüber hinaus - zum Teil auch auf Kundenseite - ein gewisser Aufwand erforderlich. Es müssen Systemzugriffe eingerichtet werden und auch diverse Prozesse und Strukturen neu durchdacht werden.

Grundsätzlich kann man sagen, dass agile Softwareprojekte dann erfolgreich sind, wenn sich der Kunde auf dieses Vorgehen einlässt und Mitarbeiter bereitstellt, die sich fachlich gut mit dem Thema auskennen und schnell Feedback geben können.

Werden Sie agil!

Schluss mit den endlosen Pflichtenheften und langen Updatephasen!

Egal, ob Sie ein konkretes Softwareprojekt in Planung oder nur eine grobe Idee haben, wir beraten Sie gerne und helfen weiter. Weil wir genau zuhören.

Sprechen Sie uns an!

Dies könnte Dich auch interessieren:

Softwarebasiertes Risikomanagement: 6 Gründe, warum kein Weg daran vorbeiführt

Softwarebasiertes Risikomanagement: 6 Gründe, warum kein Weg daran vorbeiführt

Wer ein umfassendes Risikomanagement betreiben möchte, muss sich irgendwann mit einer Software-Lösung auseinandersetzen. Ein Risiko ist die Konsequenz von Ungewissheiten. Diese Ungewissheite…

Wind im Rücken: 13 Köpfe und 1 Milliarde Dollar

Wind im Rücken: 13 Köpfe und 1 Milliarde Dollar

Prozessautomatisierung mit künstlicher Intelligenz: Wie Instagram RPA einsetzt um mit wenig sehr viel zu erreichen.


zurück

Einen Kommentar schreiben