メルペイエキスパートチームの取り組み〜人類Gopher化計画の進捗報告〜

Merpay Advent Calendar 2019 の17日目は、メルペイ エキスパートチームの @tenntenn がお送りします。

筆者が所属するエキスパートチームでは「アウトプットをするところに技術は集まる」という考えのもと、工数の50%以上を技術コミュニティへの貢献に充てています。筆者はその中でもGoコミュニティを中心に活動しており、本記事では最近の活動について振り返ります。

人類Gopher化計画

筆者は「人類Gopher化計画」を掲げて、さまざまなバックグラウンドを持つ方にGoに触れてもらう活動をしています。名前は社内外で覚えてもらえるように少しふざけてキャッチーにしてありますが、活動自体はコツコツと行っています。

例えば、Goを学びたいと言ってもさまざまなバックグラウンドやスキルレベルの方がいます。効率よく学ぶためには、それぞれのスキルレベルに合わせた学び方やコミュニティが必要になるでしょう。同じレベル感で学ぶ人々が集まる場があると、質問や交流もしやすく、学習の助けとなります。そのため、筆者は下図のようにスキルレベルによってコミュニティを捉えています。

f:id:uedatakuya275:20191217134842p:plain

図のA〜Eのグループはスキルレベルによって異なりますが、AからB、BからDのように次のステップのコミュニティに参加できるようになっていると学習する場を見失わずに進めていけます。

例えば、メルペイではGopher道場というGoを体系的に学ぶ場を提供していますが、そこで学んだ方が業務上でGoを使い、その知見をgolang.tokyoというコミュニティで発表するというような貢献が起きています。さらにGo Conferenceという東京や福岡で行われているカンファレンスに登壇したり、世界最大のGoのカンファレンスであるGopherConへ参加したりLTで登壇したりする方もいらっしゃいます。

ここからは具体的な活動を紹介していきます。

学生向け講義やイベント

工学部や情報系の学科に所属する学生にとって、学校の講義はプログラミングに触れる最初の機会であることが多いでしょう。講義としてGoを学ぶ機会を提供できれば、早い段階でGoに触れてもらうことができます。そのため、筆者は法政大学をはじめとする大学で講師をしたり、学生向けの勉強会を行ったりしています。もちろん、関東圏の学校だけではなく、会津大学など関東圏ではない学校でも講義を行ったりしています。なお、これらはメルペイ エキスパートチームの活動として行っています。

講義だけではなく、Step up Go for Studentsのような学生向けの勉強会も行っています。Step up Go for Studentsでは、学生のカンファレンスへの参加を増やしたいという考えから行っています。学生のみなさんがGoで作ったソフトウェアにフィードバックを行ったり、講義形式で学んでもらうことでステップアップしてもらい、最終的にはGo ConferenceやGopherConに参加、そして登壇してもらいたいと考えています。

Step up Go for Studentsでは、オンラインでの参加を可能にしており、遠方の方でも参加できるようになっています。また、東京で行われるGo Conferenceに参加するための旅費や交通費を支援するスカラシップもあわせて提供しています。さらに、アメリカで毎年行われるGopherConについても「Mercari BOLD Scholarship」という形で、旅費・交通費・イベント参加費などを支援するスカラシップを提供しています。

Goを採用している企業のエンジニアが集まるコミュニティ

Goを採用している企業のエンジニアが集まるコミュニティとして、golang.tokyoがあります。Goコミュニティが活発になるためには、企業がGoを使って製品を開発し、その中で生まれた知見を共有する場が必要なります。golang.tokyoはそのような場として活用され、各社が知見を共有し合うことで1社だけでは得ることのできない知見が集まっています。

golang.tokyoはこれからGoを使っていこうと考えている企業にとっても、他社の貴重な経験やアドバイスを得る場にもなっています。どういう利点や課題があるのか、事前に知れることによって導入しやすくなるでしょう。
Goを採用している企業が集まることで、これからGoのエンジニアとして就職したいと考えているエンジニアにとっても、どんな企業があるのか知ることができます。筆者はGoを採用する企業があり、そこで仕事するエンジニアがいることによって知見は生み出され、コミュニティが活発になると考えています。そのため、golang.tokyoの運営メンバーの間でもエンジニア採用の課題感などの情報交換やコミュニティとして改善できることを議論したりしています。

Gopher道場

