Kontinuierliches Programmieren und Testen sorgen für die schnellere Bereitstellung neuer Funktionen und bessere Software-Qualität. Daher kommen agile Ansätze vermehrt zum Einsatz.
Das so genannte Wasserfallprinzip in der Software-Entwicklung hat wohl bald ausgedient. Immer häufiger kommen heute agile Methoden wie die „Continuous Integration“ zum Einsatz, bei denen Software in kleinen Einheiten kontinuierlich erweitert und verbessert wird. Die Kunden profitieren dadurch von einer höheren Nutzerfreundlichkeit und verbesserten Customer Experience.
Die agile Software-Entwicklung bietet klare Vorteile gegenüber der herkömmlichen „Wasserfall-Methode“, bei der Programmierer monatelang auf den Launch einer umfangreichen neuen Version hinarbeiten. Immer mehr Software-Anbieter gehen daher zur so genannten Continuous Integration (CI) über. Bei dieser Entwicklungsmethode wird Software kontinuierlich erweitert und verbessert. Die neuen Releases sind schmaler, der Umfang an Features geringer, man spricht daher auch von einem „Soft Launch“. Dafür stehen die neuen Funktionen den Kunden aber auch wesentlich früher zur Verfügung – Stichwort „Continuous Delivery“ (CD).
Permanente Verbesserung von Nutzerfreundlichkeit und Customer Experience
Der Kunde profitiert dadurch nicht nur von der schnelleren Bereitstellung neuer Features, sondern auch von einer höheren Software-Qualität. Denn bei der Wasserfall-Methode programmieren die Entwickler monatelang, bis ihre Komponenten zur Gesamtlösung, dem so genannten Build, zusammengebaut und danach getestet werden. Entsprechend viele Fehler müssen anschließend aufwändig behoben werden.
Bei CI dagegen erfolgen Entwicklung und Testprozess in kleinen Einheiten, die am Ende eines Arbeitstages in Repositories zur Versionskontrolle eingecheckt werden. Über Nacht bauen Server die Code-Komponenten dann zusammen („Nightly Build“) und testen sie automatisiert. Der gesamte Prozess – programmieren, zusammenfügen, testen – findet also täglich statt. Fehler lassen sich korrigieren, was eine kontinuierliche Verbesserung der Nutzerfreundlichkeit und der Customer Experience zur Folge hat.
CI und CD stehen im engen Zusammenhang mit dem agilen Prozessverbesserungsansatz DevOps. Hier geht es darum, alle an der Software-Entwicklung beteiligten Abteilungen zu vernetzen, Prozesse zu optimieren und die Entwicklungszyklen zu verkürzen. Auch dies sind wichtige Hebel, um die Customer Experience zu verbessern und die Kundenbindung zu erhöhen. Dabei wird CI durch den Trend zur agilen Software-Entwicklung gefördert: Bei Methoden wie Scrum erfolgt die Planung und Programmierung ebenfalls in kleinen Einheiten, so genannten Sprints, die täglich im Team evaluiert werden.
Mehr Flexibilität, regelmäßiger Austausch
Aber nicht nur für die Kunden, auch für die Entwickler- und Projekt-Management-Teams bietet CI in Verbindung mit agilen Development-Prozessen klare Vorteile. Durch das Denken und Planen in kleinen Programmiereinheiten sind sie in der Lage, wesentlich flexibler zu agieren als im Rahmen eines großen Software-Projekts. So können sie schneller und häufiger Änderungen am Programm-Code vornehmen.
Zudem sorgt die permanente Abstimmung dafür, dass alle Beteiligten immer auf dem aktuellen Stand sind und regelmäßig Feedback auf ihre Arbeit erhalten, was wiederum zu einem steigenden Qualitätsbewusstsein führt: Laut DevOps Research and Assessment (DORA) fördern CI und CD eine zielorientierte Unternehmenskultur, verbessern die Software-Bereitstellung und verringern Nachbesserungen oder ungeplante Arbeiten. Auch die Zufriedenheit der Teams ist nach den Erfahrungen der DORA höher.
Software-Projekte sind hochkomplexe Vorhaben, in die viele Mitarbeiter involviert sind und die hohe Anforderungen erfüllen müssen – vor allem was die Qualität und die Einhaltung von Lieferterminen betrifft. Agile Methoden wie CI und CD erhöhen die Flexibilität, reduzieren die Komplexität und helfen den Entwicklern, den steigenden Anforderungen gerecht zu werden.
Gefragt sind Soft Skills und eine ausgeprägte Kommunikationskultur
Allerdings erfordert diese Arbeitsweise ein extrem hohes Maß an gegenseitigem Austausch. Die Teams treffen sich während eines Sprints täglich und stimmen sich in so genannten Daily Stand-ups ab. Alle zwei Wochen gibt es zudem ein Review, in dem festgehalten wird, was bis dato erreicht wurde und was verbessert werden kann. Voraussetzung sind daher eine ausgeprägte Kommunikationskultur sowie in zunehmendem Maße auch Soft Skills:
Laut der Studie „Upskilling 2020“ des DevOps Institute, für die 1260 Führungskräfte aus IT-Unternehmen in verschiedenen Ländern befragt wurden, erfordert der DevOps-Ansatz Team-Player-Eigenschaften, Einfühlungsvermögen und Kreativität. Hinzu kommen hohe fachliche Anforderungen: Nach zwei Wochen wird jedes Ergebnis von der gesamten Mannschaft begutachtet. Das erhöht die Software-Qualität, aber gleichzeitig auch den Druck auf die Programmierer.
Unterstützung bei der CI-Methode bieten Tools, mit denen sich die programmierten Komponenten zusammensetzen und verlinken beziehungsweise unterschiedliche Versionen verwalten lassen. Dazu zählen auf Compiler-Ebene zum Beispiel der Microsoft Team Foundation Server sowie das Java-basierte Open-Source-Programm Jenkins. Und im Projekt-Management helfen Werkzeuge wie Jira oder Confluence, einen Sprint von zwei Wochen zu organisieren, neue Aufgaben aus dem Backlog zu ziehen und Zeitpläne aufzustellen.
Oliver Rozic ist Vice President Product Management HR & Payroll bei Sage.