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

2,936 views
2,856 views

Published on

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

Published in: Technology, Business
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,936
On SlideShare
0
From Embeds
0
Number of Embeds
271
Actions
Shares
0
Downloads
61
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

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

  1. 1. 第13回名古屋アジャイル勉強会 『チケット駆動開発入門』 2009/06/26
  2. 2. 本日持ち帰って頂きたいこと。 チケット駆動開発は 高いトレーサビリティを容易に実現してくれる。 ウォーターフォールでもばっちり使える。 バージョン管理ツールは超重要。 「誰が、いつ、何をやったか」がわかる。 情報集約重要ツールとしてのITSは熱い。
  3. 3. 今日やること チケット駆動開発の説明 チケット駆動開発とは? デモ 情報共有ツールとしてのITS 他のやり方と比較してどう? ワークショップ みんな大好きワークショップ
  4. 4. 自己紹介 北村亮です。(id:RKTM) 三重から名古屋に通うプログラマ。 好きな言語:Ruby。 大学時代は文学心理学専攻。 OSC2009 Nagoya@8/22(土)にも ご参加下さい。
  5. 5. 今日のお題 『チケット駆動開発入門』
  6. 6. 『チケット駆動開発』とは? チケット駆動開発 (ticket-driven development; TiDD) とは、 プログラム開発手法の一種。 作業をタスクに分割しBTSのチケットに割り当てて管理 を行う開発スタイル。 参考:http://ja.wikipedia.org/wiki/チケット駆動開発
  7. 7. チケット? 「行うべき作業」を記録したもの。 例: 「○○画面設計」 「△△バッチの不具合の修正」 「●●環境で動作するか検証」 ステータスあり。 開始日・終了日あり。 担当者欄あり。 見積もり工数を入れるのも可。
  8. 8. チケット『駆動』? その1 「はじめにチケットありき。」 「チケットなしの作業禁止。」 チケットがない作業は闇作業。 「チケットなしのコミット禁止。」 チケットがないコミットは闇コミット。 チケットにより作業のインプット・原因・「なぜ」を 明確にする。 作業説明のお供にチケットを。 作業メモもチケットに記録していく。
  9. 9. チケット『駆動』? その2 プロジェクトの流れ。 リーダーは、作業をチケットとして登録。 メンバーは、チケットをサインアップ。 メンバーは、作業が完了したらチケットのステータスを 「解決」に変更。 リーダーは、メンバーの成果物を確認し、 Okならチケットのステータスを完了にして終了。 Ngならまたメンバーに差し戻し。OKが出るまで繰り返す。
  10. 10. 仕事の流れのデモ リーダーが、チケット登録 メンバーが、チケットをサインアップ メンバーが、成果物をコミット リーダーが、成果物をレビュー 差し戻し 終了
  11. 11. ITS(BTS) ITS(Issue Tracking System)・・・問題管理システム BTS(Bug Tracking System)・・・バグ管理システム 実際のツール Trac(Python) 手始めはWindowsへの導入が簡単なTrac Lightningがお勧 め。 Redmine(Ruby) 複数プロジェクト対応。 デザインが良い(気がする)。
  12. 12. バージョン管理システム 皆さん使ってますか? 仕事のアウトプットは バージョン管理システムに入れる。 ソースコードはもちろん。 設計書も。 なぜか?
  13. 13. よくある(かもしれない)話 設計書をファイルサーバーで管理している場合 履歴を「bkフォルダ」などに入れたり、「XXX設計 書.xls_20090626」といったファイルを作成したり。 レビュー承認後の「完成した状態」から手が加えられて しまうと・・・ 変更されたことが検知できない。最悪の場合、レビューされな いまま納品されることも。 こんな非生産的な事態が発生します。
  14. 14. 怒れるマネージャーの詰問
  15. 15. バージョン管理システム超重要。 プロジェクトの成果物はリポジトリに保管。 設計書はバイナリだろうと当然対象。 チケットと連携できる。(後述) 誰が、いつ、何をやったかが分かる。 「このあらいを作ったのはだれ?」 ただし、「なぜ」それをやったか、「何をインプットとして」 やったかは、わからない。 それをチケットで補う。
  16. 16. ふつう仕事はこんな流れ。 INPUTを受け取り、 PROCESSして、 OUTPUTを出す。 INPUT PROCESS OUTPUT
  17. 17. もう少し補足すると レビュー 作業説明 完了報告 人 リーダー メンバー リーダー 情 INPUT PROCESS 報 OUTPUT チケット コミット
  18. 18. バージョン管理ツールとチケットの連携 チケット駆動開発では、OUTPUT(コミット)と INPUT(チケット)が紐付く。 コミットログに特定のキーワードを入れることにより、チ ケットと紐付けが可能。 下記が明確に、かつ、記録として残る。 チケット(INPUT)に対して、何を行ったか(コミット)。 この変更(コミット)は、なぜ行ったのか(チケット) 高いトレーサビリティを簡単に実現。
  19. 19. 高トレーサビリティを容易に実現 「容易」に 1件の不具合修正の結果、1つの設計書と2つのソース ファイルと、1つの単体テスト結果に変更が加わった。 これを人手でトレースするのは困難。 不具合を記録したチケットから、関係するリビジョンのリンクを クリックすれば修正したファイルが何かすぐに分かる。
  20. 20. チケット駆動開発での課題 チケット駆動開発での課題 チケットの粒度:最大で2~3日ぐらいの粒度に分ける。 チケットは定期的に棚卸。放置しない。強制アサインも OK。
  21. 21. Redmineの紹介 チケット関係の機能 ガントチャート、サマリ 情報共有の機能 wiki、ニュース。 ノウハウはwikiにためる。 「活動」にて日々のメンバーの動きを確認。 検索 プロジェクト内、プロジェクト間。
  22. 22. Redmineの紹介 色々な設定 ロールと権限 ワークフロー チケットのステータス トラッカー 全てのプロジェクトに影響を与える項目の設定は 要注意。
  23. 23. 他のツールと比較。 ツール エクセル MS-PROJECT Redmine ライセンス料 △ × ○ フリー。 ガントチャート × ○ △ イナヅマ線が魅力 顧客に提示するには苦し 過去の時点のイナヅマ いかも。 線と比較もできる。 工数集計 ○ ○ ○ 計算式を埋め込 確かそういった機能が チケットにかかった作業時 むのが容易。 あったはず。 間を設定できる。
  24. 24. 参考情報 『入門Redmine』 前田 剛 (著) 『Xp祭り関西2009講演資料「チケットファーストでア ジャイル開発!~チケットに分割して統治せよ」』 http://forza.cocolog-nifty.com/blog/2009/02/xp2009-746a.html
  25. 25. ワークショップ 4コマ漫画を描く!
  26. 26. 4コマ漫画作成プロジェクト ゴール: 完成した4コマ漫画を皆の前で発表。 先ずは作業を洗い出してください。 その内容を付箋紙に書き付ける。→擬似チケット。 予定作業時間も。
  27. 27. 4コマ漫画作成プロジェクト 作業を洗い出したらイテレーション開始。 チケットに従って作業を進めてください。 一定の時間で区切りますので、振り返り。 それが終わればまた次のイテレーション開始。

×