クックパッドさんと世界カメラで有名な頓智ドットさんの勉強会に行ってきた。
サービスを支える技術と開発スタイルを説明して頂いてとても参考になった。
世界カメラを支える技術
世界カメラはiPhoneやAndroid、AUの携帯等で利用出来るサービスだ。SoLARといってソーシャル、ロケーション、ARを組み合わせたものだ。
つまい携帯電話のカメラとGPSを利用して場所と出会いを空間的につなげる様なサービスだ。
そしてそのARの最先端を行く世界カメラはプラットフォーム戦略を狙っており、APIを公開する事によりゲーム等のアプリのプラットフォームへと進化している。
この世界カメラは、ほとんどがAmazon Web Serviceで構築されているようだ。
サーバサイドではCakePHPやRoR、それにスピードを要求される箇所はC++を利用しているらしい。
データベースでPostgreにPostGISを組み合わせて位置情報を管理しているとの事だった。
今後は位置情報だけでなく、カメラに写っている物体を利用して、例えばジャガイモが写っていたらジャガイモに最適なレシピを作れるサービスを作りたいとの事。クックパッドとの連携等わくわくする。
クックパッドのHadoop活用法
クックパッドでは膨大な量のユーザー情報をHadoopで解析し、たべみる等で活用されているそうだ。
HadoopはEC2、S3、Hadoop Streaming、ClouderaCDH1という組み合わせで利用していたが、不安定な事やHADOOP-6254というエラーが発生する事などからAmazon Elastic MapReduceへ切り替えたらしい。
EMRはCDH2よりコストが高くAMI(EC2用の仮想マシーンイメージ)の自由度は高いが安定度はEMRのほうが安定度は高くパッチの適用やバージョンアップ等をAmazon側でやってくれるのでEMRを選択したとの事。
という事でAmazon上でHadoopを利用するならEMRがおすすめで、そして何より–aliveオプションは忘れるなとの事でした。
ソースコードレビューの効果
頓智ドットコムでは3ヶ月前からソースコードレビューを実施しているそうだ。
コードレビューのシステムはGerritを利用。
Gerritはpre-comit型のフリーソフトでAndoroid等のプロジェクトでも利用されているらしい。
Sekaikamera iPhoneの開発で利用した所、導入前に比べてコミット数が増えた、コミットに対して行数が増えた、コミットログが3倍になった等のデータがみられたらしい。
コミットされるコードの50%以上が何らかの修正が入るというのが興味深かった。
又開発者へのアンケートの結果、全員品質が向上したと答え、半数以上が開発速度は落ちてない、67%が新規参加者に有用、89%が価値があると答えたそうだ。
ここまで来ると、絶対有用なんだなと思う。
技術力の向上や、早期バグ発見等を考えると導入してみたいなー。
クックパッドのものづくり
クックパッドでは2、3人のチームで約2週間単位で開発を行っていくそうだが、その9割近くが「悩み」に使われるそうだ。
つまり何の為に実装するのかというコンセプトの部分を非常に大切にしている。
開発は6つのステップで行われる
1.インタビュー
まずターゲットを一人選び、その人に徹底的に愛されるサービスを考えるためインタビューを行う。その際ただ言っている事を鵜呑みにするのではなく、真の欲求を見つけるよう気をつける。
2.KJ法
次にKJ法を利用してインタビューから得た要素をもとに分析を進める。
3.マインドマップ
今度はKJ法とは逆にマインドマップを使って要素に向かって分析をしていく。
4.EOGS
そして特徴的なのがEOGS(Emotion Oriented Goal Setting)というオリジナルの思考フレームワークを利用する所だ。
フレームワークはインタビューした人達4人ぐらいの意見を元にどのようなサービスを作るかをA41一枚の紙にまとめていくもの。
これらの項目を短文でまとめていく。
この作業が一番時間がかかるそうだ。
5.プロトタイプ
サービスの内容が決まったら、短い時間で素早くプロトタイプを作成し、すぐにターゲットユーザーに確認してもらう。この作業を何度も繰り返す。
6.リリース
そして無事リリースを迎える。
しかし、サービスのリリースは全体の1割で、残りの9割はサービスのブラッシュアップに当てられるらしい。
このプロセスがクックパッドの素晴らしいサービスの源になっているんだろうな。
素晴らしい。
最後に料理を頂いて終了
クックパッド専属のシェフによる豪華な料理を頂いて勉強会は終了した。
今後の世界カメラとクックパッドがより楽しみになった。
ごちそうさまでした。