Issue Driven Developmentの流れ
dev No Comments »Issue Driven Developmentについて。
Issueてなんだ → 「issueは、“議論されるべき課題”であり、必ずしもすでに害や困難が起こっていることを意味しません」(problemとissueの違いについて - 英語 - 教えて!goo)
「タスク&バグ」という感じで捉えています。
Issueを書き並べて、いっこいっこ潰していく開発手法です。Ticket Driven Developmentと同じ。
[Think IT] 第3回:チケットドリブン開発でバグ削減! (1/3)
開発の流れは以下。Github使ってやってます。
マイルストーンの設定
Githubのissuesではマイルストーンを設定することができます。「○○機能リリース」などと設定して使っています。
Issueの発行
現システムに対しての改善点や必要な機能などを洗い出し、どのマイルストーンに対して必要なものかを設定します。登録時にできるだけ担当者も決めるようにします。
開発
自分にAssignされたIssueをひとつ選び、作業に入ります。Issueごとにブランチを切るとよいです。(Issue #111の場合はこんな)
% git checkout -b issue111
(適当に作業します)
% git add .
% git commit -m '○○機能追加.Close #111'
コミットログを↑のように書いておくとpush時にGithubのIssueが閉じられます。
% git checkout master
% git merge issue111
% git push
ここまでやるとGithubのIssueが閉じられます。
% git branch -d issue111
push後、不要なブランチを消して次のIssueに取り掛かります。これの繰り返しです。
作業をしてるとIssueの内容と違うポイントが気になって編集したくなったりしますが、そこはぐっと我慢してちゃんとIssueを発行し別ブランチで作業するようにします。後で変更点を確認したくなった場合に探しやすいです。
TiDDの説明にもありますが、チケット無しのコミット禁止を守ることで意図のわからない変更がなくなってよいです。
ひとつのissueに向かうことで作業が散漫にならなくてよいです。あと、issueがどんどん消えて行くととても気持ちよいです。


