レポート

GitHubが僕たちを,仕事の現場を変えた!──「GitHub Kaigi」レポート

この記事を読むのに必要な時間:およそ 5 分

2014年6月1日(日),東京・渋谷マークシティにおいて,GitHubユーザグループ主催によるイベント「GitHub Kaigi」が開催されました。500人の定員に対し800人を超える参加申し込みのあったこのイベントには,日本におけるGitHub活用の第一人者たちはもちろん,米GitHub社から招いた開発者たちも登壇し,いずれ劣らぬ濃いセッションが繰り広げられました。ここではその様子を紹介します。

GitHub実践入門 ── Pull Requestによる開発の変革

トップバッターとして登壇したのは,WEB+DB PRESS plusシリーズ『GitHub実践入門 ── Pull Requestによる開発の変革』の著者である大塚弘記氏です。

『GitHub実践入門』の著者,大塚弘記氏

『GitHub実践入門』の著者,大塚弘記氏

同氏はまず,「GitHubを利用した開発の世界を知る」「GitHubを(利用|活用)する違いを知る」「GitHub実践入門はガイドブック」の3つのメッセージを提示しました。

GitHubを利用した開発の世界

そもそも,GitHubを利用することによって開発にはどのような違いが生まれるのでしょうか? 同氏はGitHubを利用しない場合によくあることとして,「(あとで変更しようと思いつつ)なんとなくつけた変数名が,レビューの目にさらされないために本番環境でそのまま使われてしまう」という例を挙げました。しかしGitHubを利用すれば,その変数名について相談したい旨を書いておくことができ,ほかの開発者からのフィードバックが生まれます。

GitHubを使わない場合と使った場合とでは,コードを読む・読まれるといった「習慣」,コードの修正や開発者が学習する「機会」,レビューの結果生まれる「品質」そして開発者の「心理」が違ってくるわけです。

GitHubを「活用」した開発を実現する

これだけではありません。GitHubをただ使うにとどまらず,積極的に活用していくことによっても違いが生まれると大塚氏は述べます。

GitHubを単なる「コードを管理する道具」,Pull Request(以下,PR)「差分を入れてもらう機能」としてのみ使うにとどまらず,「コードの品質を高める道具」「対話・設計・改善のためのツール」という,開発者同士の建設的なコミュニケーションの場として「活用」すること。そのような開発の現場をを目指してほしいと訴えました。

とはいえ,そこに至るまでにはGitの基本や良いコミットメッセージの書き方,PRの使い方など,学ばなければならないことも多いでしょう。そういった知識やノウハウを体系的に知り,現場でGitHubを使えるようになるためのガイドブックとして『GitHub実践入門』を活用してほしいとのことでした。

「GitHub実践入門 ── Pull Requestによる開発の変革」セッションスライド

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

次のセッションは,(株)はてなの柴崎優季氏によるはてなブログ開発チームにおけるGitHub活用事例の紹介です。今回の発表では,はてなブログ開発のワークフローのなかでも「タスク管理」「レビュー」「リリース」の3つのフェーズが採り上げられました。

(株)はてな 柴崎優季氏。はてなブログの開発現場ではGitHubが存分に活用されていることが伺えました

(株)はてな 柴崎優季氏。はてなブログの開発現場ではGitHubが存分に活用されていることが伺えました

タスク管理におけるGitHub活用

開発チームはもともとタスク管理にRedmineを利用しており,GitHubの利用はPR時のコードレビューの時のみであったといいます。しかし,見なければならないツールが2つに分散することにより,開発者の効率が上がらないという問題が発生しました。

そこで,タスク管理にGitHubのIssue機能を使い,使うツールをGitHubに一本化する方針に変更。開発者の効率が上がりうまくいったと思われましたが……そこでも問題が発生します。Issue機能は優先度や締め切りを管理するしくみが足りないために,マネージャがチームの状況を俯瞰することが難しくなってしまったのです。

こうした問題を受けて,開発チームは重要なタスクを一覧するためのカンバンを導入しました。あくまでGitHubをメインとするものの,その補助としてホワイトボードのカンバンを併用することで,開発者とマネージャの生産性を両立させたのです。

コードレビューにおけるGitHub活用

続くトピックはコードレビューです。はてなブログ開発チームに当初起こっていた問題として,以下のようなものがあったといいます。

  • PRが「依頼中」なのか「レビューを受けて修正中」なのか「レビューが完了しマージを待っているもの」なのかといった,PRの状態がわからない
  • レビューが消化されずにPRが溜まってしまう

GitHubのレビューそのものの機能は非常に使いやすくても,促進するためのしくみは少なく,自分たちで工夫する必要があったのです。

そこで,レビュー状態がすぐにわかるようなラベルをGitHubのIssueに導入したり,毎日レビューを行う時間を設定してIRCで通知するしくみを作りました。これによってレビューを行うきっかけができ,PRの消化がはかどるようになったとのことです。

リリースにおけるGitHub活用

最後のトピックは,デプロイにおけるGitHubの活用方法の紹介でした。

コマンドひとつでデプロイを行えるしくみを実現していた開発チームですが,そのほかにも「マネージャへのリリースの確認」,「検証環境での最終確認」,「デプロイコマンドの実行そのもの」は自動化できていない状況でした。そのため,これらの手順を見落としてしまうなどの問題が発生していたといいます。

そこで開発チームは,リリース用のPRで作業手順書や検証事項などを自動で記入してくれるしくみを作成します。これによってリリースミスが減り,誰でもリリースできるようになりました。

以上のように,GitHubを最大限活用しつつも,起こった問題をちょっとした工夫で解決し,ワークフローを改善し続けているはてなブログ開発チーム。GitHubをチーム開発に利用しているエンジニアにとってはとても参考になる発表だったのではないでしょうか。

「はてなブログの開発フローとGitHub」セッションスライド

コメント

コメントの記入