
技術負債も仕様の壁も全員で超える── toridori初!3チームで挑んだ大規模アップデートの舞台裏
2016年の創業以来、インフルエンサーマーケティングを軸に多彩な事業やプロダクトを提供してきた株式会社トリドリ(以下、toridori)。誕生間もない市場の拡大に取り組み、2022年には東証グロース市場への上場を果たすなど、着実に発展を続けています。特に事業の中核を担っているのが、2018年にリリースした広告主とインフルエンサーをつなぐマッチングプラットフォーム「toridori marketing(トリドリマーケティング)」。登録インフルエンサーは約7万7,000人と、高い人気を誇ります。
そして今年、「toridori marketing(トリドリマーケティング)」は新たなスキームを実装し、ユーザーの利便性向上を実現しました。大規模アップデートの過程では、開発組織やアーキテクチャの抜本的な見直しや7年にわたる技術負債の改修もあったと言います。さまざまな壁をどのようにして乗り越えたのか?アプリエンジニアの髙瀬さんとフロントエンジニアの加藤さんに挑戦の軌跡を語っていただきました。
プロフィール

髙瀬 凌平さん
「toridori base(トリドリベース)」アプリエンジニア
ライブ配信サービス企業でのモバイルエンジニア経験を経て、2019年にtoridoriへ入社。以後6年間にわたり、アプリエンジニアとしてtoridoriのさまざまなサービス開発に携わる。開発業務と並行して、エンジニアの採用・人事も経験。

加藤 翔さん
「toridori marketing(トリドリマーケティング)」フロントエンドエンジニア
学生時代にプログラミングができるアルバイトを探していた際、上場前のインフルエンサーマーケティング事業を提供するtoridoriに興味を持ち、2021年に入社。フロントエンドエンジニアとしてプロジェクトマネジメントも担当。現在は新規事業の開発を担当し、フロントエンドからバックエンドまで幅広く携わっている。
外からの視点で見えた、プラットフォームの伸びしろ

――「toridori marketing(トリドリマーケティング)」というプラットフォームの特徴を教えてください
髙瀬:「toridori marketing(トリドリマーケティング)」は2018年にローンチしたサービスで、「インフルエンサー」と「広告主」という2種類のユーザーをつなぐマッチングプラットフォームです。大きな特長は、業種・企業規模を問わず、インフルエンサーマーケティングを手軽に始められること。
以前は、大手企業が広告代理店を通してフォロワー100万人超のメガインフルエンサーを直接起用するケースが中心でした。しかし、「toridori marketing(トリドリマーケティング)」では中小企業や個人事業主などの広告主と、フォロワー数が数千〜数万と限られていても、特定の分野で専門情報を発信するようなマイクロインフルエンサーをメインユーザーに設定し、広告主が案件を公開し、インフルエンサーが応募できる「公募型」のサービスを構築してきました。
加藤:ユーザー数は年々拡大していて、登録インフルエンサーは現在では約7万7,000人を数えています。応募・マッチングリクエストが一日1万件を超える日も少なくありません。
こうした中で、開発部では広告主向けサービス「toridori marketing(トリドリマーケティング)」と、インフルエンサー向けサービス「toridori base(トリドリベース)」という2つのサービスを開発し、ユーザーごとに異なるニーズに向き合い、さまざまな機能追加や品質向上に取り組んできました。

