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

2014年6月24日

GitHub User Group主催のGitHub Kaigiが6月1日、都内で開催されました。GitHubを利用した開発はスタートアップやオンラインサービス系の企業などを中心に広まりつつあり、いままさに数多くのノウハウの交換が求められているツールでもあります。

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

はてなブログチームの開発フローとGitHub

Twitterでは@shiba_yu36と名乗っています。はてなのはてなブログチームに所属しています。

fig

今日は、はてなブログチームでの開発フローの課題とその解決について、お話ししていこうと思います。

はてなブログチームは「はてなブログ」を作っています。エンジニアが5人くらい、デザイナーが2人くらいでやっています。

fig

このメンバーでPull Requestを毎月170くらい、Commitはだいたい1300くらい。リリースは、月に45リリースくらいしています。

fig

これをいまのところGitHub Enterpriseを使ってやっています。

いまは開発速度を保っていますが、かつては開発フローの問題などがあり、徐々に改善をしていったので、どういう改善をしたのか、タスク管理やレビュー、リリースについて話していきます。

fig

ブログチームでの開発の流れ

ブログチームでの開発の流れは、issueを登録してアサインし、GitHub Enterprise上でそれに対応するbranchを作成し、開発してレビューしてmerge。mergeがたまったらリリース、となっています。

fig

基本的に3種類のブランチがあり、masterは本番と全く同一で、developは開発ブランチ。あとは機能ごとのfeature branchがあります。

図にするとこういう感じで、issueを登録したら対応するfeature branchを作って、レビューが完了したらdevelopブランチにmergeして、たまっていったらmasterブランチにpull requestを送ってリリースします。

fig

タスク管理について

ブログチームでは以前、タスク管理についてRedmineメインの時代と、GitHubのissuesを使っている時代がありました。

Redmineメインの時代では、タスクをRedmineで管理してコードレビューはGitHubを使っていました。エンジニアはRedmineとGitHubのPull Requestの両方を見ながら作業することになり、もしかしたらいまは両方が連係するのかもしれませんが当時は連係もうまくいかなくて、開発効率が上がりませんでした。

fig

そこでツールを1つにするため、GitHubのissuesだけにしよう、ということになりました。タスク管理はGitHubのIssuesのみ、コードレビューはPull Requestです。これで開発者が見るべきツールが減ってコードとの連係もできるため、開発の効率が上がりました。

fig

しかし数カ月後には、やはり問題が起きます。例えば、いまチームで重要な問題というのがどんどん分からなくなってきたんですね。issuesは優先度とか締め切りとかがないので。

fig

それに、issuesに40個くらい登録されてしまうと、アサインはできても、もう誰が何をやっているのかどんどん分からなくなってきました。結果として、開発者の効率は良くなりましたが、チームで何が起きているのか誰が何をしているのかマネージャが分からなくなってしまいました。

fig

そこで最近では、issuesをメインにしつつ重要なものや進行中のものが分かるようにカンバンも使って管理しています。

fig

issuesにはすべてのタスクが入っていて、エンジニアもデザイナもマネージャもサポートも誰でも追加していいと言っています。追加されたタスクは、毎日エンジニアが集まって、やるかやらないかなどを検討します。

カンバンはそのなかで、マネージャや朝会で重要だから追加しておこう、というものを選択して入れています。

カンバンは2枚あり、重要なものタスクリストと、重要なものの進捗を示しています。

fig
fig

開発者は一日中ほとんどGitHubのissuesを見て、マネージャや朝会ではホワイトボードを見る、という感じになっています。これで重要なものは把握しつつ、開発者に効率のよい管理ができています。

fig

≫後編に続きます。後編ではGitHubに関連したレビューやリリースの方法について解説しています。

GitHub Kaigi 2014

あわせて読みたい

プログラミング言語 開発ツール GitHub




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

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

最新記事10本