第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

27
13回名古屋アジャイル勉強会 『チケット駆動開発入門』 2009/06/26

Upload: ryo-rktm

Post on 02-Jul-2015

2.633 views

Category:

Technology


3 download

DESCRIPTION

第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

TRANSCRIPT

Page 1: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

第13回名古屋アジャイル勉強会

『チケット駆動開発入門』

2009/06/26

Page 2: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

本日持ち帰って頂きたいこと。

チケット駆動開発は

高いトレーサビリティを容易に実現してくれる。

ウォーターフォールでもばっちり使える。

バージョン管理ツールは超重要。

「誰が、いつ、何をやったか」がわかる。

情報集約重要ツールとしてのITSは熱い。

Page 3: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

今日やること

チケット駆動開発の説明

チケット駆動開発とは?

デモ

情報共有ツールとしてのITS

他のやり方と比較してどう?

ワークショップ

みんな大好きワークショップ

Page 4: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

自己紹介

北村亮です。(id:RKTM)

三重から名古屋に通うプログラマ。

好きな言語:Ruby。

大学時代は文学心理学専攻。

OSC2009 Nagoya@8/22(土)にも

ご参加下さい。

Page 5: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

今日のお題

『チケット駆動開発入門』

Page 6: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

『チケット駆動開発』とは?

チケット駆動開発

(ticket-driven development; TiDD) とは、

プログラム開発手法の一種。

作業をタスクに分割しBTSのチケットに割り当てて管理

を行う開発スタイル。

参考:http://ja.wikipedia.org/wiki/チケット駆動開発

Page 7: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

チケット?

「行うべき作業」を記録したもの。

例:

「○○画面設計」

「△△バッチの不具合の修正」

「●●環境で動作するか検証」

ステータスあり。

開始日・終了日あり。

担当者欄あり。

見積もり工数を入れるのも可。

Page 8: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

チケット『駆動』? その1

「はじめにチケットありき。」

「チケットなしの作業禁止。」

チケットがない作業は闇作業。

「チケットなしのコミット禁止。」

チケットがないコミットは闇コミット。

チケットにより作業のインプット・原因・「なぜ」を

明確にする。

作業説明のお供にチケットを。

作業メモもチケットに記録していく。

Page 9: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

チケット『駆動』? その2

プロジェクトの流れ。

リーダーは、作業をチケットとして登録。

メンバーは、チケットをサインアップ。

メンバーは、作業が完了したらチケットのステータスを

「解決」に変更。

リーダーは、メンバーの成果物を確認し、

Okならチケットのステータスを完了にして終了。

Ngならまたメンバーに差し戻し。OKが出るまで繰り返す。

Page 10: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

仕事の流れのデモ

リーダーが、チケット登録

メンバーが、チケットをサインアップ

メンバーが、成果物をコミット

リーダーが、成果物をレビュー

差し戻し

終了

Page 11: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

ITS(BTS)

ITS(Issue Tracking System)・・・問題管理システム

BTS(Bug Tracking System)・・・バグ管理システム

実際のツール

Trac(Python)

手始めはWindowsへの導入が簡単なTrac Lightningがお勧

め。

Redmine(Ruby)

複数プロジェクト対応。

デザインが良い(気がする)。

Page 12: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

バージョン管理システム

皆さん使ってますか?

仕事のアウトプットは

バージョン管理システムに入れる。

ソースコードはもちろん。

設計書も。

なぜか?

Page 13: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

よくある(かもしれない)話

設計書をファイルサーバーで管理している場合

履歴を「bkフォルダ」などに入れたり、「XXX設計

書.xls_20090626」といったファイルを作成したり。

レビュー承認後の「完成した状態」から手が加えられて

しまうと・・・

変更されたことが検知できない。最悪の場合、レビューされな

いまま納品されることも。

こんな非生産的な事態が発生します。

Page 14: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

怒れるマネージャーの詰問

Page 15: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

バージョン管理システム超重要。

プロジェクトの成果物はリポジトリに保管。

設計書はバイナリだろうと当然対象。

チケットと連携できる。(後述)

誰が、いつ、何をやったかが分かる。

「このあらいを作ったのはだれ?」

ただし、「なぜ」それをやったか、「何をインプットとして」

やったかは、わからない。

それをチケットで補う。

Page 16: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

ふつう仕事はこんな流れ。

INPUTを受け取り、

PROCESSして、

OUTPUTを出す。

PROCESSINPUT OUTPUT

Page 17: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

もう少し補足すると

PROCESSINPUT OUTPUT

作業説明 完了報告

情報

リーダー メンバー リーダー

レビュー

チケットコミット

Page 18: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

バージョン管理ツールとチケットの連携

チケット駆動開発では、OUTPUT(コミット)と

INPUT(チケット)が紐付く。

コミットログに特定のキーワードを入れることにより、チ

ケットと紐付けが可能。

下記が明確に、かつ、記録として残る。

チケット(INPUT)に対して、何を行ったか(コミット)。

この変更(コミット)は、なぜ行ったのか(チケット)

高いトレーサビリティを簡単に実現。

Page 19: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

高トレーサビリティを容易に実現

「容易」に

1件の不具合修正の結果、1つの設計書と2つのソース

ファイルと、1つの単体テスト結果に変更が加わった。

これを人手でトレースするのは困難。

不具合を記録したチケットから、関係するリビジョンのリンクを

クリックすれば修正したファイルが何かすぐに分かる。

Page 20: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

チケット駆動開発での課題

チケット駆動開発での課題

チケットの粒度:最大で2~3日ぐらいの粒度に分ける。

チケットは定期的に棚卸。放置しない。強制アサインも

OK。

Page 21: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

Redmineの紹介

チケット関係の機能

ガントチャート、サマリ

情報共有の機能

wiki、ニュース。

ノウハウはwikiにためる。

「活動」にて日々のメンバーの動きを確認。

検索

プロジェクト内、プロジェクト間。

Page 22: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

Redmineの紹介

色々な設定

ロールと権限

ワークフロー

チケットのステータス

トラッカー

全てのプロジェクトに影響を与える項目の設定は

要注意。

Page 23: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

他のツールと比較。

ツール エクセル MS-PROJECT Redmine

ライセンス料 △ × ○フリー。

ガントチャート × ○イナヅマ線が魅力

過去の時点のイナヅマ線と比較もできる。

△顧客に提示するには苦し

いかも。

工数集計 ○計算式を埋め込むのが容易。

○確かそういった機能が

あったはず。

○チケットにかかった作業時

間を設定できる。

Page 24: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

参考情報

『入門Redmine』

前田 剛 (著)

『Xp祭り関西2009講演資料「チケットファーストでア

ジャイル開発!~チケットに分割して統治せよ」』

http://forza.cocolog-nifty.com/blog/2009/02/xp2009-746a.html

Page 25: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

ワークショップ

4コマ漫画を描く!

Page 26: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

4コマ漫画作成プロジェクト

ゴール:

完成した4コマ漫画を皆の前で発表。

先ずは作業を洗い出してください。

その内容を付箋紙に書き付ける。→擬似チケット。

予定作業時間も。

Page 27: 第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』

4コマ漫画作成プロジェクト

作業を洗い出したらイテレーション開始。

チケットに従って作業を進めてください。

一定の時間で区切りますので、振り返り。

それが終わればまた次のイテレーション開始。