こんにちは。ソウゾウの Software Engineer の @gotomo です。連載:メルカリShops 開発の裏側 Vol.2の19日目を担当させていただきます。
ソウゾウには Onboarding Quest というものがあります。オンボーディング時に取り組むタスクで、次のような項目が含まれています。
- How to Start Onboarding Quest
- Having Communication Paths
- Understand our Product
- Understand Engineering Context
- Make Dev Env
- Start Contribution!!
- Feedback
これらを全て達成することでリリースまでの流れを一通り体験できるようになっています。それだけでなく、カルチャーへの理解を深めたり、チームメンバーとのコミュニケーションも促進されるような設計になっています。Onboarding Quest の詳細については Notionを活用したエンジニア向けオンボーディング をご覧ください。
私は2022年1月1日付けで入社したので、ちょうど最近 Onboarding Quest に取り組んだばかりです。そんな私の目線から、実際にやってみたときの様子をお伝えします。
Onboarding Quest 開始
ソウゾウでは Notion を使っていて、個々人が自由に使って良いページが用意されています。そこに Onboarding Quest が置かれていて、自分のペースで順に進めていくようになっています。メルカリ全体のオンボーディングもあったのでそれと平行で進めました。
Notion には Synced Blocks という機能があり、Onboarding Quest 内でも活用されています。この機能では、ブロック単位で内容を他のページと共有することができます。Onboarding Questのテンプレートに含まれる Synced Block の内容を修正したときにそのテンプレートから作ったすべての文章を修正することができるのでコピー先で修正漏れが発生するということもありません。
Onboarding Quest 中に感じたこと
私はゲームの RPG が好きなので、Quest という名前が付いていて妙にテンションがあがりました。実際、一つずつ達成していくのは達成感があって良かったです。Quest の粒度もかなり細かく設定されていて、テンポ良く達成していくことができました。例えば一番最初の Quest は「How to use Onboarding Quest」となっていて、どのように Quest を進めるかの説明自体が一つの Quest になっています。
Quest を達成していく中で他の人とコミュニケーションを取っていく必要があり、そこで自然と挨拶ができました。まるでRPGで村人から話を聞きながら先に進むかのごとくです。たくさんの Welcome リアクションももらえて嬉しかったです。
他にも「自己紹介スライドを書こう!」や「ミーティングで皆に自己紹介しよう!」みたいな Quest も含まれていて、かなりコミュニケーションを重視した作りになっていると感じました。
Quest には各種ドキュメント閲覧が達成条件になっているものがあります。ソウゾウは2022年1月28日に設立1周年を迎えたばかりなのですが、そうとは思えないくらいドキュメントがしっかりしています。初期のころは色々と技術や構成も移り変わってメンテナンスが大変だとは思うのですが、ADRs(Architecture Decision Records)や、マイクロサービスの構成図などがしっかりと書かれています。このおかげで過去の意思決定内容を知れたり、全体の概要が把握できました。
運用に関するドキュメントも充実していて、オンコール時の対処法や、コードレビューに対する考え方なども良くまとまっています。この社内ドキュメントを基にテックブログに投稿することもよくあるようです。
周囲の温かいサポート
Onboarding Quest を進めるにあたっては、メンターとの繋がりも重要です。メルカリでは新入社員に対してメンターがアサインされます。1on1の頻度などはメンターとの相談で決めますが、互いにフルリモートということもあり、頻度高めに毎日15分から30分ほど行っていました。Onboarding Quest の進捗をお互い見つつ、躓いている箇所が無いかチェックしてもらいながら進めていきました。
メンター以外にもチームの皆が積極的に支えようとしてくれます。実は入社してから一度も Slack の @here を使ったことがありません。使ったことがないというよりも使う必要がなかったというべきでしょうか。自分の分報チャンネルなどで困りごとをつぶやくと、誰ともなく答えを返してくれます。メルカリには メルチップ というピアボーナスが導入されていて、感謝の気持ちを伝えやすくて良かったです。
印象深かった Quest
Suguru’s message
ソウゾウでは CTO の @suguru さんがチームのカルチャーなどについて話をする機会があり、その録画を見ました。そこでは例えば、
- エンジニアが楽しく開発できている組織は強いので、そういう環境を維持していきたい
- 自分の専門外の取り組みにも積極的にチャレンジして欲しいし、逆に専門外からの取り組みも温かく受け入れて欲しい
- アーキテクチャの変更に関しても積極的に提案をして欲しい
という話がありました。
こういったものを見ることによって、チームがどういった考えを基に動いているのか?を知ることができてメンバーとの接し方が分かりました。
Look through Dictionary
メルカリおよびソウゾウではたくさんの用語があります。用語を知らないとなかなか会話についていくのも難しいのですが、それもしっかりカバーされていました。用語が多くて大変だなぁと思っていたので用語集が用意されていたのは嬉しかったです。
Onboarding Quest とは直接関係はないですが、用語に関しては AI社員の HISASHI にも随分と助けられました。社内では略語がかなり多くあるのですが、HISASHI に聞くと大体答えてくれます。
Onboarding Quest を終えるまでの期間
Onboarding Quest は1週間程度で終わることを目標に作られていますが、私の場合は2週間程度かかりました。最後の Quest ではタスクがアサインされ、リリースをすることになっているのですが主にそこで時間がかかりました。私の場合は通知文言の簡単な修正タスクだったのですが、以下の要因で時間がかかりました。
- 動作確認に手間取った
- Pull Request環境 の使い方や、開発用アカウントの作成などいくつか追加で学ばないといけないこと、やらないといけないことがありました
- 理解のために周辺コードを読んでいた
- どういう流れで修正対象の文言が生成されているのかを確認していました
- Go言語自体の理解が浅い
- Go言語を使い始めたのがソウゾウに入社してからなので適宜分からないところを調べていました
- 開発環境を整えるのに時間がかかった
- いくつか開発環境を整える方法があるのですが、どれもが微妙に動かない状況にありました
- 修正する必要があるマイクロサービスがソウゾウのものだけではなかった
- ソウゾウではメルカリのマイクロサービスを利用しているところもあります。今回修正したマイクロサービスはメルカリの通知機能を利用していたため、そちらの修正も必要でした
- QA方法の確認
- リリースするためにはQAが必要なのですが、どのようにするかのコミュニケーションを行っていました
タスクをこなすことではなく、自分の力を発揮できるようにすることがオンボーディングの目的なので、どれもが必要な時間だったとは思っています。
なお、ここでアサインされたタスクはオンボーディング用に残されたもので、JIRA上の「Onboarding」ラベルが付いているものから選ぶようになっています。
Onboarding Quest を終えてからその後
Onboarding Quest ではリリースまでの流れを一通り体験することができましたが、まだ知識としては不十分なところもあります。多数あるマイクロサービスの理解や、Terraformの使い方など学ぶべきところはまだたくさん残されています。ただ、Onboarding Quest を通してチームメンバーとのコミュニケーションも取りやすくなったので、そこに関してはチームメンバーに相談したり、メンターと日々1on1をしたり、自分の分報チャンネルでつぶやいたものを拾ってもらったりして解消しています。
今回私が躓いたところに関しては改善が進んでいますし、なにより私をはじめ、最近入社してきた人たちも同じ内容の Quest に取り組んでいるので、手厚いサポートができるようになっています。
新しいメンバーと一緒に Onboarding Quest を達成する旅に出る日を心待ちにしています。
ソウゾウではメンバーを大募集中です。メルカリShopsの開発やソウゾウに興味を持った方がいればぜひご応募お待ちしています。詳しくは以下のページをご覧ください。
- Software Engineer
- Software Engineer, Site Reliability
- Software Engineer, Machine Learning
- Software Engineer, QA Test
- Software Engineer (Internship) – Mercari Group (※新卒採用に応募するにはまずインターンへの参加をお願いしています。)
またカジュアルに話だけ聞いてみたい、といった方も大歓迎です。こちらの申し込みフォームよりぜひご連絡ください。