#workfromhome – Wie arbeitet unsere Software-Entwicklung jetzt zusammen?

Bei CONTACT glauben wir daran, dass die persönliche und informelle Interaktion von Menschen ein wichtiger Erfolgsfaktor in komplexen technischen Vorhaben ist – und dazu zählt ohne Zweifel auch die Entwicklung unserer eigenen Software-Produkte. Wir legen deshalb Wert darauf, unseren Teams die Möglichkeit zu geben, sich mit ihren Kolleginnen und Kollegen in ihren Büros, unseren Meeting-Räumen oder an Orten wie dem „Red Sofa“ zu treffen. All das hatte durch Corona ein jähes und hoffentlich vorläufiges Ende.

Homeoffice für alle
Nach ersten Vorbereitungen an den Tagen zuvor hat CONTACT am Wochenende 14.-15. März entschieden, alle Mitarbeiterinnen und Mitarbeiter von zu Hause arbeiten zu lassen. „Work from Home“ trifft bei einem Software-Hersteller im Gegensatz zu vielen unserer Kunden auf besonders günstige Voraussetzungen: Es gibt keine Produktion, bei der Material bewegt werden muss, und Software als „virtuelles“ Produkt kann im Prinzip an jedem Ort der Welt bearbeitet werden.

Als IT-Unternehmen verfügen wir natürlich über eine geeignete und leistungsfähige technische Infrastruktur, und bis auf einige notwendige Hardware-Transporte von Workstations, Bildschirmen und ähnlichem waren die Software-Entwicklung und auch die anderen Bereiche bei CONTACT in weniger als einem Tag einsatzbereit.

Neben unserem Headquarter in Bremen betreiben wir Entwicklungsstandorte in München, Köln, Paderborn sowie Stuttgart und arbeiten häufig mit externen Partnern zusammen. Deshalb sind Kommunikationsmittel wie E-Mail, Telefonieren über Voice-over-IP, Microsoft Teams und so weiter für unsere technik-affinen Software-Entwickler sowieso alltäglich.

Was unsere Entwicklung jedoch wirklich zusammenhält, sind die gemeinsamen Prozesse und Vorgehensweisen, und die dazugehörigen Systeme. Die wichtigste Unternehmensplattform ist unsere Inhouse-Installation von CONTACT Elements, kurz CEDM genannt. Alles was wir tun, läuft dort zusammen, und alle anderen IT-Systeme sind mit CONTACT Elements verbunden.

Über den Activity Stream von CONTACT Elements können wir Informationen und Dokumente gezielt und schnell teilen.

Produkte
Jeder Software-Baustein von CONTACT Elements wird in unserer Elements Inhouse-Installation als Produkt geführt. Die Quelltexte unserer Fachanwendungen verwalten wir in Git- oder Subversion-Repositories, die mit dem Produktobjekt verbunden sind. Aus dem Feld auflaufende Fehler oder Änderungswünsche für die Software-Produkte werden als „Change Requests“ in Elements verwaltet. Wenn diese zu Code-Änderungen führen, erfolgt eine direkte Verlinkung zwischen einem Change-Request und einer Quelltextänderung (einem „Commit“) in Git oder Subversion. Außerdem führen wir in CONTACT Elements natürlich eine Liste der Produkt-Releases und dem jeweiligen Reifegrad.

Unsere Entwicklungsprozesse sind hochgradig automatisiert und naturgemäß vollständig digital. So betreiben wir viele weitere Systeme, die Software automatisch bauen, testen und vermessen. Alle diese Systeme sind direkt oder mittelbar mit CONTACT Elements verbunden.

Jede Stunde, die ein Entwickler mit der Pflege oder Weiterentwicklung einer Software-Komponente verbringt, wird mit der Zeiterfassung in CONTACT Elements verbucht. So haben wir jederzeit einen Überblick darüber, in welchem Umfang wir in Software-Bausteine investieren und was die Wartung kostet.

Projekte
Unsere Entwicklungsmethodik verbindet mehrere agile Methoden mit für unser Unternehmen spezifischen Erweiterungen. Sie heißt „Revolution“ und ist durch Vorlagen für Projekte, die durch „Tayloring“ angepasst werden können, in CONTACT Elements hinterlegt. In „Revolution“ gibt es darüber hinaus eine Reihe von Liefergegenständen (Deliverables), die in CONTACT Elements als Dokumente aus Vorlagen ausgeprägt werden. Anforderungen legen wir als Spezifikationen im Requirements-Management von CONTACT Elements an. Die Projektplanung erfolgt in Iterationen, die mit Task Boards geplant und bearbeitet werden.

Task Board zu einem aktuellen Entwicklungsprojekt bei CONTACT.

