Es hängt wirklich davon ab, wie Ihr Hardwareteam nützliche Artefakte liefert, mit denen sich Ihr Softwareteam entwickeln kann, und wie die Teams für die Kommunikation untereinander eingerichtet sind.
In der Regel werden Sie feststellen, dass das Hardwareteam ein Produkt erstellt, es zum Testen in einen Prototypenstadium versetzt und erst dann vom Hardwareteam eine Anforderungsdokumentation erhält. Es ist unnötig zu erwähnen, dass dies nicht immer der beste Weg ist, da die Software normalerweise sehr spät im Prozess entwickelt wird und Sie im Allgemeinen keine andere Wahl haben, als mit einer wasserfallbasierten Methodik zu arbeiten. Auf der anderen Seite muss das Softwareteam aus Sicht des Hardwareteams seine Software nicht ändern, wenn es plötzlich etwas ändern muss. Das Problem hierbei ist natürlich, dass ein durchschnittlicher Hardware-Typ Produkte auf diese Weise entwickeln muss und erwartet, dass alles, was ihm zugute kommt, dem Software-Team hilft.
Wenn Ihr Hardwareteam ein Produkt erstellt und die Softwareanforderungen im Laufe der Zeit aktualisiert, und noch besser, wenn das Softwareteam frühzeitig in die Planung und Simulation der einzelnen Hardwarefunktionen einbezogen wird, haben Sie die Möglichkeit für das Software-Team, um viel agiler zu arbeiten. Damit meine ich natürlich, dass das Hardwareteam der Kunde ist und dem Softwareteam eine Liste von Problemen gibt, die in der Software gelöst werden müssen. Das Softwareteam kann mit seinem Kunden die relativen Prioritäten jeder Anforderung besprechen. Sobald der Hardware-Prototyp fertig ist, wird die Software wahrscheinlich in Form einer frühen Version verfügbar sein und zum Testen der Hardware verwendet werden können. Wenn sich die Anforderungen ändern, hat das Softwareteam hoffentlich die Möglichkeit, die Software im Laufe der Zeit zu ändern. und kann dem Hardware-Team frühzeitig Feedback geben, bevor das Hardware-Design dem Prototyp übergeben wird. Das Softwareteam hat auch sehr früh im Projekt direkten Zugriff auf den Kunden, was bedeutet, dass es eine bessere Vorstellung davon bekommen kann, was es verspotten muss - und wie es geht -, während es darauf wartet, dass die Hardware getestet wird.
Realistisch gesehen werden Sie keine ideale Methodik finden, die einfach von der Stange passt, und ich kann Ihnen garantieren, dass Sie eine Menge Optimierungen vornehmen müssen, unabhängig davon, welche Methodik Sie wählen oder entwickeln. Das eigentliche Problem besteht darin, dass Sie versuchen möchten, die Synchronisierung zwischen den Teams einfach zu verwalten, und dass Sie einen Weg finden müssen, um den Kontakt und die Eingabe zwischen den beiden Teams so früh wie möglich zu erhöhen. selbst wenn es "verschwenderisch" oder "kontraintuitiv" erscheint, dies zu tun. Dies ist ein großes Problem in der Firma, mit der ich derzeit arbeite. Unser europäischer "Elternteil" kämpft mit genau diesem Problem, während das Team hier in Oz in der Lage zu sein scheint, die Dinge ein wenig reibungsloser laufen zu lassen, und das '