【書き起こし】Design and lead the scalability of tech communities for all – tenntenn【Merpay Tech Fest 2022】

Merpay Tech Fest 2022 は、事業との関わりから技術への興味を深め、プロダクトやサービスを支えるエンジニアリングを知ることができるお祭りで、2022年8月23日(火)からの3日間、開催しました。セッションでは、事業を支える組織・技術・課題などへの試行錯誤やアプローチを紹介していきました。

この記事は、「Design and lead the scalability of tech communities for all」の書き起こしです。

メルペイ エキスパートチームの上田です。「@tenntenn」というアカウントで活動しています。普段はGoに関わるコミュニティの運営やカンファレンス、あとはGoogle Developers Expert(GDE)のGoも担当しています。

今日の発表のアジェンダです。以下の3つについてお話しようと思います。

エキスパートチームと技術コミュニティ

まずは「エキスパートチームと技術コミュニティ」について話していきたいと思います。

エキスパートチームの活動は、50%以上の時間を技術コミュニティへの貢献に充てるというものです。そこから社内への新しい技術の取り組みや、社内の技術を社外へ還元、社内外での技術の普及推進・執筆・登壇・インタビューなどを行っています。また、社内メンバーの記事の執筆・書籍の執筆のお手伝い、登壇のサポートなども行います。

図にすると、上記のスライドのような形です。
メルペイで生まれた知見を、登壇やOSS、コミュニティの運営などを通して技術コミュニティに還元し、そこからフィードバックをいただいて社内に還元する。そういった活動をしています。

去年のMerpay Tech Fest 2021でも「技術コミュニティとの相互作用」というタイトルで発表しております。気になる方はTech Blogをご確認ください。
Merpay Expert teamではこれまで「技術をアウトプットするところに技術は集まる」というタイトルで活動をしてきました。

しばらくこの表題で活動してきましたが、最近になりもう少し今の活動の実態に合ったようなミッションを取り入れていこうとなり、チームメンバーで「Design and read the scalability of tech communities for all」という表題にしようと考えています。

これは技術コミュニティをスケールさせて、いろんな人のための技術コミュニティを作っていこう、という思いがこもっています。決して我々だけができることではなく、技術コミュニティを運営してくれている個人や、参加してくれている個人、また、応援してくれている企業や学校なども一緒に技術コミュニティを作っていこうというものです。

私の個人的な活動としては、「人類Gophar化計画」をもとに、これまでGoについての技術コミュニティを運営してきました。

例えばGoのスキルやその他のコンピュータ関係のスキルをプロットして、最終的にはGo Conferenceや海外のカンファレンスなどで発表するような人材になってほしい。そのため、様々な方面からGoのエンジニアが増えるよう、いろんなコミュニティを作ってきました。気になる方は図表中にも載せているリンク、「人類Gophar化計画」を確認してください。

「Go コミュニティとの関わり方」としては、一般社団法人Gophars Japanの設立と運営、Go Conferenceの運営、Gopher道場やStep up Goの運営、また大学の講義、新卒研修、インターンシップの計画や実行などを行い、社内外でさまざまなGoに関わる活動を行っています。

技術カンファレンスの運営

では次に、「技術カンファレンスの運営」についてお話したいと思います。

ここでは、私が運営に携わっているGo Conferenceを例にお話していきます。

Go Conferenceはご存知の方も多いかと思いますが、年に1回から2回行う世界で最も歴史のあるカンファレンス(※)です。主に日本のカンファレンスで、オンラインに移行して、今だと1000名以上の方が事前申し込み者として登録してくれています。参加者は多いですが、少人数で運営しているカンファレンスです。

※参加人数はアメリカで行っているGopharConというカンファレンスの方が多いが、GopharConより先にGo Conferenceの方が開始されたため、ここではGo Conferenceを世界で最も歴史のあるカンファレンスとしています。

これまでのGo Conferenceについて少し振り返っていきたいと思います。

