現役組み込みソフトウェアエンジニアの竹です。
最近私の身の回りでちょっとだけ話題になったソフトウェアプロダクトライン(SPL)・ソフトウェアプロダクトライン開発(ソフトウェアプロダクトラインエンジニアリング/SPLE)についてまとめてみました。
この記事を読んでいただくとSPL・SPLEの概要と、SPLEの重要要素であるコア資産、コア資産を導きだすスコーピングについて理解できると思います。
ソフトウェアプロダクトライン(SPL)とは
ソフトウェアプロダクトラインとは,共通の管理された特徴をもち,特定のマーケットやミッションのために,共通の再利用資産のによって作られる,ソフトウェア集約的なシステムの集合である。
ソフトウェア工学 近代科学社
少しかみ砕いた言い方にすると、共通要素の組み合わせや使いまわしで製品ラインナップ全体をカバーできるように構築されたソフトウェア開発の仕組みのことを指しています。
ソフトウェアプロダクトライン開発(SPLE)とは
SPLを用いた体系的な再利用ソフトウェア開発のことをソフトウェアプロダクトライン開発(SPLE)といいます。SPLEはドメインエンジニアリングとアプリケーションエンジニアリングの2つの開発ライフサイクルによって成立しており、その鍵はコア資産(再利用資産)です。
コア資産とは、事業戦略や製品戦略、将来製品ロードマップなどのビジネス戦略に基づいて、あらかじめ再利用することを前提として資産化された共通要素のことです。ドメインエンジニアリングは直接の製品開発ではなく製品を構成する要素を再利用資産として開発することを指します。開発された再利用資産を蓄積し、それらを組み合わせるなど利用して製品を開発することをアプリケーションエンジニアリングといいます。
「スコーピング」は腕利きエンジニアだけではダメ!
SPLEを精度よく展開するためには技術・ビジネスのどちらの観点も欠かすことはできませんが、SPLEの最初の難関「スコーピング」ではビジネス的観点がより重要です。
スコーピングとは、ソフトウェアプロダクトライン(SPL)に含む製品ラインナップを特定すること、製品ラインナップの全製品に共通の特徴や製品ごとに異なる特徴を分析し製品計画を策定することです。
スコーピングの流れを書き下してみましょう。
- SPLに含まれる全製品の情報+将来の製品ロードマップの情報を分析
- コア資産(再利用資産)の特定
- コア資産開発の投資対効果検討
1~2では、製品ラインナップ全体を俯瞰した視野の広さが重要であり、製品ラインナップ全体に責任を持ち、またそこに含まれる個々の製品に対して方針を決定する権限を持ったメンバーの存在が不可欠です。個別の製品開発や機能開発に注力するエンジニアよりも管理職の中にそのような役割を設ける方が望ましいでしょう。
また3では、コア資産開発する手間をかけてまでSPLE化した方が将来的な利益につながりそうか、投資対効果の有無を見極めなければなりません。このようなビジネスとしての採算の検討についてもエンジニアには難しい部分だと言えます。
まとめ
SPLEを成功させる鍵は、製品ラインナップ全体に対して、あるいはそれらを開発する組織全体に対して俯瞰的な立場で検討することにあります。そのためには製品ラインナップ全体について責任と権限もつオーナーを置いた組織の構築が必要になるでしょう。エンジニアの優秀さや、エンジニアの頭数だけでは成立しないことにSPLEの難しさがあります。
コメント