パーソナルスタイリングサービスのシステム開発を振り返ってみた
はじめに
こんにちは、株式会社 DROBE で CTO をしている都筑です。我々は、ファッションにおいて店舗でも EC でもない第3の選択肢となるパーソナルスタイリングサービスを運営しています。
パーソナルスタイリングサービスのユーザー体験は、一見してとてもシンプルなものに見えると思います。ユーザー視点では、アンケートに答え、自宅に届いた商品を試着して、気にいったものだけを購入できる、サービスです。
しかしながらそれを実現するためには、一般的な Web システムの開発に加えて、ブランドなどの外部システムとの結合、AIを活用した商品の選定機能、返品を前提とした物流の構築など複雑な機能が必要となります。
ここでは、サービス開発の歴史を振り返りながらパーソナルスタイリングサービスを成立させるためにそれらの機能をどうやって開発したかを紹介します。
少しでも DROBE に興味を持ってくれた方が、サービスや開発についての具体的なイメージをつかむのに役に立てば嬉しいです。
パーソナルスタイリングサービスとは
パーソナルスタイリングとは明確な定義がない新しい言葉だと捉えていますが、我々は以下の 3 つの要素を持っているサービスと定義しています。
1 to 1
シームレス
セレンディピティ
この辺りの考え方に関しては代表の山敷が書いた note に詳しいので是非そちらもご覧ください。
最初にやったこと
最初にやったことはテストマーケティングです。まだ世の中に浸透していない新しい形態のサービスなので、市場のニーズを捉えるという意味でもテストマーケティングを重要なものだと考えていました。パーソナルスタイリングと言っても様々なサービスの形がありえます。我々は以下の 3 パターンについてのテストマーケティングをしました。
フォームから詳細なプロフィールの入力をしてもらいつつ、それをベースにチャットでカウンセリング、それらを踏まえて商品を選定(自分たちで買ってくる)し発送。後日必要のない商品を返送して頂く
1 の体験でチャットカウンセリングまで行うが、実際に商品は送らずに商品を買える他社 EC サイトのリンクを送る
フォームから申し込みだけしてもらい実際に店舗に同行してアドバイスを行いながら一緒にショッピングする
テストマーケティングを含むプロダクトの立ち上げについては COO 長井の note にも纏まっているので参照ください。
このタイミングでは殆どのオペレーションはシステム化されていませんでした。商品の選定や調達は他社サイトや店舗を周ることで行い、発送や返品の受付も自分たちのオフィスから行っていたので、プロダクトという意味では詳細なプロフィールの入力フォームだけを開発していました。
当時の時点でも、SurveyMonkey, Typeform, Mailchimp など、開発を行なわずとも自由度の高いフォームが作れるサービスはあったのですが、柔軟性という観点で内製化しました。
今考えると、エンジニアとしては特にやることがなく暇だったので何か作りたかっただけな気もします。(実際にモノづくりの観点だと割と暇で、私もスタイリストと一緒にユーザーさんのショッピングに同行したりしていた)
システム化を進める
テストマーケティングのフェーズが終わると急に開発が忙しい状況になります。
このタイミングまではフォームしかなかったサービスに、割と重めの機能実装の要望が発生します。(ちなみにこの頃に三越伊勢丹から出向メンバーが多く参加してくれました。この note にある “スーパードライで、合わないなら出てってどうぞ” みたいな雰囲気はやることが多すぎてテンパっていた結果だったのかもしれません。この場を借りて伝えさせてらいたいです、ごめんなさい)
商品管理機能
商品情報の管理をシステム化するために、ブランドさんのシステムと結合する必要が発生します。具体的には以下のような機能を実装していきます。
商品情報の取得と更新
商品発注機能
売上の連携機能
この時に、自社の商品情報を管理するデータベースをある程度設計することが必須になってきます。例えば、ブランド、メーカーという概念はどう整理するのか、商品情報と価格情報・在庫情報はどういうデータ構造で管理されるのかなど、いわゆるドメインモデリング的な事をこのタイミングで行う必要があります。外部システムとの連携という特性上、運用に乗せた後に設計を変更する難易度が高いのでサービスがスケールした後の事も考慮しておくのが大事です。
スタイリング機能
商品がデータベースに入ってくると、それを検索してどのユーザーに発送するかを確定できるスタイリング機能が必要になってきます。 ファッションの商品は多様なので、スタイリング画面は多数の検索軸を備えたものが自然と要求されます。端的に言うとスタイリストは Z●Z● 的な UI を使えることが自然だと思っているので、それを開発しなければいけません。
これらを実現するために、検索エンジンの導入などを行いました。
ちなみにここまで作っても商品の選定自体は人間がやらねばならず、商品選定のガイドなどを作って人力で質の高いセレクトを可能にするような工夫をしていました。
物流機能
DROBE 内でトップレベルに複雑な機能として物流機能がありますが、それもこの頃にシステム化しました。複雑である要因は、物流のオペレーションが商品の返品を前提としたフローとなっている点です。
一般的な EC においては同じ商品は同じ ID (EC 畑の方は sku という表現の方がわかりやすいかもしれません) で表現することができます。つまり A さんに送った商品も Bさんに送った商品もデータベース上は同じものとして表現出来ます。一方で返品を前提として考えると、同じ商品 ID でも A さんに送った商品と B さんに送った商品は違うものである、という前提のもと管理を行わなければならず、管理の粒度を一段細かくしなければいけないのです。
余談ですが物流のワークフロー自体の設計はプログラミングとかなり近い感覚でおこなうことが出来るなと思ったのを覚えています。
表品管理や物流など特徴的な機能以外の実装
商品管理や物流などの特徴的な機能を実装しつつ、一般的な EC で必要とされる決済機能や DROBE 特有の商品返却時にフィードバックを収集する機能なども並行して開発を進める必要がありました。
創業後の最初の 1 年くらいは、商品管理、発注、物流、決済機能などを開発しながら、パーソナルスタイリングサービスに求められる最低限の UX を形作っていきました。
将来の AI 化に向けた布石
DROBE はサービスの企画段階から AI を上手く活用してスタイリングの精度を上げながら時間を短縮することが前提となっていました。今思うと何とも無茶な計画だなとも思うのですが、精度向上と時間短縮によるコストカットが至上命題で、テクノロジーを活用してそれを実現することがエンジニアに求められていました。
AI 化が本当に可能なのかということを検証しながら、本番化に備えるためにデータ基盤の整理は必須要件と捉え、DROBE ではサービスローンチ直後に各種のシステム化がひと段落した時期にデータ基盤の構築を行いました。
やや脇道にそれますが、企画段階ではこのスライドのようなデータ閲覧用のダッシュボードも内製する予定でしたが、KPI の分析やデータの調査などはデータ基盤誕生時点から現在まで redash を利用しています。閲覧用のダッシュボードが必要だと考えていた背景には、ビジネス職はデータの取扱いに慣れないので誰でも使えるようなツールが必要であろうという思い込みがありました。蓋を開けてみると、今や職種に関係なく DROBE のメンバーほぼ全員が SQL を叩き分析や改善に役立てるという文化が根付き、嬉しい誤算だったなと思っています。
AI の開発
サービスローンチして 1 年くらい経ちデータがそれなりに溜まってくると、事業計画上のプレッシャーから AI の開発と導入が強く望まれる状況になってきました。
当時の自分は AI についての解像度がめちゃくちゃ高いというわけでも無く、最悪ユーザーを ~100 くらいにクラスタリングして、クラスタ毎に事前に決めた商品を提案できれば良いかな、というようなことを考えていました。(今思うと何とかなると高を括っていた)
実際に開発を始めてみるとその考え方は一瞬で否定されました。この手法で提案した商品をスタイリストに見てもらうと全然ピンとこないという結果になりました。これは真面目に AI 作らないとダメそうだぞ、とかなり焦ったのを覚えています。
AI の開発は会社の優先度としてとても高かったため、代表の山敷や COO の長井もフルコミットした事に加え、私以外にも機械学習を専門で行うエンジニアの採用を進めとても強いチームを作る事が出来たおかげで、当初想定していたスタイリングを行う AI のみならず、ユーザーと商品のサイズがぴったり合うかという事を判断する AI もこの頃に開発されました。
AI を利用した機能追加
AI ができるとそれをサービスに組み込んでいきました。
まずはスタイリストが使うスタイリング画面で AI を活用したレコメンドが使えるようにした結果、スタイリングの時間を大幅に短縮することが出来ました。
テストマーケティングの時代には商品を送る前にチャットでカウンセリングを行っていたのですが、事前提案という仕組みに変更しました。事前提案とは商品を少し幅広にピックアップして発送前に送ってほしいかどうかを確認する機能です。これは商品の選定を事前提案時と実際の発送時の 2 回行うということに他ならないので、コスト構造上 AI のサポート無しではあり得ない機能だったと思います。
この機能の開発のストーリーはこちらにまとめてあるので是非ご一読ください。
AI を利用したスタイリングやそれらの技術を利用した事前提案をリリースしたタイミングで、ようやくテストマーケが終わった頃に想像していたものが最低限形になったなぁという感覚がありました。
パーソナルスタイリングというサービスの一つの形を示すことが出来たのではないかなと思います。
今後について
DROBE は、この note で紹介した以外にもストアと呼んでいる EC に近しい機能や、コンビニ持込による返品などさまざまな機能を持っています。
それでも我々のパーソナルスタイリングサービスはやっと 0 を 1 にできた、よちよち歩きのフェーズだと捉えています。
これからは DROBE を 1 → 10, 10 → 100 というように、如何にグロースさせていくかということに挑戦するとともに、大手ファッション企業とも提携を行いながらパーソナルスタイリングサービスを本格的に広めていくフェーズに入る予定です。
開発的には、新規事業となる B2B ビジネスの立ち上げや、グロースを見据えたリファクタ、AI の多様化などといった開発を行なっていきます。
さいごに
これから今まで以上にエキサイティングなフェーズになると思っています。一緒に小売の新しい未来 Beyond retail を目指して進んでいける仲間を絶賛募集中です。
少しでもピンときた方、是非お話ししましょう!