Warum agile Software-Entwicklung der perfekte Ansatz für IoT-Projekte ist

Obwohl agile Prinzipien mittlerweile in der Softwareentwicklung weit verbreitet sind, werden viele IoT-Projekte nach wie vor auf traditionelle (zunehmend veraltete) Weise umgesetzt. Die Folge: Nicht wenige IoT-Projekte dauern viel länger als geplant oder scheitern völlig.

Eine Herausforderung für Entwicklungsteams in IoT-Projekten besteht darin, ein breites Spektrum an Fähigkeiten in Bereichen wie Hardware, Netzwerke, Sicherheit, Cloud-Plattformen, Analytik, künstliche Intelligenz und Schnittstellen (API) abzudecken. Diese Fähigkeiten sind in den meisten Organisationen traditionell sehr siloartig verteilt. Der Austausch und die Zusammenarbeit zwischen “Zuständigkeitssilos” funktioniert in vielen Fällen eingeschränkt bis gar nicht. Es fehlt eine gemeinsame Vision.

In IoT-Projekten müssen Entwicklungsteams jedoch integriert auf ein gemeinsames Ziel hinarbeiten. Dies ist einer der Hauptgründe, warum die traditionelle IoT-Entwicklung nach der Wasserfallmethode an ihre Grenzen stößt. Das beginnt schon bei der Projektsteuerung: Ein IoT-Projekt, das mit Methoden und Werkzeugen des klassischen Projektmanagements, wie GANTT-Charts geplant und gesteuert wird, läuft früher oder später aus dem Ruder und endet im Extremfall im Chaos. Das zeigt unsere Erfahrung.

Teams im IoT Development: Agile Zusammenarbeit statt Zuständigkeitssilos

Projekte, die agil umgesetzt wurden, weisen eine Erfolgsquote von 64 Prozent auf, verglichen mit 49 Prozent bei Projekten, die mit traditionellen Methoden umgesetzt wurden” – Boris Shiklo, CTO bei ScienceSoft.

Agile Software-Entwicklung konzentriert sich auf Wertschöpfung statt Umsetzung einzelner Funktionen. Entlang von Wertschöpfungskette werden kleine funktionierende Teile der Software in Iterationen erstellt, statt auf ein komplettes Produkt (als Summe von Funktionen) hinzuarbeiten. Das hat in der Software-Entwicklung den großen Vorteil, dass Nutzer während der Entwicklungsphase Feedback geben und Anforderungen ändern können, ohne das gesamte Projekt in Gefahr zu bringen. 

In IoT-Projekten ist dies besonders wichtig, da hier die fachlichen Anforderungen und das Zusammenwirken verschiedener Disziplinen und Zuständigkeitsbereiche in der Regel deutlich komplexer ist als in “normalen” Software-Projekten.

IoT-Projekte sind nur dann erfolgreich, wenn alle Beteiligten an einer gemeinsamen Vision arbeiten. Ein Denken in Zuständigkeitssilos führt nicht zum Ziel.” – Igor Pshul, Solution Architect.

Agiles Manifest (2001) – Ausschnitt

  • Funktionierende Software ist wichtiger als umfassende Dokumentation
  • Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge
  • Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlung
  • Reagieren auf Veränderung ist wichtiger als das Befolgen eines Plans

In IoT-Projekten, in denen Teams aus verschiedenen Bereichen der Architektur – Frontend, Middleware und Hardware – integriert zusammenarbeiten müssen, kommt es besonders auf eine reibungslose Interaktion zwischen Individuen an – Kommunikation ist ein erfolgskritischer Faktor. Um optimalen Austausch zu gewährleisten, braucht es zum einen die Bereitschaft im Team, einer gemeinsamen Vision zu folgen und zum anderen ein Projektmanagement, das die Zusammenarbeit über Zuständigkeitsgrenzen hinweg etabliert.

 

Die Rolle des Projektmanagers in agilen IoT-Projekten

Der Erfolg von IoT-Projekten steht und fällt mit der Interaktion zwischen Entwicklern aus verschiedenen Bereichen der IoT-Architektur. Damit verändert sich auch die Rolle des Projektmanagements – weg von Aufgaben und Timelines hin zum Menschen. “People-Management” statt “Projekt-Management”.

Ziel des Projektmanagements in IoT-Projekten ist es, Entwickler in jeder Situation zu befähigen, wechselnde Rollen in agilen Teams zu übernehmen. “Projektmanager” – egal ob “Product Owner” oder “Scrum Master” – müssen in der Lage sein, Rollen und Kompetenzen in den Teams dynamisch zu steuern und die Rahmenbedingungen dafür schaffen, dass die Interaktion zwischen Entwicklern und den Teams jederzeit reibungsfrei funktioniert. 

Jetzt ist es ein extremer Teamsport […] wir haben viel mehr Releases, aber die Prototypen sind kleiner und es gibt viel mehr Komponenten.” – Harel Kodesh, ehem. CTO bei GE Software.

Gemeinsame Vision & vertikale Orientierung im Team

In Zeiten, in denen sich Technologien und Anforderungen an Software-Systeme immer schneller ändern, verändern sich auch Architekturen – weg von einzelnen Funktionen (horizontal) in Monolithen hin zu Wertschöpfungsketten (vertikal) in modularen Systemen. Dementsprechend muss sich auch die Organisation von Teams in IoT-Projekten vertikal ausrichten. Statt spezialisierte Teams für die Entwicklung einzelner Funktionen werden cross-funktionale Teams gebildet, die die Features einer Wertschöpfungskette umsetzen. 

