歴史ある国内最大級の転職サービスサイト、だからこそ抱えていた課題
──まずは自己紹介をお願いします。これまでどのようなお仕事に携わってこられましたか?
私は2022年7月にパーソルキャリアに入社しました。前職でもエンジニアとしてキャリアを積んでいたので、エンジニア歴は約8年になります。入社直後は転職サービスサイト「doda」の機能追加を担当するチームに配属され、その後は自ら希望して「dodaリビルドプロジェクト」に参画しました。自から手を挙げたのは、新しい技術を積極的に取り入れているプロジェクトに挑戦したかったからです。
現在はシステムアーキテクトとして、「doda」に関するアーキテクチャ周りの改善や保守を担当しています。その中でもマイクロサービスグループに所属し、「doda」の求人領域のチームリーダーとして、マイクロサービス化を進めています。ちなみに求人領域では、転職検討中の方が実際に触れるWebサイトの領域を担当しています。
──dodaリビルドプロジェクトは、どのような課題感から始まったのでしょうか。
私が入社した2022年当時、「doda」のシステムは15年以上稼働している古いシステムでした。そして、豊富なデータを保有するスケールの大きさゆえに、フロントエンドとバックエンドのソースが混在しており、ちょっとした機能の追加や改修をしようとするだけでも影響範囲が広くなりがちで、開発速度が低下していました。
加えてWebサイトの描画速度が遅く、さらにサイト内のパーツの動きも鈍かったため、Googleの「Core Web Vitals」(注:ページの読み込み速度、操作への反応性、視覚的安定性など、実際のユーザーエクスペリエンスを測定する指標)がほかの転職サイトと比べて低い値となっていたことも課題でした。
これらの要因のひとつとなっていたのは、フロントエンドにJakarta Pages(JSP)を使っていたためで、バックエンドとフロントエンドが密結合になりがちでした。6~7年前までは外部のベンダーに依頼してシステムを開発していたこともあり、保守性をあまり考慮していない作りになっていたのです。開発工数やコスト増加の問題、開発速度および品質の向上のため、2020年からは内製化する方向性になったと聞いています。
このような課題を解決するため、フロントエンドとバックエンドをきれいに分離し、フロントエンドをJSPからReactに置き換える、dodaリビルドプロジェクトが立ち上がりました。リビルドプロジェクトは私が入社する前から始動しており、私自身は2022年7月から2024年9月までの約2年間、参画していました。
スムーズなコミュニケーションを実現するため、チームの再編成を提案
──リビルドプロジェクトにおいて、奥野さんはどの部分を担当されたのですか。
最初はバックエンドエンジニアとして改修に携わり、半年後にはバックエンド領域のチームリーダーを任され、タスク管理などに従事しました。
当初、バックエンドとフロントエンドはチームが分かれて開発していたため、チーム間でのコミュニケーションロスにより、手戻りが発生することがよくありました。特にインタフェースの開発においては、バックエンドが提供するAPIとフロントエンドが開発していたものが合わなくて手戻りになる場面が多々ありました。
そこで、フロントエンドとバックエンドのメンバーを混在させる形で画面ごとのチームが編成されることになり、私もチームのひとつを率いるリーダーを任されました。実は「画面ごとにチームを編成しては?」という提案をしたのは私なんです。混合チームにしたことでコミュニケーションがスムーズになり、そのような手戻りは改善されましたね。提案したからこそ改善がスムーズに進めたと思うので、受け入れてもらえる環境がありがたかったですね。
また、リビルドプロジェクトではドキュメントが揃っていないなどの問題もありました。ただ、こうした経験は過去にも何度かあったので、それほど驚きではありませんでしたね。
設計書は参考程度にするぐらいで、ソースコードを「正」として、ひたすらリバースエンジニアリングでソースコードから仕様を起こしていきました。ただ仕様を起こすだけでは漏れが生じるので、レビュー体制も整備しました。具体的には「このソースはこのような意味」といったコメントを書いていき、それをプルリクエストして、仕様として認識が合っているかレビューしてもらい、ダブルチェックで進めていきました。
これを細かくすべてに対して行うと、時間がいくらあっても足りないので、ざっと仕様を見て、今の設計書と違う部分を更新し、問題がなければリリースする。リリース後に問題が出てくれば、元に戻すという形式を採りました。古いアーキテクチャをそのまま残し、新しいアーキテクチャで何か問題があれば、すぐに戻せるようにしたのです。最初から100%を目指すのではなく、90%を目指す。そして問題があればアラートを上げ、すぐ戻せる体制を作っておく。リビルドプロジェクトを経たことで「戻せる体制を作ることは最も重要なこと」だと実感し、その経験は現在のプロジェクトにも活きています。
──プロジェクトを通して、Webサイトにはどのような改善が見られましたか?
Core Web Vitalsには3つの指標があり、いずれの指標もテストカバレッジでは70%以上を「良好」としているのですが、最終的な網羅率は80%を超えました。モダンなアーキテクチャに移行したことでリリースの頻度も増え、開発効率はかなり改善されたと思います。加えて、バックエンドではクリーンアーキテクチャーを採用し、外部への依存を極力なくすことで保守性を高めることもできました。
巨大なデータベースが開発の足かせに──マイクロサービスを選んだ理由
──続いて、現在奥野さんが携わっている「dodaマイクロサービス化プロジェクト」について伺います。プロジェクトが始まった背景を教えてください。
「doda」システムの最大の課題は、データベースが巨大で、かつ「doda」周辺のシステムもすべて同じ共有データベースを参照していることでした。そのため、他システムに影響が出る可能性があり、データベースを安易に変更することができませんでした。
その影響範囲を調査すること自体に時間がかかり、開発速度も下がっていました。こうした問題を解消するために、各アプリケーション専用のデータベースを切り出してマイクロサービス化し、アプリケーション単体でリリースできるようにしたのです。
先ほどお話ししたリビルドプロジェクトにて、まずは「doda」のフロントエンドについて密結合を解消し、その後マイクロサービス化プロジェクトで共有データベースの密結合の解消を目指すという流れです。
──マイクロサービスを選んだ理由についても教えてください。
最近では「モノリスに戻した」という事例も増えていますが、それは規模の小さなアプリケーションのケースだと思います。比較的規模の小さなアプリケーションをマイクロサービス化してしまうと、管理コストが上がってしまう。ですが、「doda」システムぐらいの規模であれば、マイクロサービス化して、各アプリケーションの機能をスリム化した方が保守性は高く、生産性も向上すると考えています。
マイクロサービス化はAI活用を推進するうえでもメリット
──近年、システム開発にAIを活用するケースが増えています。現在のプロジェクトではどのようにAIを活用されていますか。
社内で「Claude Code」が使えるようになっているため、仕様の調査やテスト、実装などのフェーズで活用しています。中でも実装面ではClaude Codeを使って進めていることが多いですね。
社内では1日に使用できるトークン量が決まっているので、使用量には気を付けています。マイクロサービス化プロジェクトではそれほど意識はしていませんが、マイクロサービス化されていない部分はコード量が多く、そのままClaude Codeを使うとあっという間に制限に達してしまうことがあります。制限内でうまく活用できるよう、社内で試行錯誤しています。
具体的な案としては、AIが迷わないよう、Claude.md(注:プロジェクトルートに配置するマークダウンファイル)に情報を与えて道しるべを作る。もちろん生成AIを安全に活用できるよう、OSSのガードレールフレームワークも導入しています。
AI活用を進めるためにも、細かくリリースできるマイクロサービス化は有効だと思います。AIを活用することで、仕様を決めるディレクターが「こんなことをしたい」と言った瞬間に、動くものを提示できるぐらいのスピード感が可能になるかもしれません。このようにリリース速度が上がれば上がるほど、より良い機能やUXをユーザーに早く提供することができるようになる。AI活用の一番の価値はそこにあると思います。
誰もがチャレンジできる組織で、メンバーの主体性を大切にするマネジャーに
──パーソルキャリアにはエンジニアが挑戦しやすい風土があると伺いました。
そうですね。やりたいことを率先してやらせてくれる会社です。リビルドプロジェクトやマイクロサービス化プロジェクトに参画できたのは、自ら手を挙げたからです。もちろんそのチャンスを自分で掴めるかどうかは自分次第ですが、挑戦したい人にはその機会がある組織だと感じています。
また、技術選定をボトムアップで進められる点にも非常にやりがいを感じます。マイクロサービス化プロジェクトでは、データ連携手法や全文検索基盤の選定など、裁量の大きな機会が豊富にあり、エンジニアとしての成長を日々実感しています。

