品質確保に効果のあった派生開発プロセスの工夫(その3)
掲題の派生開発プロセスに関する、シリーズ・エントリです。
派生開発の設計品質確保について問題意識を持たれている方は、ご一読頂けると幸いです。
レポートの要約、および背景については第一回を参照ください。
- 論述対象となるプロジェクト、および開発プロセスの特徴
- ・組込み系の社会インフラを担うミッションクリティカル・システム。
- ・信頼性・成熟性について高い品質が求められている。
- ・稼働直前の総合テストからプロジェクトを引き継ぎ。
- ・母体システムのドキュメントが不足、母体品質も悪い。
- ・論述対象の開発プロセスは、主にシステムの欠陥修正(改修)案件に焦点を当てている。
エントリ内容の目次
内容はかなり長くなるため、順を追って述べる。
まずはこのレポートの主旨について述べた後、一般的な派生開発の現状を俯瞰する。その後、派生開発プロセスの1つであるXDDPと、当方の開発プロセスの工夫についての概要を述べる。
時間のない場合は、ここまでの内容(1部 レポート・サマリー)だけでも、本論述の概要はつかめると考える。その次の2部から、詳細なレポート内容を述べていこうと考えている。
もちろん2部から読み始めても構わない。そちらのほうが、概要説明ではなく詳細な論述を行っているため、理解しやすい可能性がある。1部はサマリーのみであり、詳細情報は把握できないだろう。
(1)このレポートの概要と背景について
⇒記事はこちら1部 レポート・サマリー------------
(2)派生開発を巡る現状
⇒Part1
⇒Part2(本記事が該当)(3)XDDPでの問題提起と解決策の概要
(4)当方が遭遇した派生開発の問題と解決策の概要
2部 レポートの詳細--------------
(5)レポート内容
(2)派生開発を巡る状況(part2)
前回は、派生開発がプロジェクト全体でどのくらいを占めているのか、また派生開発の開発期間についての特徴を、新規開発プロジェクトと比較する形で見てきた。
今回は、派生開発プロジェクトの品質や生産性の傾向についても見ていき、派生開発の技術的な特徴が、どのような形でプロジェクトの特徴として表出しているのかを探っていく。
4.派生開発は品質が悪いのか?
派生開発は新規開発と比べると様々な制約があるため、品質確保が難しい、という特徴が考えられる。
よって、新規開発よりも不具合密度が高いのではないかと想定される。これを確認するために、IPAのソフトウェア開発データ白書2012-2013を参照する。その結果は次のようになっている。
データでは、FP発生不具合密度でも、SLOC発生不具合密度でも、派生開発のほうが平均の不具合密度は高いことが伺える(SLOCはSource Lines of Codeの略で、コメント行や空行を含まないソース行数を示す)。
図7にFP発生不具合密度を、図8にSLOC発生不具合密度を示す。なお、ここでの不具合数は、システム稼動後6ヶ月間に発生した不具合件数を用いている。
SLOC発生不具合密度でいうと、新規開発が平均0.106件/KSLOCであるのに対し、派生開発は平均0.123件/KSLOCであり、派生開発のほうが稼働後の不具合の摘出が多い傾向を示している。
・図7 FP発生不具合密度
(出典:ソフトウェア開発データ白書2012-2013,P180 図表7-3-2 FP 発生不具合密度の基本統計量(FP 計測手法混在))
・図8 SLOC発生不具合密度
(出典:ソフトウェア開発データ白書2012-2013,P198 図表7-5-2 SLOC発生不具合密度の基本統計量(主開発言語混在))
図7~8では、派生開発のほうが、標準偏差が大きくなっている点にも着目したい。
この理由としては、派生開発の開発規模が小さいためにバラツキが目立っていると考えることもできるが、個々の組織やプロジェクトによって派生開発の進め方に差異があり、品質を確保できているプロジェクトとそうでないプロジェクトの格差が大きく出ていると考えることもできる。
5.派生開発の生産性は低いのか?
派生開発に適したプロセスが明確に定義されていなければ、手戻りなどの発生によって生産性は低くなっていることが想定される。
こうした傾向を把握するために、IPAのソフトウェア開発データ白書2012-2013を参照する。新規開発と派生開発で、それぞれFP生産性、SLOC生産性のデータを参照し、まとめて図9に示す。
・図9 FP生産性とSLOC生産性の平均値・中央値
FP生産性 (FP/人月) |
SLOC生産性 (KSLOC/人月) |
|||||
平均値 | 中央値 | 標準偏差 | 平均値 | 中央値 | 標準偏差 | |
新規開発 | 23.07 | 15.82 | 21.13 | 1.25 | 0.90 | 1.32 |
派生開発 | 23.53 | 13.67 | 28.13 | 0.98 | 0.57 | 1.29 |
※1人月=160人時で計算
(出典:ソフトウェア開発データ白書2012-2013,P285 図表9-1-4、P304 図表9-1-39、P319 図表9-2-7、P333 図表9-2-35 を参照し編集した)
データでは、FP生産性においては新規開発と派生開発では大きな差は見られず、若干派生開発のほうが生産性は高かった。
しかし、SLOC生産性においては、派生開発のほうが生産性は低いという結果であった。
具体的にはFP生産性は、新規開発は平均23.07FP/人月(1人月=160人時として計算)、派生開発は平均23.53FP/人月であり、SLOC生産性は、新規開発は平均1.25KSLOC/人月、派生開発は平均0.98KSLOC/人月であった。
ただし平均値ではなく中央値を参照すると、新規開発よりも派生開発のほうがFP生産性・SLOC生産性の両方で低くなっている。
生産性の値は標準偏差が大きいため、平均値ではなく中央値のほうが実際の傾向を示している可能性もある。中央値を用いるなら、派生開発のほうが生産性は低い傾向にあるといえよう。
もちろん、派生開発は母体システムの理解の工数が別途必要になることや、開発規模が小さいために作業のオーバヘッド工数がかさんで生産性が低く見えやすい傾向が考えられるため、新規開発との比較をしても意味がない場合もある。ここでは生産性の全体の傾向把握という意味で比較を行っている。
6.派生開発プロジェクトの特性
以上までに見たように、派生開発の特性には以下があることが確認された。
- 派生開発のプロジェクト特性
- ・派生開発は、プロジェクト全体の4割程度で、新規開発とほぼ同じくらいの件数がある。また、システムの部分的な開発部品の流用まで含めれば8割程度のプロジェクトで、部分的にでも派生開発の要素が含まれている可能性がある。
- ・派生開発は、新規開発と比較して開発工数が53%小さく、工期では23%短い。開発工数と期間は、新規開発と比較して短くなっている。
- ・派生開発は、新規開発と比較してシステム稼動後の不具合流出が、平均0.017件/KSLOC高く、プロジェクト間の品質のバラツキも大きい。
- ・派生開発は、新規開発と比較して生産性がやや低い傾向が見受けられる。中央値で比較すると、0.88KSLOC/人月低い(新規開発と比較することに意味があるかどうかはひとまず置いておき、傾向のみを示す)。
今回は、派生開発の一般的な特徴と問題点について見てきた。
次回は派生開発プロセスの1つであるXDDPの概要を理解し、XDDPではどのような問題提起とソリューションの提案を行っているのかを概観する。その次は、当方が担当した派生開発プロジェクトにおいて遭遇した問題(問題提起)と、その解決策(ソリューションの提案)について概観したいと考えている。
回りくどい論述をしているように感じるかもしれないが、一般的な特徴を理解した上で、個別のソリューションがどのような問題提起をしているのかを把握すれば、ソリューションの限界や課題なども見えてきやすいため、このような論述順序となっている点をご理解いただきたい。