Agile Hardware-Entwicklung

In den letzten zehn Jahren hat der Trend zur Verwendung des agile Hardware-Entwicklungsprozesses an Popularität gewonnen. Diese Methode des Prozessmanagements ermöglicht es Ihnen, Software von Beginn des Projekts an inkrementell zu erstellen, im Gegensatz zu kaskadierenden Modellen, bei denen der Code am Ende des Arbeitszyklus geliefert wird. Der Kern der Methodik von agile für Hardware ist die Aufteilung von Projekten in kleine Arbeitseinheiten, die so genannten User Stories. Aber ist ein solches Modell für die agile Entwicklung von Hardware geeignet? Dank unserer internen Erfahrung, die auf der Forschung von cPrime zusammen mit TCGen basiert, werden wir heute die Antwort auf diese zweideutige Frage erfahren.

Was ist agile Hardware-Entwicklung? 

Und was versteht man unter agilem Projekt? Agile ist heute der größte Bereich des Software-Engineerings, sowohl in der Praxis als auch in der Forschung. Diese Methodik, die im Agilen Entwicklungsmanifest in Form von 4 Werten und 12 Grundsätzen formuliert wurde, ist inzwischen weltweit zum bevorzugten Standard für die Softwareentwicklung geworden. Aber wie lässt sie sich für Hardware nutzen? Ende 2013 wurde eine Umfrage unter globalen Unternehmen durchgeführt, in der die Auswirkungen der agilen Softwareentwicklung auf die Entwicklung von Hardware untersucht wurden. Nach der Analyse aller Fragebögen und zusätzlicher Interviews wurde bekannt, dass verschiedene Unternehmen unterschiedliche Agile Methoden in unterschiedlichem Maße einsetzen, obwohl keines der Unternehmen einen formell definierten Agilen Hardware-Entwicklungsprozess als solchen hatte. So stellten wir beispielsweise fest, dass die Unternehmen eine schnelle Leiterplattenentwicklung durch iteratives Prototyping, die Unterteilung der Produktentwicklungszyklen in zeitlich begrenzte Sprints, die Nachverfolgung mit Burndown-Diagrammen und häufige Komponentenintegration und Integrationstests betrieben. Das heißt, viele Unternehmen nutzten Teile der agilen Methodik, ohne es zu wissen.

Hauptunterschiede zwischen Agile für Hardware und Software

Wie wir bereits festgestellt haben, wird die Agile Entwicklung Hardware hauptsächlich für die Softwareentwicklung und nicht für die Hardware verwendet. Hierfür gibt es besondere Voraussetzungen, die sich auf verschiedene Entwicklungsphasen auswirken und sich nicht mit der Theorie der Geräteentwicklung kombinieren lassen. Hier sind einige Unterschiede zwischen der agilen Softwareentwicklung und der Hardwareentwicklung:

  • Software ist flexibler und daher leichter und billiger zu ändern als Hardware.
  • Aufgrund der Komplexität der automatischen Updates und Upgrades ist die Hardware zunächst eine begrenzte Ressource (selbst mit einem Spielraum für künftige Software-Updates). Dadurch können die Hardwarekomponenten nicht so oft aktualisiert werden, und außerdem kann es zu großen Änderungen kommen – von der Funktionalität und der Entwicklung neuer Firmware bis hin zur Unfähigkeit, die Software an die Festplatte anzupassen.
  • Sie können mitten im Entwicklungszyklus Änderungen an der Software vornehmen, was bei Hardware aufgrund der Ressourcenverschwendung nicht möglich ist.

Die Empfehlungen für agile Hardwareprojekte

Die Hauptmethode zur Einführung von Agile in den Entwicklungsprozess besteht darin, im Laufe der Zeit neue nützliche Funktionen hinzuzufügen. Bei Hardware ist dieser Ansatz jedoch dadurch eingeschränkt, denn es ist unmöglich ist, ein unvollständiges Produkt zu entwickeln (und erst recht nicht, ein bestehendes zu aktualisieren), da die Funktionalität vor der endgültigen Entwicklung des Teils fehlt. Aufgrund dieser Nuance mögen viele denken, dass die agile Hardwareentwicklung zum Scheitern verurteilt ist. Es gibt einen Ausweg, und er ist ganz einfach:

