Cookpad TechConf 2017に参加しました


cookpad tech conf(https://techconf.cookpad.com/2017/)に参加してcookpadという企業の凄さとかがまたわかったような気がしました。

その感想とつらつらと述べていきます。

自分たちの技術基盤のコミニュティを自分たちで盛り上げる

cookpadはrubyをメインの言語として開発しているので、そのメイン言語であるrubyが廃れてしまうと困ってしまいます。ruby以外にもオープンソースのライブラリをいくつも使っています。というかWeb系の開発をしている会社であれば、だいたいオープンソースつかってますよね。

cookpadはそこでオープンソースへただのりをせずに、rubyを自分たちで盛り上げるべく

  • 自分たちでつくったツールをgemとして公開とか

  • ruby、railsへのOSS貢献とか

  • コミニュティの開催とか

などなど…とにかく外部に対しての活動が多い。特にgem周りなんかは自分たちで問題だと思っているようなことを、すぐgemにして公開しています。

発表の中でも世の中にあるものでは満足できないので、自分たちでつくった、みたいなものがいくつもあって、なんていうか自分たちだけではなく、世の中にある問題の発見と、それを仕事の延長で解決しているというのが技術力の高さを感じました。

今回でてきたものでも

  • chanko

  • user-features

  • hako

  • expeditor

  • Pact

  • phakchi

  • kuroko2

  • babecue

めっちゃある。

cookpadだけに食べ物に基づく名前が多く、キュー管理のライブラリがbabequeとかなんか名前もおしゃれ

あと大きいところとしてはこうした活動がきちんと評価の軸になっている、というところですね。

クックパッドでは、オープンソースに貢献できているかどうかをエンジニアの評価基準に入れています

例えば、当社が使っているRuby on Railsのバグを見つけたら、自然にパッチをプルリクエストで送ってマージしてもらう、そういう行為が出来ているかどうかです。

このオープンソースへの貢献は、基盤側かサービス側であるかといったことには関係なく、全エンジニア評価の軸になっています。

オープンソースで飯を食っている以上、オープンソース活動が自然にできているかどうかというのは、全員に求めるべきだと思っていて、もしできていない時は、評価査定で指摘されます。

「興味の幅がチームの生産性を上げる」ー新CTO成田氏が語る”これからのクックパッドに必要な人材”より

これは、OSS活動していないと、それはそれでなかなか厳しそうだ…

こういった活動ができているのが、cookpadの強さになっていると思います。

 

感覚で物事を決めない

cookpadはどの機能がユーザーに好ましい影響をあたえているのかというのを感覚ではなく、A/Bテストなどのテストを通した結果のデータできちんと判断をしているなーって思いました。

当たり前といえば、当たり前なんですが、、、

行動ログでプロダクトを改善する のセッションではユーザーの行動ログから検索成功率(検索結果の満足度)を出すことで

「どのパターンの時にユーザーは自分が期待している結果が得られているのか」

というのを数値化してだし、その結果を例えば関連検索に表示させるワードを分析するのに役立てています。

 

よりより検索結果のための情報設計とプロトタイピング では、

想定できるシナリオを元にUIを設計して、それが本当にユーザーが望んでいるものかどうかを検証するためにプロトタイプをつくり、自分でその機能実際に使って検証をする

といった、動くものをベースとした機能開発ができています。

クックパッドでは「動くものを前に議論する」という言葉が時々出てきます。 これは裏返すと、実際に「使える」状態にないものに対してあれこれ言ってもあまり意味がないという事です。 ですので、余計なインプットを入れずに、使えるプロトタイプとして最初にデプロイするまでは、直感を信じて作り切るようにします。

開発者ブログでもあるように、まずは余計な議論はせずに動くもの、データをもとに判断するようにして、判断できなければとりあえずプロトタイプをつくって動かしてみる、流れができており、大きなサービスでありながらも、すばやいPDCAサイクルが回せているなーと思いました。

 

 

よりよい組織をつくる

cookpadの人たちは基本的にcookpadというサービスが好きだと思ってます。なのでもっと良いサービスをつくるためには、もっといいチームをつくっていかないといけない、みたいな感覚の人が多いイメージです。

そんなチームビルディング的な視点で見た時にもいいセッションがいくつかありました。

チームでプロダクト開発をするための取り組みとして、チームのプロダクトマネージャーの発表がありました。

個人的にチームビルディングの話は好きなので、一番印象に残った発表でもあります。

ここでは、チームのパフォーマンスを最高にするために、チームのトップとして何をするべきか、それは、「チームメンバーから信頼を得る」 というものでした。

確かにトップが信頼できるかどうかでチーム力が変わるといっても過言ではない。

また、別の発表ではチームメンバー全員にGithubを使ってもらうというのもありました。

はっきり言ってこういった他の人を巻き込んで何かをする。みたいなのは基本的にめっちゃめんどくさいと思ってます。

あとどうしても反発もでてきてしまうので、単なる押し付けにならないよう、いろんな工夫が必要です。

そんな中で1つすごくいい考えだなと思ったのは、

「エンジニアの場にきてもらうではなく、みんなの場とする」

という考えでした。

エンジニアが楽をしたいだけではない、みんなでチームをよくしていこう。というのがこの考えから感じとれました。(この発表をしていたのが新卒っていうのがまた驚き…)

素早くユーザーに価値をとどけるということ

なんだかだんだんcookpadの人みたいになってきましたが、最大の強みの部分は

「ユーザーに素早く価値をとどける」

という考えが全員に浸透している、ということかなと。

DevOpsに関係する話でも、ディープラーニングの話でもみんな発表のなかではここに帰結していて、ぶれていない。

それにこの考えがあると、単なる技術大好き集団ではなく、ユーザーを考えサービスの成長を考えることができるので非常に強い組織になるなーと感じました。

 

面白かったです。また来年も参加したい。