Im Rahmen des 15. automotiveIT Kongress in Berlin wurden nicht nur die erfolgreichsten IT-Dienstleister der Automotive-Branche prämiert, sondern auch erstmals die besten Teams der Branche ausgezeichnet. Das Team hinter Codecraft von BMW und BearingPoint konnte sich 2023 den Award in der Kategorie Business Impact sichern. Weitere Informationen zu den IT Team Awards finden Sie hier.
Wer in BMWs Forschungs- und Innovationszentrum, kurz FIZ, von einem Punkt zum anderen will, sollte Zeit und eventuell Wanderschuhe mitbringen. Der gesamte Entwicklungskomplex umfasst rund 50 Hektar, allein der 2020 eröffnete Nordbereich, in dem unter anderem die Hard- und Software für BMWs Neue Klasse erdacht wird, erstreckt sich auf gut 150.000 Quadratmetern – eine Fläche, auf der man das halbe Oktoberfest aufbauen könnte.
Trotz der weiten Wege in der realen Welt ist BMWs Entwicklung in den letzten Jahren vor allem im Digitalen deutlich näher zusammengerückt. Und das ist auch dringend notwendig angesichts der immensen Herausforderungen, die das Software-Defined Vehicle (SDV) an die althergebrachten Automobilbauer stellt. Ständige Vernetzung, OTA-Updates, digitale User Experience und hochautomatisierte Fahrerassistenz stellt völlig neue, hochkomplexe Anforderungen an die Fahrzeugarchitektur und verlangt zudem ein fundamentales Umdenken in der Entwicklung. Und das vor allem für das neue Herzstück des Autos: der Software.
Was ist das Ziel von BMWs Software Factory?
Während konkurrierende Autokonzerne ihre Software-Ambitionen auf mehr oder weniger selbstständige Töchter auslagern, versucht BMW Softwareentwicklung und klassisches Engineering – auch räumlich – möglichst eng zu verzahnen. Software Factory nennen die Münchner den Komplex, mit dem Software möglichst effizient an das Fahrzeug angeliefert werden soll – und das mit einheitlichen Methoden, Tools und Prozessen. Ein Vorhaben, das für Autobauer höchst herausfordernd ist, deren Entwicklungsprozesse bislang noch grundlegend anderen Prämissen folgten als solchen aus dem Software-Kosmos.
„Jede Domäne, jeder Fachbereich war früher sehr stark auf sich fokussiert und hat eigene domänenspezifische Toolketten mit beschränkter Leistungsfähigkeit genutzt“, erläutert Harald Wenke, Product Owner in der Softwareentwicklung bei BMW. „Das war zum einen aus Effizienz- und Standardisierungsgründen, zum anderen in Anbetracht der nötigen Integrationsfähigkeit bei der stark wachsenden Komplexität von Fahrzeugfunktionen einfach nicht mehr zeitgemäß.“ Denn die Software-Stacks der großen zentralen Steuergeräte, wie sie in die aktuellen BMW-Modelle und erst recht in die Modelle der Neuen Klasse integriert werden, sind enorm komplexe Systeme mit mehreren Hundert Millionen von Codezeilen, die sich gegenseitig beeinflussen. An diesen neuen Herzstücken des SDV arbeiten wiederum tausende von Entwicklern parallel – eine immense Herausforderung in Sachen Prozesse, Zusammenarbeit und Infrastruktur.
Was leistet die Software-Toolchain CodeCraft?
Um den Anforderungen des SDV Herr zu werden, entstand bei BMW in enger Zusammenarbeit mit dem IT-Partner BearingPoint die zentrale Entwicklungsplattform CodeCraft, die die einzelnen fachbereichs-spezifischen Toolchains ablöst durch eine zentrale, domänen- und ortsübergreifende und ebenso leistungsfähige und hochskalierbare Continuous-Integration-Toolchain (CI). BMWs selbst formulierter Anspruch sei es, einen Entwicklerarbeitsplatz auf Augenhöhe mit den Playern wie Google, Microsoft oder AWS bereit zu stellen.
„CodeCraft ist zentraler Bestandteil unserer Software Factory und ermöglicht im Entwicklungsprozess enorm schnelle Feedback-Loops. CodeCraft basiert auf einer hoch skalierbaren Hybrid-Cloud-Architektur und wird 24/7 in einem DevOps-Modell betrieben“, erklärt Wenke. „Etwaige Fehler erst zu einem späten Zeitpunkt in der Validierungskette aufzudecken, bedeutet hohen Aufwand und Kosten. Mit CodeCraft erkennen wir Fehler automatisiert schon bei der Integration von Softwareänderungen.“ Ausgelegt ist die Toolchain für mehr als 10.000 User, darunter Entwickler am Münchner FIZ, BMWs globalen DevOps-Hubs und externe Partner wie Tier-1-Zulieferer – für vollautomatisierte Software-Builds zur Integration von tausenden Änderungen pro Tag. Dazu werden laut BMW teils über 100.000 Buildjobs ausgeführt.
Auf einen Blick: Was ist eine Software-Toolchain?
In der automobilen Softwareentwicklung bezeichnet eine Toolchain eine Reihe von miteinander verbundenen Softwarewerkzeugen, die zur Entwicklung, Integration, Test und Bereitstellung von Software für Fahrzeugsysteme verwendet werden. Diese Toolchain umfasst typischerweise Tools für das Anforderungsmanagement, das Versionskontrollsystem, die Continuous Integration und Continuous Delivery (CI/CD), das Testen, die Code-Analyse und -Überprüfung sowie das Konfigurationsmanagement. Die effektive Nutzung einer Toolchain trägt dazu bei, die Effizienz, Qualität und Sicherheit der entwickelten Fahrzeugsoftware zu verbessern.
Doch wie macht BMW das? Beispiel Steuergeräte-Entwicklung: „In ECU-Projekten arbeiten tausende Softwareentwickler parallel und benötigen in Echtzeit Feedback zu den gemachten Änderungen – bei den größten Steuergerätdomänen beispielsweise ADAS oder Fahrdynamik sind das pro Tag gerne mal 300 bis 500 zusammengeführte Änderungen“, erläutert Thomas Zink, Projektleiter CodeCraft CI. Am Anfang der Kette bereitet ein lokaler Softwareentwickler seine Änderung in einem sogenannten Pull Request auf und durchläuft im Anschluss eine Kaskade mehrerer Qualitäts-Checkpoints, durch die der Entwickler schnell und automatisiert Feedback erhält. Und das alles in der „sicheren Umgebung“ der Software Factory, bestehend aus Qualitätssicherung, Anforderungsmanagement, Integration und Validierung.
„Die Änderung eines einzelnen Entwicklers kann sinnvoll sein, aber im weiteren Prozess durchaus noch Probleme für Entwickler aus anderen Fachbereichen verursachen“, erklärt Zink. Daher steht erst am Ausgang dieses automatisierten Gating-Systems das Software-Release für ein Steuergerät. Die Integrationszeit zwischen Software-Änderung und -Release hat sich so von mehreren Tagen auf wenige Stunden reduziert – mit ein Grund, wieso CodeCraft intern gut ankommt: „Vor wenigen Jahren konnte hier im Haus noch kaum jemand was mit Pull Requests anfangen. Mittlerweile sprechen hier viel mehr Leute ‚Software‘”, freut sich Projektleiter Zink.
Warum setzt BMW auf Open-Source-Software?
Der Erfolg des CodeCraft-Konzepts steht und fällt dabei mit zwei Faktoren, die vor allem technischer Natur sind: Zum einen setzt BMW in seiner Toolchain verstärkt auf COTS- und Open-Source-Lösungen (Commercial off-the-shelf), insbesondere auf die De-Facto-Standards der weltweiten Software-Community. So nutzen BMWs Entwickler beispielsweise Github als Sourcecode-Management. In dessen User Interface ist das Feedback der CI und weiterer Tools im Buildprozess integriert, um schnelles Feedback und größtmögliche Transparenz aller Beteiligten zu gewährleisten. „Der Einsatz von DeFacto-Standardprodukten in einer leistungsfähigen Umgebung hat auch einen Employer-Branding-Effekt: Wir setzen in unserer Tool-Chain auf Komponenten wie GitHub und Open Source Software, die in der Entwickler-Community bekannt sind. Das ist attraktiv für junge Talente, da sie die Tools schon von der Uni kennen“, erklärt Harald Wenke.
„Durch den Einsatz der Tools ‚as is‘ reduzieren wir unseren Wartungsaufwand deutlich und können so die Aktualität des Toolings effizient sicherstellen. Im Falle von Open Source – wo BMW auch aktiv mitentwickelt, zum Beispiel beim CI Tool Zuul – werden die Ergebnisse auch mit der Community geteilt.“ Insgesamt stellt CodeCraft eine Delivery Chain bereit, die aus mehr als einem Dutzend Tools besteht. Der große Mehrwert für die Entwicklungsteams bestehe darin, dass die einzelnen Tools nahtlos integriert seien und als professionell betriebener Service bereitgestellt würden, so Wenke.
BMW-Experte Harald Wenke im Interview
Hybrid-Cloud-Architektur ermöglicht Skalierung
Der zweite technologische Faktor ist eine leistungsfähige und skalierbare IT-Infrastruktur, die bei BMW mittels einer hybriden Cloud-Umgebung realisiert wird. „Die hohe Veränderungsgeschwindigkeit in der Produkt-IT sowie das rasante Code-Wachstum in der Softwareentwicklung könnte durch die On-Prem-Infrastruktur allein nicht mehr bewältigt werden“, sagt Stefan Müller von BMWs Partner BearingPoint, mit dem die Münchner große Teile der Entwicklungsumgebung kreiert haben und der zugleich für den reibungslosen 24/7-Betrieb verantwortlich ist. CodeCraft setzt daher der BMW IT-Strategie folgend auf einer Hybrid-Cloud-Architektur auf, die zum einen aus On-Premise-Clustern in zwei BMW-eigenen Rechenzentren besteht.
Zum anderen – und hier wird BMWs Verlangen nach Flexibilität und Skalierung deutlich – fußt CodeCraft auf einer Public Cloud von IT-Riese Amazon Web Services (AWS), die in Kombination mit der On-Prem-Infrastruktur eine IT-Kapazität von aktuell rund 50.000 vCPUs bereitstellt. „Wir optimieren mit CodeCraft nicht nur die Prozesse in der Softwareentwicklung, wir erweitern auch den Blueprint der IT,“ macht Harald Wenke deutlich. „CodeCraft konnte nur in enger partnerschaftlicher Zusammenarbeit mit den Group-IT-Funktionen auf der Grundlage einer gemeinsamen Vision und Mindset zum aktuellen Umfang wachsen.“ Und falls es da noch Redebedarf geben sollte: BMWs Digital Campus, der Hauptsitz der Konzern-IT, ist nur einen Steinwurf entfernt vom FIZ.