株式会社コークッキング

Ruby on Railsを使ったサービス「TABETE」でフードロスのない社会の実現を目指す

TABETEは株式会社コークッキングがフードロスを減らすための取り組みとして始めた「フードシェアリング」サービスである。2018年12月13日に東京都内で開催されたRuby bizグランプリ2018で大賞を受賞するなど、社会的な課題解決を目的としたサービスとして注目を集めている。

フードロスのない社会へ少しでも近づくために

「フードロス」とは、まだ安全においしく食べられる状態だが廃棄される食品のことである。

フードロスはどんな時に発生するのだろうか。恵方巻などの大量廃棄、発注ミスや直前のキャンセルなどによる大量在庫などは話題にもなり、よく知られているが、それだけではない。安全に食べられるが、正規の価格、正規のルートに載せられないものが色々あり、それらも廃棄されているのである。

現状、全く改善されていないわけではなく、対策されているものもある。例えば「割れせんべい」や「割れチョコ」など製造工程で発生してしまう、規格外のもの。大量に発生し、比較的賞味期限が長いこともあり、流通ルートが開拓されているこれらの食品が販売されているのを見たり購入したりした人は多いのではないだろうか。

一方、飲食店で揚げた「リングにならなかったオニオンリング」など、一度に少量しか発生せず、しかも賞味期限の短いものは同じようにはいかない。このような、流通の難しい食料のフードロスを解決しようと考え出されたのが「TABETE」というサービスである。

TABETEを運営している株式会社コークッキングは食をテーマにした事業を展開している。

CEOの川越氏は元料理人で、当時の経験から廃棄される食品に問題意識を持っていた。さらに株式会社コークッキングを設立し、事業として料理をするワークショップを開催すると、再び余った食材という課題と直面してしまう。そのような背景を持った川越氏と、食に強い関心を持ち、フードロスという課題に対して社会的にアプローチしたいと考えていたCOOの篠田氏が食に関するイベントで出会い、TABETEというサービスを立ち上げることになった。さらに、現在TABETE事業に関わっている人たちもエンジニアも含めて、全員がフードロスに問題意識を持っている。

TABETEとは

TABETEが扱っている商品は「まだ安全においしく食べられるのに捨てられる運命にある」ものである。TABETEはこれまでの世の中の仕組みでは流通が難しいものを「レスキュー」するために考え出されたサービスである。

「レスキュー」とはTABETEのサービスにおいて、出品された商品を購入することを指す。つまり廃棄の危機にあった食品を救うことである。

実際に出品された商品を見ると、様々な理由で安全に美味しく食べられるものであるにもかかわらず廃棄せざるを得なくなっているものがあることがわかる。必要とされるのは少量だが、一定量以上作った方が美味しくできあがるもの、設備の事情などにより一度に作れる個数が決まっているため余りが出てしまうものなど、通常売られているものと同質のものであっても条件が合わなければ廃棄の運命になってしまう。

「レスキュー」するには、Webサービス又はスマホアプリから商品を選び、指定された時間内で引き取り時間を指定し、決済を行う。後は指定した引き取り時間にお店に向かい商品を受け取り、おいしく食べれば完了だ。ちなみに、スマホアプリの場合は位置情報を使用して、現在地から近い順に出品されている商品が並ぶ。

短期間でのリリースに優位性の高いRuby

TABETEの開発にあたっては、できるだけ最短でサービスを開始することが最優先事項であった。

3ヶ月でサービスインするという目標が設定され、これを実現できるのはRuby on Rails(以下Rails)しかないだろうということでRailsを採用することになった。エンジニアの樋浦氏によると「私自身がRubyが得意だったからということもありますが、そもそも、かなり多くのスタートアップでRailsが使われているそうです。早く作れるというのがRailsを採用する一番の理由のようです。」

もっとも、実装にあたっては、ただ単に早く作るだけでなく、将来的な拡張性、変更のし易さも考慮した。そのおかげで、リリース後の機能追加もスムーズに行われている。

スタートアップのスピード感で開発できるのはRuby

広報の山田氏は、エンジニアとディレクターがよく話をしているのがこのチームの特長と感じている。しかもディレクターに限らず、広報や営業などともよく話をする。

それに対して、エンジニア陣はこのように答える。「私達はWebサイトを作るだけのエンジニアではなく、サービスそのものをみんなで作っています。エンジニア以外と話すことによって、自分たちでは気がつかなかった視点からの意見がもらえたりします。話さないとわからないから、どんどん話しています。世の中にないサービスを作っているという自負があるので、話し合いながら開発を進めることによって良いサービスができあがると考えています。」

実際、広報や営業担当者から、顧客からの要望や、思いついたアイデアがシステム的に実現できるのかわからないため、エンジニアに相談するとわかりやすく教えてくれたり、企画を説明するとシステム面からアドバイスしてくれるので、とても助かっているのだそう。

このように、非エンジニアも含めたチームでの会話が活発な理由をエンジニア陣に考えてもらったところ、ここでもRailsで開発したことが役立っているとのことだった。必要に応じてモックを作って見せるのも、開発スピードが早いRailsだからこそ容易にできる。見積もりがしやすい言語なので、その場でどれぐらいの時間でできるか即答できる。そのため、これなら何日、こうすれば何日とその場で話がどんどん進むのだそうだ。そして時には「それなら既に仕掛けを作っているからすぐできるよ」と答えることもあるという。

スピード感をもって開発するための設計

柔軟性に富み、将来必要になりそうな機能をあらかじめ作っておくなどかなり工夫を凝らしたシステムのように感じられるが、そんな特別なことはしてないと謙遜しながらも、この規模のベンチャーで最初からAPIサーバーの開発までやっているところはめずらしいかもしれない、と話してくれた。

TABETEでは通常のWebアプリサーバーとは別にAPIサーバーもRailsで構築し、スマートフォン用アプリだけではなく、WebアプリについてもAPI経由で動作するようにしている。とりわけ決済を扱っているAPI部分は責務を切り分け、特にテストを充実させている。少ない工数でテストをできるような工夫もしている。

WebとAPIを分けて実装したことは、リリース後にも効果を発揮している。ひとまず最短リリースに向けてWebのみでサービスを立ち上げた後、新たにスマートフォン用のアプリを追加したり、アプリとWebのUIの操作性を合わせるためにWebのUI部分をVue.JSに置き換えたりなどの変更を行ったが、スムーズに開発できたそうだ。

最後にTABETEの今後の目標を伺ったところ、「現時点では、関東圏のみでの展開となっているが、今後全国に広げていきたい」とのこと。
対象地域外に居住されている方も「レスキュー」できるようになる日を心待ちにしていてほしい。

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