こんにちは。SouzohでEngineering Managerをやっている @naopr です。「メルカリShops [フライング] アドベントカレンダー2022」の2日目を担当します。
はじめに
Souzohのプロダクト組織では、以前メルカリShopsの開発を支える組織でご紹介したようにCross Functionalな8〜10人程度のチーム単位でスクラム開発を行っています。
また「全員Software Engineer」を標榜し、自身が得意な技術領域以外にもチャレンジしやすいようにmonorepoを採用していたり、実際に元々iOSが専門だったエンジニアがBackendやFrontendを開発していたりします。
ただ、そういったチャレンジのカルチャーがありながらも日々の開発では自身の専門性を発揮しやすい領域の担当が多くなったり、チームの中で特定のスキルが特定のメンバーに集中してしまっていたりと、理想とする状態にはまだ至っていないのが現状です。
このエントリでは、こういった課題を緩和することを目的に私の所属するチームで運用を開始したエンジニアスキルマップについて紹介します。
チームの課題
私のチームでは管理機能や商品登録機能など、主にショップが使う機能を担当しています。
開発する内容はBackend領域のタスクが多く、チームもBackendを得意とするエンジニアが多い一方でFrontendが得意なエンジニアが少ない状態です。そのため、特定のエンジニアにFrontendの担当が偏りがちで、Frontendが得意なメンバーが開発業務を通してBackendに挑戦しにくいことに課題を感じていました。
「全員Software Engineer」を本人の努力に任せるだけでなく組織の仕組みとして後押しするためにも、この課題を解消したいと考えました。
スキルマップの作成と運用
チームの課題解決のためにスキルマップの作成と運用を始めました。実際に使用しているスキルマップを簡易化したものが下図です。
このスキルマップでは、「カバレッジ」列を見ることで特定のメンバーしか持っていないスキルが一目瞭然です。Reactカテゴリの2項目はDさんしかスキルを持っておらずチームのSPOF(Single Point of Failure: 単一障害点)といえます。こういったカバレッジの低い項目ができるだけなくなるようにチームとして継続して改善を行います。
では、スキルマップ作成と運用にあたって行ったことを順に説明します。
ポリシー決め
本来の目的に沿った使い方をするために、スキルマップをチーム内でどのように使うか運用を始める前に意識合わせをしておくことは非常に大事です。
私のチームでは下記のように「やること」「やらないこと」という軸でポリシーを決めました。
- やること
-
- チームとして特定のメンバーにスキルが偏っている項目(カバレッジが低いもの)を見つけ、ドキュメント作成や勉強会開催、ペアプログラミング等を通して偏りをなくす
- エンジニア個人のOKR設定やオンボーディングのために参照する
- やらないこと
-
- カバレッジをメンバー間で相対比較する
- Managerが評価の際にカバレッジを使う
- そのスキルを身に着けたいと思わないメンバーに無理やりスキルを身に着けさせる
このポリシーをドキュメントで明示することで、Managerを含めたメンバー間で不安なくスキルマップを運用し始めることができました。
項目の作成とチェック
スキルマップの全項目を1人で考えるのは難しいため、あらかじめカテゴリだけ列挙しておいて具体的なスキルはそのカテゴリが得意なメンバーで分担して作成しました。
また、項目を考えた人とは別の人が1人以上レビューすることで抜け漏れが出にくいようにしました。各項目のスキル有無はYes/Noの2値で判断することとし、判断に迷わないようできるだけ具体的な内容にすることを心がけました。
項目ができあがったら、チームのエンジニア全員が自身の列にYes/Noをつけます。
SPOFの改善
スキルマップは作成して終わりではなく、そこから改善のアクションをとったり継続してメンテナンスするものです。
私のチームでは全体としてFrontendの項目のカバレッジが低いことがわかったためFrontendに詳しいメンバーを中心に勉強会を実施しています。
Apolloの公式ドキュメントを読みながらApollo ClientのCacheについて勉強する会では、勉強会を通じて理解が進んだメンバーが多くカバレッジが大きく改善しました。
今後も継続して勉強会やペア・モブプログラミング等を通じてチーム全体のスキルの底上げをしていこうと思っています。
おわりに
Souzohでは「全員Software Engineer」を通じて縦割りの役割制限を設けないことで自由な挑戦やエンジニアとしての問題解決に集中できるカルチャーを促進していきたいと思っていますが、まだまだ道半ばです。皆さんの会社ではどんな取り組みをしているのか情報交換をさせていただきたいので、ぜひお気軽にご連絡ください!
Souzohではメンバーを大募集中です。メルカリShopsの開発やSouzohに興味を持った方がいればぜひご応募お待ちしています。詳しくは以下のページをご覧ください。
- Software Engineer
- Software Engineer, Site Reliability
- Software Engineer (Internship) – Mercari Group (※新卒採用に応募するにはまずインターンへの参加をお願いしています。)
またカジュアルに話だけ聞いてみたい、といった方も大歓迎です。こちらの申し込みフォームよりぜひご連絡ください!