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.

Agil scheinen oder agil sein?

Als ich vor Jahren das erste Mal von Agilität hörte, hatte ich zunächst den Eindruck, Prozesse und Regeln sollten über Bord geworfen werden, um volatile Anforderungen auf wundersame Weise im Handumdrehen realisieren zu können. Ich konnte mir nicht vorstellen, wie das funktionieren soll: Agilität klang für mich nach unerfüllbarem Wunschkonzert.

Erst als unser damaliges Software-Entwicklungsteam anfing nach Scrum zu arbeiten – mit mir als Product Owner und begleitet durch einen erfahrenen Scrum Master – habe ich mich mit dem Thema ernsthaft auseinandergesetzt.

Ich lernte, dass Agilität nicht Chaos bedeutet, sondern ganz im Gegenteil lautete die

1. Lektion: Disziplin

Agiles Vorgehen hat Regeln. Die lernten wir in der vorausgehenden Scrum-Schulung. Vor allem aber legte unser Scrum Master uns sehr ans Herz, die Scrum-Regeln strikt einzuhalten, statt sie so auszulegen, wie es für uns am sinnvollsten erschien. Was ich gelernt habe: Agilität ist kein Laissez-faire, sondern bedarf eines sehr disziplinierten Vorgehens, das nur funktioniert, wenn es konsequent gelebt und nicht nach Bedarf verbogen wird.

2. Lektion: Der Sinn

Feste Rollen und Rituale sind nützlich. Wir hatten sie für Scrum zwar gelernt, aber echtes Verständnis wuchs erst nach und nach über das Coaching und die Fragen des Scrum Masters. Beispielweise wenn sich im Lauf eines Sprints herauskristallisierte, dass mehrere der vereinbarten User Storys nicht erreicht werden würden. Alle Teammitglieder versuchten natürlich, ihre eigene Aufgabe bestmöglich zu erledigen. Das hätte dazu geführt, dass die einzelnen User Storys zu nur 70% fertig werden würden. Der Scrum Master stellte zur Diskussion, stattdessen ein oder zwei User Storys für den Sprint zu verwerfen und bei der Fertigstellung der anderen mitzuhelfen. Was wir gelernt haben: Ergebnisorientierung und Fokussierung auf ein gemeinsames Ziel machen das Teamwork produktiver und die Teammitglieder zufriedener.

3. Lektion: Teamgeist

Je mehr wir den Sinn der Regeln, Rollen und Rituale verinnerlichten, desto effizienter wurden die Projekte. Das Team wuchs immer stärker zusammen und es entwickelte sich nicht nur ein gemeinsamer Fokus darauf das Ziel zu erreichen, sondern echter Zusammenhalt. Wo vorher Kollegen Unverständnis über die Arbeit der jeweils anderen geäußert hatten oder sich in Schuldzuweisungen übten, wusste nun jeder im Team, was die anderen machten und warum. Man half sich gegenseitig nach Kräften und vertraute einander immer mehr. Und da nachhaltiges Lernen vor allem über positive Emotionen funktioniert, war dies der Punkt, an dem wir wirkliches Verständnis für Agilität entwickelten.

Am Ende wurde mir klar, dass Agilität erst durch das Zusammenspiel von Regeln, Menschen und Motivation entsteht. Die hinter den Regeln stehenden agilen Werte zu verstehen, ist entscheidend. Sonst besteht die Gefahr – durch das Herausgreifen oder Zurechtbiegen einzelner Regeln auf die eigenen Bedürfnisse – mit dem agilen Ansatz zu scheitern.

Was nicht heißt, dass man die agilen Frameworks nicht anpassen oder selektiv anwenden darf. Aber erst, wenn man sie verstanden hat.

Über IoT-Failures und Vertrauen in Technologie

Anfang April diesen Jahres besuchte ich die building IoT in Köln. Bei der Fachkonferenz, die von heise developer, iX und d.punkt Verlag organisiert wurde, drehte sich in Vorträgen und einer Ausstellung alles rund um Anwendungen für das Internet der Dinge (IoT) und Industrie 4.0. Zusammen mit meiner Kollegin Yang Zhong durfte ich in einem Vortrag  moderne User-Experience-Konzepte (UX) für IoT-Lösungen vorstellen.

Zum Abschluss unseres Vortrags, der einen Arbeitsprozess eines Anwenders, von der Datenaufnahme eines realen „Things“ bis zur Visualisierung der Live-Daten im Dashboard mittels Digitalem Zwilling zeigte, gab es eine sehr anregende Diskussion. Zwei Punkte waren hier besonders interessant: 

  • In vielen Anwendungsbereichen steht das Thema Customer-Journey weit oben auf der Agenda – was den aktuellen Trend bestätigt.  
  • Es ist essentiell, Software für Anwender zu entwickeln – was auch Konsens war.

Der Abend gehörte ganz dem Thema Industrial IoT. Als Moderatorin leitete ich eine Gesprächsrunde aus Vertretern unterschiedlicher Unternehmen und Softwarefirmen, wie beispielsweise Miele, Dürr Dental, Codecentric oder akquinet. Hier entwickelte sich eine intensive Diskussion um die vorherrschenden Themen der Industrie 4.0. Dazu gehören neben der Wahl der Steuerungselektronik oder des Funkstandards auch Fragestellungen, ob eine IoT-Lösung in einer Cloud betrieben werden soll. Gründe für Lösungen in einer Cloud sind natürlich der Komfort und die relativ effiziente und einfache Skalierbarkeit was die Anzahl der zu verwaltenden „Things“ betrifft. Im Gegensatz dazu spricht für das Verwalten der Software auf eigenen Servern (on-premise), dass vertrauliche Produkt- oder Kundendaten das Haus auch wirklich nicht verlassen. Die Diskussion hat meine Einschätzung bestätigt, dass beide Vorgehensweisen in der Praxis ihre Vorteile haben und entsprechend Anwendung finden.

Eines meiner persönlichen Highlights der diesjährigen building IoT war eine negative Hitliste mit IoT Produkten, so genannte IoT-Failures: Produkte also, die massive Sicherheitslücken besitzen, wie beispielsweise offene Datenschnittstellen. Einige „klassische“ Lücken waren schon bekannt, wie nicht geänderte Standard-Passwörter, die Datenmissbrauch/-diebstahl ermöglichen. Von anderen war ich überrascht: wie zum Beispiel einem Rauchmelder eines namhaften Herstellers, der bereits serienmäßig mit einem Mikrophon (?!) ausgestattet wurde, das wiederum unerwünschtes Mithören in Wohnräumen erlaubt.

Warum ist ein Mikrophon in einem Rauchmelder zu finden?  Das können wir nicht mit Sicherheit sagen, zumindest ist es nicht im Sinne des Kunden und lässt das Vertrauen in die Technik massiv schwinden. Und genau das ist der springende Punkt: Akzeptanz für neue Technologien benötigt Vertrauen. Und das wird bei  der zunehmenden Digitalisierung immer wichtiger.