48
チケット駆動開発に着目した計測と可視化 によるITプロジェクト運営の体質改善 IPA/SEC連携委員 神谷 芳樹 (みたに よしき) (c)神谷芳樹 1 SECセミナ 20149みたに先端研合同会社代表 奈良先端科学技術大学院大学非常勤講師 201311月オーム社

チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

チケット駆動開発に着目した計測と可視化によるITプロジェクト運営の体質改善

IPA/SEC連携委員

神谷 芳樹(みたに よしき)

(c)神谷芳樹 1

SECセミナ2014年9月

みたに先端研合同会社代表奈良先端科学技術大学院大学非常勤講師

2013年11月オーム社

Page 2: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

現代のソフトウェア開発スタイルへの共通認識

(c)神谷芳樹 2

ソフトウェア開発管理環境のここ数年の格段の進化への着目

Page 3: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

ソフトウェア開発プロジェクトの計測

(c)神谷芳樹 3

ツールを駆使したプロジェクトの可視化

EPMEmpirical

ProjectMonitor

Page 4: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

チケットの計測

(c)神谷芳樹 4

ガントチャート

チケット一覧表

機能の予定と実績滞留期間別未決課題件数

チケット駆動開発の推奨チケット計測によるプロジェクト可視化の利点への着目

Page 5: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

チケットの2大機能と開発型

(c)神谷芳樹 5

作業分類・記録型チケットと

作業指示・受け渡し型チケット

障害分類

原因

1970年代のバグ票例

チケットの機能への考察

チケットのルーツ例

障害状況

障害原因及び措置

事後整理

Page 6: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 6

作業の分類と記録機能

障害分類

原因

事後整理

Page 7: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

障害処理票の管理項目例

(c)神谷芳樹 7鶴保征城、駒谷昇一、ずっと受けたかったソフトウェアエンジニアリングの授業(2)、翔泳社、2006年

自由記述と

分類・選択

Page 8: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 8

Page 9: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

作業指示・受け渡し型チケット

• 発行負荷が軽い– プロジェクト計測負荷を感じない– 現場にとって気持ちよいプロジェクト運営

• 狭視野– 単独のプロジェクトが進行すればよい、という視野

– 工程の前段の状況を分析して後段に反映する視点に欠ける

– 事後に評価してプロセス改善に反映する視点に欠ける

– 多くのプロジェクト・データを蓄積して、分析・評価し、将来に向けた施策に反映する視点に欠ける

(c)神谷芳樹 9

Page 10: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

作業分類・記録型チケット

• 多くのデータが得られる

• 出力の可視化情報が豊か

• ソフトウェアエンジニアリング研究の成果を反映したプロジェクト管理やプロセス改善の施策に役立てられる

• チケット発行負荷が大きい

• 管理先行になってプロジェクト進行実務者側の負担が大きい

• 予定消化の、つまらない、苦痛を伴うプロジェクト運営になる可能性がある

• 工程区分に結びつけた管理法にも再考の余地あり

(c)神谷芳樹 10

Page 11: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

開発流儀とチケットの発行契機

• フィーチャー型開発– 機能の実現に焦点

• 作業者にとってモチベーションを高めやすい• 管理者にとって、工期や工数を管理しにくい

• WBS型開発– 管理者には都合がよいが、作業者には苦痛の原因となる

– あらかじめ定めた所定の機能を所定の予算で所定の時期に実現するためには、ある程度避けられない管理方法

– 開発作業の中に企業間の契約行為が含まれる場合、工夫の余地が少ない

(c)神谷芳樹 11

Page 12: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

混在する2つの開発流儀

(c)神谷芳樹 12

Page 13: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

自動計測による可視化の流れ

(c)神谷芳樹 13

Page 14: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 14

WBS手法:作業の書き出し

Page 15: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

WBS:ディクショナリ

(c)神谷芳樹 15

ディクショナリはチケットへ

Page 16: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 16

IPA/SEC:組込みソフトウェア向け開発プロセスガイド(改訂版)ESPR Ver 2. 0、2007年

作業の登録・指示と経過の記録バグ票、問題処理票、レビュー記録、その他の管理帳票

Page 17: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

進捗管理

(c)神谷芳樹 17

EPM-Xサンプルチケット構造(Redmine版)

Page 18: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 18

Page 19: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 19

Page 20: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 20

Page 21: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 21

Page 22: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 22

Page 23: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

要求定義工程のダイアグラム例

(1/4)EAダイアグラム

