はてなブログチームの開発フローとGitHub(後編)。GitHub Kaigi 2014

2014年6月24日

GitHub User Group主催のGitHub Kaigiが6月1日、都内で開催されました。

本記事ではGitHub Kaigiの2つ目のセッションとなった柴崎優季氏の「はてなブログチームの開発フローとGitHub」の内容をダイジェストで紹介します。

(本記事は「はてなブログチームの開発フローとGitHub(前編)。GitHub Kaigi 2014」の続きです)

GitHubとレビュー

以前は同僚に、「Pull Requestをしたのでレビューをお願いします」と詳しい人に個別にお願いするパターン。

fig

あるいは開発者が自分でPull Requestのなかからそれっぽい奴をさがしてレビューするか、という2パターンでやっていました。

fig

これもあんまりうまくいかなかったんですね。Pull Requestの状態が分からないので、いまレビューしてもらいたいのか、WIP(Work In Progress:仕掛かり中)で修正中なのか、レビューがもう終わっているのか。分からないので面倒になってレビューをためらうと。

fig

その結果レビューが消化されず、Pull Requestがすごい量になっているのだけど、誰がレビューするんだということで固まってしまうとか、ベテラン開発者がひたすらレビューをし続けるはめになるとか。

fig

GitHubのレビューツールはいいのですが、レビューの促進にはならないので、最近ではレビューの状態をはっきりさせようとか、レビュー依頼の一覧を分かりやすくしようとか、みんなでレビューしようという雰囲気作りをしています。

そのためにやっているのが、レビュー状態ラベルとレビュータイムです。

レビュー状態ラベルは、レビュー状態をはっきりさせるのと、レビュー依頼一覧を分かりやすくする取り組みで、Pull Requestに分かりやすいラベルを付けるというもの。

今まさにレビューして欲しいときに「レビュー依頼」ラベルを付けて、レビューする人は「レビュー中」ラベルを付け、レビューしてコメントを付けたらレビューした人が「レビュー完了ラベル」を。それを見て、レビュー依頼をした人がなにもなければマージ、修正をしたら再レビュー依頼として「レビュー依頼」ラベルを付けると。

fig

issuesはラベル一覧を見ることができるので、いまレビューしてほしいものが分かるようになるのと、自分にアサインされているものの一覧も見ることができます。

fig

みんなでレビューする雰囲気作りのための取り組みとして、レビュータイムをもうけています。レビュータイムは、毎日ランチ後の14時にレビュー依頼タスクを片っ端からみんなで見るものです。

fig

その時間になるとボットに言われてやりはじめると。

fig

レビューのきっかけができて、毎日みんなでレビューするようになりました。

GitHubとリリース

最後にリリースについて。developブランチからmasterにマージしてリリースしていますが、デプロイ自体はコマンド一発でできるようにしています。

fig

ただ、実際にはデプロイ作業以外にもリリースに必要なものがあって、それはマネージャにそもそもデプロイしてもビジネス的にいいですかとか、リリース前に検証環境でみんなで最終確認しましょうとか、そういうのがあるのでなかなか自動化できていなかったんですね。

fig

ですからマネージャに確認せずにリリースしてしまったり、自動化されていない部分を教えないと新人がリリース作業をできなかったり。

そこで最近ではリリース用のPull Requestに手順をまとめるようにしています。developブランチからmasterブランチへのPull Requestを「リリース用のPull Request」と言っていて、リリースされる内容や誰がやったのか、マネージャに確認しましょうと言ったチェックボックスなどのチェックリストなど、これをコマンド一発で作成できるようにしています。

fig

これでリリースミスが減って、誰でもリリースできるようになりました。

fig

このテンプレートを作るツールをgit-pr-releaseとして公開しています。

まとめ

まとめです。

タスク管理はIssesとカンバンで、レビューはレビューラベルやレビュータイムで、リリースはリリース用のPull Requestやgit-pr-releaseなどを使うようにしました。

fig

こんな感じで、はてなブログチームはGitHubをメインに活用していますが、全部がふまくいっているわけではなくて、問題のたびに解決方法を検討しています。

ワークフローは改善し続けることが大事だと思っていてます。

GitHub Kaigi 2014

このエントリーをはてなブックマークに追加
Bookmark this on Delicious

タグ : GitHub , 開発ツール

≪前の記事
はてなブログチームの開発フローとGitHub(前編)。GitHub Kaigi 2014

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


新サイト「Publickey Topics」始めました!


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed





アクセスランキング - 過去7日間

  1. Fusion-ioがSanDiskによる買収合意へ。迅速なグローバル展開を優先させるためか
  2. GitHub実践入門、Pull Requestによる開発の変革。GitHub Kaigi 2014
  3. 日本Nginxユーザ会が発足。開発者Igor Sysoev氏が語る、Nginxが生まれ、商用化された理由
  4. 機械学習サービス「Microsoft Azure Machine Learning」公開プレビューへ。低コストで手軽に機械学習の実装が可能に
  5. Facebook、オープンハードなスイッチ「Wedge」と、対応Linux OS「FBOSS」を発表
  6. W3CのHTML5仕様が勧告候補から最終草案へ戻り、秋には再び勧告候補へ
  7. クラウドでSSDストレージ提供が広がる。Google Cloud Platform、Amazonクラウドが相次いでSSDベースのストレージ提供開始
  8. 今からでも間に合うDockerの基礎。コンテナとは何か、Dockerfileとは何か。Docker Meetup Tokyo #2
  9. 次期Internet Explorerの機能を先行試用できる「Internet Explorer Developer Channel」が公開。ゲームパッドAPI、自動テスト用APIのWebDriverなど搭載
  10. 最近よく目にする「フルスタックエンジニア」とは何だろうか?
  11. 「モバイルBaaSはPaaSに統合されていくだろう」、Cloud Foundryを製品化したPivotalのモバイルCTOに聞く
  12. [速報]Docker Hub発表。ビルド、テスト、デプロイの自動化、Dockerイメージの管理など。Dockerのプラットフォーム化を推進
  13. Gitクライアントの「SourceTree for Windows」、日本語化された最新版が無償公開、アトラシアン
  14. Publickey Smar
  15. [速報]Oracleデータベースをインメモリ化する「Oracle Database In-Memory」、性能を数百倍高速化、来月出荷へ

Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus