Das so genannte Wasserfallprinzip in der Software-Entwicklung hat bald ausgedient. Immer häufiger kommen heute agile Methoden wie die „Continuous Integration“ zum Einsatz. Hier bei erfolgt eine kontinuierliche Erweiterung und Verbesserung von Software in kleinen Einheiten. Die Kunden profitieren dadurch von einer höheren Nutzerfreundlichkeit und verbesserten Customer Experience.
Software-Entwicklung: Agile Methoden wie Continuous Integration liegen im Trend
Die agile Software-Entwicklung bietet klare Vorteile gegenüber der herkömmlichen „Wasserfall-Methode“. Für diese arbeiten Programmierer monatelang auf den Launch einer umfangreichen neuen Version hin. Immer mehr Software-Anbieter gehen daher zur so genannten Continuous Integration (CI) über. Bei dieser Entwicklungsmethode erfolgt eine kontinuierliche Erweiterung und Verbesserung der Software. 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 sie ihre Komponenten zur Gesamtlösung, dem so genannten Build, zusammengebauen und danach testen. 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 Continuous Integration 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 das Team täglich im Team evaluiert.
Mehr Flexibilität, regelmäßiger Austausch mit Continuos Integration
Aber nicht nur für die Kunden, auch für die Entwickler- und Projekt-Management-Teams bietet Continuous Integration 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. Sie erhalten 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. Sie müssen die hohe Anforderungen erfüllen – 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 ist, was bis dato erreicht ist und was zu verbesserungswürdig ist. 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 eine Berfraung von 1260 Führungskräfte aus IT-Unternehmen in verschiedenen Ländern erfolgte, erfordert der DevOps-Ansatz Team-Player-Eigenschaften, Einfühlungsvermögen und Kreativität. Hinzu kommen hohe fachliche Anforderungen: Nach zwei Wochen erfolgt die Begutachtung eines jeden Ergebnis von der gesamten Mannschaft. Das erhöht die Software-Qualität, aber gleichzeitig auch den Druck auf die Programmierer.
Unterstützung bei der Methode der Continuous Integration 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.