サービス開発における暗黙知を無くす「完全に理解した会」

はじめに

クラスター株式会社でSoftware Engineerをしている anoriqq (あのりく) です。
私は主にWeb APIサーバーの開発を行っていますが、もうひとつの活動としてとある社内活動を行っています。

今回は私が運営するクラスター社の社内勉強会、その名も「完全に理解した会」のお話をしたいと思います。

完全に理解した会

完全に理解した会は、私の思う多くの勉強会とは異なるコンセプトの社内勉強会です。

私がよく観測する勉強会は、特定の技術自体の勉強会であったり、特定の技術を利用した体験を共有する勉強会になっています。
打って変わり、完全に理解した会は、クラスター社内の暗黙知を共有する場として運営しています。

開催経緯

clusterの開発において、私達のサービス固有の知識が必要になる場面が頻繁にあります。
例えば、clusterを構成するコンポーネントは、次の図のように多種多様にあります。

clusterを構成するコンポーネントの例

その他、開発に利用しているツールであったり、リリースフローやビルドパイプラインなどのサービスを支える部分も日に日に進歩しており、その重要性は高まるばかりです。

このような非常に多種多様な知識が投入されてサービス開発、運営が成り立っているわけです。
開発時には、これらの知識を駆使して、機能の実装や改善を行うことになりますが、ここに挙げた膨大な知識のキャッチアップは簡単ではありません。

これまでのキャッチアップ方法としては、必要になった人が必要になったタイミングで各領域のスペシャリストに知識の共有を受ける方法で行っていました。
しかし、我々の組織は拡大中であるため、知識が必要になった人だけでなく、必要になりそうな人も含めて、多くの人に知識を伝達したいというニーズが生まれてきます。
そこで、これまでの都度共有に加え、勉強会によって多くの人に大枠を理解してもらう方法を新たに始めました。

開催概要

完全に理解した会は毎月第4火曜日にclusterサービス内のクラスター社メンバー限定イベントとして開催しています。
直近数回の参加者数は40人前後とソフトウェアエンジニアのほとんどが参加しています。

現在では1回の開催に1トピックの発表があり、次のような流れで進行しています。

途中からの取り組みですが、会全体を録画するようにしたので、発表内容はいつでも見返すことができます。
新入社員が参照する資料としても有用です。

過去の発表紹介

完全に理解した会はこれまでに6回開催し、全10トピックの発表が行われました。(第4回までは1回に2トピックの発表があったため)
ここでは、その一部をご紹介します。

アバターLOD 完全に理解した

clusterでのアバターデータの詳細度を切り替えられる仕組みであるアバターLOD(Level of Detail)を完全に理解する会です。
アバターLODリリースに関わるUnityエンジニアによる発表でした。
そもそもアバターLODがどのような仕組みなのか、手を加えるときにクライアント/サーバーそれぞれどこを触ればよいのかが分かります。

新規プラットフォームリリース 完全に理解した

clusterがMeta社の開発するスタンドアロンVR端末であるQuest 2に対応したときの知見を完全に理解する会です。
Quest2対応を主導したUnityエンジニアによる発表でした。
clusterはPCVRから始まり、スマートフォン、スタンドアロンVRと対応プラットフォームを増やしてきており、今後も新たなプラットフォームに対応する際に、非常に参考になる資料です。

Item Ownership 完全に理解した

clusterのワールドにおけるユーザーが干渉可能で同期されるオブジェクトの設計思想と実現方法を完全に理解する会です。
Item Ownership が密接に関わる機能である Worldcraft のリリースに関わるサーバーエンジニアによる発表でした。
Itemとはなにかという部分から、通信内容、クライアント/サーバーそれぞれの役割などが把握できます。

epic owner 完全に理解した

clusterの機能開発単位であるepicをリードし、機能をリリースさせる役割であるepic ownerを完全に理解する会です。
数多くのepicをepic ownerとしてリリースしてきたサーバーエンジニアによる発表でした。
過去の経験をもとにした、epic ownerに求められる観点や、うまく物事を進めるための技などを知ることができます。
epicについては過去のブログを参照ください

