Scrum neu gedacht

Scrum neu gedacht

Um im Embedded-Umfeld erfolgreich agil zu entwickeln, müssen neben den Scrum-Grundlagen die Besonderheiten des komplexen Zusammenspiels von Hard- und Software von der Planung bis zum Test berücksichtigt werden. ScrumBedded verspricht hier als maßgeschneiderte Lösung Erfolg.

Bei Embedded-Projekten legt man für gewöhnlich im Vorfeld eine grobe Architektur fest. Entwickelt man für Single- oder Multicore-Prozessoren? Wie viele Cores werden dabei benötigt? Und wie hoch ist die ungefähre Leistungsfähigkeit des Ziel-µControllers? Geht es um ein Bare-Metal- oder um ein RTOS-basiertes Design? Kommt dabei eine generische Produkt-Plattform zum Einsatz? Entsteht ein Einzelprodukt oder entwickelt man ein Teil einer Produktfamilie? Erst wenn diese Fragen zufriedenstellend beantwortet und die zugehörigen Eckdaten festgelegt sind, ist es für das Expertenteam sinnvoll, mit den Entwicklungssprints und so mit der agilen Entwicklungsmethodik zu beginnen.

 (Bild: MicroConsult GmbH)

Besonderheiten agiler Entwicklung von Embedded Systemen (Bild: MicroConsult GmbH)

Zeit für agile Embedded-Rollen

Zu den klassischen Scrum-Rollen wie Product-Owner, Scrum-Master und Scrum-Team kommen in der Embedded-Entwicklung noch viele weitere Rollen hinzu, darunter Hardwareentwickler, Systemarchitekten, Entwickler von Low-Level-Treibern, Gesamtsystemtester, Anwenderdokus für das Gesamtsystem, Gesamtprojektleiter sowie Produktmanager. Zu jeder dieser einzelnen Rollen sollten Schnittstellen bestehen, die in der agilen Entwicklung angepasst werden müssen. Ohne diese Anpassungen entstehen zu große Reibungsverluste, und oft führt das zum Scheitern des kompletten agilen Ansatzes. Hier ist Überzeugungsarbeit zu leisten und gegenseitiges Vertrauen zu schaffen, um gemeinsam den Erfolg der agilen Entwicklung zu ernten.

Herausforderungen im agilen Test

Das agile Testen im Embedded-Umfeld ist eine besonders harte Nuss. Hier hilft nur eine Dual-Targeting-Strategie, die das Testen einerseits auf der Entwicklungsplattform (1) und andererseits in der Target-Umgebung (2) zum Ziel hat. Die zeitliche Synchronisierung der potentiell lieferbaren Produktinkremente am Ende der Sprints mit der Versionierung der Target-Plattform (inklusive Evaluierungsboards, Pilot-Hardware, Produktversion oder Bugfixes in der Hardware) ist ebenso wichtig wie das Festlegen des Umfangs von hardwareabhängigen Tests. Ein kontinuierlicher Systemtest, in den inkrementell weitere Funktionalität einfließen kann, stellt die ideale Konstellation dar.

 (Bild: MicroConsult GmbH)

Agile Rollen in der Entwicklung von Embedded Systemen (Bild: MicroConsult GmbH)

Maßgeschneidertes Entwicklungsframework

Scrum-Entwicklung nach Lehrbuch funktioniert in den wenigsten Fällen. Doch das Rad neu zu erfinden ist auch keine Lösung. Übernehmen Sie aus bestehenden Frameworks so viel wie notwendig, doch gleichzeitig auch so wenig wie möglich. Das Sammeln von eigenen Erfahrungen ist in der Embedded-Entwicklung essentiell. Sie müssen ja nicht auf der grünen Wiese beginnen: Die wichtigen Begriffe, Zusammenhänge und Methoden, die maßgeblich zur Gestaltung, Umsetzung und Optimierung von Scrum im Entwicklungsprozess für Embedded-Systeme in Ihrem Unternehmen beitragen, vermittelt die dreitägige Scrum-Schulung: ‚Scrum in der agilen Entwicklung von Embedded-Systemen‘.

Testgeleitete Entwicklung

Das Dual-Targeting ermöglicht Test-Driven Development für Embedded-Systeme auch, wenn sich die Target-Hardware noch in der Entwicklung befindet. Vom ersten Tag an wird die Software so designt, dass sie auf mindestens zwei Plattformen lauffähig ist. Auf der Entwicklungsplattform müssen dazu viele Hardwareabhängigkeiten der Target-Hardware simuliert werden – dafür lässt sich die entstehende Software kontinuierlich z.B. auf dem PC testen und später mit der echten Hardware verifizieren. Im TDD-Cycle wird der Test zuerst entworfen und geschrieben, dann wird Funktionalität implementiert und getestet, schließlich refaktorisiert, um der stückweise entstandenen Software eine bessere Architektur einzuhauchen, ohne die Funktionalität zu verändern. Um dies zu überprüfen, wird zum Abschluss des TDD-Cycles nochmals der Test ausgeführt, erst dann geht der Cycle in eine neue Runde. Nach Scrum lassen sich Backlog-Items bis auf Tasks der Größenordnung ‚ein Mann‘ oder ‚ein Tag‘ herunterbrechen. Das ist die Schnittstelle, an der TDD, obwohl unabhängig vom verwendeten Projektframework, wunderbar mit Scrum zusammenwirkt. Der TDD-Testplan bricht die zu erledigenden Tasks inklusive des dazugehörigen Tests auf kleine Schritte herunter. Die Umsetzung dieser Schritte setzt die Tasks in die Tat um und verifiziert ihre Qualität. Das Test-Driven Development für Embedded-Systeme nutzt dieses Verfahren intensiv und ermöglicht eine deutliche Qualitätssteigerung durch frühes kontinuierliches Testen.

 (Bild: MicroConsult GmbH)

Embedded-Systemtest (Bild: MicroConsult GmbH)

Entwickeln mit ScrumBedded

Um die Besonderheiten der agilen Entwicklung in der Embedded-Welt zu beschreiben, führte MicroConsult den Begriff ‚ScrumBedded‘ ein. Er umfasst mit einem Wort die Erweiterungen des Standard-Scrum-Frameworks um die Erstellung der groben Systemarchitektur, System Stories, Synchronisationspunkte zwischen Soft- und Hardwareentwicklung, die erweiterten Rollen wie z.B. den Systemarchitekten und den Umgang mit dem Hardware-Bottleneck, der durch die gleichzeitige Entstehung von Soft- und Hardware besonders beim Testen schwierig ist. ScrumBedded steht damit im Mittelpunkt der agilen MicroConsult-Seminare.

Ausgabe:
MicroConsult GmbH
www.microconsult.de

Das könnte Sie auch Interessieren

Bild: PiBond Oy
Bild: PiBond Oy
PSI Institut und PiBond kooperieren

PSI Institut und PiBond kooperieren

PiBond, Hersteller von Materialien für die Halbleiterindustrie, hat mit dem Paul Scherrer Institut PSI, Forschungsinstitut für Natur- und Ingenieurwissenschaften in der Schweiz, eine Vereinbarung über Technologielizenzen und strategische Zusammenarbeit unterzeichnet, um die Entwicklung von lithografischen Werkstoffen der nächsten Generation sowie zukünftige Halbleiterinnovationen voranzutreiben.