ソフトウェア・プロダクト・ライン開発手法の実践的導入事例(1) ―― 管理者は「石の上にも3世代目」
ソフトウェアの「部品化・再利用」は,多くの企業にとって長年の課題になっている.近年,ソフトウェアの部品化・再利用化を加速する開発手法として,ソフトウェア・プロダクト・ラインが注目を集めている.本連載では,富士通九州ネットワークテクノロジーズのソフトウェア・プロダクト・ライン適用事例を紹介する.第1回は,ソフトウェア・プロダクト・ラインの導入の経緯や,ソフトウェア・プロダクト・ラインが定着するまでに解決しなければならなかったさまざまな課題や困難について,導入を推進した管理者の視点から紹介する.(筆者)
●通信システムは派生開発が多く開発期間が長い
筆者が所属する富士通九州ネットワークテクノロジーズ(以下,富士通QNET)は,富士通の出資によって設立された,通信機器やネットワーク・システムのハードウェア,ソフトウェアを開発する設計開発専門会社です.通信機器は,通信の標準規格に準拠して仕様決定後に開発が進められますが,その仕様の基となる通信の標準規格は,数年にわたって段階的に公開されていくことが一般的です.そのため,通信機器の開発も標準規格の公開に合わせて,数年単位で,いくつかのフェーズに分けて開発されます.このため,当社が開発を担当するネットワーク・システム開発には以下のような特徴があります.
- 開発期間が長く,最初に開発した製品のソフトウェア資産が,その後も利用され続ける.
- 通信機器の通信帯域や速度は,顧客の通信機器を設置する場所や用途によりさまざまである.そのため,通信機器の開発には,一般に複数の製品開発が必要になる.
- 規格外の製品については顧客ごとにニーズが異なるため,顧客の要望に合わせてカスタマイズした類似製品を開発する必要がある.
このように,通信機器の開発には,派生開発と,開発が長期にわたるという特徴があります.すなわち,複数の製品ラインナップをいかに効率良く開発するか,また,長期にわたる段階的な開発において,開発した資産をいかに効率良く利用していくかが重要な課題となります.
●ソフトウェア・プロダクト・ラインとはどのようなものか
ソフトウェア・プロダクト・ラインとは,飛躍的な生産性の向上を目指す,再利用の開発手法です.従来,再利用の取り組みというと,個別製品のライブラリやコンポーネント単位で再利用を行うものでしたが,ソフトウェア・プロダクト・ラインを用いた開発では,製品群に対して体系的に再利用を行います.そして,製品群から有効な資産を抽出するには,フィーチャ分析を行います.フィーチャ分析とは,製品がどのような特性を持っているのかを,共通部分と可変部分を明確にしながら体系的に分析するものです(図1).
図1 大型前輪駆動車のフィーチャ分析の例

●資産の質を高めるためにソフトウェア・プロダクト・ラインの導入を決意
当社は,設計開発の専門会社としてさまざまな取り組みを行っています.そのうちの一つとして,CMMI(Capability Maturity Model Integration;能力成熟度レベル統合)によるプロセス標準化に2005年より取り組んでおり,2007年にはCMMI レベル3(プロセスが定義された段階)を取得していました.また,全社組織として「ナレッジ・マネージメント委員会(以下,KM委員会)」という組織を発足しました.一般的にナレッジ・マネージメントというと,顧客情報の明文化や共有を指すことが多いのですが,当社のナレッジ・マネージメントは,さまざまな開発成果物をソフトウェア開発のための「ナレッジ(資産)」としてとらえ,部品化と再利用を促進することを目的としていました.
そのような状況の中,筆者らが所属するKM委員会は,より質の高い資産(コア資産)を導出する手段として,ソフトウェア・プロダクト・ライン手法の導入を決定しました.その一方で,プロダクト・ライン導入において以下のような懸念もありました.
- 「言われたものを作る」設計開発専門会社である当社が,顧客のプロダクト・ラインについて事前に検討できるのか?
- ソフトウェア・プロダクト・ラインは,ハードウェア/ソフトウェア/ファームウェアという,異なるタイプの開発にも適用できるのか?