Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
1 © NEC Corporation 2017
レビュー重視と品質・生産性の関係分析
ソフトウェア品質シンポジウム2017
2017年9月14日
日本電気(株) 丸山 志保
ソフトウェア品質シンポジウム2017
ソフトウェア品質シンポジウム2017
目次
1.分析の目的
2.分析の前提
3.プロジェクトの成否を分ける要因は何か
4.上工程バグ摘出率と品質・生産性との関係
5.分析結果のまとめ
ソフトウェア品質シンポジウム2017
1.分析の目的
ソフトウェア品質シンポジウム2017
5 © NEC Corporation 2017
分析の目的
▌全社的な定量的データに基づく改善活動
▌全社的な喫緊の課題:品質と生産性の向上
品質・生産性向上の両立を実証する
改善へ
分析結果をフィードバック
品質と生産性への影響要因を分析
プロジェクトデータを収集・蓄積
プロジェクトの成否を分ける 要因は何か?
品質の向上(認知)
生産性の向上?(懐疑的、批判)
上工程重視
ソフトウェア品質シンポジウム2017
2.分析の前提
ソフトウェア品質シンポジウム2017
7 © NEC Corporation 2017
品質会計:分析対象プロジェクトの開発プロセス
▌標準的に適用している品質管理手法
▌ウォーターフォール(V字)モデルを適用した開発プロセス
▌特徴
レビューでの早期バグ摘出
的確なテスト完了判断
▌社内推奨目標
上工程レビューで全体の80%のバグ摘出
▌上工程バグ摘出率
開発プロセス
テスト工程上工程
= 上工程レビューで摘出したバグ数
×100 出荷前に摘出した全摘出バグ数
(%)
ソフトウェア品質シンポジウム2017
8 © NEC Corporation 2017
分析対象データ
▌開発特性
▌データ項目
分類 開発特性
汎用SW系 特定の顧客に特化しない汎用ソフトウェア製品の開発を行う
SI系 特定の顧客向けにソフトウェア開発を行う
№ データ項目 単位 定義
1 開発規模 KLOC 新規規模+改修規模
2 生産性 Line/人H 開発規模(Line)/全工数(人H)
3 全摘出バグ数 件/KLOC 出荷前に摘出した全摘出バグ数(件)/開発規模(KLOC) ※№4+№5
4 上工程摘出バグ数 件/KLOC 全摘出バグ数のうち、上工程で摘出されたバグ数(件)/開発規模(KLOC)
5 テスト工程摘出バグ数 件/KLOC 全摘出バグ数のうち、テスト工程で摘出されたバグ数(件)/開発規模(KLOC)
6 上工程バグ摘出率 % 上工程摘出バグ数/全摘出バグ数×100
7 テスト項目数 項目/KLOC テスト工程で実施する全テスト項目数(件)/開発規模(KLOC)
8 全工数 人H/KLOC 開発に費やした全工数(人H)/開発規模(KLOC) ※№9+№10
9 上工程工数 人H/KLOC 上工程に費やした工数(人H)/開発規模(KLOC)
10 テスト工程工数 人H/KLOC テスト工程に費やした工数(人H)/開発規模(KLOC)
11 上工程レビュー工数 人H/KLOC 設計およびコードに対するレビューに費やした工数(人H)/開発規模(KLOC) ※上工程工数(№9)の内数
※以降、KLOCはKLと表記
ソフトウェア品質シンポジウム2017
9 © NEC Corporation 2017
品質と生産性の判定
▌品質の判定方法
出荷後品質は、出荷後バグ基準値と出荷後バグ実績値で判定
▌生産性の判定方法
出荷後品質「達成」「未達」の判定
達成:出荷後バグ実績値 ≦ 出荷後バグ基準値
未達:出荷後バグ実績値 > 出荷後バグ基準値
出荷後バグ基準値:出荷後の品質目標値(バグ数/KL)
出荷後バグ実績値:出荷後12か月以内顧客摘出バグ数(バグ数/KL)
「達成」が 品質が良い
値が大きい方が生産性が良い
出荷後基準達成率= 達成プロジェクト数
×100 全プロジェクト数
(%)
※当該カテゴリ内のプロジェクト数
(Line/人H) 生産性= 開発規模
工数
ソフトウェア品質シンポジウム2017
3.プロジェクトの成否を分ける要因は何か
過去の分析結果(SQiP2016資料より引用)
・出荷後基準「未達」プロジェクトの傾向
・出荷後品質に影響を与えるキーファクターの探索
※本章の分析は2014年度に終了したプロジェクトデータを使用記載する数値は全体の中央値を1としたときの相対値で示す。達成率については、全体の数値に対する増減のポイント数を示す。
ソフトウェア品質シンポジウム2017
11 © NEC Corporation 2017
出荷後基準「未達」プロジェクトの傾向分析
▌「達成」と「未達」データ項目中央値の比較
⇒ 未達PJはバグ数が多い( SI系、汎用SW系とも有意差有)
⇒ SI系の未達PJは上工程バグ摘出率が低い(テスト工程でより多くのバグを摘出していることによる)
単位 達成 未達
開発規模 Line 0.81 2.67
開発期間 日 0.94 1.24
生産性 Line/人H 0.91 1.25
全摘出バグ 件/KL 0.86 1.15
上工程バグ 件/KL 0.90 1.18
テスト工程バグ 件/KL 0.70 1.28
上工程バグ摘出率 % 1.03 0.98
レビュー工数 人H/KL 1.14 1.04
テスト項目数 項目/KL 1.01 1.03
全工数 人H/KL 1.10 0.80
上工程工数 人H/KL 1.10 0.91
テスト工程工数 人H/KL 1.18 0.78
ドキュメント量 頁/KL 1.05 1.10
達成PJと未達PJの中央値(SI系) (全体の中央値を1としたときの相対値)
単位 達成 未達
開発規模 Line 1.01 1.84
開発期間 日 0.98 1.11
生産性 Line/人H 0.99 1.10
全摘出バグ 件/KL 0.99 1.28
上工程バグ 件/KL 0.95 1.33
テスト工程バグ 件/KL 0.92 1.18
上工程バグ摘出率 % 1.00 1.03
レビュー工数 人H/KL 1.05 1.16
テスト項目数 項目/KL 0.87 1.16
全工数 人H/KL 1.02 0.92
上工程工数 人H/KL 0.99 1.05
テスト工程工数 人H/KL 1.06 0.91
ドキュメント量 頁/KL 0.98 1.11
達成PJと未達PJの中央値(汎用SW系) (全体の中央値を1としたときの相対値)
※表の黄色は、Wilcoxon検定で5%水準で有意差あり
ソフトウェア品質シンポジウム2017
12 © NEC Corporation 2017
SI系の出荷後基準「未達」影響要因の分析
▌上工程において「達成」と「未達」を分かつ要因を分類木により分析
⇒BD、FDで共に摘出バグ数が多い場合は、達成率が低下
※上工程の全工程(BD~CD)の工数、レビュー工数、バグ数、および開発規模に欠損のないデータのみを使用
全体 (N=88)
FDバグ数≧1.16 達成率 -19.3Pt
FDバグ数<1.16 達成率 +16.1Pt
BDバグ数<0.39 達成率 +8.5Pt
BDバグ数≧0.39 達成率 -42.0Pt
上工程の分類木
※数値は全体の中央値を1としたときの相対値達成率は全体の数値に対する増減のポイント数
「カスタム開発」「パッケージ利用SI」の開発規模10KL以上のデータのみ
ソフトウェア品質シンポジウム2017
13 © NEC Corporation 2017
SI系の出荷後基準「未達」影響工程の分析
▌BD、FDの各工程で分類木を構築
⇒BD、FDでバグが多く、かつ、レビューが少ない場合に最も達成率が低下
※BD、FDの各工程で、工数、レビュー工数、バグ数、および開発規模に欠損のないデータのみを使用
達成率 -11.5Pt
達成率 -3.3Pt
全体
バグ数≧1.07 達成率 -18.3Pt
バグ数<1.07 達成率 +10.2Pt
レビュー工数≧0.26
達成率 -11.5Pt
レビュー工数<0.26
達成率 -54.0Pt
全体
バグ数≧0.42 達成率 -8.0Pt
バグ数<0.42 達成率 +16.9Pt
レビュー工数≧0.42
達成率 -3.3Pt
レビュー工数<0.42
達成率 -38.7Pt
BD工程の分類木 FD工程の分類木
BD工程のレビュー工数とバグ数 FD工程のレビュー工数とバグ数
(人H/KL)
(件/KL)
(人H/KL)
(件/KL)
達成率+10.2Pt 達成率
+16.9Pt
BDレビュー工数
BD
バグ
数
達成率 -54.0Pt
FDレビュー工数
FD
バグ
数
達成率 -38.7Pt
「カスタム開発」「パッケージ利用SI」の開発規模10KL以上のデータのみ
※数値は全体の中央値を1としたときの相対値達成率は全体の数値に対する増減のポイント数
ソフトウェア品質シンポジウム2017
14 © NEC Corporation 2017
過去の分析結果から
▌出荷後基準「未達」プロジェクトの特徴
出荷前に摘出したバグ数が多い
(SI系) BDとFDで、レビュー工数が少なく摘出バグ数が多い
出荷後品質向上に向けて
上工程バグ摘出率
に注目して分析する
ソフトウェア品質シンポジウム2017
4.上工程バグ摘出率と品質・生産性との関係
今回の分析結果
・上工程バグ摘出率と出荷後品質の関係
・上工程バグ摘出率と生産性の関係
・SI系特有の要因を考慮した分析
※本章の分析は2015年度に終了したプロジェクトデータを使用プロジェクトの特性とデータの傾向が異なる組込(汎用SW系)とマイグレーション(SI系)、開発規模10KL未満を除外出荷後バグ実績値に欠損のないデータを使用
※上工程バグ摘出率 「70%未満」「70%以上80%未満」「80%以上」の3つの層に分けて比較分析各グラフは「70%未満」の層の値を100とし、各層の値を相対値で示す。
ソフトウェア品質シンポジウム2017
16 © NEC Corporation 2017
上工程バグ摘出率と出荷後品質の関係
▌上工程バグ摘出率が高い層ほど、出荷後基準達成率が高い
⇒上工程でより多くバグを摘出するほど「品質が良い」
出荷後基準達成率
※SI系(マイグレーションを除く)と汎用SW系(組込系を除く)の開発規模10KL以上、出荷後バグ基準「達成」「未達」のデータを使用
※上工程バグ摘出率70%未満の層の達成率を100とした相対値による比較
0
データ件数
汎用SW系:117件
SI系:410件
上工程バグ摘出率を『70%未満』『70%以上80%未満』『80%以上』の3層に分けて分析
ソフトウェア品質シンポジウム2017
17 © NEC Corporation 2017
上工程バグ摘出率と生産性の関係(汎用SW系)
▌上工程バグ摘出率の高い層ほど全工数が減少
⇒ 生産性が良くなっている
単位規模あたりの全工数〔汎用SW系〕 ※上工程バグ摘出率70%未満の層の達成率を100とした相対値による比較
※汎用SW系(組込系を除く)の開発規模10KL以上、出荷後バグ基準「達成」「未達」のデータを使用
後戻り工数が減るため
テスト工程工数が減少
ソフトウェア品質シンポジウム2017
18 © NEC Corporation 2017
上工程バグ摘出率と生産性の関係(SI系)
▌上工程バグ摘出率の高い層ほど全工数が増加
⇒ 生産性が良くなるとはいえない
単位規模あたりの全工数〔SI系〕 ※上工程バグ摘出率70%未満の層の達成率を100とした相対値による比較
※SI系(マイグレーションを除く)の開発規模10KL以上、出荷後バグ基準「達成」「未達」のデータを使用
SI系特有の要因による 影響が考えられる
ソフトウェア品質シンポジウム2017
19 © NEC Corporation 2017
SI系特有の要因を考慮した分析:工数の特徴、工数の構造
▌工数の特徴
▌収集している工数の構造
▌工数計上の課題
汎用SW系: ソフトウェアを開発するための工数のみ
SI系: 顧客関連の対応作業が数多く存在、プロジェクト毎に発生状況が異なる
上工程工数 (BD,FD,DD,CD) テスト工程工数 (UT,FT,ST)
設計製造工数 テスト工数
上工程レビュー工数 テスト工程レビュー工数
管理工数 管理工数
顧客対応工数 顧客対応工数
汎用SW系: 管理工数がほとんど計上されていない(顧客対応工数はない)
SI系: 管理工数、顧客対応工数を適切に分離計上しているプロジェクトは多くない
適切に 計上されて
いない
20 © NEC Corporation 2017
SI系特有の要因を考慮した分析:工数計上の課題への対応
▌以降の分析は 「管理工数」と「顧客対応工数」を除いた『開発工数』で分析
▌用語の定義 開発工数=設計製造工数+上工程レビュー工数+テスト工数+テスト工程レビュー工数
(人H)
テスト工程工数(再定義)=テスト工数+テスト工程レビュー工数(人H)
開発生産性=開発規模/開発工数 (Line/人H)
生産性=開発規模/工数 (Line/人H)
上工程工数 (BD,FD,DD,CD) テスト工程工数 (UT,FT,ST)
設計製造工数 テスト工数
上工程レビュー工数 テスト工程レビュー工数
管理工数 管理工数
顧客対応工数 顧客対応工数
開発工数
21 © NEC Corporation 2017
SI系特有の要因を考慮した分析:データ精査の実施
▌適切に開発工数を分離するためデータ精査を実施
・プロジェクトの遂行状況
・工数データの分離状況
タスクフォース参画メンバによるデータの確認
・工数データに欠損がない
・開発生産性の外れ値を除外
データ欠損や外れ値の除外
22 © NEC Corporation 2017
SI系特有の要因を考慮した分析:精査済データによる分析
▌上工程バグ摘出率が高い層ほど開発工数が減少 ⇒開発生産性が良くなっている (ただしn=28とデータ件数が少ない)
単位規模あたりのテスト項目数
※上工程バグ摘出率70%未満の層の達成率を100とした相対値による比較
単位規模あたりのテスト工程バグ数
単位規模あたりの開発工数
※タスクフォース参画組織 工数分離状況確認済,開発規模10KL以上、開発生産性20Line/人H以下,出荷後バグ基準「達成」,FD~FT工程工数に欠損がないデータを使用
SI系でも汎用SW系同様の傾向
テスト工程工数が減少
5.分析結果のまとめ
ソフトウェア品質シンポジウム2017
24 © NEC Corporation 2017
分析結果のまとめ
▌上工程バグ摘出率を3つの層に分けて品質と生産性を分析
▌上工程のレビューに多くの時間をかけ、バグを摘出することにより、 品質が向上するとともに、生産性が良くなる
▌品質と生産性の向上の両立を実証
上工程重視
品質と生産性向上の両立への鍵
ソフトウェア品質シンポジウム2017
25 © NEC Corporation 2017
今後の課題
▌工数の適切な分離計上の推進
▌管理工数を含めた生産性の分析
▌現場の個々の条件に合わせたレビュー強化方法の検討と提案
ソフトウェア品質シンポジウム2017
ソフトウェア品質シンポジウム2017