Cookpad TechConf 2019
https://gyazo.com/9b3af4c972610ad0fba3fee556e5dcd2
https://www.youtube.com/watch?v=HX0FHb0HGFc
クックパッドが目指す、これからのデザインとプロダクトのあり方
宇野 雄
CEO室 デザイナー統括マネージャー
レシピの会社?・・・☓
料理の会社?・・・△
毎日の料理を楽しみにする会社・・・◯
さまざまな事業
グローバル対応(2019/2現在)
4000万人
71ヵ国
26言語
ミッションに対しての達成
54000万人
日本世帯の約8割
でも料理のユーザー体験はレシピを見るだけなの?
朝食、昼食、夕食
用意する時間
食べる時間
片付ける時間
考える時間
買い物をする時間
レシピサイトとしてやることは少ない
さらに切り分ける
離乳食
食育
こだわりの食材
写真のとり方
健康
調理器具
料理のレベル・スキルアップ
環境問題(食材廃棄)
日々のワクワクと楽しみを積み上げていく
特別な体験を単発的に起こすのではない
クックパッドに足りないこと
できていないこと
全社プロダクトを通じた横断体験が設計されていない
これをしてほしいプロダクトの意思が足りない
アプリの体験がweb的
クックパッドがやるべきことプロダクトとしてやりたい体験があやふや
もっとクックパッドっぽさを作りたい
どう作る?
ディズニーっぽさ
見た目は違って構わない
料理書籍、レシピ書籍
まずは期待値に対するふるまいを共有する
こういうの期待されてないんじゃない?を見直す・守っていく
料理に対するワクワク感
これから求められるプロダクト・クリエイターの関係は?
デザインはデザイナーだけやるものではない
技術とは夢物語を現実にする手段
課題解決の手法の1つ
すばやく多くの課題解決法の提示ができる
多くの人に安心して使ってもらえる
BTCモデル
境界などなくお互いをまたぐ関係性に
Business要件 や Technology要件が Creative に流れる
会社にとってのデザインは出口だが
ユーザにとっては入口
BTCに限らず多くの分野がプロダクトに反映されている
https://gyazo.com/7edde32cab1b91292bed49e0eb69ed79
手法・ツール
Design Sprint
全員でデザインを作り上げる時代へ
生鮮ECクックパッドマート - サービスの立ち上げから拡大に向けて 長野 佳子
買物事業部
デザイナー/エンジニア
サービスモデルの概要
街の専門店や地域生産者のこだわりの食材
最寄り駅と自宅間の近所で受け取り
ピックアップ型
配送効率上げて送料無料
食材購入+αの買い物体験
料理に合わせた食材セット
レシピ付き食材セット
単身世帯、共働き世帯
ネットスーパー問題
最低注文金額
在宅・対面受け取り
物流センターを介するため鮮度低下
新鮮な食材を変えない・買い物難民を解決する
仮説検証
どのようなサービスモデルを確立してきたか?
最小のプロトタイプで十分な学びを得る
発足時は全く違う仮説からスタート
買い物上手な主婦による買い物代行C2Cサービス
最速でできるMVP検証
クックパッド社員が購入代行してみる
レンタカー買い出し、棚卸し、仕分け
価値を測るためにお金はきちんともらう
コードは0行
得られた仮説
1対1の代行モデルはスケールの課題が大きいかも
自分では買いづらいものが帰ることに価値を感じられる
おすすめの食べ方があると購入にとどまらない価値を得られそう
仮説の軌道修正してチームの動きを活性化
接点のないユーザーに対する価値検証
販売者・生産者
どう価値を感じてもらえるか?
短期間にチームに集中してソリューションを見つける
検証がむずかしいものほど向いている
検証したいこと
お店の売上につながるか?
普段の業務と並列して行えるか?
実際にヒアリング・インタビュー
別室で観察して反応をメモ
検証したい事的によかった
今できる最速の方法で検証し仮説の確度を上げていく
サービスのスケールに向けた動き
価値を届けられるユーザー数を増やす
配送頻度を増やす
デフォルトは火曜・水曜
ユーザーは毎日配送を期待
配送準備のスタッフ可動を自動化
店舗への注文
対応できていない場合はFAXの自動送信
商品ラベルの発行・送付
週2配送時はクックパッド社内で印刷・バイク便で送付
店舗にラベルプリンタを設置
ドライバーへの集荷指示
メールをサーバーサイドで自動作成し自動配信
結果週6対応に(日曜休み)
受け取り場所を増やす
成約を減らす
場所のセキュリティ
性善説に基づく運用
冷蔵庫のスマートロック
無人の場所でも受け取りできる
マンション共用部
駅ナカ
プラットフォームを増やす
iOSのみ
Android対応は現在開発中
開発チーム体制
最初は3人(プロダクト2・ビジネス1)
現在総勢25名
各領域をバランスよく育てていくチーム体制
料理の学習体験をデザインする
須藤 耕平
新規サービス開発部
デザイナー統括マネージャー
新規サービスとしてリリースしたアプリ
ユーザーの料理の腕を上達させる
2018初旬:スタート
2018/5:β版リリース
2018/8:本リリース
2019:リニューアル中
何が難しいのか
上達の定義が難しい
定義できないので何を学ぶべきかがわからない
初心者向けをつくる?
話を聞くと結構みんなできている?
感想:料理をはじめた頃にしりたかった(はじめて半年の人)
どうなりたい?をヒアリング
レシピをみなくてもあるものでパパっと(≒対応力がある)作りたい
食べ方提案機能
定番メニューを提案する
豚肉でサジェスト
しゃぶしゃぶ、生姜焼き、とんかつ
サジェスト結果のようなものは普段のご飯ではあまり作らない
チューニングする
なす→揚げなす、麻婆茄子…
手元の食材をどうおいしく食べるか?が結論
いろんな制約の中でもコントロールしている実感が得られるといい
悩む
そもそもレシピにたとりつかせるのはナンセンス?
どうすればユーザーの料理の腕をあげるには何をすればいいのか?
どうやって?
あるものでパパっと→総合力
買い物スキル
献立計画
食材や調理に関する知識
場数を踏んで経験値をあげる
フォーカスを絞る
買い物スキル
献立計画
食材や調理に関する知識
場数を踏んで経験値をあげる
発想力
普段は検索に頼る
創作料理をつくりたいわけではない・マニアックな食材はつからない
必要十分
季節の食材
簡単でおいしくて
栄養もありそう
1ヶ月それで回せる
五法の表
横軸に食材
縦軸に調理法
埋められないのは?
そもそもの発想が違う
レシピ単位で覚えてない
料理を分解して捉える
食材×味付け×調理法
上手い人はスロットを組み換えして発想につなげる
スロットは2個固定
具現化力
普段はレシピに頼る
場数が必要?
だいたいの調理工程は共通
切る
下ごしらえ
火を通す
味付け
仕上げ
小さくパターン化して覚える(中間生成物)
下茹で大根
にんにくの香りを移したオイル
豆腐を潰して味付け
具現化しやすい
小さいので覚えやすい
1つ1つは複雑じゃない
失敗しづらい
カードをつくって実験
その時あるカードをつくって実際に料理をしてみる
結構できた!
レパートリーは無限大?
食材・調理・味付け
ゲーム的な体験
学習記録が残る
理想はまだまだ遠い
アプリとしても面白み
習慣化の仕組みづくり
新規サービス開発を加速させる技術とデザイン
藤井 謙士朗
2017年新卒入社・デザイナー
料理が楽しくなるマルシェアプリ
2018/06リリース
料理が楽しくなるうつわ・料理道具が買える
デザイナーとしての取り組み
開発時の取り組みについて
iOSエンジニア4、デザイナー1、ディレクター1
スピード重視
なるべくミニマムで作る
全体のデザインがないと仕様が決められない
簡単な全体の導線をつくる
今あるリソースですばやく
クックパッドのメインカラー
既存のカラー
UIデザインの課題
エンジニアの共有が大変
履歴を残す
プロトタイプ更新
共有する時間が増えた
デザインが実装スピードに追いつかない
変えたこと
デザインツールを変える
既存
すべて対応できる
コンポーネントを体系的に管理する
タブで見やすい
開発スピードがあがり、精神的な負担も減った
ただし構築に時間がかかる
さらに速度をあげていくために取り組んだこと
UIガイドライン
ルールの可視化
アイコンフォント
解像度に併せて画像が複数必要
管理画面(Web)も開発していたので共通リソースにしたい
フォントにしてリソースはひつに
アニメーションの導入
リッチ体験の追求
気持ちのいいインタラクションと開発工数はトレードオフ
実現可能性を考慮
調査・検証
流れ
作成コストが低い?
簡単に導入できるか
違うプラットフォームでも再現できるか?
手軽なプロダクトで作って検証できたら導入できる?
iOS
Web
エンジニアはコードレビューと実行結果の確認のみ
デザインから実装までデザイナーで完結できる仕組みをつくった
コンポーネント
デザインデータをReactComponent化
タップ時の挙動をweb上で確認できる
デザインコンポーネントをすぐに実装で使える
細かい仕様をコードでも確認できる
メンテコストは低い
デザイン変更実装をデザイナーが負担したい
エンジニアは機能開発や体験の改善に時間はさける
夢はコンポーネントをつなぐだけでいいデザインができるようにしたい
全てはユーザに価値をすばやく届けたい
Challenges for Global Service from a Perspective of SRE 2nd season 渡辺 喬之
Technology Department SRE Group Cookpadの海外展開
海外サービスは日本のものとは別
200万レシピ
海外開発拠点はイギリス
25ヵ国から100人
SREの役割
サービスの多様性の制御
技術的チームの道のり
開発体制の変更
社員数が膨大になってきた
エンジニアが増えるとコミュニケーションコストが倍増
Chapter
各分野のスペシャリスト
Squad
機能の開発グループ
フィード機能
feature toggle
Prototype environment
機能はユーザーにあててみるまで価値はわからない
短い時間で100%機能を提供できて成功したと思ってる
すばやい意思決定・価値検証
課題
なにが起きているかがわからないから助けてほしい状態
開発体制は向上してもSREはアンハッピーな状況
ルールを制定する
無理のないself-serve
規律
自由
責任
強いリーダーシップのあるエンジニア
最適化
ランニングコストが低い
本プロダクトに影響が少ない
やったこと
コンテナの移行
94% のアプリはコンテナで動かしている
チームの自立性向上
開発のリードタイム向上
SREはコンテナの環境構築に集中できる
hako-console
デバックの改善
ログの検索システム
Rails console
レシピを解析する!Machine Readable Recipe(MRR: 機械可読なレシピ)の開発
伊尾木 将之
研究開発部
食文化研究担当
江戸時代のレシピを検索できる
Machine Readable Recipeが必要になった課題
ユーザがレシピを調べて実際に手で動かすところまでサポートしたい
メーカーが提案したレシピしか作れない
機械は人が書いたレシピを理解d境内
かぼちゃ
かぼちゃ?南瓜?カボチャ?
調理方法
「何を」調理するのかが判断が困難
MRRを開発しよう
グラフ構造表現
食材をIDで管理
解析しやくすなる
これからやれそうなこと
中間ノード検索
「炒めたベーコン」で検索
複数のレシピマージ
調味料サーバー「OiCy Taste」
MRR生成の難しさ
材料や分量といった情報の正規化
「しょうゆ」だけで200種類以上のパターンが有る
同義表現
醤油、しょう油、正油
付属表現
☆醤油、醤油(下味用)、お好みで醤油
機械学習で対応
Encoder-Decoderで対応
翻訳で利用されるモデル
文字単位で学習
正答率:71.2%
現実的にはちょっと低い
正規表現対応時は28.6%
分量も大変(種類が非常に多い)
BNFで対応
正答率:95.2%
適合率:99.9%
再現率:95.1%
Action(焼く、切る)情報がどう書かれているのか
メタ情報
MRRまとめ
夢のあるテクノロジー
難しいことは多い(技術的チャレンジはいっぱい)
クックパッド動画事業開発のチャレンジ
渡辺 慎也
メディアプロダクト開発部長
料理動画事業を子会社として設立
2018年は事業を広げる
開発事例
Store
スーパーで料理動画を流す
日本全国4500店舗
タブレット13000台
広告収益モデル
1サイクル90秒
1hあたり40回
課題
広告動画再生数制御
多くても少なくても問題
必要再生数だけを流す
配信計画、配信比率を計算する
正確な在庫がわかれば簡単
再生ログから逆算(推定稼働台数を計算)
リアルタイムログ集計
Kinesis Data Streams
Aggregation
Monitrining
Analysis
LIVE
クッキングライブを一緒に見て一緒に調理する
課題
大量メッセージ
コメント、ハート、スタンプ
47分の放送で150万回送信
平均532rps
AWS AppSyncへの制限
アプリへの高負荷
バッファリング方針
コメント反映は送らせない
コメントの順序保証は行わない
最悪データのロストを許容
永続化は別で行っている
Subscribeで流れてくるメッセージは番組ごと
各種サービスを跨いで利用
モノリシックな開発には障壁になるが
負荷試験計画作成
環境整備
Studio
2019年は収益化
〜霞が関〜クックパッドiOSアプリの破壊と創造、そして未来
三木 康暉
モバイル基板部
iOSアプリ
最初のコミット 2012/8
コミット 35000
リリース週1
ビルド時間は1~1.5hかかっている
霞が関プロジェクト
課題
コード整理
ビルド時間の改善
コンセプト
大きな書き換えを矯正しない
実装詳細はVIPERアプリケーションに隠蔽
マルチモジュール化
キャッシュが効いてビルド高速化
古い実装の隠蔽
AFNetworking
SDWebImage
画面感を疎結合
ゴール
開発者の手元ビルドを1日30分にする
画面感の結合を減らす
既存のアーキテクチャを活かすマルチモジュール化
ディレクトリ構造により所属するビルドターゲットが保証
機能時の古いライブラリを参照しなくてもよくなった
スケーラブルなセキュリティ監視基盤の作り方
水谷 正慶
技術部セキュリテイグループ グループ長
セキュリティ監視している?
全体像フェーズ
防御
脆弱性を改善
権限の制限
検出
侵入痕跡の発見
不正サービス利用の発見
対応
インシデントレスポンス
改善点の分析
検出と対応が監視
なぜ監視するか
防御の先を構える必要がある
検出が利用者の負担が少ない
ユーザビリティ阻害
スケーラブルな監視
規模が大きくなっても対応できる
監視する対象が増えても対応できる
何が困る?
複数サービスの結合
データ流量の増加
アラートの対応
消耗すること
誤検知、過剰検知して報告するものは多い
消耗しなくても良いために
検知のルールで調整すればいいが。。。
動くかわからない
ロジックルールを書けない
不要と判断するためには追加で情報を集めないと無理
Security as Code
検知にかかわる処理をコード化
ルールをテスト可能
アラート判定条件の高い記述力
自動的な追加データ収集による省力化
バージョン管理
アラート処理のパイプライン
ログデータ(S3)
アラートの検出
Lambda実装
関連情報の収集
アラートの評価
通常と異なるネットワーク・ユーザからアクセス検知したアラート評価
通知
共有(Slack)
ログ化(GitHub Issue)
まとめ
アラート対応のスケーラビリティを考える
コード化や自動化によって担当者の負荷を軽減する
過去スライド
新規アプリ開発を支えるユーザ・決済基盤
宇津 宏一
ユーザ・決済基板部
アプリを作っていますか?
ユーザ管理/認証
Cookpadアカウントじゃなくてもログインできるように
アプリ内課金
既存のアプリでやったノウハウを他アプリでも生かしていきたい
Cuisine
クライアント
API通信を自動で再認証
認証フローをカスタマイズできる
アプリ内課金を簡単に利用できる
クライアントの複雑さを吸収して新規アプリ開発を加速
サーバー
決済・ユーザ基盤
クックパッド固有の情報はのせない
ユーザ管理・アプリ内課金定期購読・APIを新設
都度確認は処理フローのみ標準化
サービスごとに実装
ビジネスの方向性を把握してユーザ認証・決済機能の導入を加速
Organized Around Business Capabilitiesの考え方
プレミアムサービスユーザ獲得を目的にする新規サービス展開なら?
クックパッドと新規サービス間のユーザ・決済状態を不整合無く同期できるように構築
今後の展望
処理フローを図に起こす・ドキュメント化を徹底してきた
処理フローの簡略化
実装面以外
導入までのロードマップ作成
Apple審査お作法
テスト項目は共通化
Re:silience から始めるカオスエンジニアリング生活
SREグループ
カオスエンジニアリング
分散システムに置いて不安定な状態を耐える環境を構築するための検証規律
例:予防接種
やっていく
しかし実際にはやってない
カオスエンジニアリングとはなんだ?を再定義
なぜ必要なのかを考える
やる理由
大モノリス期
サービス開発速度の低下
リリース速度の低下
移行
APIがつくられ新しいサービスが作られる
サービス開発速度の向上
新しい事業を切り出し・リリースできる
認証サービスや検索などのサービス
複雑性が増加
ひとつのサービスの障害がほかのサービスに影響
通信状況がわからない
連鎖的な障害が発生
アプリケーションレイヤーから通信を切り離す
サービス間の状況把握ができる
適切なリトライ設定で一時的な障害に耐えられる
障害に対する問題意識
サービスは正しく壊れるか?
耐障害性があるか?
障害児にどのような挙動をするのか
意図的に起こしてみる
Fault Injection
マイクロサービスで発生する障害に対するプロアクティブなアプローチ
Network Fault Injection Platform
どうやっていくか
known unkouwns
知っている
知らないこと
仮説を立てて実験をする
known unkoens
Fault Injection Test
unkown unknowns
本番環境での継続的なカオス実験
基調講演:なぜ毎日の料理を楽しみにするのか
成田一生
2018年
cookpadTV LIVE
komerco
cookpad mart
たべドリ
cookpad Do!
料理教室
OiCy Platform / OiCy Taste
投稿レシピ数世界500万突破
国内300 / 海外200
「毎日の料理を楽しみにする」ミッション
株主総会の定款にミッション記載
世界中のすべての家庭において、毎日の料理が楽しみになった時、当会社は解散する。
料理とは必要か?
美味しいものはお金払えば外で食べられる
中食市場がいま盛り上がっている
身体は食べたものでできている
頭では理解しているが実感は薄い
妻の妊娠で栄養についてセンシティブになった
料理とは自分で必要な栄養素を選択してそれをとり入れること
料理スキルの減少
食産業の工業化
低所得者層の不健康
楽しみは「勝手に」やり始めるもの
料理もその位置づけにしたい
料理せざるを得ない人はどうするか
楽しみにするために
食材を得る
komerco
cookpad mart
料理スキル
cookpadTV LIVE
たべドリ
cookpad DO!