クックパッド株式会社

効率化された社内エコシステムを活用して迅速に成長し続ける、これからの生鮮ECサービス

Ruby bizグランプリ2019で大賞を受賞したクックパッドマートは、2018年9月にリリースされたクックパッドの生鮮ECサービスである。
クックパッド株式会社 買物事業部 部長 勝間 亮氏に話を伺った。

応募したきっかけを伺ったところ、「Rubyを使った開発はRuby on Railsなどサーバーサイドで使われるのが大半な中で、リアルな世界を対象にしたIoTの分野でもRuby(CRuby)を利用した事例を知ってもらいたくて応募した」(勝間氏)とのことで、今回はこのIoTの取り組みをはじめとする「新しい試み」を中心に話を伺った。

クックパッドマートのしくみ

クックパッドマートのシステムの概要は以下のとおりである。

クックパッドマートのシステムは1)利用者、2)販売者・生産者、3)配送者、4)受け取り場所(冷蔵庫) の4つのアプリとクックパッドマートのサーバーサイドシステムで構成されている。

利用者がスマートフォンを使って商品を注文する。販売者は毎朝届けられる注文内容に従って商品を出荷する。出荷した商品は、ドライバーによって利用者の指定した受け取り場所まで配送される。利用者が受け取り場所へ出向き、スマートフォンを使って鍵を開け、商品を受け取る。

それぞれ実際に使う人のペルソナを考慮し、利用者向け、配送者向けのアプリはスマートフォン専用とした。
一方、販売者・生産者は、1)ITに詳しくなくても使える、2)できるだけ負荷にならない形で参加できるようにという点を重視し、商品の登録などに使うWebシステムと、注文内容のラベルを自動印刷してくれるプリンターの2つを用意している。このラベルを該当商品に貼って出荷するしくみだ。
「テクノロジーをうまく使いながら、生産者の負担がかからない仕組みを考えた」(勝間氏)とのことで、このプリンターはその日出荷しなければならない注文を毎朝自動的に印刷してくれる。
技術的には、プリンターに接続したRaspberry piが、注文内容に関する印刷リクエストをインターネット(LTE通信)経由でサーバーから受信して、プリンターに印刷指示をしている。そのため、販売者・生産者は何もしなくても、朝になるとその日の出荷用のラベルが用意されており、それに従って出荷準備ができるというわけだ。なるほど、これなら操作方法を覚えたりする必要もなく、すぐに使うことができる。
ちなみに、プリンター用紙の残量もサーバー側で管理しており、残り少なくなると集荷トラックのドライバーが用紙を届けてくれるので、紙切れの心配をしなくてもよい。
Raspberry piはLinux(Raspbian)が搭載されているため、CRubyでプリンターなどハードウェア制御のプログラムを書くことができる。

このサービスは、2018年1月の立ち上げからリリースまで約半年しかかかっていないそうだ。
しかも、冷蔵庫一つを取っても、初期リリース時の受け取り場所に設置されたものは第三世代、つまり、リリースまでの半年間で既に2回バージョンアップしているそうだ。
これだけのサービスを半年でリリースにこぎつけることができた理由を伺った。

必要なことだけに集中できる環境がある

会社全体として、既存資産を活用したり、自動化できることは極力自動化し、新しい挑戦に集中できるための環境整備に力を入れているそうだ。そのための専門部署があり、社内の生産性や開発効率の向上をミッションとし、システムや基盤を整備、エコシステムをつくっている。
その一例としてhako(https://github.com/eagletmt/hako)を紹介していただいたが、このようにOSSとして公開されているものもある。
ここで作成された新しいツールなどは、社内ブログや社内の全エンジニアが集まって隔週で実施されているテックミーティングで周知される。
クックパッドにはいろいろなサービスがあるが、それらはこの環境を使って素早く作ることができているそうだ。

かといって、これだけの素晴らしい仕組みが整っているだけでは新しいサービスは作れない。
サービスを作り上げていく上でも様々な工夫がされている。

ものづくりも必要なものに集中して

ソフトウェアだけでなく、ハードウェアの製作過程についても同じ考え方を適用している。
市販品でまかなえる部分は作らず、ないものだけ作る。わかりやすい例をあげると、受け取り場所に設置している冷蔵庫は既製品であり、認証して鍵を開けるしくみは自分たちで作り込んで取り付けた。
利用者はQRコードをかざして開錠するが、実際に鍵を開けることができるのは、その受け取り場所に注文したものが入っている利用者のみである。そのため、サーバーに開錠しても良いか問い合わせる必要があるが、開錠時に電波状況が悪くサーバーと通信できなかった場合も考慮して、一時的に通信が途絶えても問題なく通常どおり動作するように設計されており、利用者に不便をかけない仕組みになっている。
このように、必要なところは徹底して作り込み、既存のもので十分なところはそれを活用することによって、クオリティを担保しつつ短期間でのサービスリリースを実現している。

チームメンバー以外の社員の協力

新しい機能やサービスの検証については、チームメンバー以外の社員も協力している。
社内にも受け取り場所(冷蔵庫)が設置されており、実際に社員が購入できる。
この社内に設置されている冷蔵庫は、次期バージョンの検証環境も兼ねている。
新機能についても、まずはこの社内の受け取り場所で利用者のフィードバックも取り入れながら検証を繰り返すことによって、クオリティを高めてからリリースすることができているのだそうだ。
実際、お伺いした際には現行の冷蔵庫の横に開発中の次期バージョンの冷蔵庫も置いてあった。

メンバーのバックグラウンドによる知見も活かす

クックパッドマートのチームは現在約30人がかかわっており、大きく3つのチームに分かれている。
エンジニア以外にも、ディレクターや販売チームには営業もいたりなど、色々な役割のメンバーがいる。
それらの人の中には、前職でデリバリーや飲食業界でのビジネス経験があったり、業界知識を持ったメンバーもいて様々な知見を共有しながらサービスを作り上げている。

新しい取り組みは働く人に面白さを与えてくれた

このサービスを開発することによって、得られたものはありますか?の問いに対して、「このサービスに取り組んだ効果として、今までにはなかった技術的にチャレンジングな面白みが得られた」という答えが返ってきた。
特に今回はIoTに取り組んだこともあり、「Webだとやることが似通ってくるが、リアルがかかわってくると、想定してないこと、解かなければならない問題が増える。例えば、冷蔵庫なら、この大きさで良いのか?注文を受けたものが全部入りきるだろうか?を検討する必要があるし、配送に使う車に対しても同様の懸念は発生する。また、計算上入ったとしても、取り扱う商品の形状の特徴からして、隙間なくびっしり詰めれるものではないので、どれぐらいの容量が必要なのかなど、これまでのWebアプリの開発のノウハウだけでは解決できない、新しい領域の課題への取り組みが面白いチャレンジだった」とまとめていただいた。

※本事例に記載の内容は取材日時点(2020年1月)のものであり、現在変更されている可能性があります。