Go Conferenceは2013年の4月に第1回目が開催されました。実際には2012年に前身となるイベントはあったのですが、正式なカウントが始まったのは2013年の4月となります。第1回は、私は運営者ではなくて登壇者として参加しましたが、その後2回目以降から運営として関わっています。初回はオフラインで129名の参加者がいました。この頃はまだGoの知名度もそこまでなかったため、午前中は初心者向けのハンズオン、午後にセッションという形式で行い、開催頻度も年に2回行っていました。

そして2014年の秋、Goの最初の設計者の1人であるRob Pike氏が来日。Googleの鵜飼氏と一緒にダブルキーノートという形でカンファレンスを開催し、非常に多くの参加者に集まっていただきました。これ以降オンライン開催になるまで、度々GoogleのGoチームから登壇していただくことになります。

最近のGo Conference 2022 Spring Onlineでは、35社のスポンサー企業、28名のスピーカー、そして1100名を超える事前登録者という、非常に大きなカンファレンスになってきました。

初期のGo Conferenceでは、Goを知らない人、仕事で使っていない人がほとんど。そのため、Goをまず知ってもらう・触れてもらうハンズオンワークショップを開催していました。セッションも、そもそもGoがどういうものなのかを説明するセッションが多かったように思います。

少し前のGo Conferenceになると、個人や仕事で利用する人が増えてきました。ちょうど私がメルカリにジョインしてしばらく経った頃、ハンズオンは別枠になり、セッションと独立並行して行われるようになりました。

この頃から企業での利用が増えてきたので、どういうふうに企業の中でGoを扱っているのか、どういうフレームワークを使っているのか、どういう作りにしているのかといったセッションが増えてきました。その頃からサポートしてくれる企業が増えてきたように思います。また、それまでは東京で開催されていたのが、福岡や仙台など日本各地でも開催されるようになりました。

最近のGo Conferenceは、導入事例や“使ってみた”という内容のセッションは減ってきて、Goの機能をDeep Diveするようなものや、Goと何かの組み合わせ、また、新しい機能…例えばGo1.18で入ったジェネリックスとか、そういったセッションが増えてきました。
コロナ禍ということもありオンライン開催に移行したので、日本全国から参加者が集まるようになりました。また、運営母体が一般社団法人Gophars Japanに。その他、参加者だけではなく日本各地のコミュニティメンバーが運営に携わるようになってきました。
このように、2013年に始まったこのカンファレンスに関わる人が徐々に多くなり、規模も大きくなっていったのです。

一番大きな転機は、やはり“コロナ禍”だと思います。コロナ禍において技術カンファレンスは非常に開催が難しくなってきました。「今はオフラインで開催できそうだけど、1ヶ月後、2ヶ月後、半年後に開催ができるのかどうかが読みづらい。会場を借りてしまうとどうしても費用がかかってしまい、リスクがかなり高い…」と思うことも。

ただ良い面もあり、どこからでも参加できるようになりました。日本各地どこでも参加できますし、または仕事中だったり、家事の合間だったり、育児の合間だったり、学校に行ってる合間だったり。合間の時間で参加することもできるようになりました。これはオンラインに移行して、良いなと思った点になります。

ただ、皆さん感じている通り、リアルタイムでの参加する意義が減ったと思います。懇親会がなかったり、アーカイブがYouTubeで残ったり、講義形式のセッションが多かったりするので、インタラクティブ性がないため、「後で見ればいいや」という意識が増えてきました。

オンラインカンファレンスの利点と欠点をまとめます。利点は「いつでも・どこからでもコンテンツにアクセスできる」、「どこに住んでいても運営に参加できる」こと。私も東京ではなく北海道に住んでいますが、東京のメンバーが中心となっているカンファレンスの運営に参加できています。

「会場に行かなくても良い」という点も、プライベートの事情で丸一日家を空けられない方や遠方に住んでる方なども、物理的な制約がなくなった点は良い点です。他にもオンラインカンファレンス独特の利点として、「事前に収録したものを倍速で見れる」「見たいところをランダムアクセスしてつまみ食いで見れる」「多くのカンファレンスが無料で見れるためコストがかからない」という点が挙げられます。

