STORES でソフトウェアエンジニアをしている morihirok です。 このたび STORES のエンジニア採用ポジションを大きく刷新し、これまで多数あった採用ポジションを「Web エンジニア」のひとつに統合しました。
このブログでは意思決定に至るまでの背景とその意図についてご紹介し、私たちが作っていきたい組織や挑戦する課題について知っていただければと思っております。
これまでどうなっていたか
前提として、STORES は複数のスタートアップが合併してできた会社です。
しばらくもともとの会社の単位で事業部制組織を取っていたため、エンジニアの採用ポジションも組織ごとに存在し、採用フローもエンジニアの組織ごとに存在していました。
もとは別のスタートアップだったため、組織ごとに利用している言語・フレームワークや開発スタイルも当然異なっていました。開発スタイルとして分業が進んでいた組織においてはバックエンドエンジニア・フロントエンドエンジニア・インフラエンジニアといった形でポジションが存在していることもあり、組織ごとに利用している技術スタックも異なっていました。
結果として多くの採用ポジションが用意されているという状況になっていました。
これを「Web エンジニア」というひとつのポジションに統合したのが今回の意思決定です。
なぜ統合したのか
複数のポジションが存在していることは一般的には課題ではありません。必要な人員を明らかにし、それぞれの人員を的確に採用するために、必要なポジションを複数用意することは妥当なの採用戦略です。
しかし、私たちがやりたいことはお店の運営にまつわるいろんなデジタル化を、複数のプロダクトを横断して、ひとつのSTORESの体験として提供することです。つまり、これまでバラバラのスタートアップで開発されていたプロダクト・システムを、すべて同じ体験で提供できるように統合していきたいのです。
この難しい課題に挑戦するために、今日まで会社の機能、組織、システムとあらゆるものを徐々に統合してきました。組織全体が同じ目的に向かって進むためには、同じ目的に向かって進める構造を作り、その上で戦略を実行する必要があると考えたからです。 この中で採用ポジションも統合するのが自然だろうと判断しました。
なぜプロダクトごとだったものを統合したのか
ひとつの体験を提供するには、バラバラのシステムを統合する必要があります。これを実現するために私たちは必要なプラットフォームづくりをおこなっています。
もともとプラットフォームチームとアプリケーションチームに分業していましたが、まだまだどう解くべきか見えていない課題も多いことから現時点では分業が難しいと判断し、全チームが必要に応じて双方を開発する組織に統合しました。また、プロダクトごとに分かれていた組織を、より作り込みたい体験に向かって進めるよう1チームがプロダクトを横断して開発する組織に統合しました。
エンジニアリング組織の作り方としては認知負荷を下げるというトレンドから逆行する意思決定ではあります。しかし、私たちがおこなっているプラットフォームづくりは内部品質の向上を意図したリアーキテクチャではなく、事業にとって必要な体験を作り込むためのものと考えており、強い意志でこの決定をしました。
2025年に入ってから実際に複数のプロダクト・システムを横断して1チームで開発することに挑戦しており、その成果をもうすぐお見せできるかと思います。
このような組織の実態に合わせて、プロダクト別だった採用ポジションをひとつに統合しました。
なぜ言語別だったものを統合したのか
プロダクト・システムを横断して開発するということは必然的に1チームが複数の言語を使って開発することになります。当然認知負荷は跳ね上がりますが、事業として作り込みたい体験に向かって進むためには払うべき代償と判断しました。
私は昨年、STORES において先んじてバックエンドはRubyとGo、フロントエンドは VueとReact といった形で複数の言語・フレームワークを利用しての開発をおこない、本当にワークするのか取り組んでいました。当然慣れていない言語・フレームワークを学習しながら扱っていくコストはありましたが、STORES のように GitHub Copilot 等のAIエージェントを活用できる環境においては、一定ワークできるものだとも感じました。 そして、言語・フレームワークが持つAPIに精通し活用する以上にシステムを抽象的に捉え、より効果的かつインパクトのある課題解決に取り組むことが重要だと感じました。
こういった組織の実態に合わせて、採用ポジションも言語にかかわらないひとつのものに統合しました。
なぜ技術領域別だったものを統合したのか
Web アプリケーションをシステムとして抽象的に捉え、より効果的かつインパクトのある課題解決をするためには、フロントエンドとバックエンド、インフラといった技術領域ごとに分業するのではなく、それらすべてを統合して扱うことが必要だと考えています。
これまで STORES が組織として経験してきた課題として、技術領域での分業は局所最適な課題解決を生みやすいというものがありました。 より良い体験を効率的に作るため、私たちはひとりひとりのエンジニアに組織としてフロントエンド・バックエンドといった肩書をつけず、Web アプリケーションに関わる全てを担当領域とする形にしました。
もちろんひとりひとりのエンジニアには技術領域ごとに専門分野・得意不得意・興味範囲があり、それらはキャリアの中で最大限尊重されるべきです。平均的に全てできるようになってほしいということではなく、ひとりひとりの興味を満たし専門性を磨いてもらいながら、Web アプリケーションを総合的に良くしていきたいという思いがあります。
そういった技術横断の組織を目指していくうえで、採用ポジションも分けない判断をしました。
統合された採用ポジションの紹介
このような背景から、今回開いたポジションがこちらです。
まだまだ STORES が提供したい理想の体験は10%も実現できていないというのが現状です。100%の状態を達成するためにも、技術課題を解決しながらより良い組織を模索していきたいと考えていますし、 STORES の環境に興味を持っていただける方と一緒により良いプロダクト・組織を作っていきたいです。