Agile Hardware mit eingebetteter Softwareentwicklung

Veröffentlicht: 2022-03-11

Der Aufbau komplexer Hardware- und Software-Ökosysteme, die für Produkte und Märkte geeignet sind, ist eine schwierige Aufgabe. Während die meisten Hardware-Startups letztendlich scheitern, weil ihnen das Geld ausgeht, ist laut einem Bericht von CB Insights der Hauptgrund tatsächlich die mangelnde Nachfrage nach ihren Produkten. Dies unterstreicht nur, wie wichtig die Rolle des Produktmanagers für Hardware-Startups ist, da ihr Hauptziel darin besteht, die Bedürfnisse und Schwachstellen der Kunden herauszufinden, um ein erfolgreiches Produkt zu liefern.

Das letzte Unternehmen, das ich leitete, schuf ein Ökosystem aus Web-, mobilen, eingebetteten Softwareanwendungen und Hardwaregeräten für die Parkbranche. Die Hardware-Produktstrategie war Teil meiner täglichen Arbeit, was mich zu Experimenten mit verschiedenen Hardware-Produktentwicklungs-Workflows führte. Obwohl ich seit 10 Jahren mit Hardwareprodukten arbeite und einen BS in Elektronik und Telekommunikation habe, musste ich bei der Arbeit noch viel lernen. Ich habe den folgenden Leitfaden erstellt, in der Hoffnung, dass Sie sich schneller als ich mit dem Produktmanagement im Bereich Hardware mit eingebetteter Software vertraut machen können.

Herausforderungen des Hardware-Produktmanagements

Während SaaS und mobile Apps problemlos mit einem agilen Framework entwickelt werden können, erschweren die einzigartigen Bedingungen in der Entwicklung eingebetteter Software und Hardwaregeräte die Anwendung agiler Prinzipien erheblich. In diesem ersten Abschnitt behandeln wir Merkmale der Hardwareentwicklung, die Komplexität erzeugen. Nicht alle haben einfache Lösungen, aber es gibt Möglichkeiten, die Schwierigkeit zu verringern, indem man bestimmte Hardware-Entwicklungsstrategien anwendet, die im nächsten Abschnitt behandelt werden.

Spezialisiertes technisches Talent ist vor Ort schwer zu finden

Das Erstellen neuer Hardwareprodukte ist erheblich schwieriger als das Iterieren bestehender Produkte. Es erfordert viel Kreativität und Erfahrung im Prototyping, das an Universitäten selten gelehrt wird. Einige Universitäten verfügen nicht einmal über Prototyping-Einrichtungen oder die notwendigen Tools, um diese Fähigkeiten zu entwickeln, und solche Erfahrungen werden fast ausschließlich in größeren Hardware-Unternehmen mit Forschungs- und Entwicklungszentren gesammelt. Lokale Fachleute mit relevantem Fachwissen zu finden, kann daher sehr schwierig sein, was dazu führt, dass viele Hardware-Startup-Gründer ihren Talentpool erweitern müssen, indem sie aus der Ferne einstellen.

Versionskontrollsysteme sind nicht an das Hardwaredesign angepasst

Die meisten Versionskontrollsysteme (VCS) sind auf die Unterstützung von Textformaten ausgerichtet, da sie für die Zusammenarbeit bei der Softwareentwicklung erstellt wurden. In Projekten zur Hardwareentwicklung werden Informationen stattdessen in Designdateien verpackt, die mit Hilfe spezieller Tools wie OrCAD erstellt wurden. Und einige dieser Tools unterstützen nur Binärdateien, die nicht einmal für die Verwendung in VCSs optimiert sind. CADLAB ist ein relativ neuer Versuch, ein hardwarekompatibles VCS zu erstellen, und hoffentlich wird es in naher Zukunft weitere Tools wie dieses geben.

Hardware-Produktionsstätten werden ausgelagert