一方で、欠点は「インタラクティブ性が低い」こと。これは登壇者にとっても言えることですが、登壇してて非常に寂しいです。今私も登壇していますけれど、誰かが相槌を打ってくれるわけでもなく、誰かと目線が合うわけでもないので、寂しいですね。きっと今このセッションを見てくれてる人は「そんなことないよ」とツイートしてくれてると思いますけれど(笑)。「寂しい」のはオンラインカンファレンスのつらいところです。

また、聞いてる方も流れで聞けるようになったので、没入感が減ってきてるのかなと思います。

他には、偶発的なイベントがないこと。例えば、「聞こうと思ってなかったセッションだけど、聞きたかったセッションの次だからついでに聞いてみようかな」と思って聞いてみたセッションが、想像以上に自分に合う、面白いセッションだという経験は、オフラインではよくあるかと思います。私も海外のカンファレンスに参加したとき、タイトルでは全然わからなかったけど、聞いてみたらめちゃくちゃ面白かったことがあります。そういった偶発的なイベントはオンラインだとあまりないですね。自分が見たいものをオンデマンドで見るので、見たいと思えない限り知ることができない、という点は欠点になるかと思います。

また、オンラインは空気感を作りにくい。参加者と登壇者の一体感がなかなか作りにくいんです。他の参加者が笑ってるから「なんか面白いことあるのかな」と思ってセッションに集中したりとか、周りと小声でコミュニケーションをとりながら「今の何だった?」と話したりとか。他の参加者の様子を伺いながら参加することができないですよね。そういった点がオンラインではやはり難しい点かなと思います。

最後に、皆さん感じているかなと思うのですが、よほど仲が良くない限りオンラインで話しかけるのは非常にハードルが高い。何か話が聞こえてきたからスッとと会話に混じる、ということがオンラインではなかなかハードルが高く、“参加するか参加しないか”といった形になりやすい。「フワッと参加する」「なんとなく聞いてみる」ことがオンラインではしづらく、そのためコミュニティの輪を広げるという点では難しいと思います。

それでもオンラインを開催する上で、Go Conferenceではいくつか開催時のポイントがあります。なるべく参加者に楽しんでもらいたく、いろんなツールを使ってカンファレンスを行っています。そこで工夫したことについて、ご紹介いたしますね。

まず一つ目は配信環境の整備です。基本的にはYouTube Liveを使って配信するのですが、配信する際に特別な機材を不要とするためにStreamYardというツールを使ったり、インタラクティブ性を担保するためにRemoというオンラインカンファレンスのツールを使ったり。また、SNSを使った企画やAsk the Speakerといった企画も考えました。

StreamYardを使った配信について。今まさに私が登壇しているこの環境はStreamYardを使っていますが、非常に簡単にライブ配信を行えるサービスです。YouTube Liveに配信を流すことができるので、いろんな企業の方がカンファレンスに使われてると思います。『StreamYard Perfect Guidebook』という書籍があるので、まだ知らない方はぜひこういったものから見てみるといいと思います。ビデオ会議ツールのGoogle MeetやZoomのように使え、何万円もする特別な機材を用意しなくてもよく、パソコンとインターネット回線があれば誰でも配信ができますよ。

また、コミュニティを運営するうえで大事なことですが、属人性の高い作業を減らせます。StreamYardはカスタマイズ性にすごく特化してるわけではないため、いろんなことができるわけではないです。その反面、誰でも簡単に質の高い配信ができるのがこのサービスの非常に良い点だと思います。バナーを出すなど、少し工夫すればできることも増えますし、初めて配信する人も問題なく配信できます。

また、運営側の負荷だけではなくて、登壇者の負荷も低くできるかなと思います。一つは録画配信ということもできるので、事前に収録して配信するということもできます。これも登壇者の負荷、例えば、遠方に住んでる方、海外に住んでる方、または家の事情で昼間に収録できない方みたいな、そういった方にとっては非常にハードルが低くなる、良い点かなと思います。

