Suche
Agile Softwareentwicklung im Konzernumfeld

Wie VW seine IT-Strukturen aufbricht

Dr. Christoffer Menk, Dr. Sebastian Bindick

©  Shutterstock / oekka.k

Historisch gewachsene Prozesslandschaften, lange Beschaffungszeiträume und starre Pflichten- und Lastenhefte: Softwareentwicklung läuft im Konzernumfeld teilweise alles andere als agil ab. Die Volkswagen Group IT setzt auf Continuous Delivery und DevOps, um Software schneller zu releasen.

Die Entwicklung von neuen Softwareprodukten nach der klassischen Wasserfallmethode ist in den meisten Großkonzernen Status quo. Der Vorlauf für Planung und Beschaffung ist lang, ebenso die Testphasen. Sie dauern gut und gerne drei Monate, was Releasezyklen von über einem Jahr nach sich zieht. Zu lange für die Fachleute der Volkswagen Group IT. Sie entwickeln testgetrieben innerhalb einer Continuous-Delivery-Pipeline. Hierbei führen die Teammitglieder Konzept- und Entwicklungsphase, Testphase und Release inkrementell und iterativ in kurzen Abständen durch. Das hat den entscheidenden Vorteil, dass fertige Releases rasch produktiv gehen und die Qualitätssicherung mit hoher Frequenz in automatisierten Tests abläuft.

Eines der agil entwickelten Projekte ist die Lizenzmonitoringsoftware VW LIC. Die IT-Spezialisten des Konzerns realisierten ein Lizenzmonitoring für den Engineeringbereich mit weit über 200 Lizenzservern und rund 50 000 Anwendern. Die Ausgangslage: Über den Konzern verteilt nutzten die Abteilungen verschiedene Lizenzmonitoringlösungen. An manchen Stellen kamen kommerzielle Produkte zum Einsatz, an anderen Eigenentwicklungen. Diese heterogene Systemlandschaft hatte lange Deployment-Zyklen und hohe Support- und Wartungskosten zur Folge. Denn in den meisten Fällen starteten die Einzellösungen zwar gut, zeigten durch eher mittelmäßigen Code und heterogene Methoden mit der Zeit jedoch Probleme. Bei einem Zuständigkeitswechsel rächte sich eine schlechte Dokumentation. Ein ganzheitlicher Ansatz war deshalb das Ziel.

Am Anfang agiler Softwareentwicklung stehen die genaue Betrachtung des Istzustands und eine Priorisierung der Anforderungen. Arbeiten mit der zu entwickelnden Software künftig mehrere Abteilungen, ist es unerlässlich, deren Bedürfnisse im Vorfeld abzufragen. Dabei detailliert das Entwicklerteam bei agilem Vorgehen die User Stories nur so weit wie nötig. Eine genaue Priorisierung im Backlog, welche Anforderungen wann zur Umsetzung kommen, führt zu besonders effizienten Sprints.

Für den Erfolg des Projekts war besonders die enge Zusammenarbeit zwischen den Kollegen aus der Entwicklung und dem Betrieb ausschlaggebend. Im Sinne von DevOps arbeiteten beide Abteilungen von Anfang an gemeinsam an der Software. In Teamrunden und Sprintmeetings hatte jede Seite die Gelegenheit, aus ihrer Sicht Probleme anzusprechen. Letzen Endes sind die Fachleute des Application Management Service (AMS) die Betreiber der Software. Sie deployen mitunter einmal pro Woche neue Services und haben potenzielle Fehler im Blick.

Modularisierung auf die Spitze getrieben

Microservices sind der entscheidende Baustein, um die definierten Meilensteine rasch zu erreichen. Die Modularisierung bietet maximale Flexibilität. Sie erlaubt es, neue Technologien schnell einzusteuern, ohne Einfluss auf den Rest des Systems zu nehmen. Denn jede der kleinen Einheiten ist einem fachlichen Kontext zugeordnet und agiert unabhängig. Über das Netzwerk kommunizieren sie miteinander. So ist es problemlos möglich, die einzelnen Services nach und nach aufzubauen. Das heißt, die Software bekommt sukzessive neue Funktionen. Ein Beispiel: Einer der ersten Services von VW LIC war der sogenannte Collector Service. Dieser ist ausschließlich für das Sammeln und Halten der Lizenzserverdaten zuständig. Der Aggregation Service übernimmt die Daten im nächsten Schritt, bereitet sie auf und anonymisiert sie. Die Funktionen nehmen also mit jedem produktiv gehenden Service zu.

Auch im laufenden Betrieb zeigt die Microservices-Architektur ihre Stärken. Neue Technologien oder Softwarereleases binden die Entwickler als eigene Deployment-Artefakte rasch ein. Durch den testgetriebenen Ansatz findet eine Qualitätsprüfung des neuen Codes innerhalb weniger Minuten statt. Die IT-Spezialisten bekommen so umgehend Feedback über mögliche Fehler. Ein weiterer Vorteil dieser Architektur: Das System ist relativ ausfallsicher und hochverfügbar. Fällt eine Komponente aus, ist im konkreten Fall von VW LIC kein Datenverlust in der Lizenznutzung zu befürchten. Auch schwankende Lasten sind kein Problem. Aufgrund der flexiblen Skalierbarkeit können die Entwickler schnell reagieren.