Im Ergebnis sind damit alle Informationen, die für unsere Entwicklung bedeutsam sind, in einem System auffindbar und miteinander verbunden. Alle Mitarbeiterinnen und Mitarbeiter sind mit den Begrifflichkeiten bestens vertraut, jederzeit in der Lage auf die relevanten Informationen zuzugreifen, und werden von den Systemen zu den richtigen nächsten Aktivitäten geführt.

Fazit
In der gegenwärtigen Krise schafft diese System- und Prozesslandschaft Vertrauen und Handlungsfähigkeit. Sie hat es uns ermöglicht, praktisch von einem Augenblick auf den anderen auf Remote-Arbeit umzustellen, ohne dass es Verwerfungen gibt. Hinzu kommt, dass es dank der Veränderungsbereitschaft unserer Belegschaft und der ohnehin vorhandenen Neigung zu technischen Kommunikationsmitteln gelungen ist, die persönliche Interaktion und Meetings mittels Video-Chats und Web-Konferenzen ins Internet zu verlagern.

Psst, bloß nicht laut von PLM reden!

Puhh, als PLM-Fan musste man in der vergangenen Woche tief Luft holen: Gleich zwei bekannte Blogger senkten in den Überschriften ihren Daumen nach unten: Joe Barkai: „Why I Don’t Do PLM“ und Oleg Shilovitsky: „Are PLM conferences dead?“.

Kurioserweise ziehen beide an den entgegengesetzten Enden des Seils. Für Barkai greift die klassische Sichtweise von PLM als „single version oft the truth“ zu kurz, während Shilovitsky die Basics hinter der PLM-Idee beschwört.

Barkai: „I find it fascinating that traditional PLM software vendors are not realizing how the Internet of Things and the connected enterprise are breathing a new life into the PLM space that does not quite know how to reinvent itself. After decades of using enterprise PLM software, it is still common to hear at a PLM conference a speaker announcing, “Let me give you my definition of PLM.” Or those never-ending debates about eBOMs and mBOMs and where PDM ends and PLM begins.“

Shilovitsky: “I know many people struggling with their PLM decisions and fighting alone to balance tools, budgets, organizational and cultural changes and timelines. Companies are struggling with very basics things – Part Numbers, Change Management, Revisions, and others. To discuss the real problems, can be an opportunity. This is the foundation – the story. This is a single unit… If a single unit doesn’t sell, making it broader or scaling it up won’t solve the problem.”

Ehrlich gesagt, je nachdem mit welchen Kollegen ich bei uns spreche, könnte es ähnlich ausgehen. Bei einer Sache sind wir uns dabei aber alle ziemlich sicher: PLM groß auf eine Einladung oder eine Anzeige zu schreiben, dazu gehört heute schon etwas Mut.

Sind die besten Zeiten von PLM also vorbei?

Unternehmen bestehen deshalb am Markt, weil sie ihren Kunden zuhören und ihr Angebot immer wieder rechtzeitig an neue Anforderungen und Möglichkeiten anpassen! Ja, die Basics sind immer noch die low hanging fruits,  und die Vorreiter kümmern sich um die anspruchsvolleren Potentiale im Produktlebenszyklus, wo es um die Integration von Disziplinen, Tools und Prozessen geht. Einige PLM-Anbieter nutzen zum Beispiel ihre Erfahrung und ihr bisheriges Portfolio rund um das virtuelle Produkt, um ihr Angebot Richtung Internet of Things und den digitalen Zwilling zu erweitern.

Dies macht das Dilemma deutlich: PLM war im Gegensatz zu ERP oder auch der Finanzbuchhaltung nie ein Selbstläufer. Immer schon musste die PLM-Idee bei den Geldgebern besonders überzeugend motiviert werden.

Und das ist oft nicht gut gelungen, wie mein Kollege Rolf Stübbe es in seinem Blog-Beitrag „20 Jahre PLM: Warum zweifeln Viele noch immer am Nutzen?“ auf den Punkt bringt: „Trotz der wieder steigenden Aufmerksamkeit für PLM bemerke ich, dass dem Begriff unverändert die Geschmacksnoten groß, schwerfällig, langwierig, unwirtschaftlich anhaften.“ Vermeintliche Leuchtturmprojekte wie die schier endlose Teamcenter-Einführung bei VW und Dassaults Lizenzpolitik, die mit ursächlich für die Code of PLM Openness Initiative war, stehen stellvertretend für die vielen Nadelstiche, die den Ruf von PLM mit der Zeit ramponiert haben.

Fazit

Man kommt sich vor wie bei Monty Python in der Fawlty Towers Folge “The Germans“: „Don‘t mention the war!“. PLM: Jeder denkt dran, aber alle versuchen, dem Begriff aus dem Weg zu gehen. 