前回のGo Conference 2022 Springでは、YouTube Liveでの配信は表に見える形ではしていませんでした。実際にはYouTube Liveも使っていましたが、参加者に見えるところは、Remoを使って行っていました。Remo上に座席があり、同じテーブルの人と会話ができたり、プレゼンテーションモードになると全体のプレゼンテーションを聞くことができたり、または、今回使ったようにYouTubeを流せたり。そんなことができる機能があります。また会場を自分でカスタマイズできるため、この右の図のような会場を作り、「この部分にYouTube Liveを流す」とすれば、Public Viewingのような形をとれます。

Go Conferenceでは、インタラクティブにやりとりする場としてこのRemoを使いました。なるべくオフライン会場に近い体験を提供したく、例えば企業ブースやワークショップ、先ほど言ったPublic Viewing、また懇親会をする場でもRemoを活用しました。ただ、こういう場を用意しても、コンテンツ作りは非常に難しかったです。人を集めるコンテンツを作るノウハウだったり、呼びかけだったり。オンラインカンファレンスでは「なんとなくフラッと見る」ということができないので、ブースに来てもらうこと自体がなかなか難しいものがありました。

また、Remoはカスタマイズ性に特化しているわけではないため、会場を作ることのハードルが高い。カンファレンスの運営メンバーは主にソフトウェアエンジニアです。AdobeのIllustratorといった画像編集ソフトを使える人材は多くありません。そのため、SVGファイルを使って会場作りをするのはなかなか大変でした。

Public Viewingはスライドのように行いました。配信者や登壇者への負担軽減のためStreamYardから配信を行い、それがStreamYardからYouTube liveの方に配信が流されます。YouTube Liveを間に挟んでいるのは、ここに流すことによってYouTubeにアーカイブが残る利点があるためです。

YouTube Liveは限定公開にし、YouTubeのリンクをRemoに埋め込みます。「左の看板」という機能を使って、この会場に入ってきたら自動でカンファレンスの映像が流れるような仕組みにしていました。こうすると、セッションをフラっと見に来た人が、あたかもその会場でセッションをやってるように見える利点があります。また、この機能によって同じテーブルの人とワイワイしながらカンファレンスを見れる点もいいと思っています。実際RemoにもYouTube Liveで配信する機能はあるのですが、配信者と登壇者の負担軽減のためStreamYardを挟んでいます。

次にSNSで“カンファレンスが盛り上がっている”雰囲気を出すために「ビンGo」という施策を行いました。

これはクイズをビンゴ形式に並べたもので、クイズに正解すると列や行が揃っていくゲームです。参加者同士でお喋りをしながら相手の属性や、相手の知ってることを聞いて、マスを開いていきます。これは、海外のカンファレンスに参加したときに体験したクイズを参考にしています。海外のカンファレンスだと「コナミコマンド(ゲーム作品中の隠しコマンド)を知ってる人がいたら、そのマスが開ける」というクイズがありました。

ここから着想を得てGoに関するクイズを出して正解したら、マスが開いていくビンゴを作りました。海外で体験したものよりも少しインタラクティブな要素を加えたく、運営やスポンサー企業から出題いただいて、企業ブースに行くと答えがわかる形式にし、企業ブースへの導線となるようにしたのです。

回答すると、SNSでシェアするボタンが出る工夫も。スライド右側はツイッターの画面です。このようにSNSからの流入を期待し、投稿を見た人が「何をやってるんだろう」と興味を持ってもらえるようにしていました。

Ask the Speakerは、オフラインのカンファレンスではよくある施策かもしれません。登壇者に質問する場ですね。

Public Viewingの形式で、Remoで行いました。質問しやすくするために、MCと登壇者が複数人いるパネルディスカッション形式で行うスタイルを採用。これによって、質問が出ない間にもMCと登壇者でパネルディスカッションし、質問を引き出しやすくすることを狙っています。以前のカンファレンスからいろいろやってみてはいたのですが、最近のカンファレンスではSli.doを用いて匿名で質問できるようにしたため、いつもより質問が出てきました。

