teratail blog

2015/01/08 Thu 15:49

5622 PV

gitlabのローカライズ -teratail開発チームでの導入事例-

はじめまして。
teratailのシステム担当者 本橋です。

今回は、teratail開発チームで取り入れられている、"gitlab-flow"についての話題です。
特に、そのgitlab-flowをteratail開発チーム内で
いかにローカライズして使っているかというところをお話したいと思います。

はじめに~gitlab-flowとは~

強力で柔軟な分散型バージョン管理システムであるgitですが、
その有用性の弊害として、自由に利用できすぎるためワークフローが煩雑になり、
じっくりコトコト煮込んだ秘伝のソースコードのようなhistoryが各所で生まれていました。
それを解決するために提唱され多くの開発チームに採用されたのがgit flowです。
その後、pull request型の開発フローを用意したgithub-flowが生まれ、
gitlabの流行とともにgitlab-flowというものが提唱されました。
gitlab-flowの大きな特徴がissueとbranchの1-1の関係です。
ごく小さな修正のようなもの以外の全ての開発作業がissueのスタートから開始します。
そしてissueに沿ったbranchは、githubでいうpull requestであるmerge requestの承認をもってcloseされます。

細かい説明については、こちらのページ 【翻訳】GitLab flowから学ぶワークフローの実践 を参照ください。

gitlab-flow導入以前に開発チームが抱えていた問題

 gitlab-flow導入以前 

gitlab-flow導入以前
masterとfeatures branchのみで、issueとの関連なく、
mergeするポイントが少なくリリース前にconflictのチェックが多くなる。
また、バグが有った時などmasterを直接触ることになり、merge漏れなどが発生しやすい。

 gitlab-flow導入後 

イメージ説明
release, hotfixが追加され、features branchを細かくすることにより、
issueとの関連性が高まり、mergeするポイントを増やしレビューの粒度が小さくなった。
何かをするときにどこを触ればいいかが明確になり、コミュニケーションコストが小さくなった。

gitlab-flow導入後に解決されたこと

release, hotfixが追加され、features branchを細かくすることにより、 issueとの関連性が高まり、mergeするポイントを増やしレビューの粒度が小さくなりました。 何かをするときにどこを触ればいいかが明確になり、コミュニケーションコストが小さくなりました。

teratail開発チームでのgitlab-flow導入事例

・issueの管理
teratailチームではタスク管理にtrelloを利用しています。 その中で、開発タスクに落とし込んだものをissueとして作成する決まりとなっています。 その際登録するmilestoneは週に1,2回設定している、リリース日{YYYYMMDD}を設定します。

・feature brancheのルール
gitlab-flowではbranche名は{issue_number}_{title}となっていますが、teratailプロジェクトでは{milestone}_{issue_number}としています。
エンジニアが利用しているエディタからある程度直感的に利用するためです。
また、issueごとではなく、milestone単位のbrancheも存在します。
リリースが決まった日付でしかも頻度が比較的高いので、大きな機能や長期的なもの以外では新たなbrancheを作成するのではなく一つのbranchにmergeしてしまっています。
この辺りのbranche運用はまだまだ試行錯誤しながら変わっていっています。

・reviewのルール
各feature branchには作業結果が作業者よりmerge requestされます。 レビュアーとしてアサインされた人が最低一人全ての作業をレビューし、 取り下げ、コメント、承認を行います。 これにより、デザインの修正などコミュニケーションが漏れがちなものも、影響範囲の確認漏れが減りました。

最後に

フロント&バックエンドエンジニア・デザイナー製作のコミュニケーションは変わったが、 チームとしてディレクターとの関わり方は変わらない。 スクラムの進め方とバッティングする箇所もあり、提唱されたままのgitlab-flowを実行することはteratailチームでは難しかったです。 また、これはツールだけではなく、チームビルディングや開発自体にも言えますが、 フレームワークは開発規模や人間性により最適なものが違ってくるので、 最適なものの選定、いろんなカスタマイズをしてください。

今後ともteratailをよろしくお願い致します。

コメント(0)

人気の記事

タグ一覧

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る