Die Herausforderung für Projektmanager besteht vor allem in Unternehmen, die klassisch “horizontal ticken”, darin, eine vertikale Orientierung im Team (und im Produkt) zu etablieren. Dazu braucht es eine agile Kultur und eine gemeinsame Vision für das Produkt und den Weg zum Ergebnis. Fehlen diese Kultur und Vision im Team (oder auch nur bei einzelnen Entwicklern) dann ist Reibung vorprogrammiert und das Risiko zu scheitern extrem hoch.

Kommunikationsblockaden überwinden

In einem idealtypischen IoT-Projekt arbeiten Entwickler aus allen Bereichen der System-Architektur in agilen Teams zusammen. In der Praxis können jedoch besonders in internationalen Projekten unterschiedliche Sprachen, Zeitzonen, Kulturen und Arbeitsweisen die Zusammenarbeit und den Austausch erschweren, im Extremfall sogar unmöglich machen. Hier muss das Projektmanagement gegebenenfalls Brücken bauen. 

Oft braucht es kreative Workarounds, um Kommunikationsblockaden zwischen Teams aufzulösen. Dazu ein Beispiel aus unserer Praxis: Läuft die Zusammenarbeit zwischen den Bereichen Software (Frontend, Middleware) und Hardware (Firmware) nicht optimal – etwa, weil verschiedene Sprachen, Kulturen, Zeitzonen o.ä. aufeinander treffen – dann muss das Projektmanagement gegebenenfalls gemeinsam mit dem Software-Team Wege finden, auch ohne Zugang zur Hardware zu entwickeln. Eine Lösung wäre beispielsweise, die Hardware mithilfe eines digitalen Zwillings zu simulieren.

Beispiel: Digitaler Zwilling hilft, Kommunikationsblockaden zu neutralisieren

Ein solcher Workaround per Simulation mit digitalem Zwilling ermöglicht es, Blockaden im Projekt pragmatisch zu beseitigen auch wenn die Entwicklung eines Digital Twins ursprünglich nicht geplant war. Das macht jedoch nur dann Sinn, wenn der Aufwand in einem vernünftigen Verhältnis zur Minderung von Reibung in der Kommunikation und damit zu einem Zuwachs an Entwicklungsgeschwindigkeit im Projekt steht.

Zudem müssen Entwickler aus dem Software-Team in der Lage sein, die Hardware zu simulieren. Hier ist echte Full-Stack-Entwicklung gefragt, die über den Kompetenzbereich der “normalen” Software-Entwicklung hinausgeht. Deshalb stehen wir bei voltage IT für holistisches Full Stack Development statt Entwicklung in Zuständigkeits- und Kompetenzinseln.

Unsere Vision: 100% holistische Entwicklung in autonomen Teams

Software-Entwicklung ist Team-Sport, keine Einzeldisziplin. IoT-Projekte sind dann erfolgreich, wenn es gelingt, Kompetenzen innerhalb und zwischen den beteiligten Teams zu steuern, Stärken zu kombinieren und Zuständigkeiten zu bündeln. Ziel ist es, Teams zusammenzustellen, die Probleme autonom lösen können. Die Herausforderung für Project Owner besteht darin, die optimale Balance zwischen Steuerung und Autonomie zu finden. 

Bei voltage IT folgen wir diesen Prinzipien:

  • Verantwortlichkeiten & Zuständigkeiten folgen Zielen, nicht den Rollen im Team
    Agile Software-Entwicklung orientiert sich an Wertschöpfung statt an Funktionen. Verantwortlichkeiten & Zuständigkeiten im Team werden so verteilt, dass die Features einer Wertschöpfungskette schnell und effizient umgesetzt werden können. Dazu müssen gegebenenfalls klassische Rollen und Zuständigkeiten aufgebrochen werden. An die Stelle von spezialisierten Teams treten cross-funktionale Teams, in denen notwendige Kompetenzen bestmöglich kombiniert werden.
  • Full-Stack-Entwicklung und -Kompetenzen im Team, nicht in Einzelpersonen
    Sind Kompetenzen gleichmäßig auf möglichst viele Projektbeteiligte verteilt, lassen sich einfacher und flexibler agile Teams bilden, die in der Lage sind, autonom zu entwickeln. Zudem sinkt durch die Verteilung von Kompetenzen das Projektrisiko durch Ausfall einzelner Entwickler (“Bus Factor”).  
  • Agile Methoden wie z.B. Pair Programming stärken die Autonomie
    Autonome Teams sind in der Lage, aus sich selbst heraus auf neue Anforderungen im Projekt zu reagieren und Lösungen zu finden. Zudem können autonome Teams mithilfe von agilen Arbeitsmethoden und Tools fortlaufend die Qualität der Entwicklung sichern. Bei voltage IT setzen wir auf “Pair Programming”, bei dem Entwickler paarweise zusammenarbeiten, simultan entwickeln und Qualität prüfen. 

    Fazit: Agile Entwicklung ist perfekt für IoT-Projekte

    So wie Anwendungen im IoT dezentral organisiert sind, muss auch die Software-Entwicklung dezentral organisiert sein. An die Stelle des klassischen Projektmanagements nach dem Wasserfall-Prinzip tritt Agile Leadership. Cross-funktionale Teams arbeiten autonom und holistisch entlang von Wertschöpfungsketten, statt fremdbestimmt und engmaschig funktionale Anforderungen abzuarbeiten. Das ist bei voltage IT nicht nur Vision und Anspruch, sondern erfolgreiche Realität in komplexen IoT-Projekten.

    Leseempfehlungen

    Wir unterstützen Sie

    Seit vielen Jahren kämpfen wir dafür, dass Unternehmen die richtigen IT-Entscheidungen treffen und Software-Systeme bekommen, von denen sie nachhaltig profitieren und die sie selbst beherrschen können. Unser Credo: Vernünftige Lösungen jenseits von Technologie-Hype.