前述のとおりGopher道場はメルペイが主催するGoを体系的に学ぶ場です。現在第7期まで開催され、これまで119名の方が卒業されました。Gopher道場で行っている講義は全5回で、以下のような内容を扱っています。

  • 第1回:Goに触れる/基本構文/型と関数/コマンドラインツール
  • 第2回:パッケージ/抽象化とエラー処理/テストとテスタビリティ
  • 第3回:ゴルーチンとチャネル
  • 第4回:HTTPサーバ・クライアント/データベース
  • 第5回:LT大会&卒業式

Goに関する内容を網羅的に扱っており、各回宿題が出されます。提出された宿題のコードはGitHub上でレビューを行います。筆者はこれまでの開発や講師の経験からインプットだけでは身につかないと考えているため、宿題や最終日のLT大会で登壇することによって学んだことを定着できるようにしています。

ときおり卒業者向けのイベントも行っています。Gopher道場のような学ぶ場は同じようにGoを学んだからこそ、さらに一緒に学ぶことで身につきやすく、教える立場としてもスキルレベルが揃っているため、高度なことを効率的に教えることができます。

Gopher道場は、メルペイ社内のGoエンジニア採用の課題感から生まれました。一緒に働く仲間を探したいとおもってもGoエンジニアがいなかったのです。しかし、Gopher道場は短期的な採用の課題を解決するものではありません。Goを仕事で扱っているエンジニアは、まだまだ少ないと考え、それを解決していかなければならないという思いが込められています。Gopher道場に参加した方が仕事でGoを扱うようになり、コミュニティが活発になることで、Goエンジニアが増え、最終的にはメルペイの採用活動にも貢献できると考えています。

Gopher道場は不定期開催ですが、今後も継続していく予定です。

社内勉強会

メルカリ・メルペイでは、開催数が150回を超えるGo Fridayという勉強会があります。Go Fridayは以下のようなポリシーを持って開催されています。

  • 資料の準備を頑張らない
  • スキップしない
  • Google Cloud Platform (GCP)などでもBackendエンジニアが面白いと感じるものであればよい

筆者は、毎週金曜日の16時に会議室に行けば、メルカリ・メルペイのBackendエンジニアが集まっていて、技術の雑談ができる場あるということが重要だと考えています。参加は自由なため、業務が忙しければ参加しなくても良いし、聞きたいだけであれば自席でビデオ会議経由で閲覧することも可能です。

社内勉強会は資料の準備をローテーションで組んだり、司会を持ち回りにしたりと継続するモチベーションを維持することが難しくなりがちです。そこで、Go Fridayでは、参加するハードルを極限まで下げ、気軽に誰でも参加できるようにしています。資料がなくてもエンジニアが集まれば、結局、雑談は技術的な話になることが多いです。そして、雑談の中から業務上の技術的課題を相談する流れになり、GitHubに上がっているコードを直接みたり、ホワイトボード書いて白熱した議論に発展します。

筆者は、Go Fridayによって細かくアウトプットすることに慣れることで、勉強会やカンファレンスへの登壇を行いやすくなると考えています。Go Fridayの社内Wikiを見れば、議論したトピックがメモされているので、その内容を発展させて登壇資料を作ることができます。

このように、Go Fridayは社員がインプットとアウトプットを定期的に行う場として今後も活用されていくでしょう。

組織として技術コミュニティへ継続的に貢献する

メルカリグループでは、現場のエンジニアが主体となって技術コミュニティへの貢献を行なっています。カンファレンスや勉強会へのスポンサーシップについても、その技術コミュニティを支援したいと考えているエンジニアが自ら社内へ提案を行うことで行われています。

もちろん、エンジニアだけの力では技術コミュニティへの貢献は実現できませんが、エンジニアが主体となって熱意を持って技術コミュニティへの貢献を行うことは良いことだと弊社は考えています。技術コミュニティを運営しているエンジニアも本業とは別でその技術へ熱意や善意で運営していることが多いため、同じ目線で技術コミュニティに貢献できるのではないでしょうか。

メルペイ エキスパートチームでも、そういった熱意を持って技術コミュニティに参加するエンジニアのサポートもしています。登壇するためのノウハウやアウトプットするの場の提供など行っています。

筆者は各エンジニアが自分の好きな技術に熱意を注ぐことで得られた知見がメルカリグループの技術力を支えていると信じています。筆者自体はGoコミュニティを中心に活動していますが、現在社内で使われている技術だけではなく、まだ使っていない技術についてもメルカリグループのエンジニアが良いと思って熱意を持って取り組んでいるのであれば、それを応援していくような活動もできればと思っています。

明日のMerpay Advent Calendar 執筆担当は、 @keithyokoma さんです。引き続きお楽しみください。