高速にPoCを実行する一手法の紹介

 

こんにちは、Tetsuです。

アプリ開発に従事している皆様は、日ごろ、上司やビジネス担当者の方々からユーザのニーズへの対応や競合サービスに先んじるために迅速なアプリ開発を求められることがあるかと思います。
とりわけ昨今、新型コロナウイルス感染の拡がりに伴って、私たちを取り巻く社会環境や価値観は大きく変わろうとしており、その変化に即応していく必要性はなおさら強まっているのではないでしょうか?
しかし、現実的には、アプリ開発は要件決めに始まり、設計・開発・テストなどで一朝一夕に終わるものではなく(特に機能が増えれば増えるほど)、その時間をかけて開発したアプリがユーザに受け入れられるという保証もありません。

では、実際にユーザに受け入れられるかどうかわからない機能を実装しその効果を検証する(= POC(Proof of Concept)を行う)のをさくっと行うにはどうすれば良いか?
を今回は私が関わった楽天リアルタイムテイクアウトの機能開発事例を元に紹介したいと思います。

f:id:R-Hack:20200923182913p:plain

楽天リアルタイムテイクアウトは、近くの飲食店のテイクアウトを、ネットからカンタンに注文でき、 店頭で待たずに受け取りができるサービスです。
利用者は、スマートフォンやPCサイト上から、近隣の飲食店におけるテイクアウト可能な商品を選び、楽天IDを利用して事前注文および決済を完了することで、実店舗で商品を待ち時間なくリアルタイムに受け取ることが可能になります。また、購入金額に応じて「楽天ポイント」を貯めることができ、支払い時には貯まったポイントを利用することもできます。
事業者は、本サービスを利用することで、テイクアウトサービスを簡単に導入することができます。新型コロナウイルス感染拡大の影響を受け、飲食店においてはテイクアウトサービス導入への必要性が高まっており、楽天ではその社会的要請から、本年10月31日(土)まで本サービスの利用料(クレジットカード決済手数料などを除く)を無料で提供しております。

f:id:R-Hack:20200923182830p:plain
 楽天リアルタイムテイクアウトは、弊社が2018年に買収したRakuten Ready(旧Curbside社)のサービスを日本向けにローカライズしたものですが、当初のユーザインタフェースは、地図から飲食店を探すといういたってシンプルなもののみでした。
そこで、日本のユーザには慣れ親しんだ「飲食店のジャンルから探す」、「エリアから探す」といった探し方やピックアップ飲食店紹介コンテンツなどあった方が良いのではという仮説の元、これらの機能を実装しよう(しかも短期間で)ということになりました。
しかし、こうした絞り込みやコンテンツを実装しようにも必要なデータが不足しており、マスターデータを作成するところから始める必要がありました。
そこで先ず、ビジネス担当者に必要なデータをExcelで入力してもらい、それをWebアプリ側で処理しやすいようにJSONデータ形式に変換できるようにしました。
そして、Webアプリ側では静的ページでJSONデータファイルを読み込み、ユーザのアクションに合わせて動的に内容を変える(飲食店の絞り込み等ができる)ようにしました。
つまり、必要なデータを格納するためにバックエンドにデータベースを構築することも、それにアクセスするAPIを開発することもなく、フロントエンド側だけで処理を完結できるようにしたことで、開発期間を劇的に短縮し、開発着手してから最初のリリースまでを3日間で行うことができました!(※←日数要確認)

 
まとめると、

(1) マスターデータをExcelで入力

(2) ExcelデータからJSONデータを生成するスクリプト

(3) JSONデータを読み込むWebアプリ

f:id:R-Hack:20200923172942p:plain

 という3つを用意するだけで、ノンDB、ノンAPIで検証したい機能を実現できました。

 もちろん、運用を続けていくと、人力でExcelデータをメンテし続けるのは大変ですし、入力データ量が増えていくとJSONデータの読み込みに時間がかかり、アプリのパフォーマンスに影響を及ぼすため、いずれデータベース構築やAPI開発が必要になるでしょう。
しかし、上で書いた「実際にユーザに受け入れられるかどうかわからない機能を実装しその効果を検証するのをさくっと行う」を実現する手段としては有用ではないかと思います。

 

皆様の参考になれば幸いです。