Figma 完全に理解した

デザインツールであるFigmaをclusterでどのように活用しているのかを完全に理解する会です。
clusterの大部分のデザインに関わるUIデザイナーによる発表でした。
何を考えてFigmaのデザインを作っているのかというデザイナーの思想や、FigmaでデザインされたUIを実装するのに便利な手法が分か
ります。

QA 完全に理解した

一般的な品質保証の知識を含めたclusterにおける品質保証の現状を完全に理解する会です。
clusterのQAフローを築いたQAリーダーによる発表でした。
QAのカバー範囲や、QAとエンジニア間での連携に役立つ知識を得ることができます。

stg環境 完全に理解した

clusterの検証環境であるstaging環境を完全に理解する会です。
stg環境整備に関わるサーバーエンジニアによる発表でした。
stg環境の現状と、それを取り巻くリリースフローやprd環境など別環境との関係性などを知ることができます。

円滑な開催のために取り組んでいること

完全に理解した会の運営については私ともう1名のエンジニアで、実行委員会を組織しています。

実行委員会として、完全に理解した会の開催後に振り返りを実施しています。
振り返りでは、完全に理解した会の開催時に参加者から回答いただいたアンケート結果を確認し、次回に活かせないかを話し合うなど、完全に理解した会がより良い会になるような施策を考えています。

振り返りの実施によって生まれた施策をいくつか紹介します。

定型作業をTrelloのチェックリストにしてテンプレート化

完全に理解した会は毎月定期開催しているため、毎回の開催運営コストを下げることにも注力しています。
その取り組みの一つとして、Trelloのテンプレートを使っています。
作業を忘れることが無くなり、進捗が共有できるので助かっています。
このチェックリストは手順書の役割も果たしており、初めて運営を担当する場合でも迷わずタスクを進めることができるようにしています。

発表ガイドラインの策定

アンケートの回答に発表スライドの文字が読みにくいという意見がありました。
そこで発表者に向けて発表ガイドラインを作成し、フォントサイズの推奨値を指定しました。
発表者個人の発表スタイルは尊重すべきですが、統一されていたほうが発表者も参加者も助かる事柄もあると考えています。
このガイドラインは作って終わりにせず、今後も育てていきます。

インタラクティブな質問募集/回答の実施

初期の頃は、発表が終わった後に質疑応答の時間を設けていましたが、質問が上がりにくいトピックがありました。
その原因が発表中に生まれた疑問が質疑応答の時間までに忘れられているのではないかと考え、発表前に上記のスライドを掲示しリアルタイムに質問を受け付けるようにしました。

50分弱のメインコンテンツ内では発表者が発表をする他に質問に答えてもらう時間を多く作っています。
質問募集は発表中も常時行っており、それとは別に司会者がMCの中で質問したり、参加者を指名して質問してもらったりしています。
発表者からの一方的な勉強会にはせず、双方へのコミュニケーションが発生するような取り組みによって、発表予定にはなかった知見が参加者から出てきたり、広く知られていない課題を把握することもできています。

この取り組みを導入するにあたり、もともと1回開催につき2トピックの発表だったのを1トピックに減らしました。
発表できるトピックは減りましたが、単純に参加者のコンテキストスイッチが減りましたし、発表時間に余裕が生まれたことで発表トピックの詳しい内容に割く時間を増やすことができました。

さいごに

クラスター社内勉強会「完全に理解した会」の概要と運営としての取り組みを紹介しました。

私は完全に理解した会を運営を始めた頃から、社内の「xxxが分からない」「xxxが知りたい」という声を集めており、発表内容の検討に役立てています。他人の知らない知識を、私含めたチームで獲得していく活動は、我々が成長しているのを感じることができ、個人的に非常に満足感のある経験ができています。

今後も、実務に活用できる知見の共有と、参加したくなるような体験を実現できるように運営していきます。

この記事で、完全に理解した会自体や、会で取り扱うクラスター社の技術や知見に興味を持ってもらえたら嬉しいです。
クラスター社に入社して参加したいと思った方はぜひこちらもご覧ください。