約3カ月でScala率9割の動画広告配信プロダクト「LODEO」を開発
2014年の動画広告市場は前年比約2倍の300億円規模といわれ、その成長は破竹の勢いともいえる。サイバーエージェントでは「アドテクノロジーの開発」をキーワードに約200名のエンジニアを集め、2013年10月に「アドテクスタジオ」を設立。2014年10月よりアドテクスタジオにて動画広告配信プロダクト「LODEO」の開発を手がけ、2015年1月にリリースした。
その背景には、動画広告自体のニーズはもちろんのこと、スマートフォンの動画広告という新しい表現と、PCを使わない新たなユーザへリーチすることが可能なプロダクトが求められているという現状がある。「LODEO」の特徴は、1日に数十億リクエスト以上さばくという高いパフォーマンスに加え、個々のユーザに配信可能な配信ロジックを搭載し、データ分析や予測も行えるというもの。さらに、動画配信のネックとなりがちな異なる環境にも柔軟に対応する。
実質3か月という短期間に、配信サーバや計測サーバ、集計バッチ、スマートフォン用動画プレーヤーモジュール、インフラまで、あらゆるものを準備する必要があり、スタート時3名、完了時12名の少人数での開発はかなりハイスピードといえるだろう。その迅速な開発を実現した際の立役者が「Scala」というわけだ。
しかし、新田氏によれば「開発メンバーのうち未経験者が半数以上、経験者も実務はせいぜい半年、または本を読んだだけ」という状況。そうしたメンバーがScala率91.3%という「LODEO」を開発したのだという。ちなみに他には、JavaScriptやCoffeeScriptなどが使われている。
新田氏は開発プロセスについて、開発期前半は、「KPT(Keep、Problem、Try)を週1で行い、毎日のように作っては反映しを繰り返した。はじめは人数が少なかったが、後に増えることが決まっていたので、GitHubを使った情報共有を徹底した」と語る。また、開発中盤から後半期には、Huboardによるチケット管理をGitHubと連携させるなど、コミュニケーション環境の充実を図り、品質を高めるためにコードベースレビューのマージを頻繁に行ったという。
プロジェクト開始から終了まで、一貫して意識したことについて新田氏は次のような項目をポイントとして上げる。
1)再利用回数を考え、「見える化・集約・蓄積」を行なう。
二度と使わないドキュメントは意味が無い。コミュニケーションコストと開発における必要性を鑑みながら、情報共有を行なった。また、その際にはGitHubへの集約を図り、コラボレーションツールを適宜活用した。
2)開発サイクルの最大化
デプロイなどの自動化や朝会での流動的な優先度変更、KPIで上がったTODOの実行を柔軟に行い、フィードバッグのキャッチアップと動き出しを早くすることを心がけた。この際、「何を作るかでなく何をしたいか」を伝えることが肝心。一人で抱え込むのではなく、チーム全体で改善案を考えて共有し、実行することが大切。
3)個人に焦点を当てる
今までの経験値を最大限に活かす方法を「個人」にフォーカスして考えた。プロジェクトを通じてどんなナレッジがたまるのか、期待と結果を検証することといった視点も踏まえ、個々が「ビジネス」の価値を理解するエンジニアであろうと意識した。
こうした開発手法について、新田氏は「アジャイルという言い方はしたくない。あくまで型にとらわれることなく、有効と思われる手法を目的に合わせて活用することが大切」と語る。