ワークショップは初期からずっと続けており、初学者でも参加しやすいようにしています。

今年はコードラボ形式で自分のペースで取り組めるようにしました。また、メンターにいつでも質問できるよう、Woman Who Go Tokyoのメンバーにメンターを担当していただきました。

ここまでいろんなカンファレンスでの取り組みをお話してきましたが、カンファレンスの運営で非常に難しいのは属人性です。

現在、Go Conferenceではいろんなツールを扱っています。しかし、高度なツールは属人性を伴うため、継続的にやろうとすると難しいのです。
Go Conferenceの運営はボランティアが多く、企業のカンファレンスとは異なり常に同じメンバーで運営ができません。仕事やプライベートの忙しさは個人によって異なるため、それを強要するのは難しい。
また、ノウハウをためていくのも難しいです。運営で手一杯なため、蓄積するようなものを同時に作っていくのは難しいですね。

技術コミュニティのスケール

ここから「技術コミュニティのスケール」について話していきたいと思います。
技術コミュニティのスケールというのは、技術コミュニティを運営するタスクの増加、複雑化などからきています。

オンライン化によって、先ほど言ったようないろんな施策をすることからタスクがかなり複雑化してきています。カンファレンスやコミュニティの役割にも変化が出ています。最初の頃はGoが好きな人が集まって、趣味の延長で開催されていたカンファレンスでした。しかし、段々と企業にとっては採用する場となったり、個人にとっては勉強する場または次の職場を探す場となったり。いろんな目的が入り混じっている場になってきています。

1人のやる気で続けていくと、そのうちコミュニティの運営は難しくなると思います。継続するコミュニティを作るためには、なるべく1人の負荷を軽減して、属人性をなくしていかなければいけません。

また、Go Conferenceを通じて日本各地でいろんなコミュニティが存在し、それぞれでいろんなノウハウがたまってきていると思います。そのノウハウやツールを共通化することによって、例えばツールの契約を1ヶ所でまとめて行うなど、やらなくていいことを増やす。効率良く運営するため、ノウハウやツールの共有ができれば、技術コミュニティのスケールにつながるのではと考えています。

スケールの仕方としては、一つは運営団体をきちんと立てること。
Goのコミュニティとして、一般社団法人Gophars Japanを立ち上げました。これによって資金の流れも明確になりますし、必要な税金を払うこともできるようになります。

次に、運営メンバーの拡充。Go Conferenceでは一番少ないときはほぼ2人で運営していました。最近では10人から15人程度になりました。日本各地のコミュニティメンバーが参加してくれているため、東京だけのメンバーではわからないこと、地方コミュニティから見た良さをカンファレンスに取り入れることができます。非常に良いスケールの仕方になってるかなと思います。

最後に、これはまだできてはいないのですが、先ほどお話したようにノウハウを整理したり、ドキュメントにまとめたり、勉強会を開いて学ぶ場を設けたり。そういうことをやっていかなければいけないと思っています。

運営団体の設立について。

先程お話した通り、Gophars Japanを設立しました。国内のGoコミュニティを盛り上げることをミッションにしています。

社団法人化することの必要性はいろいろあると思います。税金の処理のほか、さまざまな契約に法人格があると信頼性が向上したり、スポンサー契約する際に契約しやすかったり。お金を適切に使ってできることが増えるのが、社団法人化するメリットかと思います。

みんなのための技術コミュニティについて。

「なぜスケールするのか」というと、いろんな人が参加しうるコミュニティを作りたいからです。そのためには、参加する全員・個人・コミュニティ・組織が相互に良い関係である必要があります。「学ぶ人がいること・学ぶ場所があること・仕事があることの大切さ」があると思います。

さまざまな人が参加できる場。住んでいる地域・属性・技術レベルによる多様なコミュニティが存在すること。一つの統一化された大きなコミュニティより、複合的で多様なコミュニティが目指すべき道かと思っています。いろんな人がいる一つの大きなコミュニティは、全員にとって参加しやすいものかというと、私はそうではないと思います。

