redmineで始めるチケット駆動開発
DESCRIPTION
オープンソースカンファレンス2009 Hokkaido Redmineで始めるチケット駆動開発 佐藤琢哉(nazo) http://labs.nazone.info/TRANSCRIPT
![Page 1: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/1.jpg)
PHP 部の紹介も終わったところで
![Page 2: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/2.jpg)
Redmine で始めるチケット駆動開発
佐藤琢哉LOCAL PHP 部
![Page 3: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/3.jpg)
あれ、ここってPHP 部の時間じゃ…
![Page 4: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/4.jpg)
技術的な話はほとんど出てきません
![Page 5: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/5.jpg)
開発手法の話なのでPHP プログラマにも
安心して使えます
![Page 6: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/6.jpg)
自己紹介• 佐藤琢哉 aka nazo• 旭川出身 東京在住• 株式会社 RYUS 所属 (http://ryus.co.jp)• rhaco-ja ?• LOCAL PHP 部• Hatena : nazone• twitter/wassr : nazo
![Page 7: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/7.jpg)
LOCAL の人になりました
![Page 8: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/8.jpg)
アジェンダ• チケット駆動開発について• Redmine について• 具体的な使い方• まとめとおまけ
![Page 9: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/9.jpg)
そもそも何の話?
![Page 10: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/10.jpg)
Redmine ?チケット駆動開発?
![Page 11: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/11.jpg)
日本語でおk
![Page 12: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/12.jpg)
タスク管理を効率的に行うための
話です
![Page 13: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/13.jpg)
わかりづらい説明
![Page 14: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/14.jpg)
チケット駆動開発
![Page 15: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/15.jpg)
チケット駆動開発?
![Page 16: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/16.jpg)
チケット• タスクの最小単位• 例えば「検索フォームで未入力の状態で
検索するとエラーになるので修正する」• 例えば「新規登録画面を実装する」• バグ登録フォームで登録したバグ1つ• バグ以外の新規開発もチケット
![Page 17: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/17.jpg)
一つのタスク=
チケット
![Page 18: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/18.jpg)
チケット駆動開発• タスクをチケットの単位まで細かく区
切って、それを消化していく開発手法• すべてのタスクがチケットとして存在する
ので、タスクの量がわかる• チケットにステータスが付いているので、
タスクの消化量がわかる
![Page 19: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/19.jpg)
チケットの消化量=
進捗具合
![Page 20: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/20.jpg)
どのくらい進んでいるかがチケットの量でわ
かる
![Page 21: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/21.jpg)
プログラミングに限らず使える
![Page 22: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/22.jpg)
普通の進捗管理の問題点• 誰が何してるのかわからない!– あの機能誰に振ったっけ?– あれ作るのに他の人の作業の完了を待たない
といけない?– その機能大きいから他の人と分担させたいん
だけど…え、全部に手をつけてるから分担できない?
![Page 23: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/23.jpg)
普通の進捗管理の問題点• どこまでの機能が完成予定なのかわから
ない– 次回のリリースはどこまで含めるんだっけ?– あの機能は当然完成してるものだと思ってた
んだけど…
![Page 24: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/24.jpg)
それEXCEL で
できるよ!
![Page 25: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/25.jpg)
![Page 26: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/26.jpg)
EXCEL ガントチャートの問題点• ガントチャートだからそもそも1日単位
でしかタスクをアサインできない– 1日に何時間振るの?– 1日のタスクの順序は?– そのタスクは現在どういう状況?
![Page 27: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/27.jpg)
EXCEL ガントチャートの問題点• そもそも修正が面倒– 一人で全部設定するの?– 複数人でやったら誰がどこを編集したかわか
る?
![Page 28: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/28.jpg)
そこでチケット駆動開発
![Page 29: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/29.jpg)
そして
![Page 30: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/30.jpg)
チケット駆動開発のための
Redmine
![Page 31: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/31.jpg)
注意
![Page 32: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/32.jpg)
チケット駆動開発で調べると
いろいろ出てきますが
![Page 33: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/33.jpg)
どれが正しい方法というわけではありません
![Page 34: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/34.jpg)
今回の紹介は私の個人的な体験に
基づいて作成したものです
![Page 35: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/35.jpg)
どれが正しいというわけではないので、
皆さんの状況に合わせてご利用下さい
![Page 36: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/36.jpg)
Redmine とチケット駆動開発
![Page 37: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/37.jpg)
Redmine ?
![Page 38: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/38.jpg)
![Page 39: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/39.jpg)
Redmine とは• Ruby On Rails をベースに作られた
Issue Tracking System– (懸案管理システム: ITS )
• いわゆる trac とか Mantis みたいなの• チケットを登録して、チケットの管理を行
うためのシステム
![Page 40: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/40.jpg)
trac
![Page 41: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/41.jpg)
Mantis
![Page 42: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/42.jpg)
Redmine のいいところ• 複数プロジェクトの管理ができる– 多数の案件を抱えている人には必須
• 豊富な標準機能– チケット、 Wiki 、タイムライン、ガント
チャート、カレンダー、リポジトリ、ファイル管理、 etc…
• 標準で日本語対応
![Page 43: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/43.jpg)
インストール方法とか
• http://redmine.jp/• に大体載ってます• ryus.co.jp のスタッフブログでも少し書
きました
![Page 44: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/44.jpg)
インストールの説明とかしても仕方ないので
![Page 45: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/45.jpg)
実際の作業の流れを追ってみましょう
![Page 46: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/46.jpg)
タスクの進め方
![Page 47: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/47.jpg)
ワークフロータスク発生
チケット登録 担当者アサイン
実作業 解決
作業確認 終了
管理者タスク
開発者タスク
![Page 48: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/48.jpg)
ここから実際の流れ
![Page 49: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/49.jpg)
タスク発生!
![Page 50: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/50.jpg)
タスクをチケットとして登録
![Page 51: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/51.jpg)
タスクをチケットとして登録
![Page 52: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/52.jpg)
チケット登録時の説明を
簡単にすると
![Page 53: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/53.jpg)
1つのチケットはあまり時間が
かからないように
![Page 54: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/54.jpg)
チケットを見て疑問点が
ないように
![Page 55: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/55.jpg)
以上!
![Page 56: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/56.jpg)
以下詳細
![Page 57: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/57.jpg)
タスクをチケットとして登録• ほどほどに細かく分ける– 当然細かすぎてもよくない– 最初は細かすぎると思うくらいでいいかも
• 1つのチケットは1人の担当者で解決できるようにする
• ケースバイケース
![Page 58: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/58.jpg)
タスクをチケットとして登録• 時間がかかりすぎている、いつ終わるか
わからない、と感じたらもっと細かくする
• 明らかにまとめたほうがいいと感じたらまとめる
• 1つのタスクを解決するのに、別の大きな問題が発生したら、途中ででもチケットを分割する
![Page 59: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/59.jpg)
1つのチケットは最大でも
1日で終わるレベル
![Page 60: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/60.jpg)
チケット入力フォーム
![Page 61: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/61.jpg)
入力フォーム説明
![Page 62: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/62.jpg)
トラッカー• チケットの大枠の分類。全プロジェクト共通
![Page 63: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/63.jpg)
題名• そのチケットの内容を的確に表すもの• 短いよりは長いほうがいいが、長すぎない
ように– 「検索が動かない」よりは「検索結果が 0 件
になる」のほうがいい– 「検索が動かない」だと、「ボタンを押して
も反応しない」とか「次の画面が真っ白になる」とか「ボタンを押すと関係ない画面が表示された」という例も考えられる
![Page 64: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/64.jpg)
説明• そのチケットの内容を詳細に記述• 以下の要素が必須– 具体的な発生条件(わかる範囲まで調べる)
• URL• 入力内容
– その結果どうなるか– 本来期待される動作
• チケットを起こした後に担当者がチケットを起こした人に再度質問しないようにする
![Page 65: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/65.jpg)
ステータス• そのチケットの現状• とりあえず最初は当然「新規」
![Page 66: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/66.jpg)
優先度、担当者、開始日、期限日、予定工数、進捗、ファイル
• 説明不要
![Page 67: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/67.jpg)
Watchers
• このチケットを監視する人• 監視対象になると、マイページの
「ウォッチ中のチケット」で確認できる• 自分は起票者でも担当者でもないけど、
そのチケットの進捗を確認したい時などに使う
![Page 68: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/68.jpg)
関連するチケット• チケットを起こした後に設定可能• 「このチケットを終わらせるにはあのチ
ケットを先に終わらせないといけないよねー」みたいな時に設定する
• 片方で設定すると相互リンクされる
![Page 69: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/69.jpg)
チケットを起こしたら
![Page 70: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/70.jpg)
ワークフロータスク発生
チケット登録 担当者アサイン
実作業 解決
作業確認 終了
管理者タスク
開発者タスク
![Page 71: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/71.jpg)
担当者を決める
![Page 72: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/72.jpg)
担当者はチケットが割り振られたら
![Page 73: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/73.jpg)
ワークフロータスク発生
チケット登録 担当者アサイン
実作業 解決
作業確認 終了
管理者タスク
開発者タスク
![Page 74: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/74.jpg)
優先度や期限などから作業順序を判断し
作業を開始する
![Page 75: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/75.jpg)
担当者が作業中にするチケット操作
![Page 76: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/76.jpg)
進捗• 通常は 0%→100% で終了することが多い• 少し長めのチケットの場合、数時間おき
に進捗を更新するとスケジュールが把握しやすくなる
• 作業開始時はステータスを「担当」にする
![Page 77: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/77.jpg)
コメント(注記)• 作業中に気になったことや、メモしておき
たいことは随時記入する• 起票者と担当者が遠隔地にいる場合
( OSS 開発とかでありそう)、ここを「このチケットに対するフォーラム」的な扱いとして議論することもある
![Page 78: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/78.jpg)
こうして作業を進めていき
![Page 79: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/79.jpg)
終わった!と思ったら
![Page 80: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/80.jpg)
ワークフロータスク発生
チケット登録 担当者アサイン
実作業 解決
作業確認 終了
管理者タスク
開発者タスク
![Page 81: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/81.jpg)
解決に必要なもの• 確認方法• ソースコード• ステータスを「解決」にする
![Page 82: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/82.jpg)
まずコミットが
されていること
![Page 83: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/83.jpg)
コミット• プロジェクトのリポジトリを事前に設定• コミットログに「 refs #1111 」のよう
にチケット番号を書くと、そのチケットへの相互リンクが作られる
• コミットログに「 fixes #1111 」のようにチケット番号を書くと、そのチケットが自動的に解決状態になる(要設定)
• refs とか fixes の文字は任意に設定可能
![Page 84: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/84.jpg)
起票者が確認可能であること
![Page 85: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/85.jpg)
確認• Web アプリの場合はそれを確認する URL• その他の場合はどのテストを実行すると判別できるか、など
• 「私の環境では動いたんだけど…」とかの基本的なミスをなくすために、自分以外の環境で動作を確認できるようにする
![Page 86: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/86.jpg)
ワークフロータスク発生
チケット登録 担当者アサイン
実作業 解決
作業確認 終了
管理者タスク
開発者タスク
![Page 87: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/87.jpg)
確認• 問題があればフィードバック(差し戻
し)にする• フィードバックになったチケットは、そ
れだけで時間の無駄が発生しているということになるので、どうすればフィードバックになるチケットが無くなるかを考える必要がある。
![Page 88: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/88.jpg)
ワークフロータスク発生
チケット登録 担当者アサイン
実作業 解決
作業確認 終了
管理者タスク
開発者タスク
![Page 89: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/89.jpg)
終了• お疲れ様でした!
![Page 90: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/90.jpg)
「チケット駆動」の名の通り
![Page 91: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/91.jpg)
チケットの扱いが重要なので
![Page 92: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/92.jpg)
プロジェクトの体制や環境に合わせて
カスタマイズすると使いやすくなります
![Page 93: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/93.jpg)
ガントチャートとか
![Page 94: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/94.jpg)
あくまでおまけ程度の機能です
![Page 95: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/95.jpg)
「全ての開発作業がチケットとして
登録されている」状態を
目標としてみてください
![Page 96: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/96.jpg)
実際に弊社( RYUS )でも
使っています
![Page 97: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/97.jpg)
RYUS では…• しばらく Mantis で管理• Mantisちょっと機能たりなくね?• そこで Redmine• 移行スクリプトも標準であるよ!でもか
なり手を入れた
![Page 98: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/98.jpg)
RYUS では…• ステータスの追加–保留とか–却下とか– 一部 Mantis 時代の名残も
![Page 99: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/99.jpg)
CSS 調整大事
![Page 100: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/100.jpg)
チケット一覧カスタマイズ
![Page 101: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/101.jpg)
class とか ID とか最初から振られている
のでCSS側を変更するだけ
![Page 102: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/102.jpg)
その他便利機能
![Page 103: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/103.jpg)
ロードマップ• マイルストーン• 次回のリリースではどのチケットが close
されている必要があるか?を一覧できる• 予定工数を入れておけば、「トータルで
何時間かかるか」も見ることができる
![Page 104: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/104.jpg)
Wiki
• Textile記法• h1. 見出し• # リスト• チケット番号の自動リンク付き
( #1234 )• リビジョンへの自動リンク付き
( r1234 )
![Page 105: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/105.jpg)
フォーラム、ニュース• プロジェクト自体の報連相に• ニュースは Redmine のトップページに出
る
![Page 106: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/106.jpg)
リポジトリ連携• Git や Mercurial にも対応• 単純なリポジトリブラウザとしても便利• refs や fixes でチケットと連動• 設定するときは cron でリポジトリ情報を取得するようにする(説明省略)
![Page 107: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/107.jpg)
まとめ
![Page 108: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/108.jpg)
Redmine を使うと
![Page 109: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/109.jpg)
タスク管理が楽になる
![Page 110: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/110.jpg)
メリット• タスク管理がとにかく楽• Wiki とかもあるので情報の集約ができる• コミットとタスク(チケット)を関連付
けできる
![Page 111: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/111.jpg)
よくわかんないという方は
![Page 112: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/112.jpg)
とりあえずインストールして触ってみてください
![Page 113: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/113.jpg)
使ってみないとわかりません
![Page 114: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/114.jpg)
難点• インストールがやや面倒– Rails アプリの経験がないと…–Windows環境は更に難関
• API とか拡張方面に弱い– このへんは trac のほうが上
![Page 115: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/115.jpg)
インストールは楽なほうがいい
![Page 116: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/116.jpg)
PHP だともっと楽だよね!
![Page 117: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/117.jpg)
PHP でRedmine みたいなの
あればなぁ…
![Page 118: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/118.jpg)
PHP ならカスタマイズも楽なのになぁ…
![Page 119: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/119.jpg)
そこで
![Page 120: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/120.jpg)
Candycane
• 安藤祐介( yandod )さんが中心になって作られているオープンソースプロダクト
• CakePHP で Redmine を作る!• Redmine のコードをベースに CakePHP
に移植するのが第一目標• 将来的には独自路線の使いやすさを目指
す
![Page 121: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/121.jpg)
Candycane
![Page 122: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/122.jpg)
本当はこれの紹介を
重点的にしたかったのですが
![Page 123: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/123.jpg)
私が既にあまり関わっていない
ためそれほど紹介できませ
ん
![Page 124: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/124.jpg)
orz
![Page 125: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/125.jpg)
今夏公開予定!(らしい)
![Page 126: Redmineで始めるチケット駆動開発](https://reader036.vdocuments.pub/reader036/viewer/2022062513/55660256d8b42aa6628b49f0/html5/thumbnails/126.jpg)
おわり