プロダクトライン開発における品質の向上効果
セイコーエプソン株式会社
島 敏博
3. 繰り返し検証による品質の向上
プロダクトライン開発では品質が向上するチャンスが2回あります。(図3参照)
図 3:繰り返し検証による品質の向上
1つめは、フレームワークを作ってリリースするときです。フレームワークチームはリリースするときに仮仕様のアプリケーションと組み合わせてきちんとフレームワークが動作するかを設計者がテストします。
2つめは、フレームワークとアプリケーションを組み合わせて製品開発をするときです。アプリケーションチームはフレームワークを使って製品全体の動きを設計者がテストします。
不具合も局所化される可能性があります。共通部分が他の機種でも使われていて他の機種では不具合が発生していないならば、共通部分よりもその機種用の可変部に不具合がある可能性が高いと言えるでしょう。
コード行数が数百万行におよび巨大なプロジェクトの場合、プロダクトライン化を一度に進めることはできません。そのドメインにとって資産となる一番大切な部分から、順番に共通部と可変部に分ける取り組みを始め、世代ごとに少しずつその範囲を広げてゆきます。
取り組んでいるパッケージの範囲から、品質が向上していく様子をメトリックスに取り、改善を見える化をしてゆきます。第1世代では不具合が局所化されるだけかもしれませんが、共通部が複数の機種に使われる第2世代から繰り返し検証による品質の向上が見込めます。
4. ひとりの担当者が多くの機種を担当することで、ソースの再利用性を高め、品質を高める
機種ごとに担当者が違っているものを、できるだけ同じ担当者で出せるように変えていくのが、プロダクトライン開発です。
(図4参照)
図 4:各機種と各機能が、どの担当者とどのソースからできているのか
機種と機能の関係を図で表したものです。第1世代の機種が4機種あって、第2世代の機種が2機種あります。それぞれにいろいろな機能がはいっています。
プロダクトラインがうまくいっている状態とは、図4の上部のように、どの機種も同じ担当者が作っている状態です。このようになっている部分を世代を重ねるごとに増やしていくのがよい戦略です。
図4では、担当者で分けてみましたが、実際は同じ担当者でも別のソースコードを書いているかもしれないので、正確にはソースコードで分けて考える必要があります。まずこのようなマトリックスを作って、現状の機種と機能がどの担当者のどのソースから作られているのかをまず把握します。
ひとりの担当者が多くの機種を受けもつことで、ソースコードの再利用を意識した作りに変えることができ、コードクローンを少なくし、その機能用のソースコードの品質を向上させる効果があります。