Hardware-Produktionsstätten befinden sich oft in einer anderen Region, einem anderen Land oder Kontinent. Die Kommunikation zwischen dem Hardwarehersteller und dem Hersteller bedarf besonderer Aufmerksamkeit und ist der Schlüssel zur erfolgreichen Produktlieferung. Erfolgreiche Kommunikation erfordert eine strategischere Gestaltung, um die Qualität des Produkts zu gewährleisten und um sicherzustellen, dass es mit Änderungen in der dynamischen Produkt-Markt-Validierungsphase fertig wird. Um dies zu erreichen, muss der Hardwarehersteller viele detaillierte Spezifikationen erstellen, die an den Hersteller gesendet werden. Der Rahmen für die Zusammenarbeit muss die schnelle Bereitstellung von Informationen und die Verwaltung des Lebenszyklus der Spezifikationen gewährleisten, da diese leicht schnell veraltet sein können.

Hardwareänderungen sind weniger flexibel

Ein beliebtes Betriebsmodell bei Software-Startups opfert in der Anfangsphase Qualität für Geschwindigkeit. Sogar Facebook vertrat lange Zeit das Mantra „move fast and break things“. Ein weiterer bekannter Ansatz ist "Fake it'till you make it". Dies funktioniert für Software-Startups aufgrund günstiger Infrastrukturkosten und optimierter Programmier-Frameworks, die es Entwicklern ermöglichen, Code-Updates täglich bereitzustellen.

Während sich dieser Entwicklungsansatz langsam in den Hardwarebereich eingeschlichen hat, ist dies ein unglücklicher Trend in diesem Bereich, da es viel schwieriger ist, Hardwareänderungen vorzunehmen und bereitzustellen. Die Entwicklungskosten gleichen den durch schnelle und häufige Veröffentlichungen gewonnenen Wert aus, daher ist es eigentlich eine viel wünschenswertere Strategie, mehr in die Designphase zu investieren, um solide Hardwarearchitekturen zu erstellen.

Die Falle des Crowdfunding

Viele Startups sind in der Vorstellung gefangen, dass der Start einer erfolgreichen Hardware-Crowdfunding-Kampagne einer Marktvalidierung gleichkommt. Crowdfunding ist in der Regel am erfolgreichsten für Produkte, die eine Hardwarekomponente beinhalten, insbesondere wegen unseres unbewussten Wunsches nach Eigentum in Bezug auf das physische Objekt. Crowdfunding ist jedoch nicht dazu gedacht, Ihr Produkt in großem Umfang zu validieren, sondern eher eine demokratische Art und Weise, die Produktentwicklung in der Frühphase zu finanzieren. Die unglückliche Realität ist, dass viele Unternehmen mit erfolgreichen Crowdfunding-Kampagnen es später als schwierig oder fast unmöglich empfanden, ihre Produktion zu skalieren, da sie ihren Markt nicht in großem Umfang validiert haben.

Zertifizierungen, Vorschriften und Zulassungen

Alle Hardwareprodukte erfordern eine Art Zertifizierung, um verkauft zu werden. Dies ist einer der am häufigsten übersehenen Schritte in den sehr frühen Stadien der Markteinführung von Hardwareprodukten. Wie wirkt sich die Zertifizierungsbeschränkung auf den Produktplan und das für die Entwicklung angewandte Framework aus? Es ist nicht ungewöhnlich, die frühen Projektphasen mit Zertifizierung und anderen Genehmigungen als Projektmeilenstein zu planen, um dann bedingt in die Kick-Off-Phase zurückzukehren. Produktmanager können stattdessen Vorschriften, Abhängigkeiten und strategische Entscheidungstore für Produktpläne in einem Wasserfall-ähnlichen Ansatz sorgfältig analysieren.

Möglichkeiten für das Hardware-Produktmanagement

Nachdem wir nun einige der Herausforderungen behandelt haben, die im Bereich der Hardware mit eingebetteter Software bestehen, wollen wir uns nun ansehen, wie der Entwicklungsprozess rationalisierter und vorhersehbarer gestaltet werden kann, um die inhärenten Schwierigkeiten der Hardwareentwicklung auszugleichen.

Integrieren Sie Agile in die Hardwareentwicklung