――サービスの拡大に伴って、プロダクトの課題や環境はどのように変化してきたのでしょうか?
髙瀬:開発を取り巻く環境は大きく変化し、インフルエンサーマーケティングの市場自体が成長しています。競合となるサービスが追いかけてくる中で、これまで以上にユーザーに選ばれるプロダクトへと進化する必要があるなと感じています。
加藤:正直なところ改修すべき技術負債も増えてきていました。ただリリースから現在までひたすらサービスを磨くことに集中してきたこともあり、なかなか手をつけられずにいたんですよね。
髙瀬:toridoriは今期から3カ年の中期経営計画をスタートし、2027年12月期の売上高100億円達成という目標を設定しているのですが、注力ポイントのひとつとしてプロダクト開発の加速と開発組織の拡充を掲げています。
そしてその一環として、LINEヤフーやスマートニュースで新規事業立ち上げに携わってきたVPoPの北出と、富士通やスマートニュースなどで広告開発やテックリードを手掛けてきたVPoEの北野がジョインしてくれたことは、非常に大きかったですね。外からの視点で「toridori marketing(トリドリマーケティング)」の課題と伸びしろを洗い出し、大きな変化のきっかけをつくってくれました。
――では、今年6月にリリースされた「立替型機能」の開発も、いわば“新生toridori”を目指す取り組みの一環になるのでしょうか?
髙瀬:おっしゃる通りです。現在のインフルエンサーマーケティング業界では、「無償提供型」と呼ばれる方法が定着しています。これは広告主がインフルエンサーに商品を無償提供することで、PR投稿を依頼できるという方法です。
しかし「無償提供型」の場合、広告主はインフルエンサーへ無償で決済するための特別対応が必要で、ユーザー間での日程調整・交渉や当日の本人確認、それに伴うオペレーションの準備など、双方にさまざまな手間が発生していました。
加藤:広告主にはEC・通販事業者も数多くいるのですが、その場合もECサイトを経由せず各インフルエンサーの宛先を確認して個別発送を行ってもらうなど、通常の通販とは異なる作業が付き物でした。

髙瀬:そこで、「toridori marketing(トリドリマーケティング)」に新規追加した「立替型機能」では、インフルエンサーが好きなタイミングで来店やECサイトから商品を注文し、一度代金を支払い、PR投稿の完了に伴って商品料金の立替精算を行う仕組みを採用しました。
最初にこの機能を聞いたときは、「実現できれば、あらゆるユーザーの負担軽減になるぞ!」とモチベーションが上がり、とにかくリリースしたいと思いましたね。ただ……ふたを開けてみたら想像以上の大手術になりました。
新生toridoriを目指すための“開発組織改革”

――“大手術”となると、「立替型機能」にはかなりの開発期間を要したのでしょうか?
髙瀬:昨年の秋頃から要件や課題の洗い出しが始まり、実際の開発は12月から今年6月までの約半年間に及びました。また、このプロジェクトに先立つ形で開発体制の抜本的な見直しも行われました。というのも去年までの開発組織は基本的に1つで、toridoriに関するすべてのサービスとプロダクトを開発部全体で受け持っていました。
加藤:最初はシンプルな開発組織でよかったんですが、規模の拡大が進むうちに開発速度に課題が出てきたんですよね。
髙瀬:そうなんです。そこで開発部を、①広告主向けサービスの「toridori marketing(トリドリマーケティング)」を担う広告主専門チーム ②インフルエンサー向けサービスの「toridori base(トリドリベース)」を手掛けるインフルエンサー専門チーム ③プラットフォームの基盤構築に専門特化した共通基盤チームという3つのチームに分割。各チームにテックリードを配置し、チーム内のコミュニケーションレポートラインも整備し直しました。

加藤:このチーム分けに伴って、私は「toridori marketing(トリドリマーケティング)」、髙瀬は「toridori base(トリドリベース)」を、それぞれリードする役割を担うようになりました。
髙瀬:正直、はじめはエンジニアの一体感が失われるんじゃないかと心配していました。しかし、実際に取り組んでみるとエンジニア一人ひとりの担当サービスへの責任感と集中力が高まり、開発スピードも大幅に改善されて、本当に「こんなに変わるのか」と驚くほどでしたね。
加藤:それにプログラミング言語やフレームワークの陳腐化が進んでいることも、技術負債のひとつとして課題観を持っていたので、バックエンドのリプレイスやアーキテクチャの見直しにも着手しました。私が所属する広告主専門チームでは、メンバー全員でどんな技術を選定すべきか討論会も行いましたね。
――具体的に、どのようなアーキテクチャに変更されたのでしょうか?
髙瀬:これまでtoridoriのサービスはRuby on Railsで開発してきましたが、今回の見直しを機にTypeScriptとNestJSに統一しました。
個人的にはRubyのシンプルでルールが少ない点が好きでしたが、俗人的になるよりも技術統一を進めるべきですし、開発部全体で品質を担保するためには型があって効率化を図りやすい技術を選んだほうがいい。実際、TypeScriptとNestJSにすることでコードの品質向上、可読性や保守性などメリットも感じています。大きな変革でしたが、このタイミングで取り組んで正解でした。
加藤:他にもチーム数の拡大に合わせて、共通基盤チームが頑張って開発環境を増強してくれました。このサポートも、「立替型機能」をスピード感を持って開発するうえで本当に助けられましたね。
複雑に絡み合うサービスを切り分け、新スキームを構築

――「立替型機能」の開発はどのように進んだのでしょうか?
髙瀬:まず最初のステップとして昨年末から3カ月ほどをかけて広告主とインフルエンサーの契約管理を独立させたコンポーネントをマイクロサービスでつくり、立替精算に必要なウォレット機能も新規開発しました。そして3月頃から第2ステップに進み、「toridori marketing(トリドリマーケティング)/toridori base(トリドリベース)」の双方のリプレイスを進め、マイクロサービスを組み込んでいった形です。
基本的に各チームがロードマップを策定し、その内容に基づいて開発を進めましたが、今回の「立替型機能」は、新たなサービス連携の仕組みをつくるチャレンジでもあります。そこで第2ステップからは3チーム横断型のプロジェクトに移行し、密に協力して開発を進めました。
加藤:チーム体制を確立したばかりだったこともあり、チーム間の連携も最初は大変でした。そこでコミュニケーションエラーをなくそうと毎日昼にデイリースクラムを行い、各チームの進捗具合はどうか、新しい課題は出ていないかなど、何でも話し合うようにしました。そしてボトルネックが見つかれば、手が空いている人がどんどん巻き取ることで開発を加速させることができました。
――「新機能の開発」という言葉のイメージ以上に、大規模かつ複雑なプロジェクトだったわけですね
髙瀬:そうですね。私も最初に「立替型機能」をつくると聞いたときは、1カ月くらいで終わるかなと思っていたんですが(笑)。ただ、ひとつのプラットフォーム上で2つのサービスが連携しあうと、複雑度も2倍に膨れ上がるんですよね。
加藤:例えばインフルエンサーと広告主の進行フローを“オファー”と呼んでいるんですね。今回の「立替型機能」を開発するにあたってそのオファー機能の仕様を再確認したのですが、あまりの複雑さに詳細を把握するだけでも一苦労でした。
髙瀬:実はそのオファー機能、私が入社当初につくったものなんです。8個の状態、10個の操作からなる、かなり複雑な状態遷移図を作成し、データベースからアプリケーションまで一貫して導入しました。ただ、当時はきちんとドキュメントを整備しておらず、保守や修正が難しくなっていました。
今回のプロジェクトを通して、改めて良くない実装をそのままにすべきではないなと痛感しましたし、ドキュメントの作成と管理の徹底を各チームでルール化しました。
――技術負債を解消しながら前進する道を選んだわけですね
加藤:あとは立替精算に関する要件整理も大変でした。今回、立替精算を行うために外部のペイメント企業と連携して与信枠機能を追加したのですが、与信枠を確保する期限がありました。そうなると当然、広告主はこの期間内でオファーの作成から完了まで実行しなければ決済エラーが起こってしまいます。
髙瀬:取引にはいろんな状態変化があり、取引キャンセルに1週間かかるケースもあれば、インフルエンサーの再投稿が必要になるケースもあります。そうしたさまざまなシチュエーションを洗い出し、期限内に収まるサービス設計が必要でした。
加藤:うまくインフルエンサーからの応募が集まらず、オファー期間が延長されることも珍しくありません。業界・業種によってかかる時間も異なりますし、「このパターンだと、この日数を超えてしまう」といったデータを集めて、ひたすら地道に整理して…。この作業はかなり骨が折れましたね。
――苦労するシーンも多かったと思いますが、各チームの雰囲気はいかがでしたか?
髙瀬:みんな落ち込んだり、ギスギスしたりといったことはなかったですね。むしろ一人ひとりが当事者意識を強く持って、「これが完成したらプロダクトはめちゃくちゃ良くなるはずだ」と共鳴し合って開発に取り組んでいた印象です。
加藤:私も「やらない選択肢はないな」と思っていましたね。toridoriの開発部には、業務領域に縛られずにさまざまなチャレンジができるカルチャーが根付いていますし、先ほどの与信枠機能でもフロントだけでなくバックエンドまで手掛けさせてもらいました。もちろん、プロダクトの進化のためという気持ちもありますが、それ以上に目の前のプロジェクトで自分につくれるものがあれば、どんどんつくるべきだと思っているんです。
市場の黎明期を超えた、ここからが面白い

