Redmineでチケット駆動開発をAgileに運用するための4つの方法
Redmineでチケット駆動開発をAgileに運用するための方法をもう一度まとめておく。
あくまでも僕の一意見なので参考までに。
Agile開発の肝はイテレーションにあり: プログラマの思索
バージョンのないRedmineプロジェクト~TiDD初心者が陥りやすい罠: プログラマの思索
TiDD初心者が陥りやすい罠part2~工程単位のRedmineプロジェクトやリリース予定バージョン: プログラマの思索
【続】TiDD初心者が陥りやすい罠part2~工程単位のRedmineプロジェクトやリリース予定バージョン: プログラマの思索
【Redmineでチケット駆動開発をAgileに運用するための4つの方法】
(1)RedmineチケットをXPのタスクカードのように扱う (Ticket First)
(2)Redmineチケットに構成管理情報をリンクさせる (No Ticket, No Commit!)
(3)イテレーションをビルドモジュールのリリース予定バージョンに対応付ける
(4)ビルドモジュール(コンポーネント)ごとにRedmineプロジェクトを作る
【解説】
(1)チケットは障害報告書だけでなく、仕様変更もタスクも扱う。
チケットは作業指示書である。
チケットは仕様書ではなく、どんな仕様を実装するかという作業内容や、どのように実装していったのか、という作業履歴が書かれている。
チケットに作業の予定日や実施した作業日、予定工数や実績工数を毎日入力する運用にすれば、進捗報告の代わりになる。
そして、チケット集計機能を使えば、ガントチャートやかんばんなどで、リアルタイムに進捗を確認できる。
(2)SVNコミット時に、コミットログに必ずチケットNoと修正理由を書く。
例えば、「refs #10 リンクを直した」「fixes #11 パッチを取り込んだ」など。
すると、チケットにSVNリビジョンの履歴が残るので、どんなコミットをしたのか、が分かるようになる。
一度、この運用ルールに慣れてしまうと、チケットNo無しのコミットは修正理由が後で分からなくなるので怖くなる。
(3)Redmineバージョンはイテレーションに紐づけて、進捗が100%になったらリリースするように運用する。
つまり、Redmineバージョンはビルドモジュールのリリース予定バージョンに対応付ける。
これが小規模リリースになる。
駄目な開発チームは、Redmineバージョンが工程や機能の単位などに分かれていて、リリースできるモジュールのバージョンに対応していないため、イテレーション管理がやりにくくなる。
特にシステムテストや受入テストで厳格に障害修正を管理してリリースするプロセスでは、Redmineのロードマップがリリース計画に対応付けられていないため、リリース管理が運用しづらい。
(4)Redmineプロジェクトは、動くモジュール、リリース対象のコンポーネント単位に対応付ける。
基本は、ブランチ(コードライン)単位にRedmineプロジェクトをアサインする。
すると、ビルドモジュールに関わる修正やリリース作業などは全て、一つのRedmineプロジェクトで一括管理できる。
駄目な大規模プロジェクトでは、工程単位にRedmineプロジェクトをアサインしているため、突発的なタスクをどこのプロジェクトにアサインしたらよいか迷うし、どのバージョンにどんな機能をリリースするのかというロードマップがあちこちに散在してしまって、Agileに開発しにくい。
Redmineを運用してみると、それぞれの機能は実はこういう目的のために作られていたのか、と改めて気づく時が多く、それがすごく楽しい。
Agile開発だけでなく、ソフトウェア開発で発生する作業をサポートする機能がとても面白い。
プロジェクトとブランチ(trunk)、バージョンとイテレーション、チケットとタスクカード/ストーリーカード、ワークフローとチケットのトラッカー、チケットのコピーと複製、関連チケット、作業分類と工数出力機能、ガントチャートとチケットの開始・終了日、チケットとSCM連携、サマリとチケットのステータス、ロードマップと変更履歴、ニュース、フォーラムのスティッキー、など数々の機能にはそれぞれ意味がある。
更に、RedmineもVer1.1に上がってもっと機能も改良され、数多のプラグインで機能拡張もできる。
色々試してみたい。
| 固定リンク
「Redmine」カテゴリの記事
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- Redmineで持ち株管理する事例(2024.04.21)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
「チケット駆動開発」カテゴリの記事
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
「Agile」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- 概念モデリングや設計原則は進化しているのか(2023.10.21)
コメント