ReviewBoardとMercurial+TiDDは相性が良い?
Mercurialによるチケット駆動開発の仕組みがコードレビューのプロセスに似ているアイデアをメモ。
#ラフなメモ書き。
【元ネタ】
ReviewBoard | Documentation | General Workflow
Mercurialによるチケット駆動開発は強力だ!: プログラマの思索
コードレビューWebシステムReviewBoardには、「pre-commit review」「post-commit review」の2種類のやり方がある。
ReviewBoardは「pre-commit review」の考え方で作られている。
つまり、改変したコードをtrunkにコミットする前にレビューを受けるプロセス。
多分、オープンソースの開発ではよく使われているコードレビュー手法だと思う。
開発者は、SVNなどでdiffを作り、ReviewBoardリクエストに登録し、レビューアのレビューを受ける。
つまり、trunkにすぐにコミットせず、自分のローカルに修正パッチを保持し、レビューアの指摘を反映して、OKが出たら、trunkへ初めてコミットできる。
このやり方は、trunkに中途半端なソースをコミットしないための運用ルール。
「post-commit review」は、改変したソースをtrunkとは別ブランチに作り、レビューを受けるプロセス。
「post-commit review」のレビュー方法は、Mercurial+TiDDでもっと簡単になるはず。
そのアイデアをまとめてみた。
つまり、チケット単位にMercurialのトピックブランチを作り、担当者はトピックブランチでガンガン開発する。
そして、ソース修正が終われば、チケットを解決ステータスにし、ReviewBoardリクエストへ登録してレビューを依頼する。
この時、ReviewBoardリクエストとRedmineチケットを相互リンクさせておく。
そして、レビューアの指摘を受けてMercurialのトピックブランチ上で修正し、レビューOKが出たら、初めてtrunkへpushする。
MercurialやGitならば、トピックブランチの管理が簡単で、trunkから最新機能を随時pullすればいい。
当然このやり方でも、trunkに中途半端なソースはマージされないので、trunkの品質は保たれる。
ReviewBoard上のコードレビューはRedmineチケットと紐づいているため、Redmineのワークフロー管理機能を使って、レビュー用プロセスを容易に管理できる。
もちろん、進捗管理も可能だ。
おそらく、コードレビューが重要と誰もが知っているのに実プロジェクトで運用できない原因は、分散バージョン管理のようなインフラがない為にソースの品質管理が難しく、ReviewBoard+TiDDのようなインフラがない為にコードレビューをワークフロー管理するプロセスが曖昧だからだろう。
Mercurial、TestLink、Hudsonなどのツールと連携したチケット駆動開発には色んな可能性を感じている。
ツールを駆使して、SW開発の生産性を上げてプロセス改善していくやり方は、もっと研究されていい気がする。
| 固定リンク
「廃止Mercurial」カテゴリの記事
- GitHubはオープンソースのプロセスを標準化した(2015.06.11)
- 「反復型ソフトウェア開発」はソフトウェア工学の良書(2013.02.09)
- Mercurialに取り込まれたコミュニティ由来の機能一覧(2013.01.12)
- WordやExcelから直接Mercurialへコミットできるアドオンmsofficehg(2012.12.07)
- RedmineでSubversion リポジトリ表示を高速化する方法(2012.11.23)
「チケット駆動開発」カテゴリの記事
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
コメント