Erfahrene Produktmanager kennen die Herausforderungen beim Bau von Hardwareprodukten mit eingebetteter Software, die versuchen, eine durch neue technologische Entwicklungen geschaffene Marktchance zu nutzen. Sie lernen, die Markteinführungszeit zu verkürzen, ohne die Wahrscheinlichkeit des Produkterfolgs bereits in der Planungsphase zu gefährden. Meistens erfolgt dies über einen Water-Scrum-Fall-Ansatz.

Water-Scrum-Fall für die Hardware-Produktentwicklung
Water-Scrum-Fall für die Hardware-Produktentwicklung

Die Phase der Produktidee erweitert die Produktprinzipien, Ziele und High-Level-Features in so vielen Details wie möglich. Gute Produktmanager verbringen mehr Zeit damit, die Ergebnisse dieser Phase zu verfeinern: Vision, Mission, Chancenbewertung, Hardwareproduktziele und Funktionen. Dies ist der Nordstern des Produkts, der klar genug sein muss, bevor man mit der Arbeit an irgendeiner Art von Hardware-Prototypen beginnt, daher wird ein Wasserfall-Ansatz empfohlen.

Es ist entscheidend, gut dokumentierte Anforderungen und funktionale Spezifikationen für Hardwareprodukte sowie eine gute technische Architektur für die eingebettete Software zu haben, die das Hardwareprodukt antreibt. Änderungen an Anforderungen und Spezifikationen sollten bestraft und nicht gefördert werden, sobald sie vom gesamten Team genehmigt wurden.

Bei der Entwicklung eingebetteter Software kann eine Standard-Scrum-Methodik verwendet werden. Es ist weniger zeit- und kostenaufwändig, die Softwareimplementierung anzupassen und zu verfeinern, um mit der vordefinierten Hardwarearchitektur zu arbeiten, als umgekehrt.

Abschließende Integrationstests und Benutzerakzeptanztests sollten unter Wasserfallbedingungen durchgeführt werden. Zu diesem Zeitpunkt ist die Entwicklungsphase abgeschlossen und neue Funktionalitäten und fehlende Features werden als zusätzliche Arbeitsanforderungen für die nächste Planungsperiode erfasst.

Integrieren Sie Agile in die Entwicklung eingebetteter Software

Das Erstellen komplexer Hardwareprodukte mit eingebetteter Software wirkt sich auf die Anwendung herkömmlicher Softwareentwicklungsmethoden aus. Viele Systeme, die verwendet werden, um Software zu produzieren, die auf einem Personal Computer läuft, sind für die Entwicklung eingebetteter Software nicht geeignet, da es Beschränkungen in Bezug auf Ressourcenknappheit und viel längere Entwicklungslebenszyklen gibt.

Eine Gruppe von Akademikern und Fachleuten aus Brasilien hat eine mögliche Lösung angeboten: Platform-based Software Design Methodology for Embedded Control Systems: An Agile Toolkit . Diese Methodik integriert agile Prinzipien in die eingebettete Softwareentwicklung. Unten finden Sie eine kurze Zusammenfassung der Methodik, aber Hardware-Produktmanagern wird dringend empfohlen, die vollständige Beschreibung zu lesen, bevor sie sie in ihrer Praxis anwenden.

Die an dieser Methodik beteiligten Rollen sind:

  • Plattformbesitzer – Verantwortlich für die Definition von Qualitäts-, Planungs- und Kostenzielen
  • Produktleiter – Verantwortlich für Implementierung, Integration und Test des Produkts
  • Funktionsleiter – Verantwortlich für die Verwaltung von Subsystemprojekten und die Verfolgung des Fortschritts der zu liefernden Funktion
  • Entwicklungsteam – Arbeiten an der Produktentwicklung

Die Methodik gliedert die Entwicklung eingebetteter Software in drei Prozessgruppen:

Plattformbasierte Softwaredesign-Methodik-Prozessgruppen
Plattformbasierte Softwaredesign-Methodik-Prozessgruppen

  1. Gruppe Systemplattformprozesse. Ein System wählt die Systemkomponenten, die Teil der Architektur- und API-Plattformen sein werden, aus einer Plattformbibliothek aus und passt sie an, um die Beschränkungen der betreffenden Anwendung zu erfüllen. Der Anpassungsprozess wird in iterativen Zyklen durchgeführt, indem die vom Designer konfigurierbaren Prozessoren und die Laufzeit-rekonfigurierbare Logik, die in die Plattform integriert sind, programmiert werden.
  2. Gruppe Produktentwicklungsprozesse. Die Funktionalitäten, aus denen das Produkt besteht, sind entweder in Hardware- oder Softwareelemente der Plattform unterteilt. Die Methodik stellt Partitionierungsalgorithmen bereit, um den Energieverbrauch, die Ausführungszeit und die Speichergröße der Komponenten der Anwendung zu berücksichtigen.
  3. Die Produktmanagement-Prozessgruppe überwacht und steuert Produktumfang, Zeit, Qualität und Kostenparameter. Vorgeschlagene Vorgehensweisen bestehen hauptsächlich aus den von der Scrum Agile-Methode geförderten Praktiken sowie den agilen Mustern.

Erstellen Sie ein Hardware-Entwicklungsprogramm

Die Strukturierung eines Hardware-Entwicklungsprogramms in der Frühphase hat Unternehmen in die Lage versetzt, eine schnelle Umstellung oder einen Plan B bereitzustellen. Aus geschäftlicher Sicht kann dies die finanziellen Margen schmälern, aber letztendlich bietet es die erforderliche Agilität, um mit sich ständig verändernden Märkten fertig zu werden Bedingungen in Bezug auf Produkte, die von der Konkurrenz herausgebracht werden, und fortschreitende technologische Fähigkeiten.

Angenommen, ein Unternehmen führt eine erfolgreiche Crowdfunding-Kampagne für sein Hardwareprodukt mit eingebetteter Software durch. Sie arbeiten großartig an der ersten Charge von Produkten, bis ein großes etabliertes Unternehmen etwas Ähnliches ankündigt. Vielseitigkeit und Markteinführungszeit sind am wichtigsten, und eine pragmatische und agile Reaktion auf diese Situation erhöht die Wahrscheinlichkeit eines erfolgreichen Produkts. Durch ein Hardware-Entwicklungsprogramm kann sich das Unternehmen schnell anpassen und eine reichhaltigere Version des Produkts als Reaktion auf seine Konkurrenten ins Rampenlicht rücken.

Hardware-Entwicklungsprogramm
Hardware-Entwicklungsprogramm

Erfolgreiches Testen von Hardware mit Embedded Software

Das Testen ist ein entscheidender Bestandteil des Hardware-Produktmanagements, da die meisten Hardwarefehler im Gegensatz zum agilen Softwaretest nur durch die Produktion einer neuen Produktserie behoben werden können. Die in Brand geratenen Samsung Galaxy Note 7-Geräte sind ein großartiges Beispiel dafür, warum Hardwaretests für alle Produktmanager oberste Priorität haben sollten.

Funktionstests sind das Hauptziel der technischen Validierung von Hardware mit eingebetteten Softwareprodukten. Die Komplexität dieser Verfahren ergibt sich aus der Tatsache, dass Fehler wahrscheinlich von jedem Teil des Systems stammen.

Unit-Tests finden in der Regel nach jedem Sprint in einer simulierten Umgebung statt, da simulierte Hardware den Vorteil bietet, perfekt steuerbar zu sein. Testskripte können automatisiert werden, die Ausführung überwachen und Tests beenden, die scheinbar abgestürzt sind und keine Ergebnisse liefern.

Integrationstests sollten Online- und Offline-Betrieb und die Unterbringung des Hardwareprodukts unter realen Betriebsbedingungen berücksichtigen. Entwickelt das Unternehmen beispielsweise ein kopfgetragenes Gehirnüberwachungssystem bei Outdoor-Aktivitäten, sollten die Testbedingungen diese Besonderheiten berücksichtigen.

