はてなブログチームの開発フローと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

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

タグ : GitHub , 開発ツール

≫次の記事
はてなブログチームの開発フローとGitHub(後編)。GitHub Kaigi 2014
≪前の記事
W3CのHTML5仕様が勧告候補から最終草案へ戻り、秋には再び勧告候補へ

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