2021年7月、社内向けCSツールを開発するCStoolチームが行うMicroservice勉強会が開催100回目を迎えましたー!
メルカリでは、開発手法の1つとしてマイクロサービスアーキテクチャを採用しています。つまり、メルカリグループで開発をしていくうえで必ず触れる手法なわけですが、なぜCStoolチームは独自で勉強会を始めることにしたのでしょうか?
Microservice勉強会の開催100回突破を記念して、今回のメルカンでは勉強会の主催者である市川慎吾(@icchy)と、参加メンバーのJason Lau(@waiting.lau)、石井怜央(@hukurou)が登場。スタートさせたきっかけ、その特徴などをインタビューしました。聞き手は、同じくCStoolチームの松久保敬人(@Peranikov)です。
この記事に登場する人
-
市川慎吾(Shingo Ichikawa、@icchy)Microservice勉強会の主催者。CSToolチームのソフトウェアエンジニアとしてマイクロサービス開発やGraphQLの推進をしている。Heavy Metalとビールが好き。 -
Jason Lau(ジェイソン・ラウ、@waiting.lau)Joined Mercari in March 2018. Current Tech Lead of CSTool team, recently leading the transformation of cross-functional team. Love travelling and snowboarding. -
石井怜央(Reo Ishii、@hukurou)2020年に新卒でメルカリにソフトウェアエンジニアとして入社。マイクロサービス開発などに携わりながら、CSToolチームのスクラムマスターも務めている。ふくろうとお菓子作りが好き。 -
松久保敬人(Yuto Matsukubo、@Peranikov)2018年11月にメルカリにジョイン。CSToolのソフトウェアエンジニアからテックリードを経て、現在はエンジニアリングマネージャーとしてチームをサポートしている。クラフトビールとボードゲームとカメラが好き。
マイクロサービス領域での「知識量の差」を埋めるためにスタート
@Peranikov:改めて聞いてみるのですが、この勉強会はいつごろ始まったんですか?
@icchy:2019年2月です。このとき、メルカリグループ内でマイクロサービスの基盤ができ始めていました。私はMSDevチームにいて、いろいろなドメインからメンバーが集まり、マイクロサービスに関する課題や情報を共有しながら開発を進めていました。その後、CStoolチームに戻り、マイクロサービス開発を進めていくことになったのですが…私とメンバーとの間で知識やスキルに差があることに気づいたんです。
市川慎吾(@icchy)
@Peranikov:当時のCStoolチーム内では、マイクロサービスに対する知識量がバラバラだったんですね。
@icchy:まぁ、半年ほどマイクロサービス領域を担当し続けてきた私と、PHPやMySQLでの開発をし続けてきたメンバーとでは、当然そうなってしまいますよね。「このまま開発を進めるのは難しそうなのでマイクロサービス開発について学ぶ場が必要だ」「なにかやるなら、全員が主体的に学びアウトプットできる場にしたい」と思ったんです。そこで始めたのが、この勉強会でした。
それに、マイクロサービスのオーナーになると各チームのメンバーがオンコールとして障害時に対応していくことになります。マイクロサービスをリリースするまでに、障害対応に最低限知っておかなきゃいけない知識を学べる勉強会にもしたいと思っていたんですよね。
@Peranikov:なるほど!
@icchy:なので、オンコールに必要な知識を一覧にして、勉強会が終わったら都度チェックし、チームとしてどこが弱いのか、どこを優先してスキルアップしていくべきかを可視化し効率的に必要なスキルを学んでいけるようにしました。
@icchy:ちなみに、今日のインタビューにあわせて第1回目の資料を見てみたんですが…このときは「Kubernetes勉強会」という名前でした。当時のCStoolチームではPHPやMySQLを使っていたものの、Kubernetesは何もわからない状態だったので「まずはそこからだ」と、このときの私は考えていたんでしょうね。
@Peranikov:勉強会の名前からして、当時の事情がリアル(笑)。
松久保敬人(@Peranikov)
@icchy:そうそう(笑)。Kubernetesだけでなく、GCPを触ったことがないメンバーも多かったです。今でこそGoを書いたことがあるメンバーもいますが、このときのメルカリはPHPがほとんど。Kubernetes以外にも勉強していくことがたくさんあると気づいたので、途中から「Microservice勉強会」という名前に変更しました。
「全員が発表者」な勉強会にした理由、その結果
@Peranikov:僕は10回目あたりから参加し始めたんですよね。@waiting.lauさんと@hukurouさんは、いつから参加していたんですか?
@waiting.lau:僕は最初から参加していましたね。勉強会を通じて、マイクロサービスに関連する知識はもちろん、フロントエンドやドメイン知識が身についたと思っています。
僕にとってMicroservice勉強会は、チームに限定しているところがとてもよかったんです。新しいことを学ぶ過程では、どうしても疑問が生まれがちだから勉強会では話したいことがたくさんあるんです。その点、Microservice勉強会は毎週金曜日に開催するので、月曜〜木曜で学んだことを他のメンバーに共有できていました。このやり方は、相性が良かったと思っています。
Jason Lau(@waiting.lau)
@hukurou:僕は50回目くらいから参加しています。Microservice勉強会での話題は、 @icchyさんを中心に2~3名が立候補して発表するなど、常に発表者が入れ替わっていました。全員が発表者というスタイルなので、みんなが自分事として捉えられている感じが特徴的だなぁと思っていました。
@icchy:よかった!開始当初は他チームも巻き込むかどうか迷いました。でも、よくよく考えるとCStoolは他チームと比べてカバーしなくちゃいけない技術が若干異なります。フロントエンドもやるし、ゲートウェイもやるし…。参加者の幅を広げすぎると、ディスカッションの時間が短くなってしまう。そうならないために、チームに限定してみたんです。
また、このMicroservice勉強会はPHPBLTというイベントを参考にしていました。PHPBLTでは、イベント冒頭で「エンジニアが1〜2ヶ月働いていたら必ずネタが出てくる」「発表するからネタをつくるのだ」「全員が発表者」というイベントの方針を語る発表がありました。確かにそのとおりだと思ったし、学ぶことだらけのMicroservice開発初期ならそれ以上にネタがあるはずだと思って、Microservice勉強会も「全員が発表者」としたんですよね。それに、毎週開催するから、毎週何かしらネタを探すことになるという(笑)。
@hukurou:確かに(笑)。毎回発表するのは大変ではありますが、忙しくても「とりあえずやろう」と思えましたね。
石井怜央(@hukurou)
@waiting.lau:そうですね、僕も「毎週発表するのは大変」は正直な感想ですが(笑)。でも、僕らエンジニアは新しい技術を学び続けることも仕事の1つです。勉強する時間をつくって発表する習慣としては週に1回はちょうどいいリズムです。このチームはみんな技術的にも向上していると思っています。まぁ、大変なんですけど!
異動したメンバーもゲストとして参加!
@Peranikov:そして100回目を迎えました。途中でスピードダウンすることはなかった?
ろくろを回すポーズをとってみる@Peranikov
@icchy:正直、何度か心が折れそうな瞬間はありました。でも、スピードダウンはなかったですね。チーム自体大きく変わることがなかったこともあり、継続できたと思っています。他チームへ異動したメンバーも、ゲストとして参加してくれています。先日は、ソウゾウへ異動したnaoprさんもメルカリShopsで採用している技術について話してくれました!そのほか、US版メルカリを開発するUS@Tokyoのメンバーも来てくれますし。チーム開催ではありますが、ゲストはいつもウェルカムです!
個人的には、もっと気軽に発表できる勉強会にしたいなと思っているんです。私自身が資料をつくってしまうタイプですが、そういうものがなくても参加可能であると伝えたいですね。
@Peranikov:以前、僕はリポジトリを1つだけ貼って、その場でライブコードリーティングしてみたことがあります。そういったやり方も許してもらえる勉強会ではありますよね。ただ、誰も追随はしませんでしたけれど(笑)。
では最後の質問です。Microservice勉強会は楽しいですか?
@hukurou:最後の質問がそれって(笑)。
(一同笑)
@hukurou:感想を言いますと、僕にとって勉強会がKubernetesやGCPに触れるきっかけになりました。知恵を借りたり調べたりしながら学べるのはよかったですね。
@waiting.lau:勉強会にオーディエンスとして参加していると「自分とは関係ないな」と思い、集中できなくなることがあります。Microservice勉強会は、発表者が話したいことを話し、その回答を聞きながら学べる。そこがとても楽しいです!
@icchy:ありがとうございます!100回を突破して、勉強会の方針が間違っていないとわかって安心しました(笑)。