こんにちは。投稿開発部エンジニアの土谷(@taihaku0415)です。 Androidアプリとcookpad.comの開発を中心に担当しています。
現在、クックパッドには100人弱のエンジニアが在籍しています。普段エンジニアはそれぞれの事業部に所属して、業務を行っています。スマートフォンアプリを専門に書くエンジニア、広告領域を担当するエンジニア、インフラや開発の基盤を構築しているエンジニアなど、多岐に渡ります。 そのため、クックパッドでは、業務をする上で必須なものから、他のチームの開発の知見や生産性を上げるためのtips(ツールの紹介や使い方など)まで、様々な情報を共有して、開発力や技術力の向上に役立てるための取り組みを行っています。
例えば、技術領域課題共有会では各部署・チームの課題を話し合う場が設けてあります。また、Groupadという社内ブログサービス上で、全社員(エンジニアにかぎらず全ての社員)が気軽に情報を発信しています。 それ以外にも、クックパッドの全てのエンジニアが顔を合わせて集まるエンジニア全体ミーティング、通称 Tech MTGを行っています。*1
今回の記事では、私も企画・運営に携わっているこのTech MTGに関してご紹介します。
Tech MTGとは
クックパッドでは日本のオフィスにいる全てのエンジニアが集まって情報共有する機会を隔週で30分程度設けており、企画、運営もエンジニア自身で行っています。
なぜやっているか
目的
Tech MTGの主な目的はエンジニア全体での 情報共有です。
具体的には
- 社内外で今話題の技術トピック
- RubyKaigiやGoogle I/Oなどのカンファレンスの参加報告も含む
- 新機能やサービスのリリース後の話
- 事務的な連絡事項(e.g. 社内のインフラやツールに関する変更や、全エンジニアが知っておくべき周知事項)
を中心に各開発を担当しているエンジニアに発表してもらう、ということをしています。 また、人事部長や開発本部長から、今後のクックパッドのエンジニアリングの方向性についての発表もあります。 Tech MTGでは、開発担当者からサービスや機能の実際について生の声が聞け、質疑応答がその場でできます。
Tech MTGではなにが話されてるのか
では、Tech MTGではどんなことが話されているのでしょうか。ここではほんの一部ですが過去のTech MTGで発表された内容を紹介します。
Job Queue Systemに関する話
クックパッドのJob Queue SystemであるBarbequeについての発表がありました。このBarbequeについては、先日のRubyKaigi 2016でも開発担当者の国分が(@k0kubun)が発表しました。社内では、Barbequeが使えるようになった時に発表され、本格的に運用する前だったこともあり設計上の問題点についても他のエンジニアから指摘が入っていました。
資料: https://speakerdeck.com/k0kubun/scalable-job-queue-system-built-with-docker
クックパッドのMicroservicesへの取り組みに関する話
クックパッドで取り組んでいるMicroservicesの事例に関して、社内で行われている様々な取り組みの事例もあげて説明してもらいました。詳しい内容はクックパッドにおける最近のMicroservices事例でも紹介されています。
資料: https://speakerdeck.com/adorechic/how-microservices-are-linked-at-cookpad
Google I/Oの参加報告
社内の技術的取り組みに関する話以外にも、Google I/O 2016に参加したAndroidエンジニアに、Keynoteで気になった発表の内容を選んで説明してもらったり、サンフランシスコ・ベイエリアのスタートアップ系の企業に訪問して交流した話を紹介してもらいました。このように大きなカンファレンスの参加報告をしてもらうこともあります。
技術顧問によるテストの話
また、クックパッドの技術顧問の一人である@t_wadaさんにテストに関しての発表をお願いしたこともあります。その後TDD Bootcampというテスト駆動開発の勉強会も開催しました(参考: テストを使いサービス開発を駆動していくために取り組んでいること)。
法務部の社員からの話
発表の内容は、必ずしもエンジニアリングに関するトピックに限りません。
先日のTech MTGでは、法務担当の社員から、全てのエンジニアが知っておくべき法律についての発表がありました。
このように、Tech MTGでは技術的な話を中心に幅広いテーマを取り扱っています。
どのように運営されているのか
Tech MTGは、これまでは社内の有志数名によって運営されていましたが、今年の1月から技術本部長の成田 (@mirakui)と新卒2年目のエンジニアが中心になって行っています。
定例ミーティング(Tech MTG MTG)
Tech MTGがあった日に運営メンバーで集まって、振り返りと次回以降の発表内容の確認・検討を行っており、口頭で話した内容を、GitHubのIssueを利用してドキュメントに残していく方法でミーティングを進めています。 ミーティングでは、毎回同じアジェンダのテンプレートを使って各項目にチェックし、Tech MTGの準備に抜け漏れがないようにしています。
※定例ミーティングで使用しているアジェンダ(チェック項目)
振り返りでは、KPT (Keep, Problem, Try) フレームワークを使って振り返り行い、Problemで挙がった問題点を改善するためにTryの内容をissueに書き込んで次回改善されていたら閉じる、というように地道な作業をしています。
また、準備期間をしっかりとれるように、約一ヶ月前には企画を固めて登壇者に依頼しています。 大きな機能のリリースや社内外のイベントに参加した社員(カンファレンスへの参加、社内勉強会など)がいないか、最近技術的にホットな話題とそれに精通している社員がいないか等から運営メンバー間でネタを出し合って、その中から多くの社員が興味を持ちそうで、業務にも役立つものを選んでいます。
まとめ
クックパッドのエンジニア全体ミーティング Tech MTGの目的、発表内容、どのように運営しているかについて紹介しました。 参加するエンジニアには業務時間を使って30分程度集まってもらい、登壇をお願いしている社員も準備に時間を割いてくれています。 なので、今後もTech MTGの登壇者・参加者が参加してよかったと思える、そんな情報共有の場にしていきたいと思っています。
最後になりますが、クックパッドではエンジニアを募集していますので、興味のある方は募集一覧をみていただくか、気軽に@taihaku0415までご連絡ください。
*1:ディレクターの知見共有会というのもあります