Die Arbeit des Entwicklungszyklus kann in zahlreiche kleine und testbare Ergebnisse aufgeteilt werden.

Bei Hardwareprodukten liefert der Ergebnisstrom in der Regel keinen konstanten Strom nützlicher Funktionen im Laufe der Zeit. Das bedeutet, dass die Produktmerkmale erst am Ende des Entwicklungszyklus nutzbar werden. Die Ergebnisse können jedoch während des gesamten Zyklus entwickelt und getestet werden, und dies ist ein entscheidender Moment für das Verständnis der Fähigkeiten von Hardware für die agile Entwicklung. Dieser Punkt ermöglicht es Ihnen, das Volumen ständig anzupassen und das Notwendige zu verfeinern, um die geplanten Liefertermine mit den bestmöglichen Kosten zu erreichen. Hierfür empfehlen wir die Verwendung des Scrum-Prozesses.

Die Gesamtstruktur ist ein Release-Zyklus in Scrum, der aus einer Reihe von Sprints besteht. Hardware-Sprints sind doppelt so lang wie Software-Sprints (vier Wochen gegenüber zwei Wochen), da sich Hardware-Ergebnisse in der Regel nicht in kleinere Teile zerlegen lassen als Software-Ergebnisse. Die Sprint-Grenzen sind aufeinander abgestimmt, um die Interaktion zwischen den Teams zu verbessern.

Das Produkt wird am Ende des Release-Zyklus fertiggestellt, d. h. die Software ist produktionsreif und das physische Hardwareprojekt ist produktionsbereit. Obwohl während des gesamten Zyklus Integrations- und Integrationstests durchgeführt werden, lassen wir den letzten “Härtungs”-Sprint für abschließende Integrationstests und andere Maßnahmen, die nicht früher durchgeführt werden können. Zu diesem Zeitpunkt ist noch keine Produktentwicklung im Gange.

Die Entwicklung von Hardware und Software erfordert einige Entwurfsarbeiten, aber die Arbeit mit Hardware bringt sowohl höhere Kosten für Änderungen als auch eine geringere Flexibilität mit sich (aufgrund des verfügbaren Pools an Komponenten), so dass der größte Teil der Entwurfsarbeit im Vergleich zum Softwareentwurf im Voraus geleistet wird. Letztere tendiert eher zu einem “Just-in-Time”-Modell, bei dem kleinere Designänderungen nur bei Bedarf vorgenommen werden.

Die wichtigsten Vor- und Nachteile der agilen Hardwareentwicklung

PROS:

  • Die Ergebnisse von Agile for Hardware können während des gesamten Zyklus entwickelt und getestet werden.
  • Mit Scrum ist es möglich, den Umfang ständig anzupassen und festzulegen, was notwendig ist, um die geplanten Liefertermine mit den höchstmöglichen Kosten zu erreichen.
  • Es ist einfacher, Fehler in einem bestimmten Stadium zu erkennen.

CONS:

  • Lange Sprints (4 Wochen) aufgrund der Unmöglichkeit, in kleinere Teile zu zerlegen.
  • Mehr Entwurfs- und Vorbereitungsarbeit, um die Genauigkeit der Berechnungen zu gewährleisten und die Kosten für Korrekturen zu senken.
  • Das Gerät kann erst nach dem letzten (zusätzlichen) Sprint, in dem es vollständig getestet wird, als fertig betrachtet werden.
  • Die Behebung von Designproblemen wird weiterhin ressourcenintensiv sein.

Mitnahme

Insgesamt ist bei der Arbeit mit Hardware eine agile Hardware Entwicklung möglich, insbesondere mit dem Scrum-Prozess. Dazu empfehlen wir die Bildung eines sogenannten Scrum-Teams.

Schon weg? Wir können Ihnen helfen, das zu finden, was Sie brauchen, wenn Sie uns Ihre E-Mail-Adresse mitteilen: