見出し画像

楽天、SaaSベンチャーを経て、モノタロウに入社してマイクロサービス化にとりくむエンジニアの話

※本記事の内容は取材時のものであり、組織名や役職等は取材時点のものを掲載しております。

モノタロウは徹底したデータマーケティングで10年連続20%以上の売上を伸ばしてきていますが、その成長の裏では、システム負荷の増大や顧客ごとの最適化などの課題や要求が高まっています。今回は、新しいデータ連携基盤のアーキテクチャ構築に取り組むエンジニアの藤本さんにオンラインインタビューしました。

藤本さん
ECシステムエンジニアリング部門 EC基盤グループ アーキテクチャチーム
主な役回りは、大規模プロジェクトの技術リード、GCP移行のファシリテーション、開発ロードマップの策定、技術的なコンセプト実証のための開発(Proof of Concept)、および開発や環境構築など。趣味はロードバイクでサイクリングすることで、社内にも愛好者がいるのでコロナ前にはみんなで瀬戸内海のしまなみ海道に出掛けた。他にも野鳥撮影やトレッキングや山でバーベキューなど自然と触れ合う趣味が多い。

Q.なぜモノタロウに入社したのですか?

「データドリブンでのプロダクト開発に惹かれた」
モノタロウに入社したのは2019年5月です。採用エージェントからの紹介で、オンラインのカジュアル面談をCTOの久保さん(https://note.com/monotaro_note/n/n7e74a45c1e46)と行いました。話したのは1時間半程度でしたが良い印象を受けました。久保さんとは時期が異なりますが、偶然にも楽天に在籍していたことがあって、システム開発の課題やマーケティングとのバランス感覚などの考え方で認識が近いなと感じました。Google Cloud Nextでデータマートについて講演していたデータ基盤グループ長の香川さん(https://note.com/monotaro_note/n/ncefda958d587)とも面談を行い、詳しい設計を聞いているうちに、モノタロウでのデータドリブンなプロダクト開発、彼らの大きな構想に自分も取り組んでみたいと思うようになりました。モノタロウのカジュアル面談は応募意思が固まっていない段階でも受け付けてくれたので気楽に取り組めました。そこから2ヶ月で入社をしました。

これまでのキャリアは、大学院でコンピューターサイエンスを専攻して、グラフ理論や計算複雑性などを学びました。新卒で組み込みソフトのACCESSに入社して、楽天ブックスへ移りアプリやショッピングカートを担当していました。そして、SaaSベンチャーで3つのサービスに跨る共通ログインなどの基盤開発をしていました。

Q.モノタロウのどこが良かったのですか?

「大規模サービスだけど、基盤開発に関われるのが面白そうだった」
前職までの会社で携わっていたシステム開発は個別案件化しており、「プラットフォームがどのように進化すれば、マーケティングがしやすくなるというような全体改善のサイクル」にはエンジニアの立場では深くコミットできないでいました。ログイン機能やデータ基盤が別に集約されていたために、サービスはサービス単体でしか開発できないという制約があったのに対して、モノタロウでは全てのデータがBigQueryに集約されデータパイプラインで繋がっているので、システム開発を早いサイクルでマーケティングに反映することができます。エンジニアとして全体を改善していけるチャンスに期待を持ちました。

また、クラウドのマネージドサービスが多く出揃っている中で、エンジニアのキャリア形成として「ゼロベースで業務システムを構築する体験をしたい」と思っていました。全社システムにERPを導入している大手企業では、エンジニア担当レベルで業務システムの改善に全く手出しができなくなっているところがたくさんあると思います。そうではなくて、データ連携やデータマートまでを自分たちで策定して作っているモノタロウのような会社であれば、GCPをはじめとするマネージドサービスを使いこなしてベストなサービス基盤を構築できるのではないかと考えました。

「スタートアップより体力があるからこそ、じっくりと開発にフォーカスできる」
入社以前に、フィンテックの ベンチャー企業に話を聞いてみたこともありますが、スタートアップは事業が伸びている時は良くても、成長の難しさの要素が足を引っ張り出すということも多いと思います。そうするとシステム投資が弱まっていく傾向にあるとこれまでの経験からも感じていました。その点、モノタロウであれば企業体力もありシステム投資に積極的で体制も整っているので心配がないと感じました。また、ミドルウェア企業も魅力的ですが、私にとっては自社サービスとして取り組んでいるサービスサイドの企業の方がやりがいを感じられるのではと考え、モノタロウを選択しました。

Q.今はどんな仕事をしているのですか?

「GCPとKubernetesの導入と新サーチ基盤の構築」
モノタロウには全体で約140名のエンジニアがおり、私の所属するアーキテクチャチームはお客様の業種や属性に最適なマーケティング施策を反映できるECサイトの基盤を構築運用しています。プロジェクトマネージメントの担当者、システム面の担当者(私)、フロントエンド周りの担当者の計3名で構成されていて、それぞれが必要とされる様々なプロジェクトに適宜参画しています。現在、私が主に取り組んでいるのは「開発チームへのGCPとKubernetesの導入支援」と「新サーチ基盤の構築」です。

「Google本社ともダイレクトなコミュニケーション」
まず、「開発チームへのGCPとKubernetesの導入支援」についてですが、これまでモノタロウでは事業成長に対応できるようにオンプレ→AWS→GCPへとデータ基盤が変遷してきました。ECサイトをリアルタイム対応させるニーズを実現するためのGCPの導入はかなり大掛かりのもので、社内の知見だけでなくGoogleのベストプラクティスを参考にして支援も受けながら進めています。モノタロウはGoogleとパートナーシップ提携しているので、技術的なコンサルティングを受けたりエンタープライズ限定のユーザーグループに参加したり、また最近ではSRE(Site Reliability Engineering)について米国本社の担当者とダイレクトにコミュニケーションすることもありました。こういったことは、ある程度のボリュームでGCPを使っているモノタロウのような企業でないと得られない貴重な機会だと思います。モノタロウのエンジニアチームにジョインすれば、GCPについてとても強くなれるということは間違いありません。

「商品、倉庫在庫、注文状況などのリアルタイムニーズに応える基盤開発」
「新サーチ基盤の構築」では全体のアーキテクチャ方針の決定と一部実装を担当しています。モノタロウの検索ボックスでは以前は全文検索システムにApache Solrを使っていましたが、運用の手間やデータ更新頻度にも課題がありました。現在では、リアルタイム更新を実現するためにデータの変更情報のみを取得して処理するCDC(Change Data Capture)などを活用してシステム基盤を構築し、複数箇所に跨る倉庫の在庫情報との連携も実現しています。

商品、倉庫在庫、注文状況など様々な情報を集約してマーケティングのサイクルを早めていく必要があるのですが、リアルタイムのマーケティングニーズに対応できるシステム基盤を実現していくには、古いシステムがバッチで残っているところもあり、今後改善していくべき部分も多いです。また、新しいテクノロジーは常に進化していくのでチャレンジしていける領域は広がっていきます。先進的なシステム基盤構築が進んでいるモノタロウではありますが、まだまだチャレンジのしどころがあることを入社検討されているエンジニアの人たちにはお伝えしたいです。

Q.モノタロウはどんな組織・文化ですか?

「ベテランが多く、チームで働きやすい」
入社して最も感じたのは、社内にはそれぞれの領域に経験豊かなベテランのメンバーが多いということです。そして、多くのメンバーが率先して意欲的に動いています。これはモノタロウの社風とも言えますが、基本的にECサイトという一つのサービスを基点に会社が動いているので社内メンバーの目線が一点に揃っています。異なる複数の事業単位ごとに動いているような企業にはない強さと働きやすさがモノタロウにはあります。また、事業成長のためにダイナミックに組織を変革していく習慣がモノタロウにはあり、すでに私が入社してからも何度か組織変更がありました。働いている社員にとって実際に理にかなった組織に作り替えられていると感じています。

また、モノタロウの社内には「プロデューサー」という職務があって、業務ごとにプロジェクトを推進する人が数名います。デザイナーにデザインを書いてもらったり、データを作って開発に回して、システムのリリース部門と調整したりと、そのフローはしっかりと整っています。このような仕組みがあるおかげで、困難な課題があってもみんなで取り組みやすく、長期的なビジョンも示しやすいです。

「腹落ち感のある目標設定が着実な成長の秘訣」
モノタロウではOKR(Objectives and Key Results)という目標管理方法を運用しています。企業・部門の目標を共有してチームや個人の目標にブレイクダウンしていくという方法です。そこでは無理のないKPIを設定して、それをチームリーダーがフォローするという形が出来ています。OKRのようなものが無くて漠然と目標を立てているというような組織と比較するとフォローしやすいのではないかと思います。結果として、特定の人がメンバーの管理業務だけになることはありません。一般的にエンジニアは年齢を重ねるにつれてチームメンバーの面談や目標設定が負担になって、現場の業務ができなくなってしまったり、距離が生まれてしまったりするという懸念もありますが、特定の人に管理業務が集中するケースがモノタロウでは少ないです。

OKRを導入している会社は増えていますが、単に導入したら良いわけではないものだと私は思っていて、運用の仕方や目標の立て方などは常に改善を繰り返しながら、よりチームにフィットしたものにしようとしています。半期ごとに行う部門、グループのゴール設定のミーティングに私も参加していて、「目標としてこうあるべき」といったところから一緒に考えています。検討していくのに時間はそれなりに掛かりますが、それぞれのメンバーにとって腹落ち感のある目標の設定、実行ができます。

Q.モノタロウにいるエンジニアはどんな人?

「チームで高い技術レベルにチャレンジ」
モノタロウのエンジニアメンバーのポテンシャルは高いと感じています。EC基盤チームでGCP活用のガイドラインを策定していますが、そのハードルがなかなか高いのです。インフラ構築を自動化で行おうとか、プッシュしたら自動でイメージを作りましょうとか、CI/CDやDevOpsなどへのチャレンジやその辺りを事前に考慮して開発環境作りが定義されています。当初は「ちょっと難しすぎないかな」と思っていたのですが、みんな結構使いこなしています。

高いミッションに一人で立ち向かうことは不安ですが、社内で相互にノウハウを共有してガイドラインを作っていけば理想的なアーキテクチャを着実に狙っていけるのが面白みだと思います。もちろん厳しい面もあって、最終的にリリースする際にはABテストをするのですが、そこでは確実に勝たなければいけません。そのために、改善すべきところを十分に洗い出して、レベルの高い新しいサービスを実現していくということが重要です。

モノタロウ藤本様お写真2

Q.モノタロウの中でも一番関心のあるチャレンジは何ですか?

「NetflixやFacebookとも異なる、モノタロウ流のマイクロサービス化に挑戦」
モノタロウではマイクロサービス化を積極的に進めて成果を上げてきています。トラフィックが上がると売上もそれ以上に伸びていくので、それに耐えられるようなシステムにしていくために、モノリシックなウェブアプリケーションを機能別にマイクロサービス化したり、フロントエンドをもっとリッチなクライアントにしたりすることを目指しています。

「マイクロサービスはこう分割するべき」といったベストプラクティスは有りそうで無く、NetflixやSpotify、Facebookなどはマイクロサービスで素晴らしいシステムを作っていますが、それらと同じものをモノタロウが目指すかといえばそうではないと思っています。ECサイトの単一サービスで成長している会社ならではのマイクロサービス化がきっとあるはずで、それを探るには技術だけを見ていては駄目です。裏側のシステムがどういうもので構築されていて、それがフロントに情報としてどう伝達されるべきかという全体の設計を踏まえて、「モノタロウのマイクロサービス化はこういうものですよね」という考え方ができると良いなと思っています。大規模ECサービスのマイクロサービス化の最適解は現時点ではわかりませんが、実行、検証、分析を進めることが大事であり、そこに面白みがあります。それに取り組めるエンジニアと共に良いサービスを作っていきたいですね。

Q.どんな人がモノタロウに向いていますか?

今まで取り組んできたチャレンジは次々と過去のものになっていくので、「常に新しい状況にキャッチアップしていける人」が良いと思います。モノタロウはBtoBのECサイトを運営しているので、急にセールで売上が10倍になるなど劇的な反響はありません。そのため、着実なチャレンジを繰り返すことに面白みを感じる人は合っていると思います。

「新しい技術を使って、派手なデータマーケティングをしてみたい」という人もいて、大手企業の中でできることではあるのですが、それが一つだけでなくて何度もチャレンジを繰りかえすことでチームの中でノウハウが広がっていき、継続的な成長が実現されていくので、仕組みづくりに面白みを感じられる人だとさらに楽しめるのではないでしょうか。入社すれば、その仕組みづくりに間違いなく関わっていくことができ、面白さに触れられると思います。特に、組織の成長サイクルを刺激するような仕組みづくりに面白さを感じる人には向いていると思います。そのために最新の言語やフレームワークから、トラディショナルなデザインパターンまで取り組めるような人が良いですね。

▼モノタロウではともに働く仲間を募集しています!

▼MonotaRO Tech Blog