Digitale Transformation

Continuous Integration: Neue Wege in der Softwareentwicklung

In der Software-Entwicklung zeichnet sich ein Wandel ab: Das so genannte Wasserfallprinzip, bei dem Programmierer monatelang auf den Launch einer neuen Version mit großem Funktionsumfang hinarbeiten, hat allmählich ausgedient. Immer mehr Software-Anbieter setzen stattdessen auf „Continuous Integration“ (CI).

Kontinuierlicher Erweiterungs- und Verbesserungsprozess

Bei dieser Entwicklungsmethode geht es darum, Software kontinuierlich zu erweitern und zu verbessern. Die neuen Releases sind schmaler, der Umfang an Features geringer. Man spricht daher auch von einem „Soft Launch“. Dafür stehen den Kunden neue Funktionen aber auch wesentlich früher zur Verfügung. Nicht selten werden diese im Zwei-Wochen-Rhythmus veröffentlicht – Stichwort „Continuous Delivery“ (CD). Dadurch lassen sich geschäftliche Anforderungen der Kunden schneller umsetzen.

Schnellere Bereitstellung neuer Funktionen

Der Kunde profitiert aber nicht nur von der schnelleren Bereitstellung neuer Features und Funktionen, sondern auch von einer Steigerung der Software-Qualität. 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.

Automatisierte Testprozesse

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 automatisiert zusammen („Nightly Build“) und testen sie auch gleich. Der gesamte Prozess – programmieren, zusammenfügen, testen – findet also täglich statt. Fehler können auf diese Weise sofort korrigiert werden. Dadurch lässt sich die Nutzerfreundlichkeit kontinuierlich verbessern – ein enormer Gewinn für die Customer Experience.

Agile Methoden und DevOps unterstützen den Trend

Die agile Vorgehensweise von CI und CD steht im engen Zusammenhang mit dem Prozessverbesserungsansatz DevOps. Hier geht es darum, alle an der Systemadministration und 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.

Softwareentwicklung in kleinen Schritten

Den Analysten von IDC zufolge wird DevOps in den IT-Abteilungen deutscher Unternehmen zunehmend zum wichtigen methodischen Framework für die Entwicklung und den Betrieb von Applikationen – insbesondere bei Cloud-basierten Anwendungen. Bereits vor einem Jahr gaben in einer IDC-Umfrage 77 Prozent der Unternehmen an, DevOps-Prozesse zu nutzen. Begünstigt wird CI zudem durch den anhaltenden Trend zur agilen Softwareentwicklung. Denn bei agilen Methoden wie Scrum erfolgt die Planung und Entwicklung ebenfalls in kleinen Einheiten, so genannten Sprints, die täglich im Team evaluiert werden.

Mehr Flexibilität, regelmäßiger Austausch

Nicht nur für die Kunden, auch für die Entwicklungs- und Projekt-Management-Teams bietet CI in Verbindung mit agilen Development-Prozessen klare Vorteile. Durch das Denken und Planen in kleinen Entwicklungseinheiten sind sie in der Lage, wesentlich flexibler zu agieren als im Rahmen eines großen Software-Projekts. So können die Programmierer schneller und häufiger Änderungen am Programm-Code vornehmen. Zudem sorgen die häufigen Abstimmungen 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.

Hoher Kollaborations- und Kommunikationsbedarf

Allerdings bringt diese Arbeitsweise auch einen enormen Kollaborations- und Kommunikationsbedarf mit sich. Agile Software-Entwicklung und CI funktionieren nur bei einem permanenten Austausch aller Beteiligten. Die Teams treffen sich während eines Sprints täglich und stimmen sich in so genannten Daily Stand-Ups ab. Darüber hinaus gibt es alle zwei Wochen ein Review, in dem festgehalten wird, was bis dato erreicht wurde und was verbessert werden kann. Für eine solche Arbeitsweise muss allerdings im Vorfeld erst eine entsprechende Kommunikationskultur geschaffen werden.

Soft-Skills werden immer wichtiger

Auch Soft Skills gewinnen vor diesem Hintergrund an Bedeutung. Das belegt die Studie „Upskilling 2020“ des DevOps Institute, für die 1260 Führungskräfte aus IT-Unternehmen in verschiedenen Ländern befragt wurden. Demnach sind für die Arbeit nach dem DevOps-Ansatz Team-Player-Eigenschaften, Einfühlungsvermögen und Kreativität zunehmend gefragt. Hinzu kommen hohe Qualitätsansprüche. Denn: Nach zwei Wochen wird die Arbeit der Einzelnen von der gesamten Mannschaft begutachtet. Das sorgt zwar für eine steigende Software-Qualität, erhöht aber auch den individuellen Druck.

Hilfreiche Tools für CI-Entwicklung und agiles Projekt-Management

Unterstützung für die Entwicklung nach der CI-Methode bieten zahlreiche 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 dedizierte Werkzeuge wie Jira oder Confluence, einen Sprint von zwei Wochen zu organisieren, neue Aufgaben aus dem Backlog zu ziehen und Zeitpläne aufzustellen.

CI hilft, Komplexität zu reduzieren

Software-Projekte sind hochkomplexe Vorhaben, in die viele Mitarbeiter involviert sind und die hohen Anforderungen gerecht werden müssen – vor allem an die Qualität und Einhaltung von Lieferterminen. Continuous Integration hilft, diesen Anforderungen durch eine hohe Flexibilität und die Reduzierung von Komplexität gerecht zu werden.