Agiles Prototyping in der agilen Hardwareentwicklung
Wenn Sie in der Software-Entwicklung gearbeitet haben, z. B. im Webdesign oder im Design von Unternehmenssoftware, wissen Sie, wie schwierig es sein kann, wenn Kunden das Erscheinungsbild eines Produkts anhand eines statischen Wireframes verstehen sollen. Wir hatten in den letzten Projekten dasselbe Problem, insbesondere wenn die Kontaktperson aus dem nicht-technischen Bereich stammte. Der Kunde musste letztlich darauf vertrauen, dass wir wissen, was wir tun, und dass wir liefern können, was wir versprechen. Bei diesen vergangenen Software- und Embedded-Projekten gab es keinen Prototypen, den man anfassen und mit dem man interagieren konnte, wenn auch nur auf einer grundlegenden Ebene.
Schnell zu einem Prototypen zu gelangen und immer wieder darauf aufzubauen, ist der Kern des agilen Prototyping. Die gleichen Ideen der Softwareentwicklung können auf die agile Hardwareentwicklung und die Entwicklung eingebetteter Systeme angewendet werden. Wenn Sie die richtigen Tools für die Verwaltung von Designdaten in der Cloud verwenden, können Ihre Kunden eine greifbarere Sicht auf Ihr Produkt erhalten.
Was ist Agiles Prototyping?
Am einfachsten kann man agiles Prototyping erklären, wenn man an Entwicklungsplatinen oder Single-Board-Computer (SBCs) denkt. Ich bevorzuge für die Embedded-Entwicklung die Verwendung von Entwicklungsplatinen, da wir mit der Entwicklung der gesamten Software-Architektur neben unserer Liste der primären Bauteile beginnen können. Die Idee des agilen Prototyping ist es, einen fertigen Prototypen zu erstellen, der mit anderen Peripheriegeräten verbunden werden und dem Kunden eine Vorstellung von der Benutzererfahrung vermitteln kann.
Für eingebettete Systeme ist eine Entwicklungsplatine ein großartiges Tool, da man damit einen sehr einfachen Code erstellen kann, der dem Kunden die Grundzüge der Benutzererfahrung zeigt. Wir leben derzeit in einem goldenen Zeitalter der Entwicklungsplatinen. Diese Produkte sind extrem nützlich, da sie es Ihnen ermöglichen, auf jedes Feature eines Bauteils zuzugreifen und gleichzeitig Ihre Software zu testen.
Das agile Prototyping innerhalb eines größeren agilen Entwicklungsprozesses hat zwei Hauptziele (sowohl für eine Standard-Leiterplatte als auch für eingebettete Systeme):
- Geben Sie Ihrem Team eine Grundlage für die weitere Entwicklung. Wenn Sie auf einer Entwicklungsplatine eine Grundversion Ihres eingebetteten Codes mit einigen handelsüblichen Peripheriegeräten zum Laufen bringen können, haben Sie einen Basisprototypen, auf dem Sie aufbauen können.
- Führen Sie einen ersten Test mit den gewünschten Bauteilen und Benutzereingaben durch, bevor Sie Ihr Design für die Fertigung in größeren Stückzahlen verwenden. Dies sollte den Wert von Entwicklungsplatinen für eingebettete Systeme verdeutlichen. Sie können auch direktes Feedback vom Kunden erhalten, bevor Sie Ihr Budget in einen Prototyping-Lauf stecken.
Die Erstellung eines ersten agilen Prototyps bringt zudem weitere Vorteile mit sich. Sie können Ihre Zeitpläne verfeinern, Ihre funktionalen Anforderungen bewerten oder konsolidieren und einen oder mehrere spätere Prototyping-Läufe vermeiden. Dieser letzte Punkt unterstreicht erneut den Wert von Entwicklungsplatinen, da Sie einen fertigen Prototypen verwenden, um mit der Erstellung von Embedded Software zu beginnen.
Ein agiler Prototyping-Prozess
Es kommt kaum ein neues Produkt auf den Markt, das nicht ein gewisses Maß an eingebetteter Rechenleistung erfordert. Dabei kann es sich um so etwas einfaches wie die Verwendung eines Mikrocontrollers mit einem EEPROM mit hoher Lese-/Schreib-Lebensdauer als Multistate-Schalter handeln (wir haben dies kürzlich auf einer Netzteil-Platine realisiert). Es kann sich auch um die Entwicklung von Embedded-Software handeln, um Daten von mehreren Bauteilen zu integrieren (auch das machen wir regelmäßig). Die Einbeziehung der Softwareseite in die Entwicklung macht den agilen Prototyping- und Entwicklungsprozess Ihrer Hardware komplizierter. Wenn Sie es jedoch richtig machen, können Sie einen Prototyping-Lauf (Platine, Software-Sprint oder beides) vermeiden.
Damit der agile Prototyping- und Hardwareentwicklungsprozess funktioniert, müssen alle Seiten eines Entwicklungsteams parallel laufen. Eine typische Reihe von Sprints erfordert schnelles Prototyping und Testen am Ende jedes Sprints, während Platinen-, Gehäuse- und Software-Design parallel laufen. Selbst wenn Sie ein weiteres Teammitglied oder einen Freiberufler engagieren müssen, um bei der eingebetteten Seite zu helfen, sobald Sie dem System ein neues Bauteil/eine neue Funktion hinzufügen – es ist bekannt, dass das parallele Vorgehen zu wünschenswerteren Kundenergebnissen führt. Ein typischer Prozess ist unten dargestellt.
Es mag wie eine große Herausforderung erscheinen, aber das Großartige am PCB-Design ist, dass der Layouter eine großartige Platine erstellen kann, während sich die Programmierer auf das Schreiben von großartigem Code konzentrieren. Am Anfang muss eine intensive Kommunikation erfolgen, aber sobald die Ergebnisse und funktionalen Anforderungen klar sind, können beide Seiten loslegen und in ihren Domänen arbeiten. Projektmanager sollten das Team am Ende jedes Sprints und während der Integrationsphase erneut zusammenrufen, um Fehler zu identifizieren und zu beheben, bevor das Projekt in vollem Umfang in Betrieb genommen wird.
Agiles Prototyping in der Hardwareentwicklung erfolgreich umsetzen
Agiles Prototyping endet nicht mit Ihrem ersten Prototyp oder Proof of Concept. Es ist ein kontinuierlicher Verbesserungsprozess, bei dem Sie mehrere Rapid-Prototyping-Läufe durchlaufen. Damit dies funktioniert, sind die richtigen Tools für die Zusammenarbeit erforderlich, die sich in Ihre PCB-Design-Software integrieren lassen. Teams können agiler arbeiten, wenn sie auf wichtige Funktionen in ihren Collaboration-Tools für das Hardware-Design zugreifen:
- Sichtbarkeit in der Lieferkette und Bauteildaten. Dies ist ein wesentlicher Bestandteil der Definition funktionaler Anforderungen und Deliverables sowie der Erstellung von User Stories. Design-Teams müssen frühzeitig mit der Beschaffung von Bauteilen beginnen, um das Risiko späterer Redesigns zu reduzieren.
- Teilen von Fabrikationsdaten. Dies hilft einem Team, einen neuen Prototyp schnell in die Produktion zu bringen und stellt sicher, dass DFM-Fehler frühzeitig erkannt werden können.
- Zugriff auf mechanische Daten. Jeder, der schon einmal eine flexible oder starr-flexible Platine gebaut hat, weiß, dass das Gerät sorgfältig an das Gehäuse angepasst werden muss. Dasselbe gilt für alle Platinen mit einzigartigen Gehäusen.
Fügen Sie zu diesen Punkten weitere Aspekte wie Benutzerzugriffskontrolle, Kommentierung und Versionskontrolle hinzu, und Sie haben ein System auf Unternehmensebene, das die Zusammenarbeit mit Herstellern ermöglicht. Damit können gemischte Teams aus Hardware- und Softwareentwicklern eine GitHub-ähnliche Architektur für das Hardwaredesign erstellen, einschließlich des Designs eingebetteter Systeme.
Altium 365™ ist die einzige Plattform, die Altium Designer® mit Apps wie Altium Concord Pro™ und dem Altium Viewer integriert und so die Zusammenarbeit für agile Hardwareentwicklungsteams erleichtert. Ingenieure aus allen Disziplinen können die Designdaten der anderen sehen und sofort in Altium Designer importieren oder sie über eine Altium Concord Pro Webinstanz anzeigen. Mit den Features Versionskontrolle, Kommentierung und Zugriffskontrolle kann Ihr Team eine GitHub-ähnliche Plattform für die Hardwareentwicklung und das agile Prototyping erstellen.
Altium Concord Pro auf Altium 365 bringt ein beispielloses Maß an Integration in die Elektronikindustrie, die bisher der Welt der Softwareentwicklung vorbehalten war, und ermöglicht es den Designern, von zu Hause aus zu arbeiten und eine beispiellose Effizienz zu erreichen.
Wir haben nur an der Oberfläche dessen gekratzt, was mit Altium Concord Pro auf Altium 365 möglich ist. Eine ausführlichere Beschreibung der Features finden Sie auf der Produktseite oder in einem der On-Demand Webinare.