Systemtests umfassen das Testen des gesamten Systems auf Fehler und Bugs. Dieser Test wird durchgeführt, indem die Hardware- und Softwarekomponenten des gesamten Systems (die zuvor einheiten- und integrationsgetestet wurden) miteinander verbunden und dann als Ganzes getestet werden. Diese Tests sind unter der Black-Box-Testmethode aufgeführt, bei der die Software auf vom Benutzer erwartete Szenarien, potenzielle Ausnahmen und Grenzfälle geprüft wird. Erwähnenswerte spezielle Kategorien von Tests:

  • Ereignisgetriggertes Testen: Initiiert durch bestimmte Ereignisse oder Zustandsänderungen in der Lebensdauer des Hardwareprodukts (z. B. Hochfahren, Zurücksetzen, Herunterfahren). Sein Ziel ist es, dauerhafte Fehler zu erkennen.
  • Zeitgesteuertes Testen: Wird zu vorkonfigurierten Zeiten im Normalbetrieb des Systems initiiert und regelmäßig durchgeführt, um dauerhafte Fehler zu erkennen. Dies ist nützlich in Systemen, die über lange Zeiträume laufen und in denen keine signifikanten testauslösenden Ereignisse auftreten. Zeitgesteuerte Tests sind auch nützlich, um intermittierende Fehler zu erkennen.

Produktabnahme von Hardware mit eingebetteter Software

Der Produktwert für Hardwareprodukte mit eingebetteter Software wird typischerweise nach dem Produktabnahmeschritt in der Water-Scrum-Fall-Methodik validiert. Das Hardware-mit-Embedded-Software-Ökosystem muss Hardware gegenüber Software für Validierung und Akzeptanz priorisieren. Wie bereits erwähnt, sind Hardwareänderungen schwieriger und teurer durchzuführen. Es ist üblich, dass Produktmanager innovative Lösungen konzipieren, die erforderlich sind, um Akzeptanzprobleme zu lösen oder den Wert anzupassen, indem sie die Einschränkung berücksichtigen, die Hardware nicht ändern zu können, und zusätzliche Iterationen im Bereich der Softwareentwicklung bevorzugen.

Exzellente Produktmanager haben den Produkt-Scharfsinn und die große Visionskraft, um den Hardwarebedarf vorherzusagen und die richtigen integrierbaren Funktionen zu priorisieren, damit das Geschäftsmodell solide ist, die Akzeptanz solide ist und die Benutzer das Produkt gerne nutzen. In Anbetracht eingebetteter Software sollte die „Dekoration“ von Hardware nicht überraschen, da sie Regeln und Einschränkungen folgen muss, die von Hardware-Entwicklungsprozessen, Zertifizierungsverfahren, Produktionsherausforderungen und Marktakzeptanz bestimmt werden.

Hardwareentwicklung erfordert verwaltete Agilität

Agile hat die Welt der Softwareentwicklung im Sturm erobert und hat nun begonnen, sich auch in den Hardwarebereich einzuschleichen. Die Bedingungen der Entwicklung von Hardwareprodukten mit eingebetteter Software bringen jedoch verschiedene Herausforderungen mit sich:

  • Mangel an spezialisiertem Talent
  • Versionskontrollsysteme, die nicht für Hardware angepasst sind
  • Delokalisierte Produktionsstätten
  • Änderungen, die im Vergleich zu Software schwieriger durchzuführen sind
  • Zertifizierungs- und Regulierungsanforderungen, die Planungshürden auferlegen

Diese Herausforderungen erschweren es, agile Prinzipien auf die gleiche Weise anzuwenden wie Softwareunternehmen.

Um diesen Herausforderungen zu begegnen, bedarf es eines Managed-Agility-Ansatzes in Form von Water-Scrum-Fall. Die eingebettete Softwareentwicklung wird nach den Standard-Scrum-Verfahren erstellt, während andere Schritte wie Ideenfindung, Erstellung von Spezifikationen und Tests in einem Wasserfall-Setup implementiert werden. Auf diese Weise können Hardwareunternehmen die Vorteile von Agile nutzen und gleichzeitig einen funktionierenden Produktmanagementansatz aufrechterhalten, der die verschiedenen oben aufgeführten Einschränkungen berücksichtigen muss. Dieser Managed-Agility-Ansatz bietet einen erfolgreichen Weg in die Zukunft im Kontext sich schnell ändernder Marktbedingungen und ständiger technologischer Verbesserungen.