2022.02.28
【開発の現場からVol.2】開発の裏側には、エンジニアの心遣いがある!その詳細に迫ってみた
前回では、お多福labのエンジニアである廣野さんに、「Cawalu」のサービス開発で感じた想いについてお聞きしました。
※前回のインタビューはこちらからご覧ください
【開発の現場から.Vol.1】窓口×開発の両軸で活躍する若手エンジニアにインタビュー
とはいえ、実際にエンジニアとしては、「このサービスの開発はどうやってやったのだろうか?」「サービスの要望に対して、機能はどうやって対応するのか?」など、開発に使えそうな話が気になりますよね。
今回は、エンジニアの視点から、お多福labでのサービス開発での工夫やシステムについてお伝えします。
開発は、サービスの形に合わせて
ーーーー早速ですが、今回の「Cawalu」のサービスにおけるポイントを教えてください。
今回の「Cawalu」では、「お客様が試着した後に購入できる」点が大きなポイントです。
これまでのファッションECサイトでは、商品を購入し、決済を行ったのち商品が届いていましたよね。そうなると、服のサイズが合わなかったり、「自分が思っていたのと違う」と感じることがあるかもしれません。
Cawaluは、まず先にまずお客様の体型やファッションの好みなどを事前のアンケートでデータを蓄積します。そしてLINEやメールを使ってお客様と綿密にコミュニケーションをとり、お客様に合わせた服を発送します。
そんな中で、LINEとの連携や商品の在庫システム、Shopifyなど様々なシステムと連携しました。
例えば、Cawaluでは返品したい商品はサイトから返品日時を指定します。すると、システム間で運送会社と連携しているため、運送会社が指定した日時に返品商品の回収に来るようになっています。回収が完了すると在庫管理の倉庫にて、返品商品をスキャンし発送した商品と返品された商品を照らし合わせ、購入された商品の分のみお客様に請求が行われるシステムになっています。
ーーーその中で、今回開発で使ったシステムについて教えてください。
今回使用したのは、以下のようなシステムになります。
Shopify
Shopifyとは、ECサイト構築のプラットフォームです。スクラッチでECサイトを構築するとなるとかなりの工数がかかってしまいますが、Shopifyを利用することで、工数を減らしました。それだけでなく、エンジニアではない方もShopifyであればECサイトの構築の仕方も簡単に理解でき、カスタマイズできるようになりました。
また、商品の受注情報(いつ注文したか、いつ発送したか)などは別の根幹システムでもデータとして扱う必要があります。この場合はShopifyのWebhookを利用し、注文や発送が行われたタイミングでリアルタイムで根幹システムへ連携が行われるように作成したので、根幹システムの注文情報とShopifyの注文情報が差分が発生するということもなくShopifyとの連携ができました。
WMS(倉庫管理)
WMS(倉庫管理)側では、根幹システムとRFIDシステムを連携しています。倉庫側で返品された商品をRFIDで読み取り、返品された商品を根幹システムに連携するということを行っています。
※RFIDとは:カゴに商品を入れて置くだけで商品が読み取られ、金額が算出される機械のこと。ユニクロのレジや在庫管理で使用されている。
倉庫管理のシステムはShopifyのように一般公開されたシステムではないため、どのように連携するのか、読み取りエラーの場合どうするかなど、開発者の方と要件を定義したあとに、開発しました。
他にもノーコードツール(kintone)、LINE管理ツールetc…と連携を行い、システム全体を構築しました。
サービスは「消費行動の流れに合わせて」
ーーーこれらのシステムにおいては、どのような構造で開発したのでしょうか?
全てのサービスとの連携を行うための根幹となるシステム(以降:根幹システム)を構築し、それぞれのサービスとAPI、データファイルを用いて連携するようなアーキテクチャを取りました。
システム全体のデータ管理や特殊なビジネスロジックに対しては、PythonのMVCフレームワークであるDjangoを用いて効率的に開発を行っています。Pythonを技術選定した理由としては、近年Pythonを用いた大企業の開発が盛んで(Youtube, Instagramなど)、今後蓄積したデータを用いてAIの開発、データ分析を行う可能性があるためです。
ーーー今回の開発において、重要視した点は何でしょうか?
今回のポイントは、なるべくスピーディーに構築することです。
今、一般的に言われる「所有から利用へ」という消費行動の流れになりつつあります。その点で、お客様の求めるものを全て費用と時間をかけてフルスクラッチで構築するという開発は行いませんでした。
特に開発初期は、「これだけの機能があれば運用はできるだろう」というくらいの必要最低限の機能のみを実装しました。最初の必要最低限の機能をリリース後、お客様、スタイリストの方からどのような機能が欲しいのかを吸い上げ、インパクトが大きい機能から順に開発し、一つの機能が開発できればリリースをするというフローを続けています。
また、運営の運用効率をよくするための意見もいただき、お客様、スタイリスト、運営それぞれに必要な機能を付け足して行くように開発をしています。そしてビジネスニーズと運営に必要な機能を含めてサービスを構築するために、アジャイルによるスピーディーな構築体制で挑みました。
ーーー今後、「Cawalu」をどんなサービスにしたいかを教えてください。
「Cawalu」は、まだまだ進化を続けています。今後お客様がよりわかりやすく、より使いやすくなるように開発を検証、開発を続けながらもたくさんの方に認知していただき、利用していただけるようなサービスにしていきたいです。
また、ワンピース様とお仕事をさせていただく中でサービスの作り方、進め方でかなり勉強にさせていただくことも多いです。弊社のたくさんのサービスをこれまで作成してきましたのでこの知識をワンピース様に貢献できるように使っていけるよう、私たちお多福labもまだまだ挑戦し続けたいと思います。