2017年1月21日に「Cookpad TechConf 2017」に行ってきました。
同僚が応募していたので自分も軽い気持ちで応募したら当選してしまい(倍率は3倍くらいだった)、その後に奥さんとネゴって行けることになったので参加させていただきました。
この手のレポートは本当に書かないんです(申し訳ない^^;)が、今の自分の業務と近いことをやってたりで相当な感銘を受けたのと、 ヨシオリさんが最後に「みんな、ブログ書いてね!」と言っていたので、書きました。
子供が生まれてから本当に参加していなかった。超久々。
CTOの成田さんによる基調講演でした。クックパッドのサービス説明から「なぜ技術が必要なのか?」まで。
また、「OSSにタダ乗りしない」という話もあり、エンジニアは社内外問わずにコミットする姿勢が必要で、それも評価に繋がるという話もありました。
「クックパッドはRubyの進化に恩恵を受けてきた」ということで、最後に、Rubyコミッター・笹田さんの入社報告というサプライズも。
滝口さんによる、クックパッドの海外対応のお話です。
まとめると「兎に角やばい」という感想でした。
海外対応でよく言われるのですが、やっぱり言語の対応だけでなく、その国の文化まで対応して、初めて成功が見えてくるんだなあ、という感想でした。
言語も、「英語って言ってもアメリカとイギリスで違うし、スペイン語も南米とかでも使ってるし。」みたいに、国≠言語という説明もありました。
後は、宗教対応とかで「豚料理は絶対にNG」とか、まあ兎に角やばい、地雷が多過ぎでは、という印象でした…。(多分これでも、やばさ全体の5%くらいでは…。)
元スライドを見ると、やばさが伝わるかと思います…。
sorahさんによる、インフラからのグローバル化のお話です。
海外の構成はプレーンなRailsアプリ(Rails 4.2 on Ruby 2.3)だったりで一般的のようです。(逆に巨大なRailsアプリである国内の苦しみが伝わる…。)
インフラといえば、やはりピークトラフィックの話が興味がありまして、日本だとバレンタインデーがピークとのことでした。それが海外だと様々で、まあ色々対応が必要とのことでした。
ラマダンは夜間に(日が落ちてから)食事するので、その時がピークになって「このままだと来年はやばい」的な話があったそうです。
新卒で「カセットテープコレクター」の若月さんの発表です。
「デザイナーの仕事≠画面のデザイン」と考え、「限定公開機能」を開発した時のお話などをしてくださいました。
この辺をキチンとできるの、素晴らしい。
同僚のデザイナーと話したら「デザイナーでXcode使えるの、良いんですよね。」と言ってました。
加藤さんによる、モバイルアプリでのABテスト実施についてのお話です。
WebでのABテストとは勝手が違い、「頻繁にデプロイできない」「アップデートを強制できない」「通信状況が悪い」「全てのユーザーに行き渡るまでに時間が掛かる」などの辛みがあって過酷とのことでした。
これ系って、確かに何故か「絶対にアップデートしないユーザー」が居るんですよね…。
「Webと同じノリで考えてると痛い目にあうぞ」という教訓ですね…。
丸山さんによる、プロダクト開発に於けるチームリーダーの心構え的なお話です。
「信頼を得る」ことにより「チームのパフォーマンスや成果を最大化できる」というのが主眼です。
スライドには無いのですが、信用は「信じて用いること」、信頼は「信じて頼ること」なので、混同しないように、とも言ってました。「信用される」はなく「信頼される」リーダーにならないとダメということかと思います。
「信頼を得ること自体が目的にならないように」とも言っていて、確かに目的は「チームのパフォーマンスや成果を最大化する」なのは忘れてはいけません。
個人でもプロダクト開発を行っていて、そこで得た実績と経験も活かしているようです。
迂闊に真似をすると大変そうなので、適度に取り入れるのが良い感じな気がする発表でした。(最後に「自分やチームに合う方法を考える」と言われてますし。)
デザイナーの須藤さんによる、デザイナー視点から検索体験を考えるというお話です。
(他の方の発表も、全て素晴らしかったのですが、)この発表は本当に超良い話でした。
ひとつひとつの機能に対してユーザーが居て、そのユーザーが得たい体験をシナリオベースで仮設を立てて、また機能として作り上げていく、そしてそれが流れとして細部にまで及んでいるという、サービスに対して考え尽くしているのが伝わる内容でした。
因みに、挿絵が可愛かったです。(↓私も思いました。)
別の方が書かれたようです。こういう絵を書けるデザイナーさんって本当に羨ましい。
発表者の長さんが担当されているクックパッド料理教室で、みんな(非エンジニア含む)でGitHubを使うようになるまでのお話です。
口頭コミュニケーションは「記録が残らない」「誰が何をやってるかわからない」などの問題があることを指摘しています。
「使い方がわからない」「怖い」などの壁を越えて、全員が使えるようになるまでの話をしてくださいました。
確かに「なんか怖いです。」はあるんですよね。言われます。「自分たちも振る舞いを変える」は必要だと思いました。
先に挙げた問題は我々も思うところで、GitHubでなくても良いのですが、何かしらのツールで会話していきたいですね…。
国分さんによる、クックパッドのサービス開発(「開発環境セットアップ」「開発」「テスト」「デプロイ」「監視」)を支える技術のお話です。
開発環境セットアップはコマンドで一発らしく、専用のシェルスクリプトがある(macOS、Linux対応)そうです。羨ましい。(メンテナンスが大変そうですが…。)
国内の巨大なRailsアプリを上手く開発していく工夫が感じられました。(テストとかデプロイとか。)
特にデプロイ周りは、 https://github.com/eagletmt/hakoというデプロイツールを実装したり、デプロイ可能時間を制御していたり、デプロイロックがあったりと、とても機能豊富でした。
染谷さんによる、クックパッドのディープラーニング活用についてのお話です。
現在は、スマートフォン内の写真から料理画像を認識する仕組みで使われているそうです。
「晴れて、弊社もディープラーニング導入企業です。」と言っていました。
ここまでが表のお話で、その後に裏のお話があり、環境構築の辛みがあって改善されたそうです。
VPの兼山さんによる、行動ログからプロダクト(主に検索)を改善するお話です。
「良いシナリオ」「悪いシナリオ」を定義して、定量化して改善していきます。
ユーザーの検索ログから、各セッションがどちらのシナリオになるかを判定していきます。(同一ユーザーでも15分以上の間が空いた後での検索は、別セッションとして扱う、など細かい決まりもあるようです。)
「関連検索」を使って、「こういうワードで検索すると、もっと良いですよ。」的な誘導もしたりしています。
データも一箇所にあり、基本的に全てSQLで解析できるようになっているそうです。
SQLのleadが紹介されていましたが、MySQLにlead(Window関数)は無かった…。
〆の基調講演で、技術部長/人事部長の嘉織さんの発表でした。
クックパッドのソフトウェアの紹介などがありました。作ったソフトウェアをOSSとして公開して業界に貢献していく姿勢は、本当に素晴らしい…。
(クックパッドのソフトウェアではないのですが、さらっと紹介された hashicorp/vaultが良さ気だったので、覚えておきます。)
Webの現状を鑑みて、HTTPS化も完了しているとのことでした。
現在はAmazon Redshiftへの完全移行が完了して、全てのデータが一箇所に集まったそうです。ディレクターも細かい分析が可能になったとのこと。
嘉織さんの基調講演の間に、スポットインスタンス活用の試みとして荒井さんからお話がありました。
要は、そういうことなんですけど…。理屈はわかるけど、それを実現してしまうのがすごい…。
同僚に話したら「スポットフリートでも良いんじゃないですかね?」と言われ、 https://github.com/ryotarai/spotscalerのREADMEを見たら「Why not spot fleet?」がTODOとなっていました。
翌営業日に出社して「ククパ社のTechConfに行ってきました。マジですごかったです。」という話をしてスライドを共有したら、同僚から「これ、マジですごいですね。ドリームチームですね。」と評していました。
同感です。