DMM

(c)神谷芳樹 23

成果物管理(計測):要求定義

Page 24: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

要求定義工程のダイアグラム例

(2/4)EAダイアグラム

DFD

(c)神谷芳樹 24

成果物管理(計測):要求定義

Page 25: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

要求定義工程のダイアグラム例

(3/4)EAダイアグラム

WFA

(c)神谷芳樹 25

成果物管理(計測):要求定義

Page 26: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

要求定義工程のダイアグラム例

(4/4)EAダイアグラム

ERD

(c)神谷芳樹 26

成果物管理(計測):要求定義

Page 27: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

EAダイヤグラム記述の集計例:要求定義工程

(c)神谷芳樹 27

成果物管理(計測):要求定義

Page 28: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 28

成果物管理(計測):要求定義

Page 29: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

成果物管理(計測):要求定義

(c)神谷芳樹 29

Page 30: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

成果物管理(計測):要求定義

(c)神谷芳樹 30

Page 31: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

成果物管理(計測):要求定義

(c)神谷芳樹 31

Page 32: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

成果物計測:UMLの例

(c)神谷芳樹 32

Page 33: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 33

成果物計測UMLの例

Page 34: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 34

Page 35: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 35

アジャイル開発への展開

Page 36: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

(c)神谷芳樹 36

On Cloud

Page 37: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

ソフトウェア開発管理環境とビジネス管理環境の対比

どこにも基本的な違いが見当たらない

(c)神谷芳樹 37

Page 38: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

津田義史著「実践 反復型ソフトウェア開発」(2012年オーム社)を参照しながら「アジャイル開発」での計測・可視化課題を考える

• アジャイル開発の技術的プラクティスの根幹– 継続的インテグレーション

• ソフトウェア開発は並行開発– ウォーターフォール開発(直列逐次開発)の「傾斜線表」を想起

• ビルド中心の生活– 「ビルド」はインプロセスの計測捕捉対象として非常にクリア

(c)神谷芳樹 38

アジャイル開発への展開

黒字:原典青字:神谷

Page 39: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

「ソフトウェアを上手に育てる」->インプロセス計測・可視化の動機付け

• プログラムを清潔に保ち・・・・

• 健康状態をこまめにチェックし・・・

• 機能の追加は少しづつ、ソフトウェアが健康なときに限り行う

(c)神谷芳樹 39津田義史著「実践 反復型ソフトウェア開発」

計測課題

Page 40: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

タイムボックスとビルドの運用

• タイムボックスによる反復

– タイムボックスに階層

• タイムボックスの間仕切り:マイルストーン

• マイルストーンの運用

• マイルストーンの中でリリースビルド

(c)神谷芳樹 40津田義史著「実践 反復型ソフトウェア開発」

タイムボックス タイムボックス タイムボックス

タイムボックス階層

マイルストーン

ビルド

Page 41: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

フリーズとコンプリート

• 製品を段階的に凍結する

– ドキュメントフリーズ

– コードフリーズ

– 凍結イベントを各マイルストーンや機能ごとに設定

– スペックコンプリート

– フィーチャコンプリート

– テストプランコンプリート

– ドキュメントの機能チーム内のレビュー

– 様々な成果物の完成と凍結イベント

• xxコンプリート、xxフリーズ

(c)神谷芳樹 41津田義史著「実践 反復型ソフトウェア開発」

XX仕様書

フリーズ

コンプリート

レビュー

オーナ

XXコード

フリーズ

コンプリート

レビュー

Page 42: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

• 機能駆動による開発– 製品に複数の機能。機能毎に別のタイミングでコードコンプリート。テスト。

– 統合テスト(インテグレーションテスト)を実施

• 製品を安定化させる– トリアージ:

• 複数機能のインテグレーションとコードフリーズの間:コードのコミットを厳しく制御・管理

• 製品を検証する– コードフリーズの後、検証(ベリフィケーション)

• フルテストパスの実施

• 発見バグを制限事項に、マイルストーンを出る

• 出口条件を満たさないとき、修正

• 次のマイルストーンの計画を立てる作業へ

(c)神谷芳樹 42津田義史著「実践 反復型ソフトウェア開発」

コードコンプリート

テスト

統合テスト

機能A

機能B

機能C

インテグレーション

インテグレーション コードフリーズ

トリアージ

検証

マイルストーン

Page 43: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

イテレーション

• イテレーションの運用– イテレーション:マイルストーンを数日~数週間のタイムボックスに区切る。

