SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2024 Summer レポート(AD)

リクルートの大規模開発に学ぶ──"最短最速に全てを賭けた"アーキテクチャとプロセスの発明

【23-C-8】新プロダクトの開発プロジェクト。最短最速に魂を売る!新しいアーキテクチャとプロセスの提案!

  • X ポスト
  • このエントリーをはてなブックマークに追加

 大規模プロダクトの開発においては、大勢の開発者・デザイナーが携わる。しかし開発者の人月が増えればコミュニケーションコストも倍増していく。そのため、いたずらにプロジェクトメンバーを増員しても、コミュニケーションがボトルネックとなり思うように開発が進まない……といったジレンマがある。そこで、リクルート プロダクトディベロップメント室 HR領域プロダクトディベロップメントユニットでは大規模新プロダクト開発の際、スピードを第一優先順位に置き、新しいアーキテクチャとプロジェクトマネジメントを発明した。その事例をリクルート フロントエンドアーキテクト シニアプロフェッショナル 吉井健文氏と、ビジネスアナリシス シニアプロフェッショナル 竹下由美氏が解説した。

  • X ポスト
  • このエントリーをはてなブックマークに追加

「異次元の短期化」に挑むため、人月の原則をハック

 Indeedは、複数の求人サイトと複数のATSをつなぎ、求職者と求人のより効率的なマッチングを実現する求人配信プラットフォーム「Indeed PLUS」をリリースした。これは関係者数千人、4か国にまたがる大規模プロジェクトだった。その中でも、新プラットフォームの一部「Airワーク 採用管理」は最も工数がかかるプロジェクトだ。このプロジェクトは、「通常であれば12か月かけて取り組むべきところ、4か月で完遂することが求められていた」という。

 そこでリクルート プロダクトディベロップメント室 HR領域プロダクトディベロップメントユニットでは開発期間の「異次元の短期化」を実現するために、「多重並走アーキテクチャ」を採用。通常では多方面に配慮しながら開発する必要がある中で、今回ばかりは開発の「スピード」を第一優先に置いた。

 竹下氏は「異次元の短期化を実現するために、今までの常識では太刀打ちできない。原理原則として捉えていたものを改めて見直し、ハックすることを意識した」と振り返る。

株式会社リクルート HR領域プロダクトディベロップメントユニット ビジネスアナリシス シニアプロフェッショナル 竹下 由美氏
株式会社リクルート HR領域プロダクトディベロップメントユニット ビジネスアナリシス シニアプロフェッショナル 竹下 由美氏

 結論から言えば、N名のエンジニアで12か月かけて開発するところ、通常の3倍のエンジニアが参画することで、3分の1の4か月で開発するという戦略をとった。しかし、本来この手法は常識では禁じ手である。システム開発の期間はコミュニケーションコストと関係するからだ。

 「『人月の神話』の中に登場するブルックスの法則では『遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトをさらに遅らせるだけである』と指摘されています。コミュニケーションパスが人数の二乗で増加し、人数増加で消費できるタスク量よりも、コミュニケーションコストが上回ってしまうのです」(竹下氏)

 この問題を解消するため、メンバーを3倍に増員しながらもコミュニケーションパスの増加を徹底的に防ぐ必要があった。

短納期達成のため3倍の人数増させる コミュニケーションパスの増化を防ぐ必要

 そこで、このようなタスクの進め方ができる新しいアーキテクチャを考案することにした。それが「多重並走アーキテクチャ」である。

新 多重並走アーキテクチャ

 ポイントは2点。まず、フロントエンド・バックエンドの間の協調を最小限に抑えること。そしてUIコンポーネントを軸に責任を分担することだ。

 そもそもアプリケーション開発において、特にコミュニケーションコストがかかる、すなわち協調が必要になるのは「BFF(Backend For Frontend)」の実装だ。BFFとは、画面要求を達成するためのサーバー実装であり、UIを表現するためのデータ取得などがそれにあたる。BFFはバックエンドとフロントエンド、どちらの責務であるか曖昧な領域であるため、双方の認識齟齬なく、確実で的確なやりとりが求められる。

 「ボトルネックになりがちなBFF実装の整理こそ、ブルックスの法則に抗うためのキーポイントだった」と吉井氏。

株式会社リクルート APソリューションG フロントエンドアーキテクト シニアプロフェッショナル 吉井 健文氏
株式会社リクルート APソリューションG フロントエンドアーキテクト シニアプロフェッショナル 吉井 健文氏

 そこで吉井氏は、BFF実装の工程を以下の3つのステップと捉え、スピードのボトルネックとなる協調点をずらした。「複雑な協調はバックエンドの開発者のチームだけで完結するように合意形成しておき、フロントエンドとバックエンドをまたぐ協調は単純化した」という。

協調点の移動

 さらに、フロントエンドとバックエンド、それぞれの開発の中でも、担当領域ごとに責務を明確にすることで、コミュニケーションコストを下げた。その責務の境界の基準となったのが「UIコンポーネント」である。

 例えばWeb APIのサーバーがあった場合、一般的にはOpenAPIなどで規約を定義してから開発に着手するだろう。しかし、それだけでは責務の境界を引くことはできない。「UIに必要なデータ加工をどこで行うのか。データ中心のAPI なのか、UI中心のAPIなのか決めるために、必ず協調が必要になるからです」と吉井氏は言う。

 そこで、一つの画面を複数のUIコンポーネントに分断し、UIコンポーネントと専用Web APIが一対一の関係になるように責務を分担。「UIを成立させることに徹する」という規約を置いた。

多重並走開発のための責務境界

 こうして「多重並走アーキテクチャ」を構成した同社。吉井氏は、多重並走アーキテクチャのキーポイントとして、「フロントエンドとバックエンドの協調を最小限に抑えること」「UIコンポーネントを軸に責務を分断すること」に加えて「要件定義の段階から分断されていること」が重要だったと振り返る。

 「『どこまで分割するのか』について協調が必要になってしまわないように、ワイヤーフレームが上がった時点で、UIの単位で割っていきましょうというレールを敷いた。これが現場に落とし込むうえで一番ポイントでした」(吉井氏)

 今回の開発対象は40画面だったが、190ほどのUIコンポーネントに分断した。その結果、「短期間で開発を完遂したい、人数は問わない」という要求に応えることができた。

次のページ
データベースと想定外の問題への対応

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2024 Summer レポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

岡田 果子(オカダ カコ)

 IT系編集者、ライター。趣味・実用書の編集を経てWebメディアへ。その後キャリアインタビューなどのライティング業務を開始。執筆可能ジャンルは、開発手法・組織、プロダクト作り、教育ICT、その他ビジネス。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

川又 眞(カワマタ シン)

インタビュー、ポートレート、商品撮影写真をWeb雑誌中心に活動。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:株式会社リクルート

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/20035 2024/09/02 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング