Your SlideShare is downloading. ×
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

2,564

Published on

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

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

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

No Downloads
Views
Total Views
2,564
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
60
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×