――「立替型機能」のリリース後、どのような反響や効果が生まれていますか?
髙瀬:今回のプロジェクトを通してユーザーに「無償提供型」と「立替型」という2つの選択肢を用意できるようになりましたが、まだまだ「無償提供型」がスタンダードであり、「立替型」は認知向上と普及促進の段階です。それでも徐々にPR実績は生まれてきており、「無償提供型」のオファーに比べて取引完了率は20%以上向上しています。これはオファー関連の負担軽減ができている証拠だと捉えています。
加藤:toridoriでは今年9月から1カ月間、PR実績100万件到達を記念して感謝キャンペーンを展開していて、この施策でも「立替型機能」のプロモーションを実施しています。便利に利用するユーザーが増えてくれたら嬉しいですね。
――今回の取り組みを通して得た学びや気づきはありますか?
加藤:当たり前すぎる話ですが、ドキュメント管理は本当に大事だなと再認識しました。
髙瀬:基本を徹底するのは本当に大事だと思いましたし、そのためにも「もう少しAIを使えばよかったな」と感じています。以前からバックエンドの仕様調査の目的で Devinを使っていて、今年7月からはClaud Codeも使い始めたのですが、コード生成や技術負債の返済など、さまざまな作業を効率化できるなと。それこそドキュメント作成の負担も、1日1回ソースコードをコードベースで生成AIに食わせて仕様を出力していけば、エンジニアが意識せずともドキュメント管理できる未来が実現できるんじゃないでしょうか。
加藤:今回のプロジェクトを通して、「toridori marketing(トリドリマーケティング)/toridori base(トリドリベース)」から取引管理機能を切り出してマイクロサービス化したことで、プラットフォームの可能性も広がったなと感じています。現在スタンダードになっている案件の依頼だけでなく、将来的にはアンケート形式の案件なども公募できるようになるでしょうし、インフルエンサーの方が「挑戦してみたい」と思うような、幅広いプロジェクトを提供できるプロダクトを目指したいです。
――最後に、エンジニアとしてインフルエンサーマーケティングに携わる面白さや醍醐味を教えてください。
加藤:いまの時代、インフルエンサーの方々の拡散力は桁違いですし、インフルエンサーの先にいる多くの消費者に影響力を及ぼすようなサービスはなかなかありません。その開発の最前線に立てるのは、やっぱり楽しいです。
髙瀬:以前に比べれば、インフルエンサーマーケティングの市場も着実に成熟してきたと思います。SNSでモノを買ったり、情報収集するといった今の時代らしい消費行動は普遍的なものになりつつありますし、消費者のリテラシーも高まってきました。その結果、「やれば上手くいく」というステージを経て、これからは良い商品、良いサービス、良い情報でなければ効果を発揮しにくいフェーズに入ったように感じています。
こうした時代の変化に合わせて、「toridori marketing(トリドリマーケティング)」もより良いプラットフォームへと進化する必要がありますし、「立替型機能」のアップデートはもちろん、QAチームの新設やデータ基盤の開発など開発体制のさらなる強化も進んでいます。「良いサービスでなければ売れない」というのは、開発部にとって大きなモチベーションになりますし、同じ意欲を持った仲間を迎えてさらなる成長を目指していきたいですね。