エンジニアの行動

主体的に動く

エンジニア自身も、ユーザー体験を主体的に考え、どんなサービスや機能を提供すべきなのかを考えます。チームメンバーとして考えることはもちろん、エンジニア自らプロダクトの責任者としてサービスやアプリをリリースすることもあります。主体的に動いて何が出来るか、自分自身の強みを理解し、成果に繋げて行くことが求められます。

シンプルな設計をする

シンプルな設計をすることで、機能をユーザーに解りやすく伝えることが出来ます。また簡潔で解りやすいコードを書く事でチームの生産性を高め、ユーザーに価値を届ける速度や挑戦する回数を増やすことが出来ます。しかしシンプルという言葉と裏腹に、シンプルな設計をするためには技術の理解が必要です。 全員がより技術やプロダクトを理解するため、クックパッドの開発プロセスにはコードレビューが組み込まれており、様々なアドバイスをいろいろな社員から受けることが出来ます。コードのより良い書き方、考慮漏れやバグの指摘はもちろん、デザイナーやディレクターからもユーザー体験についてや、サービスについての考え方についても必要とあらばレビューや議論がコードレビューを通じ行われます。

社内外への貢献

Wiki と Blog が融合したような社内情報共有サービス「Groupad」を通し、様々な情報・知見をまとめ、共有しています。なぜこのサービス・機能を作ったのかといった考え方から、技術的なTips、成功と失敗の振り返り等々、様々な情報が日々共有されています。私達はユーザーに解りやすく価値を伝える必要があり、そのためには解りやすく伝える努力をしなくてはなりません。そのため、日々社内にも解りやすく情報を共有することを心がけています。 ユーザー価値を考え挑戦していく過程では、いくつもの最適化や抽象化が行われます。私達が使うことはもとより、社外にも共有することで価値を生むようなソフトウェアやライブラリは、積極的にオープンソース化を行い公開しています。また得た知見は、クックパッド開発者ブログで情報発信したり、様々な所で発表しています。業務中の適切なオープンソース活動も認められています。 技術や価値を伝えるためには、自分自身でしっかりと本質を理解しなくてはなりません。そのため、社内はもとより、社外にも解りやすく伝えることを意識することで、より考えを深めていくことができます。

自分たち自身で変化し続ける

ユーザーの必要性に応じ、エンジニアの開発手法やスキルセットを大きく変えていっています。変わり続けるために、新しい考え方や開発手法を考え、適応し続けなければなりません。 例えば、2014年クックパッドはモバイルアプリ開発に全面的に舵を切ったのですが、Webアプリケーション開発では発生しなかった、モバイルアプリの複数人開発でいくつも問題が発生しました。そんなときにどう自分たちで改善をしたか、KPTで粘り強く品質改善に取り組んだ話で試行錯誤について書かれています。 昔は自社データセンターで運用していたサービスも、今は完全にクラウドで運用されています。そうするとインフラのエンジニアには、ソフトウェア的なアプローチでクラウド環境を管理することが求められます。そのため、今のクックパッドのインフラエンジニアは、全員がコードを書くことができます。 自分たち自ら必要に応じて変化・適応していく、そのためにどんな開発プロセスにすべきか、どんな技術を使えるようになるべきか、どう組織が正しい形に変わっていくべきかを考えなければなりません。 インターネットの技術は日進月歩で変わり続けています。そのために必要に応じ変化することができないと、以前は強みだったことがいつの間にか弱みに変わっている、といったこともありえます。ユーザーのことを徹底的に考えるからこそ、自分たち自身も変化し成長し続けることが出来る、そんな行動がクックパッドのエンジニアには求められます。