「チケット&計測」書籍で訴えたいこと、
語り尽くせなかったこと
神谷 芳樹
(みたに よしき@みたに先端研合同会社)
(c)神谷芳樹 1
第57回 SEA関西プロセス分科会/第10回 RxTstudy
2014年4月5日(土)大阪
神谷 芳樹 (みたに よしき)
1973年早稲田大学大学院理工学研究科修士課程修了。
電電公社(現NTT)に入社後、同横須賀電気通信研究所、
同データ通信本部、同ソフトウェア研究所、
NTTソフトウェア(株)、
奈良先端科学技術大学院大学、
情報処理推進機構ソフトウェア・エンジニアリング・センター
(IPA/SEC)
でソフトウェア生産技術の研究や事業、開発プロジェクトに
従事。2007年博士(工学)。
研究テーマはソフトウェア開発プロジェクトの計測、可視化、
フィードバック、産学連携など。
現在、みたに先端研合同会社代表。
IPA/SEC連携委員
(c)神谷芳樹 2
(c)神谷芳樹 3
チケットの集計で作れるグラフの例
(c)神谷芳樹 4
ガントチャート チケット一覧表
機能の予定と実績
滞留期間別未決課題件数
チケットの2大機能と開発型
(c)神谷芳樹 5
作業分類・記録型チケット
と
作業指示・受け渡し型チケット
障害分類
原因
障害状況
障害原因
及び
措置
1970年代のバグ票例
(c)神谷芳樹 6
障害処理票の管理項目例
(c)神谷芳樹 7
鶴保征城、駒谷昇一、ずっと受けたかった
ソフトウェアエンジニアリングの授業(2)、翔泳社、2006年
(c)神谷芳樹 8
作業指示・受け渡し型チケット
• 発行負荷が軽い
– プロジェクト計測負荷を感じない
– 現場にとって気持ちよいプロジェクト運営
• 狭視野
– 単独のプロジェクトが進行すればよい、という視野
– 工程の前段の状況を分析して後段に反映する視点に
欠ける
– 事後に評価してプロセス改善に反映する視点に欠ける
– 多くのプロジェクト・データを蓄積して、分析・評価し、将
来に向けた施策に反映する視点に欠ける
(c)神谷芳樹 9
作業分類・記録型チケット
• 多くのデータが得られる
• 出力の可視化情報が豊か
• ソフトウェアエンジニアリング研究の成果を反映したプ
ロジェクト管理やプロセス改善の施策に役立てられる
• チケット発行負荷が大きい
• 管理先行になってプロジェクト進行実務者側の負担が
大きい
• 予定消化の、つまらない、苦痛を伴うプロジェクト運営
になる可能性がある
• 工程区分に結びつけた管理法にも再考の余地あり
(c)神谷芳樹 10
開発流儀とチケットの発行契機
• フィーチャー型開発
– 機能の実現に焦点
• 作業者にとってモチベーションを高めやすい
• 管理者にとって、工期や工数を管理しにくい
• WBS型開発
– 管理者には都合がよいが、作業者には苦痛の原因
となる
– あらかじめ定めた所定の機能を所定の予算で所定
の時期に実現するためには、ある程度避けられない
管理方法
– 開発作業の中に企業間の契約行為が含まれる場合、
工夫の余地が少ない
(c)神谷芳樹 11
混在する2つの開発流儀
(c)神谷芳樹 12
自動計測による可視化の流れ
(c)神谷芳樹 13
(c)神谷芳樹 14
WBS:ディクショナリ
(c)神谷芳樹 15
(c)神谷芳樹 16
IPA/SEC:組込みソフトウェア向け開発プロセスガイド
(改訂版)ESPR Ver 2. 0、2007年
(c)神谷芳樹 17
EPM-X
(c)神谷芳樹 18
(c)神谷芳樹 19
EPM-Xサンプル
チケット構造
(Redmine版)
(c)神谷芳樹 20
(c)神谷芳樹 21
(c)神谷芳樹 22
(c)神谷芳樹 23
(c)神谷芳樹 24
要求定義工程のダイアグラム例(1/4)
EAダイアグラムDMM
(c)神谷芳樹 25
成果物計測
要求定義
要求定義工程のダイアグラム例(2/4)
EAダイアグラムDFD
(c)神谷芳樹 26
成果物計測
要求定義
要求定義工程のダイアグラム例(3/4)
EAダイアグラムWFA
(c)神谷芳樹 27
成果物計測
要求定義
要求定義工程のダイアグラム例(4/4)
EAダイアグラムERD
(c)神谷芳樹 28
成果物計測
要求定義
EAダイヤグラム記述の集計例
要求定義工程
(c)神谷芳樹 29
成果物計測
要求定義
(c)神谷芳樹 30
成果物計測
要求定義
(c)神谷芳樹 31
成果物計測
要求定義
(c)神谷芳樹 32
成果物計測
要求定義
(c)神谷芳樹 33
成果物計測
要求定義
UMLの例
(c)神谷芳樹 34
成果物計測
(c)神谷芳樹 35
成果物計測
(c)神谷芳樹 36
(c)神谷芳樹 37
後述
(c)神谷芳樹 38
On Cloud
(c)神谷芳樹 39
津田義史著「実践 反復型ソフトウェア開発」
を参照しながら
計測・可視化課題を考える
• アジャイル開発の技術的プラクティスの根幹である継続的インテグ
レーション
• ソフトウェア開発は並行開発
– ウォーターフォール開発(直列逐次開発)の「傾斜線表」を想起
• 機能、工程を細分化し、直列性のないものを平行開発し、全体の工期を短縮する。
• 一時期の稼働は増える。
• 工程全体の精密な制御が必要。
• ビルド中心の生活
– 「ビルド」はインプロセスの計測捕捉対象として非常にクリア
(c)神谷芳樹 40
で語れなかったこと
「ソフトウェアを上手に育てる」
->インプロセス計測・可視化の動機付け
• プログラムを清潔に保ち・・・・
• 健康状態をこまめにチェックし・・・
• 機能の追加は少しづつ、ソフトウェアが健康
なときに限り行う
(c)神谷芳樹 41津田義史著「実践 反復型ソフトウェア開発」
「チームの役割と責務」
->インプロセス計測・可視化の動機付け
• PM
– プロダクトオーナー
– フィーチャーオーナー
– PMリード
• 開発者
– デブリード
– アーキテクト
– 開発者
– ビルドマスター
• テスター
– テストリード
– テストエンジニア
– テスター
• マネジメント
– プロジェクトリード
– 構成管理者
• その他
– ステークホルダー
– ユーザー
アクセス制御のなかでの情報共有
情報の可視化
迅速な状況把握
迅速な合意形成
チャンピオン、ドライバ
(c)神谷芳樹 42
津田義史著「実践 反復型ソフトウェア開発」
可視化された情報は、
真の原因(深い)原因への
到達時間が早い
「見えない」もの(こと)での
合意形成は難しい
「タイムボックスとビルドの運用」
• タイムボックスによる反復の構築
– タイムマネジメントの一手法
– 作業を箱に詰める
– 3つの制約:作業の品質、納期、機能の数(作業の範囲)
– タイムボックスを階層的に構成する
• タイムボックスの間仕切り:マイルストーン
• フィーチャーボックス(スコープボックス)を避ける
• マイルストーンの運用
– マイルストーン計画、マイルストーンの出口条件、マイルストーンビルド
– 作業項目の追加、削除(延期)
– マイルストーンに名前を付ける
– 最初のマイルストーンによるプロジェクトの計画と準備
• マイルストーンの中でリリースするビルド
– ファーストビルド、ゼロ機能ビルド
– マイルストーンビルド、アルファビルド、ベータビルド
– RC(リリース候補)ビルド
– リリースビルド、最終ビルド、出荷ビルド、ゴールビルド
(c)神谷芳樹 43津田義史著「実践 反復型ソフトウェア開発」
タイムボックス タイムボックス タイムボックス
タイムボックス階層
マイルストーン
ビルド
• 製品を段階的に凍結する
– 仕様書の凍結:ドキュメントフリーズ
– プログラム(コード)の凍結:コードフリーズ
– 凍結イベントを各マイルストーンや機能ごとに設定できる
– 仕様書
• 機能仕様書:機能チームのプロダクトオーナ(フィーチャオーナ)
が書く
– ワン・ページ・スペック(クイック・スペック)・・・スペックコンプリート
• 技術仕様書:デブオーナーが書く
– フィーチャコンプリート
• テスト(設計)仕様書:テストオーナが書く
– テストプランコンプリート
• ドキュメントの機能チーム内のレビュー
– 様々な成果物の完成と凍結イベント
• xxコンプリート、xxフリーズ
(c)神谷芳樹 44津田義史著「実践 反復型ソフトウェア開発」
XX仕様書
フリーズ
コンプリート
レビュー
オーナ
XXコード
フリーズ
コンプリート
レビュー
• 機能駆動による開発
– 製品に複数の機能。機能毎に別のタイミングでコード
コンプリート。テスト。
– 統合テスト(インテグレーションテスト)を実施
• 製品を安定化させる
– トリアージ:
• 複数機能のインテグレーションとコードフリーズの間:コード
のコミットを厳しく制御・管理
• 製品を検証する
– コードフリーズの後、検証(ベリフィケーション)
• フルテストパスの実施
• 発見バグを制限事項に、マイルストーンを出る
• 出口条件を満たさないとき、修正
• 次のマイルストーンの計画を立てる作業へ
(c)神谷芳樹 45津田義史著「実践 反復型ソフトウェア開発」
コード
コンプリート
テスト
統合
テスト
機能A
機能B
機能C
インテグレーション
インテグレーション コード
フリーズ
トリアージ
検証
マイルストーン
• イテレーションの運用
– イテレーション:マイルストーンを数日~数週間のタイムボック
スに区切る。
– 1イテレーション1週間を推奨
• イテレーションの計画と運用
– 継続的な統合ビルド(CIビルド)
– デイリービルド
– ウィークリービルド
– ビルドの世代交代
– ビルドのリリース範囲と管理
• ビルドに番号を付ける
• バージョンに番号を付ける
– その他のビルド
• 統合ビルド(公式ビルド)とプライベートビルド(ローカルビルド、開発者
ビルド、ローカル開発者ビルド)
• 安定ビルドと最新ビルド
• デバッグビルドとリリースビルド
(c)神谷芳樹 46津田義史著「実践 反復型ソフトウェア開発」
マイルストーン
イテレーション~1W
ビルド 継続的な統合ビルド
さらに
• 構成管理とブランチの戦略
• 再現可能なビルドの実現
• バグの追跡と解決
• ・・・・
(c)神谷芳樹 47津田義史著「実践 反復型ソフトウェア開発」
考え方は汎用的
ミクロなプロセスのミクロなマネジメント
平行作業(分岐/統合作業)のマネジメント
いづれもインプロセスの計測と可視化の動機
たとえば
ブランチのプロモーション
コミットのプロモーション
ビルドのプロモーション
継続的インテグレーション
計測の契機と対象は開発管理環境の中に
アクション(ブランチ/コミット/ビルド・・・)を的確に行う
アクションの状態を把握する
プロダクトの状態を把握する
計測・可視化問題の
普遍性
(c)神谷芳樹 48
タイムボックス タイムボックス タイムボックス
タイムボックス階層
マイルストーン
ビルド
XX仕様書
フリーズ
コンプリート
レビュー
オーナ
XXコード
フリーズ
コンプリート
レビュー
コード
コンプリート
テスト
統合
テスト
機能A
機能B
機能C
インテグレーション
インテグレーション コード
フリーズ
トリアージ
検証
マイルストーン
マイルストーン
イテレーション~1W
ビルド 継続的な統合ビルド
粒度の細かい
作業の並行運営
一本調子の
直列作業
まとめ
(c)神谷芳樹 49
企画 試験 維持管理
企画 試験 維持管理
1世代
2世代
この状態が現実
この状態での
インプロセスの
計測と可視化という課題
計測と可視化のスペクトラム
新時代
DevOps
Development
Operations
作業指示
受け渡し型
チケット
作業分類
記録型
チケット
WBS型開発
フィーチャ型開発

2チケット&計測」書籍で訴えたい