2009/10/10 名古屋Ruby会議01 プログラマと プログラマでない人のための 課題管理ツール『Redmine』 名古屋アジャイル勉強会 北村 亮(id:RKTM)
自己紹介 ● 北村 亮(id:RKTM) ● 三重から名古屋へ通うプログラマ ● 文学部心理学専攻出身の文系脳。 ● 最近のお気に入り ● 登山 – 日本最高の勉強会(標高的な意味で) – 鈴鹿山脈登ったり、南アルプス登ったり。 – IBS石井スポーツが経営継続とか! ● Scala勉強中。
自己紹介(2/3) ● 名古屋アジャイル勉強会スタッフ ● 10月30日テーマ 『なぜ仕事は定時に終わらないのか?』 – アジャイルのタイムボックスの考え方で 仕事の取り組み方を変えてみる。 – よく知らないから 勉強会主担当として 学んでみるメソッド。 ● 続きは近日中にWebで! – http://blogs.yahoo.co.jp/nagoya_agile_study_group
自己紹介(3/3) ● 名古屋Scala勉強会(new!) ● 名古屋アジャイル勉強会の方と共同創設。 ● 第1回は10/23金曜日 – 一人だとくじけるので 勉強会を立ち上げるメソッド。 – まずはScala本を読む。 ● 続きはGoogle Groupで! – http://groups.google.co.jp/group/NagoyaScala
本日お話すること ● Redmine良いよ! ● プログラマでない人でも、課題管理ツール や情報共有の場として。 ● プログラマな人には、チケット駆動開発の 土台として。
Redmineって? ● Webベースのプロジェクト管理ツール。 ● Ruby on Rails製。 ● 複数プロジェクト対応。 ● ロールベースの柔軟なアクセス制御。 ● 柔軟なIssue Tracking System。 ● バージョン管理ツールと連携。 ● 情報共有の場(ニュース、フォーラム、wiki)
いまここ ● Redmine良いよ! ● プログラマでない人でも、課題管理ツール や情報共有の場として。 ● プログラマな人には、チケット駆動開発の 土台として。
課題管理ツールとして ● 課題(、リスク、Todo)を管理 ※厳密には3者は違うけど。 ● やらなければならないこと。 ● いつまでに? ● そのステータスは? ● 誰が承認?そしてその記録は?
Redmineの課題管理はこんな感じ ● チケット登録 ● 『チケット』という単位で課題を登録。 ● チケット一覧 ● ガントチャート ● 変更の記録 ● タイムライン
画面:チケット登録 トラッカー:チケットのカテゴリ 優先度を決めたり 担当者割りしたり 対象のバージョンを決めたり。 開始日・期限日。 予定工数も入れられる。
画面:チケット一覧 フィルタリングの条件も 色々と指定できる
画面:ガントチャート あれ、遅れすぎてない? マウスオーバーで 概要表示
画面:チケット変更の記録 誰がどんな変更を加えたか 残る。
画面:タイムライン 活動のタイムライン。 ここが活発なのはメンバーが 動けている印。 RSSリーダーに登録。
Redmineの良い点(1/2) ● Webブラウザがあれば良い。 ● Linuxな人でも課題を登録・編集できるよ。 ● 情報のリアルタイム性 ● RSS ● メール送信 ● ワークフロー。 ● 完了できるのはマネージャのみ、とか。 ● 誰が承認したか記録に残る。
Redmineの良い点(2/2) ● 課題管理とは直接関係ないけど、非常 に便利な機能 ● 情報共有の機能。 – wiki、news、forum。 (メール連絡では後から入った人に伝わらない) ● 横断的に検索できる。 – チケット、wiki、news、コミットログ、etc
いまここ ● Redmine良いよ! ● プログラマでない人でも、課題管理ツール や情報共有の場として。 ● プログラマな人には、チケット駆動開発の 土台として。
第13回名古屋アジャイル勉強会 『チケット駆動開発入門』 2009/06/26
『チケット駆動開発』とは? ● チケット駆動開発 (ticket-driven development; TiDD) ● プログラム開発手法の一種。 ● 作業をタスクに分割しITSのチケットに割り 当てて管理を行う開発スタイル。 – 参考:http://ja.wikipedia.org/wiki/チケット駆動開発
『チケット駆動開発』の何が良いの? ● 作業のINPUTとOUTPUTが紐づく。 ● その作業をしたのはなぜ?を説明し易くな る。 ● このINPUTからどんなOUTPUTが出てき たのか?が簡単にわかる。 ● 誰がどんなことしたのか?もよくわかる。 →自然とトレーサビリティが上がる。
チケット『駆動』? その1 ● 「はじめにチケットありき。」 ● 「チケットなしの作業禁止。」 – チケットがない作業は闇作業。 ● 「チケットなしのコミット禁止。」 – チケットがないコミットは闇コミット。 ● チケットにより作業のインプット≒原因≒ 「なぜ」を明確にする。 ● 作業説明のお供にチケットを。 ● 作業の過程で確認したこともチケットに 記録していく。
チケット『駆動』? その2 ● プロジェクトの流れ。 ● リーダーは、作業をチケットとして登録。 ● メンバーは、チケットをサインアップ。 ● メンバーは、作業が完了したらチケットのス テータスを「解決」に変更。 ● リーダーは、メンバーの成果物を確認し、 – Okならチケットのステータスを完了にして終了。 – Ngならまたメンバーに差し戻し。OKが出るまで繰り 返す。
ふつう仕事はこんな流れ。 ● INPUTを受け取り、 ● PROCESSして、 ● OUTPUTを出す。 INPUT PROCESS OUTPUT
もう少し補足すると 作業説明 完了報告 人 リーダー メンバー リーダー レビュー 情 INPUT PROCESS 報 OUTPUT チケット コミット
バージョン管理ツールとチケットの連携 ● チケット駆動開発では、OUTPUT(コミッ ト)とINPUT(チケット)が紐付く。 ● コミットログに特定のキーワードを入れるこ とにより、チケットと紐付けが可能。 ● 明確に、かつ、記録として残る。 ● チケット(INPUT)に対して、何を行ったか (コミット)。 ● この変更(コミット)は、なぜ行ったのか(チ ケット) ● 高いトレーサビリティを簡単に実現。
画面:チケットからリビジョン参照 コミットメッセージにキーワードと チケットナンバーを書くと、 Redmineが自動でチケットと紐付けてくれる。 さらに、チケットのステータスまで変えてくれる。
画面:リポジトリブラウザ
画面:リビジョンからチケット参照 リビジョンから関連するチケットが 紐づく。
高トレーサビリティを簡単に実現 ● 「簡単」に ● 例:1件の不具合対応のため、1つの設計 書と2つのソースファイルと、2つのテスト コードに変更が加わった、とかが幾つも発 生すると大変。 ● 不具合を記録したチケットから、関係するリ ビジョンのリンクをクリックすれば修正した ファイルがどれとどれかすぐに分かる。
その他 『Redmine』にまつわる 色々なこと。
Redmine導入の注意点 ● 人重要! ● ツールを入れれば解決するものでもない。 ● チケットを放置しないように日々確認&行 動する。朝会・夕会で確認すると良い。 ● そのようなチーム作りが重要。 ● 最初はゲリラ活動で! ● 最初は「チーム用の情報共有の場」兼 「自分用タスク管理ツール」として始める。 そしてだんだんと周りの人に広げていく。
以上 ご清聴ありがとう ございました。

20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』