gitだからこそできるチケット駆動開発のやり方

ここ数ヶ月の成果。やっぱり中心にはgitがある。

チケット駆動開発の良さはわかっていたが、なかなかうまくいかないなぁと思っていたが、gitをちゃんと使うようになってそれができるようになってきた。

チケット駆動開発を実践するにはまずはチケットをきらないといけない。けど、それができない。やっぱりいきなり手をつけちゃうんだよね。それってなんでそうなっちゃんだろうと常々思っていた。

それをある意味抑制するやり方。今やっている方法は、作業するなら作業用のブランチを切れ!それにはチケット番号を付けろ!という方式にしている。

たとえば会員管理の機能に追加したい場合は以下のような手順になる。

  1. 会員管理を拡張したいなぁ
  2. じゃRedmineでチケットを切るぞ
  3. チケット番号が振られた(たとえば #567 だとする)
  4. さぁ、ブランチ切るか(members_567)
  5. そのブランチで作業開始!

濱野さんがWEB+DBでも入門Gitでもかかれている「トピックブランチ」というものの良さが本当に現れてくる。

Subversionとかではできないことがgitではできる。つまり、作りたいだけ気軽にブランチがきれて、緊急度の高いものだけ先にmasterにマージしてリリースするとかできる。これは精神的にはかなり楽。

Subversionとかではgitのように気軽にブランチをきって、それを並行ですすめるとかできなかったし、この機能をリリースしようとするとまだリリースする必要のないこの機能も併せてリリースされちゃうんだよね・・・みたいなことは起きない。

この数ヶ月でいうと自分の作業として3つ4つのブランチをもっていることなんて普通だったし、そいつらをmergeするとかなんの恐怖もない。数名のチームで仕事をしているとすんごい数のブランチができるけど、競合して困ったことなんてほとんどない。

個人レベルの気持ちよさもgitにはあるけど、プロジェクト運営的にもgitはかなりプラスになるなぁと実感できた数ヶ月だった。

WEB+DBおよび入門Gitで気合いをいれて見るべきなのは、ブランチの使い方・育て方だなぁと。それはそういう哲学で作られていて、それを実践できる仕組みがあるからこそ安心してそれができることは本当に幸せだぁと思う。

追記
このやり方をするとチケットの粒度もなんとなくいい感じのものになっていく気がする。一つのチケットであれもこれも書くとそのブランチでやることがあれもこれもとなるので、やっぱり分けたくなる。相乗効果は高いと思う。