──奥野さんがプロジェクトリーダーとして、日ごろから心がけていることを教えてください。
メンバーが主体性を持ち、日々の作業に集中できるような環境を整えることを大事にするなど、上司が部下を積極的にサポートする「サーバントリーダーシップ」を意識してマネジメントしています。チーム内の心理的安全性の担保や情報共有については仕組み化し、メンバーが主体的に仕事に取り組める環境づくりを心がけています。
私自身、サーバントリーダーシップを実践するリーダーの下ではたらくことが多かったので、それが心地よかったこともありますが、今のメンバーは皆優秀なので、マイクロマネジメントするよりも、のびのびと自主的に動ける環境にした方が生産性が上がると思っています。
──現在、奥野さんはマネジャーを目指していると伺いました。今後のキャリアに向けて、身につけたいと思っているスキルなどはありますか。
傾聴スキルや1on1のやり方など、サーバントリーダーシップに関する本を読んだり、マネジャー研修を受講したりして、理想とするマネジャー像を構築している途中です。部下を支えるマネジャーを目指しているので、自分の考えを持ち、主体的に仕事に携われる方と一緒にはたらけるとうれしいですね。
加えて、マネジャーはチームリーダーとは異なり、自分が目指す組織像を描き、その状態にするまでのロードマップを引かなければなりません。そのような知識も今後、磨いていかなければならないと感じています。
──今後、どのようなことにチャレンジしていきたいですか。
生成AIを活用した最先端の開発手法を取り入れることで、生産性の向上に取り組んでいきたいです。また求人領域は「doda」の肝なので、常にユーザーにとってより良いサイトになるような提案をしていきたいですね。
例えば検索の仕方も、今は年収や職種など、条件をユーザーが入力する必要がありますが、そこにAIエージェントを活用する。すると、「転職をしたい」とチャットで話しかけると、「あなたはこのような考えを持っている人で、将来こんな風になりたいと言っていたから、この職業はどうかな。こんな求人があるよ」と提案してくれる。個人的にはそんなシステムが実現できればいいなと考えています。
パーソルキャリアでは一緒にはたらく仲間を募集しています!
本記事で興味を持たれた方はパーソルキャリア採用サイトをご確認いただき、ぜひご応募ください。