最後に、得るものがある技術コミュニティ。技術的な知見はもちろん、向上心だけではなく、居場所や参加して「楽しい」という気持ち。また、仕事が獲得できるような技術コミュニティ。いろんな得るものがあるコミュニティだといいと思っています。

企業と技術コミュニティについて。
企業の技術コミュニティのあり方としては、あくまで「一緒に技術コミュニティを盛り上げよう」という姿勢がいいと思います。技術コミュニティが一番嬉しいのは、やはり知見の提供だと思っています。企業と技術コミュニティは対等な関係であるので、採用が増えることは、技術コミュニティにとっても知見が増えることに繋がります。「技術コミュニティでは、技術的な話しかしては駄目だ」というわけではなく、仕事を受ける先の採用が増えることも非常に良いことですね。

ただ、理解しないといけないのは、技術コミュニティの運営はほとんどの場合ボランティアベースであることです。運営メンバーや参加者のモチベーションが技術コミュニティの原動力であるのは間違いない。そのため、仕事のような早さ、質を一方的に企業側から求められると、それがモチベーションを崩してしまうきっかけになってしまいます。仕事とは線引きして考える必要がありますね。スポンサー・企業の立場としては、発注するのではなく、あくまで「支援」という形をとるのがいいかな、と私は思っています。

エキスパートチームとしての関わり方について。
継続的なコミュニティ運営をサポートしていくこと。ここに大きな工数を当てることによって、コミュニティを運営しやすくなります。いろんな企業において、「技術コミュニティのサポートはしたいけど、そこに工数を当てるのは大変だよね」というのはありますよね。

メルペイはそこに工数を払うことによって、技術コミュニティをサポートして運営を回しやすくすることを考えています。

技術的な知見の提供。これは勉強会・カンファレンスの登壇・執筆を通して、技術コミュニティにいろんな知見をメルペイから提供したいと思っています。

私やエキスパートチームのチームメンバーだけではなく、他の社員の登壇や執筆の支援などを行うことによって、メルペイ社内からいろんな知見が出ると嬉しいです。

学ぶ場の提供としては、引き続きGophar道場やStep up Go…学生や第二新卒向けのイベントやインターンシップで、働きながら学んでいただくという機会も提供していきたいと思っています。

スポンサーとしてカンファレンスのサポートなども今後もやっていきたいですね。

最後に、今後やりたいことについて。
これは主に私が「やりたい」と思ってることで、必ずしもエキスパートチームとして、またはGo Conferenceとしてやりたいものとイコールで繋がってるわけではありません。私個人としてはこういったことに取り組んでいきたいなと思っていることです。

一つ目が、国内のGoの導入事例を整理すること。go.devにケーススタディというものがありますが、それの日本版を考えています。

次に、技術レベルによって学びやすい環境を作ること。初学者や中級者から上級者のステップアップするための環境をどんどん作れたらいいなと思います。

また、視覚障害者が参加しやすい勉強会を考えたい。私の親戚に視覚障害者がいるため考える機会が多いから挙げているのですが、まず知らないことを知るところから始めたいですね。例えば今回作ったこの資料も、多分スクリーンリーダーで読み上げたら、わかりづらいとこも多々あるんじゃないかな、と思います。もしこういったことに興味があり、手伝ってくれる方がいたらお声掛けください。

まとめです。
みんなのための技術コミュニティを考え・行動するというのが新しいエキスパートチームのミッションになっています。インタラクティブさ・楽しさ、複合的な技術コミュニティ、組織や個人が参加する意義のあるコミュニティにしていきたいです。

技術コミュニティのスケールについては、やりたいことがたくさんあるにも関わらず、少人数で運営が大変なので手伝ってくれる方がいたらぜひ声をかけて欲しいです。運営基盤を作り、継続的な技術コミュニティの運営を頑張っていきたいなと思っています。

私の方の発表はこれで終わりたいと思います。ご清聴ありがとうございました。

  • X
  • Facebook
  • linkedin
  • このエントリーをはてなブックマークに追加