ハードウエアとの関係

 ソフトウエア開発での成功と失敗にプロセスの実施状態が非常に関与していることが分かったが、組込み系のソフトウエア開発はハードウェア開発と密接に関係しており、その分析を行った。

 図5のとおり、概ねプロセスの実行状態が低ければ失敗プロジェクトとなり、実行状態が良ければ成功プロジェクトとなっている。そしてその実行状態はプロセスの定義状態に比例しており、プロジェクトの成功にはソフトウエア開発のプロセスを整備することが不可欠な要素であることが分かる。

図5 成功・失敗別プロセスの定義状態と実行状態
図5 成功・失敗別プロセスの定義状態と実行状態

 しかし、図中にはソフトウエアプロセスの実行状態が低いのに成功しているプロジェクトが見受けられる。次の図6を見てほしい。横軸は変えず、縦軸をハード技術者のプロセス実行状態に変えている。

図6 ソフト技術者とハード技術者のプロセス実行状態
図6 ソフト技術者とハード技術者のプロセス実行状態

 先ほどソフトの実行状態が悪く定義状態も悪いが成功となっているプロジェクトは、ハード技術者のプロセス実行状態が良いことが分かった。データを調べるとハードの制御ソフト開発など、ハードの仕様変更やプロセスにソフト開発が大きく依存するケースが多かった。つまり、一部のソフト開発はソフトのプロセス実行状態に依存せず、ハードのプロセス実行状態にプロジェクトの成功が依存するのである。一方、ハードに依存しないソフト開発もあり、ソフトのプロセス実行状態が悪ければプロジェクトが失敗するケースがある。

 総括すると、ハード・ソフトが混在する多くのプロジェクトにとって、ソフト技術者とハード技術者の両方のプロセス実行状態を良くすることが成功への第一歩である。

 業務が細分化され自身の領域以外への関心が失われ、組織の壁に阻まれハードウエア、ソフトウエア含めた一体改革は進みにくいかもしれないが、全体改革が必要なのである。

最後に

 ソフトウエアは大規模・複雑化するだけでなく、製品のおまけ的な位置づけから製品のキーとなる重要な機能を担うようになってきた。その品質の良し悪しが製品全体の品質を左右することもある。だから今、ソフトウエア開発には機能を実現するだけでなく、その品質や安全性について説明を求められている。具体的にはSPICEやCMMIといったモデル準拠やISO61508やISO26262といった機能安全規格準拠などである。

 苦手な規格対応とネガティブに捉えず、プロセスを改善・改革できる絶好の機会ととらえて失敗プロジェクトから成功プロジェクトへ変革してもらいたい。今回の報告がプロセス改善を検討中の読者のヒントになれば幸いである。