Dabei waren Zeiten für die PLM-Idee nie besser als heute. Der Druck in den Unternehmen ist hoch und steigt weiter, um die Chancen der Digitalen Transformation zu nutzen. Aber das Storytelling muss besser werden. Da taugen die alten Geschichten und komplizierten Definitionen sicher nicht mehr, und der PLM-Begriff als Werbeträger nur noch bedingt. Storytelling und Projektmarketing gehören von Anfang an zusammen. Das fängt mit den Zielen an. Da bin ich bei Oleg Shilovitsky: Wir sollten das Kind nicht mit dem Bade ausschütten. Krude Versprechungen und obskure Visionen, die zum Scheitern verurteilt sind, helfen nicht, im Gegenteil. Lieber die low hanging fruits attraktiv verpacken, dem Projekt einen sinnstiftenden Namen geben und alles dafür tun, dass die ersten, überschaubaren Ziele auch erreicht werden.

Physische Produkte agil entwickeln?

In meinem letzten Blog-Beitrag ging es um Teams, die erst durch Erfahrung wirklich agil werden. Heute stehen die Herausforderungen im Mittelpunkt, die die Agilität gerade im Engineering mit sich bringt.

Agile Softwareentwicklung hat sich fast 20 Jahre nach dem Agilen Manifest weitgehend durchgesetzt. Es geht nicht mehr um das Ob, sondern nur noch um die Best Practices im Detail sowie agile Skalierbarkeit. Der Erfolg und die einfache Anwendbarkeit etwa von Task Boards haben dazu geführt, dass agiles Vorgehen auch außerhalb der Software-Entwicklung begeisterte Nutzer findet, wo Aufgaben im Team bearbeitet werden.

Dies mündete schließlich in die zunehmend intensiv diskutierte Frage, ob auch physische Produkte effizienter mit agilem Vorgehen entwickelt werden könnten.

Warum eigentlich?

Es gibt seit vielen Jahren etablierte Produktentstehungsprozesse, die eine große Reife erlangt haben und eine erfolgreiche Entwicklung unterstützen. Warum davon abgehen und die Risiken eines komplett neuen Ansatzes auf sich nehmen?

Je unklarer die Anforderungen an das Produkt sind und je unbekannter die zu verwendende Technologie ist, desto weniger sind klassische Projektmanagement-Methoden geeignet, weil sie sehr stark vorausplanend sind. Genau diese Tendenz, Projekte trotz zunächst unvollständiger Anforderungen zu starten, beobachten wir aber zunehmend. Digitalisierung und neue Technologien erfordern neue Geschäftsmodelle oder neue technologische Fähigkeiten. Dies spricht für ein agiles Vorgehen, da es für den Umgang mit Unklarheit und Noch-Nicht-Wissen erfunden wurde.

Geht das überhaupt?

Die entscheidende Frage lautet dabei: Sind agile Methoden aus der Softwareentwicklung überhaupt geeignet, die Herausforderungen in der „klassischen“ Produktentwicklung zu bewältigen? Physische Produkte werden im Unterschied zu Software deutlich arbeitsteiliger entwickelt. Die Produktion von fehlerhaften Komponenten verursacht hohe Folgekosten und die Absicherung ist auf physische Prototypen angewiesen. Es ist nicht möglich, alle zwei Wochen einen neuen, funktionierenden und potenziell auslieferbaren Stand zu präsentieren. Lösungen für solche Probleme erfordern eine kreative Weiterentwicklung der bekannten agilen Vorgehensmodelle. Ein sehr einfaches Beispiel dafür: Die Teams verschiedener Domänen benutzen unterschiedliche Sprintdauern. Während das Software-Team alle 2 Wochen liefert, gilt für das Mechanik-Team ein 6-Wochen-Rhythmus. Wichtig ist, die Sprints so zu synchronisieren, dass alle 6 Wochen ein gemeinsames Inkrement erreicht wird.

Die Herausforderung

Die Herausforderung bei der Einführung agiler Methoden ist damit eine doppelte: Einerseits ist es erforderlich, die agilen Methoden aus der Software-Entwicklung an die Bedingungen in der Produktentwicklung anzupassen. Andererseits benötigt man – damit komme ich wieder zu meinem vorigen Beitrag zurück – viel agiles Erfahrungswissen, um solche Anpassungen erfolgreich hinzubekommen. Um diesen Widerspruch aufzulösen, sollte man die Pioniere, die sich auf das neue Terrain wagen, zusammenbringen mit erfahrenen „Agilikern“, die ihr Handwerk aus der Software-Entwicklung beherrschen. Das wechselseitige voneinander Lernen und Teilen von Wissen führt zu einer besseren Beherrschung der Produktentwicklung unter den sich rasant ändernden Randbedingungen.