「GitHub創設者が語る”立ち上げから利用者300万人までの軌跡”」に参加してきました

2013年2月1日に京都キャンパスプラザで開催された「GitHub創設者が語る”立ち上げから利用者300万人までの軌跡”」というイベントに参加してきました。

GitHub創設者が語る"立ち上げから利用者300万人までの軌跡" | PeaTiX

前半はGitHubの創業メンバーの一人のPJ Hyett氏(COO)によるプレゼンテーション、後半はScott Chacon氏(CIO)も交えてのQ&Aセッション構成。

GitHubの創業前から現在までの道のりや、GitHubで実際に行われているチームビルディングに関する話題が、主なテーマだったように思う。

話を聞いていて、個人的に参考になった部分をピックアップ。

必ずペアで仕事をする環境をつくる

会場からの質問で「GitHubのチームに、何らかのガイダンスが必要なメンバーが加わった場合にどのような工夫をしているか?」という旨の質問があった。

それに対する回答は、「GitHubでは必ずペアを組んで仕事をする環境を作っている。ガイダンスが必要な場合もペアを組むことで問題なく仕事ができるようになる」とのこと。

僕が今いる開発チームは、社員僕1人、アルバイト・インターン合わせて5人くらいの小さなチーム。そんな小さなチームでも、仕事に必要な知識を伝えたり、教えたりする役割が僕一人に集まると何だかパンクしてしまいそうになるときもある。

チームのメンバー同士にペアを組んでもらって、二人であーだこーだ話し合いながら問題を解決してもらうことで、誰か一人に依存する度合いも小さくなり、フラットなチームに近づけるんじゃないかと思った。

ペアを組むのにチームにどれくらいの人数が必要なのか気になるところだけど、数人規模のチームだったとしても不可能じゃないはず。

早速、来週から取り入れてみようと思った。

テストを200秒で終わらせるための工夫

GitHubのテストコードは実行するのに200秒かからないらしい。(1万以上のアサーション)

これを実現するために、テストコードの最適化には相当なリソースをかけているとのこと。

実行に時間がかかっているテストコードをピックアップし、それを改善するためにたくさんのリソースをつぎ込む。ボトルネックを次々とつぶしていくことで、全体としての実行速後もどんどん向上していく。

自分の仕事でも、最近テストコードの規模が大きくなってきて、少しずつ実行に時間がかかるようになってきたので、テストコードの最適化にも取り組んでいきたい。そう思うきっかけになった。

マネタイズを考えない機能追加

会場から「新機能を追加するときの判断はどのようにしているか?」という質問があった。機能追加は慎重に行わないと、すぐに複雑で使いにくいなアプリケーションできてしまいがちなので、僕個人的にも非常にきになるところ。

回答としては「僕達(COO, CIO)は機能追加の判断プロセスには関わっていない。誰かがGitHubに追加したい機能を実装し、それをチームメンバーが実際に試しにつかってみて、みんなが気に入ったものが公開される仕組みになっている。」とのこと。

GitHubにはプロダクトマネージャーは存在しておらず、エンジニアとデザイナーが自発的にどんな機能を追加すべきか考えて行動している。

面白かったのは、機能追加の判断基準に「マネタイズできるかどうか」は考えていないということ。お金になるかどうかではなく、「エンジニアがより便利に使えるかどうか」という判断基準でアプリケーションをつくっているらしい。

エンジニアにとって、自分が使いたい・使いやすいと思えるものをつくることでご飯をたべていける、というのはとても魅力的だと思う。GitHubではメンバー全員がそういった環境に魅力を感じるから、自発的に、そして情熱をもって働くことができるんだろう。

開発チームのメンバーが、自分が今作っているものを使いたい、もっと使いやすくしたいと思うかどうかが、うまくチームが前進してくための鍵になるんじゃないか。そう思ってくれる人は大事にすべきだし、どうすればみんなにそう思ってもらえるのか考えるのも大事なんだということに気付かされた。

まとめ

全体で1時間半ほどの長さの短いイベントだったけど、後半のQ&Aのセッションがかなり濃い内容で、自分の仕事に関してとても参考になる内容だった。

せっかく1000円払って参加したので、ぜひ自分の仕事に今回学んだ内容を活かしたい。(1000円は安すぎると思うけど)

ではでは。