私はアジャイル開発プロセスについて良い考えを持っていますが、ハードウェアの大幅な変更を伴う組み込みプロジェクトにそれをマップする方法はありません。
現在行っていることを以下に説明します (アドホックな方法で、まだ定義されたプロセスはありません)。変更は 3 つのカテゴリに分類され、それぞれに異なるプロセスが使用されます。
ハードウェアの完全な変更
例 : 別のビデオ コーデック IP を使用する
a) 新しい IP を検討する
b) RTL/FPGA シミュレーション
c) レガシー インターフェイスを実装する - b) に進む
d) ハードウェア (テープアウト) の準備が整うまで待ちます
f) 実際のハードウェアでのテスト
ハードウェアの改善
例 : 基礎となるアルゴリズムを改善することにより、画像の表示品質を向上させます
a) RTL/FPGA シミュレーション
b) ハードウェアまで待ち、ハードウェアでテストする
少しの変化
例 : ハードウェア レジスタ マッピングのみを変更する
a) ハードウェアまで待ち、ハードウェアでテストする
心配なのは、ハードウェアの変更に対するソフトウェアの成熟度について、私たちがあまりコントロールも自信も持っていないように見えることです。立ち上げスケジュールは常に非常にタイトであり、顧客は新しいバージョンのハードウェアに更新する際にシームレスな変更を望んでいるため、この信頼はプロジェクトの成功にとって重要です。
この種のハードウェアの変更をどのように管理しましたか? ハードウェア アブストラクション レイヤー (HAL) で解決しましたか? HAL レイヤーの自動テストはありましたか? HAL は成熟した製品では機能しますが、急速に変化する消費者向け製品ではうまく機能しない可能性があります。ハードウェア プラットフォームの準備が整っていないときに、どのようにテストしましたか? この種の変更について十分に文書化されたプロセスはありますか?