組込みソフトウェア開発データ白書 の正しい読み方と賢い使い方 · 内容...
TRANSCRIPT
組込みソフトウェア開発データ白書の正しい読み方と賢い使い方
五味 弘
JEITA/OKI
2015年11月18日発行
・組込み分野のプロジェクトデータ174件
・エンタープライズ系データ白書と同様の構成
2016/11/17
内容
• 組込みソフトウェア界隈でよく聞かれる言葉ランキング
• データ白書の正しい見方と賢い使い方• データ白書FAQ• 脅し文句(ずる賢い使い方)
実は10年前にエンタープライズ系データ白書を題材に講演
「ソフトウェア開発データ白書2005 正しい読み方と賢い使い方」セミナー(2006年2月開催)
なんと10年遅れ!の組込み系?エンタープライズ系のデータ白書の成果と反省を元にプレゼン
このデータ白書を紹介しているときに
• 定量データそのもの• データ収集・分析活動• エンタープライズ系と比較
組込みソフトウェア界隈でよく聞かれる言葉 ランキング
定量データそのものに関して組込みソフトウェア界隈でよく聞かれる言葉
「うちは特殊だから」「領域が違うから」
→「そのデータは使えない」「参考程度」
今日は「正しい読み方と賢い使い方」を聞いてください
使えるところを見つける
共通部を見つける、部分的に使う
数値そのものでなく、データの傾向性を見る
逆に言えば、使わないともったいない
この会場でも・・・???
今日はこれだけ・・・!!!
データ収集・分析活動に関して組込みソフトウェア界隈でよく聞かれる言葉
1. 「やらなくてはいけないけど」「参考になるけど」→「コスト的、文化的にできない」
小さく始める、簡単に始める、早く始める
一部のデータ、一部の分野/領域、一部の開発/製品
2. 「無理やり、やらされているけど」→「役に立っていない」「儀式になっている」
権利として使う、使えるところを見つける
3. 「どんなデータを収集し」「どう分析するのか」→「わからない」
少なく収集(必要なものだけ、将来に備えない)
簡単に分析、そのまま分析(結論を偽造しない)
ここだけ収集・これだけ分析
エンタープライズ系と比較して組込みソフトウェア界隈でよく聞かれる言葉
1. 「あちらは典型的に作れるから」「あちらはフレームワークがあるから」→「こちらは手作り」「モノによって全然違う」
共通部を見つける、大まかに見つける
2. 「職人が作るから」「個人依存が大きいから」→「定量データは役に立たない」「ばらつく」
大規模になればデータ分析の傾向性が同様になる
3. 「ドメインで全然違う」→「組込み全体で括るのが問題」「大括りすぎ」
ドメイン別・ソフト別に収集・分析
組込み系でも定量データ分析は必須
(番外編)「組込みデータ白書って何?」組込みソフトウェア界隈でよく聞かれる言葉
1. それよりも何よりも「組込みデータ白書って???」→「知らない」「初めて聞いた」
エンタープライズ系のデータ白書も知らない
そっちは知っているけど、組込み系は知らない
→ 今日、知ってください!
組込み系のデータ白書、あります!
データ白書を紹介しているときの
興味深いデータの紹介• 生産性• 信頼性• 工期、工数• テストケース数
統計に関するFAQ!
データの正しい見方と賢い使い方
データの正しい見方と賢い使い方 1. 生産性
改良開発のときの生産性 (SLOC/人時)
1.32 (C) (211 SLOC/人月)
3.76 (C++) (602 SLOC/人月)
組込み系データ白書2015 p.139
3.5 (C, エンタープライズ系) (560 SLOC/人月)
参考:エンタープライズ系データ白書2014 p.347
参考:エンタープライズ系データ白書2016 では未掲載
(Java 新規開発のときは 約1KSLOC/人月)
この数値をどのように見るか?
高いと見る? 低いと見る?
(発注者側? 開発側?)
見積もりに使える?プロジェクト管理に使う?
いいデータばかり集まる?
データの正しい見方と賢い使い方 2. 信頼性
改良開発のときの総合テスト検出バグ密度 (件/KSLOC)
0.44 (C)
0.09 (C++)
組込み系データ白書2015 p.121
0.152 (C, エンタープライズ系2016年)
参考:エンタープライズ系データ白書2016 p.214
0.315 (C, エンタープライズ系2014年)
参考:エンタープライズ系データ白書2014 p.248
この数値をどのように見るか?どう使うか?
高いと見る? 低いと見る?
プロジェクト管理に使う?
いいデータばかり集まる?
データの正しい見方と賢い使い方3. その他で使えそうなデータ
改良開発のときの工程別工期 (何故か中央値)
アーキテクチャ設計 23%、詳細設計 16%、実装・単体テスト 17%、結合テスト 19%、総合テスト 21% 組込み系データ白書2015 p.127
エンタープライズ系 基本設計 19%、詳細設計 17%、製作 25%、結合テスト 18%、総合テスト 16% (参考:ソフトウェアデータ白書2016-2017 p.187)
改良開発のときの工程別工数 (何故か中央値)
アーキテクチャ設計 20%、詳細設計 13%、実装・単体テスト 26%、結合テスト 22%、総合テスト 15% 組込み系データ白書2015 p.128
エンタープライズ系 基本設計 15%、詳細設計 16%、製作 31%、結合テスト 19%、総合テスト 14% (参考:ソフトウェアデータ白書2016-2017 p.191)
この数値をどのように見るか?どう使うか?
設計:製造:試験=3:3:4
設計:製造:試験=1:1:1
伝説では設計:製造:試験=3:4:3見積もり、スケジュール管理
工期、工数
設計:製造:試験=2:1:2
設計:製造:試験=3:2:3
データの正しい見方と賢い使い方3. その他で使えそうなデータ
改良開発のときのテストケース数(C/C++)
結合テスト 156 件/KSLOC
総合テスト 83 件/KSLOC組込み系データ白書2015 p.130
エンタープライズ系
結合テスト 58 件/KSLOC
総合テスト 16 件/KSLOC (参考:ソフトウェアデータ白書2016-2017 p.214)
この数値をどのように見るか?どう使うか?
テストケース数
データ白書FAQ (統計)
データ白書の中央値と平均値は使い分けは?
データの検定はどうすればいいの?
正規分布しているの?
対数グラフにするのはなぜ?
層別に分析しているけれど、他の関係が影響しているのでは?例.ユーザーの多様性と規模
背景因子の検定は?
統計数値の一人歩きは大丈夫なの?
グラフより、生の数値が大事だよね?
統計的に色々な問題が・・・
統計に騙されないように・・・
データ白書を紹介しているときの
• 発注者側からの攻撃• 開発環境の変化• 管理
脅し文句(ずる賢い使い方)
~データ白書を使わせるための~
データ白書を読まないと・・・
• 発注側に、生産性の数値と信頼性の数値を知られてしまっている
• データ白書の読者は開発現場よりユーザや管理部門!?
→ 情報を知らないと負けてしまう敵を知り、己を知る
発注側からの攻撃に耐えられない
データ白書を読まないと・・・
• 組込み系ソフトウェアは• 大規模化、短納期化、複雑化• 複数機種並行開発、派生開発• IoT, AI, ビッグデータ
• この波に飲まれてしまう
→ 羅針盤としてのデータ白書
開発環境の変化についていけない
データ白書を読まないと・・・
• 機械的にシステマティックに管理• プロジェクト管理• 製品(プロダクト)管理• (上司やユーザ、企画部門を管理)
→ 強制力としてのデータ白書見本、指針、言い訳、現実
管理しにくい
今日のまとめ• 「うちは特殊だから、データ白書は使えない」ことはない
• 「コスト的に使えない」ことはない• データは必要なものだけ集める• 使えるところを見つける• 生産性と信頼性のデータの見方• 統計で騙されるな• 敵を知り、己を知れ(データ的に)• 組込み系は変化している• 管理の手助け