– 1イテレーション1週間を推奨

• イテレーションの計画と運用– 継続的な統合ビルド(CIビルド)

– デイリービルド

– ウィークリービルド

– ビルドの世代交代

– その他のビルド

• 統合ビルド(公式ビルド)とプライベートビルド(ローカルビルド、開発者ビルド、ローカル開発者ビルド)

• 安定ビルドと最新ビルド

• デバッグビルドとリリースビルド

(c)神谷芳樹 43津田義史著「実践 反復型ソフトウェア開発」

マイルストーン

イテレーション~1W

ビルド 継続的な統合ビルド

Page 44: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

さらに

• 構成管理とブランチの戦略

• 再現可能なビルドの実現

• バグの追跡と解決

• ・・・・

(c)神谷芳樹 44津田義史著「実践 反復型ソフトウェア開発」

考え方は汎用的(逐次開発と共通)ミクロなプロセスのミクロなマネジメント平行作業(分岐/統合作業)のマネジメントいづれもインプロセスの計測と可視化の動機

たとえばブランチのプロモーションコミットのプロモーションビルドのプロモーション

継続的インテグレーション

計測の契機と対象は開発管理環境の中に

アクション(ブランチ/コミット/ビルド・・・)を的確に行うアクションの状態を把握するプロダクトの状態を把握する

さらにプロジェクト・データ比較へ

計測対象場所量契機頻度推移

Page 45: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

計測・可視化問題の普遍性

(c)神谷芳樹 45

タイムボックス タイムボックス タイムボックス

タイムボックス階層

マイルストーン

ビルド

XX仕様書

フリーズ

コンプリート

レビュー

オーナ

XXコード

フリーズ

コンプリート

レビュー

コードコンプリート

テスト

統合テスト

機能A

機能B

機能C

インテグレーション

インテグレーション コードフリーズ

トリアージ

検証

マイルストーン

マイルストーン

イテレーション~1W

ビルド 継続的な統合ビルド

粒度の細かい作業の並行運営

一本調子の直列作業

Page 46: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

開発手法(Waterfall/Agile)のマクロな特性比較

稼働要員

大きな山谷

大きな変動稼働:外部依存固定稼働:内部稼働中心

安定稼働

固定稼働:内部稼働中心

リリース大きな単位で提供 常時開発・常時提供・出来たところまで提供

多層の産業構造の源 内製化指向

進捗管理 WBS/EVM型 フィーチャー型

管理指標 進捗率・消費稼働 開発速度(Velocity)

開発環境 機械支援された環境

開発管理環境

ベース チケット管理、構成管理・版管理、試験管理・・・・

手法に合わせて例)成果物の量、バグ件数、バグ内容 +ミクロなオペレーションの頻度・内容

(ビルド数、ブランチ/マージ状況、機能数)

計測契機

計測対象

例)工程の区切り +ミクロなオペレーション(ビルド、コミット、ブランチ/マージ)

(c)神谷芳樹 46

Page 47: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

まとめ

(c)神谷芳樹 47

企画 試験 維持管理

企画 試験 維持管理

第一世代

第二世代

この併走状態が現実

この状態でのインプロセスの

計測と可視化という課題

新時代DevOpsDevelopmentOperations 作業指示

受け渡し型チケット

作業分類記録型チケット

WBS型開発

フィーチャ型開発

アジャイル・継続開発

ウォーターフォール逐次開発

計測と可視化のスペクトラム

Page 48: チケット駆動開発に着目した計測と可視化 によるITプロジェクト … · チケットの2大機能と開発型 (c)神谷芳樹 5 作業分類・記録型チケット

神谷 芳樹 (みたに よしき)1973年早稲田大学大学院理工学研究科修士課程修了。電電公社(現NTT)に入社後、同横須賀電気通信研究所、同データ通信本部、同ソフトウェア研究所、NTTソフトウェア(株)、奈良先端科学技術大学院大学(2003年から)、

情報処理推進機構ソフトウェア・エンジニアリング・センター(IPA/SEC)(2004年発足時から6年間、研究員)

でソフトウェア生産技術の研究や事業、開発プロジェクトに従事。2007年博士(工学)。

研究テーマはソフトウェア開発プロジェクトの計測、可視化、フィードバック、産学連携など。現在、奈良先端科学技術大学院大学 非常勤講師IPA/SEC連携委員、「みたに先端研合同会社」代表。

(c)神谷芳樹 48