それは、ハードウェアチームがソフトウェアチームが開発に使用できる有用なアーティファクトをどのように提供するか、およびチームが互いに通信するためにどのように設定されているかに大きく依存します。
通常、ハードウェアチームが製品を構築し、プロトタイプの段階に進んでテストを行い、その後ソフトウェアチームがハードウェアチームからあらゆる種類の要件ドキュメントを取得します。言うまでもなく、ソフトウェアは通常、プロセスの非常に遅い時期に開発されるため、これが常に最良の方法であるとは限りません。通常、ウォーターフォールベースの方法論を使用する以外に選択肢はほとんどありません。ハードウェアチームの観点から見て有利な点は、突然何かを変更する必要がある場合に、ソフトウェアチームがソフトウェアを変更する必要がないことです。もちろん、ここでの問題は、平均的なハードウェア担当者がこの方法で製品を開発する必要があり、ソフトウェアチームを支援することで彼に利益をもたらすことが期待されることです。
別の方法として、ハードウェアチームが製品を構築してソフトウェア要件を随時更新している場合、さらに良いことに、各ハードウェア機能が計画およびシミュレーションされているときにソフトウェアチームが早い段階で関与している場合は、はるかにアジャイルな方法で作業するソフトウェアチーム。当然、これはハードウェアチームがお客様であり、ソフトウェアチームがソフトウェアで解決する必要のある問題のリストを提供することを意味します。ソフトウェアチームは、各要件の相対的な優先順位について顧客と話し合うことができます。ハードウェアプロトタイプの準備が整い次第、ソフトウェアは早期リリースの形で提供され、ハードウェアのテストに使用できます。要件が変更された場合、ソフトウェアチームはソフトウェアを変更する際の機敏性を期待できます。また、ハードウェア設計がプロトタイプにコミットする前に、ハードウェアチームに早期フィードバックを提供できます。ソフトウェアチームは、プロジェクトの非常に早い段階で顧客に直接アクセスすることもできます。つまり、ハードウェアがテストするのを待っている間、モックアウトする必要があるものとその方法について、より良いアイデアを得ることができます。
現実的には、すぐに使える理想的な方法論を見つけることはできません。どの方法論を採用または開発するかに関係なく、多くの調整が必要になることを保証できます。本当の問題は、チーム間の同期を管理しやすくしたいということです。つまり、プロセスのできるだけ早い段階で、2つのチーム間の連絡と入力の量を増やす方法を見つける必要があります。 「無駄」または「直感に反する」と思われる場合でも これは私が現在取り組んでいる会社の大きな問題です。私たちのヨーロッパの「親」はこの正確な問題に苦しんでいますが、オズのチームは物事をもう少しスムーズに実行し続けることができるようです。