Testgetrieben entwickeln

Entscheidend für das Gelingen agiler Softwareentwicklung ist die Testautomatisierung. Denn der Test-First-Ansatz reduziert die Fehlerquote um bis zu 90 Prozent. Noch vor dem Entwickeln des Quellcodes steht das Testen. Zunächst entsteht ein Unit-Test, auf den das Schreiben des Produktivcodes folgt. Der Fokus bei der Umsetzung liegt also auf der geforderten Funktionalität. Der Schlüssel zum Erfolg ist eine effiziente Verteilung der Tests. Dabei ist die Zahl der Unit-Tests gemäß der Testpyramide nach Mike Cohn deutlich höher als die der komplexeren Integrations- und Systemtests.

Test-driven Development führt also zu einer engen Verknüpfung von Testen und Entwickeln. Es deckt früh Fehler und Seiteneffekte auf, die sich mit relativ geringem Aufwand beheben lassen. Von den Entwicklern erfordert diese Vorgehensweise strukturiertes Denken, bei dem immer die Anforderungen an die Software im Vordergrund stehen. Volkswagen nutzte für das Projekt VW LIC die Continuous-Integration-Toolkette der Firma Atlassian. Dabei kamen JIRA, Bitbucket und Bamboo zum Einsatz. JIRA übernimmt dabei die Sprintplanung und das Anforderungsmanagement, während die Versionsverwaltung auf Basis von Git über Bitbucket läuft. Bamboo dient als zentraler Build-Server.

Bei vielen technischen Herausforderungen gibt es jedoch keine Musterlösung, sondern es muss eine bedarfsgerechte Lösung entwickelt werden, die speziell für den entsprechenden Use Case passt. So entschied sich das Team von Volkswagen an einem Punkt dafür, dass bei VW LIC die Liveauswertung der Lizenznutzung mithilfe eines zentralen Presentation Service erfolgt, der alle UI-Komponenten ausliefert. Die Entwickler setzten ein interaktives Frontend als Webclient auf Basis von HTML, CSS3 und JavaScript um. Dabei ist die UI-Schicht über eine RESTful-Datenübertragung (Ajax) an das Backend gekoppelt. Das Frontend ist wiederum als Fat Client ausgelegt, um die Serverinfrastruktur weniger zu belasten und dem Anwender eine hohe Usability mit schneller Reaktionszeit zu gewährleisten. Viele Analyseoperationen sind also in den Client ausgelagert.

Fazit

Die Digitalisierung hat in Konzernen einen hohen Stellenwert. Nicht nur in der Produktion gilt es, schnell zu reagieren und die Geschäftsmodelle dem Umfeld anzupassen. Von der IT ist Flexibilität gefragt, um produktiv zu bleiben. Agile Softwareentwicklung anhand einer Continuous Delivery Pipeline ermöglicht zum einen, neue Rahmenbedingungen rasch in bestehende Prozesse zu integrieren. Zum anderen treffen die Anwender aber auch früh direkt am System Entscheidungen, ohne sich lange mit irreführenden Ansätzen zu beschäftigen. Nicht immer ist es den Entwicklern möglich, auf neueste Technologien zuzugreifen – sei es aufgrund von Compliance- oder Sicherheitsvorgaben. Auf dem Weg zu agiler Softwareentwicklung ist das jedoch kein Hindernis.

Geschrieben von
Dr. Christoffer Menk
Dr. Christoffer Menk
Dr. Christoffer Menk arbeitet seit 2009 für die Volkswagen AG in den Bereichen Forschung und Konzern IT. Er ist zertifizierter Scrum Product Owner. Seine Schwerpunkte liegen im Bereich agile Softwareentwicklung sowie der Entwicklung von neuen virtuellen Technologien. In der Konzern IT koordiniert er die Themen im Bereich Computer-aided Engineering. E-Mail: christoffer.menk@volkswagen.de
Dr. Sebastian Bindick
Dr. Sebastian Bindick
Dr. Sebastian Bindick ist seit 2011 in der technischen Entwicklung und IT der Volkswagen AG tätig. Seine Schwerpunkte liegen in den Bereichen Continuous Delivery, Softwarearchitektur und testgetriebene Entwicklung. Er ist Lehrbeauftragter an der Technischen Universität Braunschweig. E-Mail: sebastian.bindick@volkswagen.de
Kommentare
  1. vwgroup_noway2017-10-20 19:34:18

    Irre.

    Bin selbst dabei, im wesentlichen beschränkt sich das auf das ständige Wiederholen der Worte "agil" und "sprint" in den Meetings.

    Faktisch ist es nach wie vor der totale Wasserfall/V-Modell Alptraum

  2. intern2017-10-22 10:41:57

    Eine Firma, welche im Jahre 2017 die Einführung von Agilen Prozessen, CI etc. "feiert" hat eindeutig die letzten Jahre/Jahrzehnte verpennt. Dazu kommen die vielen politischen "Spielchen" in diesem Konzern, in dem die Hälfte der Zeit für Grabenkämpfe zwischen Abteilungen und Profilierungsgehabe der Unter-Unter-Abteilungs-Leiter draufgeht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.