Ich habe zwei Probleme mit Scrum in eingebetteten Systemen. Erstens gibt es viele Aufgaben zu erledigen, insbesondere im Anfangsstadium, die nicht nachweisbar sind. Wir haben mit einem Entwicklungsboard begonnen, ohne Betriebssystem, ohne Display, ohne serielle Kommunikation usw. Wir hatten unser Display nicht für sechs Sprints.
Die ersten vier Sprints waren:
- Erst das RTOS und laufen
- Erstellen von Aufgaben zum Schreiben von Netzwerk- und seriellen Treibern
- Schreiben von Interruptroutinen für Schaltflächen, Kommunikation usw.
- Schreiben der primären Datenbankklassen und -methoden
- Schreiben eines seriellen Debugmenüs
Die meisten dieser Aufgaben eignen sich nicht für User Stories. Tatsächlich war die einzige Schnittstelle zum gesamten System das in Sprint 3 integrierte Serial Debug-Menü, sodass am Ende der Sprints nichts zu demonstrieren war. Sogar das serielle Menü war für den internen Gebrauch gedacht und kein Endbenutzer. Trotzdem möchte ich diese Entwicklungsaktivitäten weiterhin über Scrum verfolgen und verwalten.
Am Ende haben wir "User Stories" -Sätze wie "Als Entwickler ..." geschrieben, mit denen ich nicht zufrieden bin. Bei der Verwendung von Target Process (www.targetprocess.com) gibt es jedoch kein Konzept für einen Rückstand eine Aufgabe oder lästige Pflicht.
Zweitens, wie gehen Sie mit Releases und Tests um? Es ist für uns ein echtes Leid, weil die Tester nicht über die Hardware-Debugger verfügen. Deshalb müssen wir Flash-Versionen des Codes erstellen und sie auf ihren Entwicklungsboards brennen, um sie zu testen. Die Tester sind technisch nicht so scharfsinnig wie die Entwickler und benötigen oft viel Unterstützung, um die Dinge in einem frühen Stadium zum Laufen zu bringen (Zurücksetzen der Karte, Anschließen der seriellen Kommunikation usw.) oder sogar, um die Ausgabe zu verstehen.
In Bezug auf die Definition von "erledigt" kann ein Sprint erst abgeschlossen werden, wenn alle Geschichten abgeschlossen sind. Alle Geschichten sind erst vollständig, wenn sie von den Testern verifiziert wurden. Es gibt keine Möglichkeit, die Entwicklerzeit für die Tester zu "rauben". Mit anderen Worten, wenn die letzten drei User Stories im Sprint fünf Tage dauern, müssen sie fünf Tage vor dem Ende des Sprints codiert und auf Einheit getestet werden. Was soll der Entwickler tun? Aufhören zu arbeiten?
Ich bin scherzhaft, aber es ist ein echtes Problem, sich an die Regeln zu halten. Jetzt kann ich die Regeln in Ordnung bringen, aber das Problem, das ich habe, ist, dass alle meine Burndown-Messwerte durcheinander gebracht werden, wenn ich die erledigten Dinge erst nach dem Testen als erledigt markieren kann.
Ich würde gerne hören, wie andere mit diesen Situationen umgegangen sind.