はじめに
こんにちは!「ビズリーチ」で求職者様向けプロダクト開発チームに所属しているエンジニアの渋谷です。
私たちのチームでは2022年から「リアーキテクチャ」と呼ばれる大規模なプロダクト負債解消プロジェクトに取り組んでいます。このプロジェクトは、技術的負債が蓄積し変更が困難になっていたプロダクトをモダンな技術スタックを使って作り直し、将来にわたるプロダクト改善の基盤を築くことを目的としています。
このプロジェクトでは、非常に重要度の高い機能を大きな障害を起こすことなく段階的にリリースしました。同時にUI/UXの改善も達成したことが評価され、社内表彰イベントで最優秀チーム賞を受賞しました。
本記事では、この困難なプロジェクトをチーム一丸となってどのように推進し、成功につなげたのか、その背景にある戦略や開発プロセス、そして何よりも「仲間づくり」(チームビルディング)の重要性についてご紹介します。
ビズリーチの開発文化や、私たちが日々どのように課題に向き合い、協力して乗り越えているのか、その一端を感じていただければ幸いです。
プロジェクトの背景 改善したくてもできなかった、もどかしい現実
まず、私たちが開発している「求職者様向けプロダクト」について簡単にご説明します。これは「ビズリーチ」をご利用いただく求職者様向けのWebアプリケーションです。具体的にはご自身の職務経歴書を作成・編集する機能や希望条件に合った求人を検索・閲覧し応募する機能、興味を持った企業やヘッドハンターからのスカウトを受け取り、メッセージをやり取りする機能など、求職者様の転職活動のコアとなる、非常に重要な機能を担っています。
株式会社ビズリーチは『「キャリアインフラ」になる』というビジョンを掲げています。その実現のためには、求職者様向けプロダクトを、ユーザーの声やデータに基づき、継続的に改善していく必要があります。日々多くの求職者様にご利用いただいているこれらの機能は、まさに「ビズリーチ」の根幹をなすものです。
しかし長年の機能追加や改修の結果、プロダクトの内部は複雑化し、技術的負債が 蓄積され、以下の問題が顕在化していました。
- 負債による生産性の低下
- 求職者様の登録画面で入力項目のバリデーションを少し変更しようとした際、一見単純な改修に見えたものの依存関係の複雑さから多くの時間を費やしても実現できなかった。
- 影響範囲の不明瞭さ
- コードが密結合になっており、特定の機能への修正が予期せぬ別の機能の不具合を引き起こすリスクが高く、容易にさわれない状態になっていた。
- 現在の仕様が分からない
- 現時点での仕様や実装当時の設計意図がドキュメントに十分に残されておらず、何を変更するにもまずコードリーディングや関係者へのヒアリングといった調査から始める必要があった。
以前にも大規模なリニューアルプロジェクトを試みたものの、変更範囲が広がりすぎた結果、計画通りに進まず中断した経験があり、大規模改修への不安感もありました。
このような状況では、ユーザー体験の向上や事業の成長に合わせてプロダクトを迅速に進化させることは困難です。この状態ではビズリーチが目指す「キャリアインフラ」の実現は難しい、という危機感が私たちをリアーキテクチャという大きな決断へと突き動かしました。
リアーキテクチャとは、未来への基盤づくり
リアーキテクチャとは、単なる技術刷新ではありません。前述の課題を根本から解決し、「継続的にプロダクトを改善していける基盤」を構築すること。これこそが、私たちのプロジェクトにおける最大の目的です。これは、将来にわたってユーザー価値を高め続けるための土台作りを意味します。
そこで私たちは、過去に大規模改修が計画通りに進まなかった経験を踏まえ、改修箇所を今後改善していきたい画面に絞り、一画面ずつ着実にリプレイスしていくという戦略を取りました。 そしてプロジェクト開始当初にリアーキテクチャ対象とした「職務経歴書画面」や「登録導線画面」では、「ユーザーに見える機能追加やUIの大幅な変更はスコープ外とし、プロダクトの内部構造(アーキテクチャ)の刷新に集中する」というアプローチで進みました。
この慎重なアプローチを選んだのには理由があります。当時の私たちはまだ大規模なリアーキテクチャの経験が浅かったこと、そして何よりも、影響範囲が不明瞭な状況で多くのユーザーが利用する基幹機能に変更を加えるリスクを最小限に抑える必要があったためです。過去の反省から、まずは「やることを絞る」という選択を取り、意図的にスコープを限定しました。 これにより、仕様の複雑さという不確実性の高い開発案件を、安全かつ着実にリリースすることを目指したのです。まずは内部の技術的負債解消と変更容易性の確保に注力し、確実な一歩を踏み出すことを優先しました。
この初期段階での経験と基盤構築が成功したことで、その後の「求人画面」や「メッセージ画面」などのリアーキテクチャにおいては、内部構造の刷新と同時にUI/UXの改善もスコープに含めることが可能になりました。
地道な開発と適切なスコープ選択が功を奏し、2022年のプロジェクト開始から現在(執筆時点)までの約3年間で主要な画面のリアーキテクチャが完了しました。、プロジェクトの途中からは再構築した基盤の上でデザイン変更や機能改善も同時に行えるようになり、ユーザーの利用率向上といった成果にも繋がっています。
リアーキテクチャ前のメッセージ画面
リアーキテクチャ後のメッセージ画面
プロジェクト推進の鍵は、チームの力を最大化する戦略
これらの戦略が成功している背景には、単なる技術やプロセスだけではない、より根源的な要因があります。それが「チームビルディング」「職種の壁を作らない開発」「振り返り」です。これらは一過性のものではなく、今も私たちのチームに根付いている大切な文化です。
① 心理的安全性がすべての土台となる「チームビルディング」
大規模で複雑、かつ過去に失敗経験のあるプロジェクトを推進するには、メンバー一人ひとりが安心して意見を述べ、挑戦し、協力し合える環境が不可欠でした。私たちのチームでは以下のようなメンバーの強み弱みといった相互理解を深め、心理的安全性を高める活動を継続的に行うことで、何でも言い合い、協力できる関係が構築されました。
- 相互理解を深める場づくり
- LT(ライトニングトーク)会: 趣味や技術的な興味など、各自が好きなテーマで発表し、多様なバックグラウンドを共有しています。
- マイクレド: ビズリーチの文化で、自身の仕事における信条や大切にしている価値観をチームメンバーに共有し、自分がどんな人間なのかを伝える場を設けています。
- 心理的安全性の可視化
- 定期的に心理的安全性アンケートを実施し、チームの状態を客観的に把握。課題があればすぐに検知し、改善できる環境を作っています。
- 賞賛と感謝の文化づくり
- 日報での感謝: 日々の業務報告の中で、助けてくれたメンバーへの感謝を積極的に伝える機会を設けています。
- 振り返りの場での「Keep/Good」: 振り返り(後述)の場で、良かった点や継続したいことを具体的に挙げ、お互いの貢献を認め合っています。
(筆者の「マイクレド」共有資料)
こういった活動を地道に行うことで賞賛することや理解することが当たり前になり、チーム内には「何を言っても大丈夫」「失敗しても責めない」「困ったときはお互い様」という文化が醸成されました。 この心理的安全性の高い土壌が、後述する「職種の壁を作らない開発」や「率直な振り返り」を可能にしています。メンバー間の信頼関係が、複雑な問題に対する活発な議論や、部門を超えたスムーズな連携、そして前向きな改善サイクルを生み出す原動力となっています。
② 職種の壁を無くし全員で不安を潰す、開発の進め方
心理的安全性を土台に、私たちは開発プロセスにおいて以下のような「職種の壁を無くす、フロー効率、不確実性の低減」を重視しています。
- 職種や部門間の壁を作らない
- インプロセスQA
- QAが開発チームの一員として所属して開発の初期段階から仕様検討やテスト設計に参加し、開発者と密に連携しています。これによりテスト実装・テスト実施時の確認コストや手戻りを減らし品質を早期に作り込んでいます。
- デザイナー、プロダクトオーナー(PO)/プロダクトマネージャー(PdM)との距離の近さ
- 企画段階からエンジニア、デザイナー、PO/PdMが一体となって議論し、認識齟齬を防いでいます。仕様書を待つのではなく、一緒に作り上げるスタイルです。
- 他チームとの積極的な連携
- リアーキテクチャは多くのチームに関わるプロジェクトです。関係部署との定例会議や情報共有を密に行い、協力体制を築いています。
- インプロセスQA
この連携により複雑な既存システムの仕様に対する理解がチーム全体で深まり、部門間の認識齟齬による大きな手戻りを未然に防ぐことができました。これは影響範囲の広いリアーキテクチャにおいて、正確な仕様把握とスムーズな開発進行を実現する上で極めて重要でした。
- フロー効率重視
- 個々のメンバーの稼働率(リソース効率)を高めることよりも、価値がユーザーの手元に届くまでのリードタイム(所要時間)を短縮すること(フロー効率)を最も重視しています。
- モブプログラミング/モブ作業
- 複数人で一つの画面を見ながら、設計、実装、テスト、ドキュメント作成などを共同で行っています。これにより知識の属人化を防ぎ、レビュー待ち時間を削減し、リアルタイムでの問題解決が可能になります。特に複雑な仕様の解読や設計の検討において効果を発揮しています。
リアーキテクチャでは特定の人しか知らない仕様や、密結合したコードの解読といった難題に何度も直面します。モブ作業中心のアプローチはこれらの課題に対するチーム全体の理解度を効率的に引き上げ、属人化によるリスクを効果的に低減させました。またモブ作業を通じてメンバー間の知識や認識の共有が進んだことで、レビューなどにかかるコストが削減され、複雑な開発も計画通りにリリースしていくことができました。
- 不安要素・不確定要素の早期洗い出し
- テスト分析・設計: 開発に着手する前に、開発者自身が現在の仕様のAs-IsとTo-Beを整理し、デザイナーやPdMも交えてテストケースを設計しました。設計の早い段階からテスト分析を行うことで、仕様の誤解や設計ミスによって、後々不具合となる原因がプログラムに埋め込まれてしまうのを防ぎ、同時に仕様の認識をチーム全体で揃えるようにしています。
- プレモーテム(事前検死)として、 リリース前などに「もしこのリリースが失敗するとしたら、どんな理由が考えられるか?」をチームで事前に議論し、リスクを洗い出して対策を講じています。
(テスト分析の様子)
大規模な内部変更は、予期せぬ不具合を引き起こすリスクが常に伴います。リアーキテクチャプロジェクトでは開発初期段階でのテスト設計やリスク分析を徹底することで、これらの潜在的なリスクを早期に特定・対処し、リリース時の障害発生とその影響を最小限に抑えることができました。この品質に関わる活動を開発プロセスの早い段階から行うシフトレフトのアプローチは、事業影響の大きい機能を安全にリプレイスし、ユーザーへの影響を回避する上で非常に効果的でした。
このように、私たちは「誰か一人が頑張る」のではなく「チーム全体で課題に向き合い、解決していく」スタイルでプロジェクトを進めています。この開発スタイルが、技術的にも組織的にも困難な大規模リアーキテクチャを着実に前進させ、最終的な成功に導いた重要な要因なのです。
③ 過去の経験は必ず次に活かす、振り返りと学び
私たちは、過去の経験や日々の活動から学びを得て、それを次に活かすことを非常に重視しています。過去の負債解消プロジェクトでの失敗経験は、今回のリアーキテクチャ戦略(スコープの限定や段階的リリースなど)の根幹を成しています。そしてリアーキテクチャプロジェクトが進行している現在も、以下のような「学び、改善する姿勢」こそが、複雑で変化の多い状況に対応し、プロジェクトを成功に導く鍵となっています。
- KPT
- 週次など定期的に「Keep(続けたいこと)」「Problem(問題点)」「Try(次に試したいこと)」を率直にチームで出し合い、具体的なネクストアクションに繋げています。
- プロジェクト/マイルストーン振り返り
- 取り組みを行った際には大きな区切りごとにより深くプロジェクト全体を振り返り、プロセスや戦略レベルでの改善点を見つけています。
- ポストモーテム
- 障害や予期せぬ問題が起きた際には、原因究明と再発防止策をすぐに実施する文化が根づいています。
(KPTで使用したボード)
重要なのは振り返りを「振り返って良かったね・悪かったね・気をつけよう」で終わらせないことです。振り返りをドキュメントに残し、そこから得た学びを具体的かつ実現可能なアクションに繋げました。そして、その効果を測定し、さらに改善するという徹底したサイクルが、チームの経験値を飛躍的に高め、リアーキテクチャ完遂の確度を大きく引き上げたのです。
リアーキテクチャがもたらすもの、そしてこれから
これらの取り組みの結果、私たちは以下のような成果を手にしました。
- 自走するチーム
- メンバー一人ひとりがプロジェクトへの当事者意識を持ち、主体的に考え、協力しながらタスクを進められるチームへと成長しました。
- 安定したリリース
- 事業影響の大きい複数の重要機能を、大きな障害を起こすことなく、計画通りにリリースできるようになりました。
- ユーザー価値の向上
- リアーキテクチャの基盤の上で、デザインの大幅な刷新や機能改善も実現し、ユーザー体験の向上に貢献しました。
- 生産性の向上
- 変更容易性が高まったことで、新たなグロース施策を以前よりも短期間で実装・リリースできるようになりました。
リアーキテクチャで手に入れた「改善し続けるための基盤」は、今後のプロダクト開発に大きな可能性をもたらしています。 求職者様と企業様双方への価値提供に向けた施策を迅速かつ安全に実現できる環境が整ったほか、リアーキテクチャを通じて整備されたコードベースや設計思想が他の開発チームが開発する際の参考になったり、テスト分析などのプラクティスが他チームにも導入されたりと、組織全体の開発効率向上にも貢献しています。
今後も「ビズリーチ」のプロダクト組織全体で刷新された基盤とナレッジを発展させ、『「キャリアインフラ」になる』というビジョンを実現すべく高品質なプロダクトをユーザーに提供していきます。
おわりに 仲間と協力し、困難を乗り越える喜び
この記事を通じて、ビズリーチの求職者様向けプロダクト開発チームが、いかにして技術的負債という大きな壁に立ち向かい、リアーキテクチャプロジェクトを推進しているか、その雰囲気を感じていただけたでしょうか。
技術的な挑戦はもちろんですが、それ以上に私たちが大切にしているのは「仲間づくり」です。心理的安全性を確保し、職種の壁を越えて協力し、常に学び続ける文化を育むこと。これこそが、困難なプロジェクトを成功に導いている要因だと確信しています。
もし、あなたが「仲間と協力して大きな課題を解決したい」「技術的負債に向き合い、プロダクトをより良くしていきたい」「心理的安全性の高い環境で働きたい」と考えているなら、ビズリーチは非常に魅力的な環境だと思います。
この記事が、ビズリーチの事業やプロダクト開発に興味を持つきっかけになれば幸いです。最後までお読みいただき、ありがとうございました!