30. November 2023 von Jonas Wiza
App Lifecycle Management Power-Up: Entwicklung von Codebeamer-Erweiterungen
Application Lifecycle Management (ALM) ist eine kritische Komponente für die nachhaltige Entwicklung von Anwendungen. Wer die Tools in diesem Bereich beherrscht, profitiert von Vorteilen wie verbesserter Zusammenarbeit, höherer Effizienz, Kosteneinsparungen, gesteigerter Produktqualität und besserer Nachvollziehbarkeit des gesamten Entwicklungsprozesses.
Als ganzheitliche ALM-Lösung bietet Codebeamer eine zentrale Anlaufstelle für die kollaborative Entwicklung, Verwaltung und Optimierung komplexer Technologien und Produkte. Themen wie die Nachvollziehbarkeit und Transparenz von Anforderungen oder die Dokumentation von Testfällen und Testdurchführungen sind insbesondere für stark regulierte Branchen wie die Automobilindustrie oder das Gesundheitswesen interessant. Spezielle Prozesse erfordern jedoch Funktionalitäten, die nicht per se durch Codebeamer abgebildet werden. Daher haben wir uns gemeinsam mit unserem Kunden der Herausforderung gestellt, den Funktionsumfang um wichtige und nützliche Features zu erweitern. Wir haben gezielt an den Problemstellen angesetzt, uns den Code von Codebeamer vorgenommen und zwei Erweiterungen entwickelt, die die Synchronisation zwischen den PLM- und ALM-Tools automatisieren und die Prozesse im Qualitätsmanagement vereinheitlichen. Diese beiden Erweiterungen werden in den folgenden Abschnitten im Detail vorgestellt.
Synergien freisetzen durch die Synchronisation zwischen PLM und ALM
In der Automobilentwicklung ist ein ausgereiftes Produktmanagement mit detaillierten und nachvollziehbaren Anforderungen und Entscheidungen erfolgsentscheidend. Komplexe Prozesse und Produktionslinien in einem stark regulierten und gleichzeitig angespannten Markt stellen zusätzliche Herausforderungen dar und erfordern ein hohes Maß an Sorgfalt. Dabei reichen die Anforderungen bis tief in die Entwicklung einzelner Komponenten hinein. Dies gilt auch für viele Softwarekomponenten in heutigen Fahrzeugen. An vielen Stellen ist es daher notwendig, das Product Lifecycle Management mit dem Application Lifecycle Management in Einklang zu bringen.
Codebeamer ist oft in eine breite Anwendungslandschaft integriert, neben anderen Systemen, wie beispielsweise Product Lifecycle Management (PLM) Tools. Jede Anwendung für sich kann in ihrem Aufgabenbereich zu starken Prozessvereinfachungen führen. Wenn aber eine fehlende oder mangelhafte Integration zu den Umsystemen die Prozesse wieder enorm verlangsamt und damit die Zusammenarbeit zwischen den verschiedenen Fachbereichen ausbremst, ist der gewonnene Vorteil dahin. Gerade bei der Synchronisation der im Unternehmen eingesetzten Werkzeuge kommt es immer wieder zu zeitaufwändigen und fehleranfälligen Prozessen. Exporte einer Anwendung müssen in mühsamer Handarbeit werkzeugspezifisch nachbearbeitet und transformiert werden, damit ein Import in das Zielsystem gelingt. Die Synchronisation zwischen PLM- und ALM-Tools kann jedoch enorme Synergien im Unternehmen freisetzen.
In der Ausgangssituation des Projektes wurden die richtungsgebenden Tracker aus dem PLM-Tool extrahiert, manuell angepasst und anschließend einzeln wieder in Codebeamer importiert. Bei Änderungen im Entwicklungszyklus musste der Export- und Importprozess wiederholt werden, um nicht unterschiedliche Datenbestände in den verschiedenen Systemen zu erhalten. Dies führt zu einem erheblichen Zeitaufwand und ist zudem sehr fehleranfällig. Werden hier Fehler nicht korrigiert und läuft die Entwicklung eines Produktes in eine ungewollte Richtung, kann dies zu erheblichen Kosten führen.
Um den beschriebenen Problemen entgegenzuwirken, haben wir eine Erweiterung für die Synchronisation zwischen PLM- und ALM-Tool entwickelt. Die flexible Lösung ermöglicht es, ausgewählte Tracker und deren Felder zwischen PLM- und ALM-Tool auszutauschen und so die beiden Komponenten aufeinander abzustimmen. Durch umfangreiche Konfigurationsmöglichkeiten kann gezielt gesteuert werden, welche Elemente synchronisiert werden sollen und welche nicht. Dies ermöglicht den Einsatz der Erweiterung mit maximaler Flexibilität bei minimalem Aufwand.
Neue oder geänderte Anforderungen an ein Funktionspaket eines Steuergerätes im Fahrzeug können beispielsweise als Change Request im PLM-Tool erfasst und mit wenigen Eingaben in Codebeamer übertragen und dort in den Application Development Lifecycle eingespeist werden. Ebenso können Items aus Codebeamer in Change Requests oder andere Arten von Trackern ausgeleitet werden. Beziehen sich Anforderungen auf bestimmte Module innerhalb des Steuergerätes oder der Umsysteme, so können diese zum Beispiel aus Codebeamer in „Module Requests“ in PTC Windchill überführt werden. Die Nachvollziehbarkeit der Anforderungen ist toolübergreifend gewährleistet. So können beide Tools ein strukturiertes Ökosystem bilden, in dem sich Softwareentwicklung und Produktmanagement gegenseitig unterstützen.
Template Injection im Rahmen des Qualitätsmanagements
Wer innovative und marktführende Fahrzeuge bauen will, muss auch marktführende Qualitätsmanagementprozesse pflegen. Das bedeutet oft, dass je nach Produkt und Komponente eine Vielzahl von Qualitätssicherungsprozessen durchlaufen werden muss. Dabei gibt es für jede Art von Bauteil unterschiedliche Standards und Best Practices, teilweise auch gesetzliche Vorgaben, die eingehalten werden müssen, um das gewünschte Ergebnis zu erzielen. Sollen nun genau diese Standards, Best Practices oder firmeneigene Testverfahren regelmäßig in Projekten eingesetzt werden, müssen diese gut dokumentiert sein und sich reibungslos in die Entwicklungszyklen integrieren lassen. Um diese Prozesse zu streamlinen, haben wir gemeinsam mit dem Kunden ein Codebeamer Qualitätssicherungs-Template für Projekte erstellt. Mit Hilfe einer selbst entwickelten Erweiterung ist es nun möglich, die Tracker der Template-Projekte genau an den Stellen in die Codebeamer-Projekte einzuspielen, an denen sie benötigt werden.
Ähnlich wie bei der früheren Codebeamer-Synchronisationserweiterung können die Kopiervorgänge über Konfigurationsdateien angepasst werden. So kann beispielsweise festgelegt werden, dass an eine Softwarekomponente unter anderem „Code Review Tracker“ angehängt werden. Handelt es sich bei der Komponente gleichzeitig um ein Element der Software, das Teil der Architektur ist oder Einfluss auf diese hat, so kann eingestellt werden, dass auch hier „Architektur-Review-Tracker“ angehängt werden. Diese fordern dann zum Beispiel, dass immer auch Architekturdiagramme angehängt werden, um die Nachvollziehbarkeit zu gewährleisten und gleichzeitig eine detaillierte Dokumentation sicherzustellen. Auch einzelne Felder innerhalb der Elemente können konfiguriert werden, falls Inhalte und Feldnamen im Zielobjekt angepasst werden müssen. Durch die hohe Flexibilität der Codebeamer-Extension sind eine Vielzahl weiterer Anwendungsszenarien denkbar. Die Portierung eines Legacy-Projekts, das nicht der aktuell geforderten Projektstruktur entspricht, in ein neues, richtlinienkonformes Format ist nur eines von vielen Beispielen.
So wie unsere Kunden großen Wert auf die Qualität ihrer Produkte legen, so legen auch wir bei adesso großen Wert auf die Qualität unserer Produkte und Dienstleistungen. Um diese hohe Qualität sicherzustellen und einen geregelten CI/CD-Prozess abbilden zu können, haben wir im Zuge der Entwicklung der Erweiterungen entsprechende Testframeworks und unterstützende Tools erarbeitet. Um die entwickelten Plugins testen zu können, ohne den laufenden Betrieb zu beeinflussen, ist eine große Menge an Testdaten notwendig. Die manuelle Erstellung der Testdaten wäre jedoch genauso zeitaufwendig und fehleranfällig wie die ursprünglichen Prozesse, die durch die Erweiterungen optimiert wurden. Aus diesem Grund wurden Skripte erstellt, die unter Verwendung der Codebeamer API-Schnittstellen eine effiziente Importfunktionalität für die benötigten Datenbestände bereitstellen. Diese Tools und Skripte, die aus den oben genannten Gründen entwickelt wurden, können auch dazu verwendet werden, umfangreiche und miteinander in Beziehung stehende Datenbestände unter Berücksichtigung der referenziellen Integrität für Performance- und Lasttests aufzubereiten.
Fazit
Unsere Erfahrungen in diesem Projekt haben uns gezeigt, dass die Out-of-the-Box-Funktionalität der eingesetzten Tools manchmal nicht ausreicht und wir durch die gezielte Entwicklung von Erweiterungen einen enormen Einfluss auf die Prozesse in der Produkt- und Anwendungsentwicklung haben und die Zusammenarbeit zwischen diesen beiden Bereichen optimieren können. Maßgeschneiderte Lösungen können die Effektivität eines Tools erheblich verbessern und Brücken zwischen den verwendeten Komponenten in der Anwendungslandschaft schlagen, wodurch Kosten gespart und einige Kopfschmerzen beseitigt werden können.
Bei Interesse am ALM-Tool Codebeamer und dem umfangreichen Codebeamer-Know-how von adesso nehmt gerne Kontakt auf.
Jetzt unverbindlich Kontakt aufnehmen
Ihr möchtet mehr über spannende Themen aus der adesso-Welt erfahren? Dann werft auch einen Blick in unsere bisher erschienenen Blog-Beiträge.