« 「強いプログラム」にこめられた意味 | トップページ | プロダクトラインと派生開発(その2) »

2011年2月 4日 (金)

プロダクトラインと派生開発(その1)

唐突ですが...
ソフトウェアプロダクトライン(以下、SPL)という、近頃流行の言葉をご存知でしょうか?
Software Product Line Engineeringの和訳本(通称:黒本)では、次のように書かれています。

~定義1-3:ソフトウェア製品系列開発(Software Product Line Engineering)~ (p14 より引用)
ソフトウェア製品系列開発とは、プラットホームと大量個別生産を用いて
ソフトウェアアプリケーション(ソフトウェア集約システムおよびソフトウェア製品)を
開発するパラダイムである。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

難しい表現です。

ここで引っかかるのが、製品系列開発と、パラダイムという言葉です。

旧来の製品開発では、個々の製品について、リリースする順番に開発していました。類似製品や、シリーズ製品の場合は、元となるシステムを参考にして、新/旧製品の差分を考えて作ります。
これに対し、SPLでは製品系列として、ひとまとめにして開発を考えるのです。製品系列を通して要求分析が行われ、シリーズで共通となるところ、差異になるところを見極めて開発するため、非常に戦略的かつ、効率の良い開発が見込まれます。

しかし、上記の引用にもあるように、SPLはパラダイムなのです。
SPL本に詳しく手順が示され、それを遵守して実行すればよいという方法論ではありません。
従来の製品開発プロセスが、上手く回っておらず、開発後半のテスト工程で止め処も無く出てくるバグを対策しているようでは、とてもじゃありませんが、すぐに取り組めるものではありません。
全体を見通してプロセスを考える力があり、システムのアーキテクチャがしっかり設計できる力がなければ、とてもじゃありませんが、このパラダイムシフトには乗れないのです。

SPLについて、だいぶ乱暴な説明になっております...
この説明はここまでとし、詳しく知りたい方は、上記の本をご覧ください。


さて、ではSPLにすぐ乗れないからといって、傍観しているだけでよいのでしょうか???
それでは、世の開発スピードから取り残されてしまいます。
なんとかシリーズ開発を、今より効率よく開発が行えないものかと考えるでしょう。


そこで、もう一つご紹介するのが XDDP(eXtreme Derivative Development Process)という、派生開発の方法論です。

派生開発という言葉は、ベースとなるシステムがあり、それに対して追加・変更・削除を行うことで、新しいシステムを開発するということです。まさに、前半で言っていた旧来のシリーズ製品開発そのものです。
XDDPでは、この派生開発を上手くまわすためのアプローチ方法を具体的に提案しています。
システムクリエイツ社の清水吉男さんが生みの親で、その詳しいことは、「「派生開発」を成功させるプロセス改善の技術と極意」という本にも紹介されています。

この方法論は、
 (1) 既存部分を正しく理解し
 (2) 派生開発で行う差分の仕様を見極める
 (3) 差分について設計する
という、きわめて当たり前のことをいくつかのツール(ドキュメント)を使って、手順まで定義しています。
かなり地道なやり方ですが、これを実施することで開発効率の改善が図れるのではないかと思います。


プロダクトラインと派生開発、一気にさわりだけ紹介しました。

組込みの現場は、よりスピードアップが今度も必要になると思っています。
そのためには、今までどおりの開発をしていては追いつきません。何らかの変化が、現場にも求められるでしょう。
開発現場が変化するためには、SPLとXDDP、どちらも有効な考え方です。

この話は、一度で書ききれないので、また続きを書きます。

※ 現在は私自身も、XDDPの方法論が広められるよう、派生開発推進協議会(AFFORDD)の運営委員として活動しています。

« 「強いプログラム」にこめられた意味 | トップページ | プロダクトラインと派生開発(その2) »

派生開発」カテゴリの記事

コメント

この記事へのコメントは終了しました。