Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
人材領域のレガシーシステムにおける 負債への向き合い方
Search
Recruit
PRO
March 03, 2025
Technology
2
130
人材領域のレガシーシステムにおける 負債への向き合い方
2025/2/20に開催したRecruit Tech Conference 2025の森廣の資料です
Recruit
PRO
March 03, 2025
Tweet
Share
More Decks by Recruit
See All by Recruit
問題解決に役立つ数理工学
recruitengineers
PRO
10
2.6k
Curiosity & Persistence
recruitengineers
PRO
2
160
結果的にこうなった。から見える メカニズムのようなもの。
recruitengineers
PRO
1
350
成長実感と伸び悩みからふりかえる キャリアグラフ
recruitengineers
PRO
1
130
リクルートの オンプレ環境の未来を語る
recruitengineers
PRO
3
170
LLMのプロダクト装着と独自モデル開発
recruitengineers
PRO
1
230
新規検索基盤でマッチング精度向上に挑む! ~『ホットペッパーグルメ』の開発事例 ビジネス編
recruitengineers
PRO
2
140
新規検索基盤でマッチング精度向上に挑む! ~『ホットペッパーグルメ』の開発事例 技術編
recruitengineers
PRO
0
150
大規模プロダクトにおける フロントエンドモダナイズの取り組み紹介
recruitengineers
PRO
5
130
Other Decks in Technology
See All in Technology
Azure Maps Visual in PowerBIで分析しよう
nakasho
0
190
Microsoft Fabric vs Databricks vs (Snowflake) -若手エンジニアがそれぞれの強みと違いを比較してみた- "A Young Engineer's Comparison of Their Strengths and Differences"
reireireijinjin6
1
130
LINE 購物幕後推手
line_developers_tw
PRO
0
330
白金鉱業Meetup_Vol.18_AIエージェント時代のUI/UX設計
brainpadpr
1
270
ビジネスとデザインとエンジニアリングを繋ぐために 一人のエンジニアは何ができるか / What can a single engineer do to connect business, design, and engineering?
kaminashi
2
860
GraphQLを活用したリアーキテクチャに対応するSLI/Oの再設計
coconala_engineer
0
190
【Oracle Cloud ウェビナー】ご希望のクラウドでOracle Databaseを実行〜マルチクラウド・ソリューション徹底解説〜
oracle4engineer
PRO
1
140
AI 코딩 에이전트 더 똑똑하게 쓰기
nacyot
0
460
クラウドネイティブ環境の脅威モデリング
kyohmizu
1
290
genspark_presentation.pdf
haruki_uiru
0
150
生成AIのユースケースをとにかく集めてまるっと学ぶ!/ all about generative ai usecases
gakumura
3
360
Twelve-Factor-Appから学ぶECS設計プラクティス/ECS practice for Twelve-Factor-App
ozawa
3
160
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
Music & Morning Musume
bryan
47
6.5k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Become a Pro
speakerdeck
PRO
28
5.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
Building Applications with DynamoDB
mza
94
6.4k
Writing Fast Ruby
sferik
628
61k
A better future with KSS
kneath
239
17k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
The Cult of Friendly URLs
andyhume
78
6.3k
A designer walks into a library…
pauljervisheath
205
24k
Transcript
人材領域のレガシーシステムにおける 負債への向き合い方 RECRUIT TECH CONFERENCE 2025 「技術的負債」の返済プロセス 森廣 隆行 株式会社リクルート プロダクトディベロップメント室
シニアプロフェッショナル
Agenda 1. 自己紹介 2. 本日伝えたいこと 3. 担当プロダクトについて 4. システム状況 5.
一般的アプローチによる考察 6. 今回のアプローチ 7. まとめ
森廣 隆行 引きこもり・ゲーム 経歴 / Career 2015年10月にリクルートテクノロジーズにキャリア採用入社。 リクルートジョブズに出向し、『フロム・エー ナビ』の開発 リーダーを担う。
その後、『タウンワーク』のテックリードを経験しリクルート ジョブズ全体のテックリードとして活躍。 2020年4月にリクルートのシニアアーキテクトとして任命され、 現在人材領域全体のアーキテクトとして活躍中。 趣味 / Hobbies プロダクトディベロップメント室 HR領域プロダクトディベロップメントユニット Application Solution部
本日伝えたいこと 机上ではなく実態からのアプローチ
担当プロダクトについて リクルート マッチングプラットフォーム クライアントとユーザーを結びつける 対価としてクライアントからフィーを受領 ユーザー クライアント
担当プロダクトについて • システム俯瞰図 ◦ 一部抜粋(中途・アルバイト 領域のみ)
担当プロダクトについて • システム俯瞰図 ◦ システム乱立 ◦ システム間連携が多く複雑 入稿システム タウンワーク フロム・エー
ナビ 応募管理 システム 入稿システム
システム状況 引用:https://www.ipa.go.jp/disc/committee/begoj90000002xuk-att/legacy-system-modernization-comittee-20240912-overview.pdf IPA資料から抜粋
システム状況 • 技術面の老朽化 ◦ 2014年以前に新規構築 ◦ JQuery+R2(Seasar2ベースの社内フレームワーク)
システム状況 • システムの肥大化・複雑化 ◦ 新規機能開発は行われるが除却する案件はほぼない ◦ 10年以上エンハンス開発を行うと塵積もで巨大に コード総量 時間 リリース
初期 開発 エンハ ンス リリース リリース リリース エンハ ンス エンハ ンス
システム状況 • ブラックボックス化 ◦ 当時の設計思想を把握できていない ▪ 各システム10年以上継続して開発を行なっているためメンバーが 当時の正確な設計思想を把握できている人がいない ◦ ドキュメントの継続整備断念
▪ 過渡期になると、ドキュメント作成や更新に十分な工数が割けず、 最新化されない
システム状況 こんな巨大かつ複雑に絡み合ったシステム群に対して あなたはどのような施策を実施しますか?
一般アプローチからの考察 引 用:https://www.ipa.go.jp/disc/committee/begoj9000000 2xuk-att/legacy-system-modernization-comittee-20240 912-overview.pdf IPA資料から抜粋 SaaS マイクロサービス化 リファクタリング
一般アプローチからの考察 売り上げをあげているシステムに対して大 改修や大きな機能変更はないし、複雑に絡 み合っているためマイクロサービス化する にしても限定的にしかできない IPA資料から抜粋
一般アプローチからの考察 IPA資料から抜粋 削除・リファクタ対象の正解を判断できる 過去経緯などの知識や自動テストコードで の担保、要件定義書などの確認資料がなく 実施することが厳しい
一般アプローチからの考察 机上での検討だと八方塞がり状態 心配、不安、自信がないことからくるリスクヘッジコストが巨大 なぜ?
今回のアプローチ じゃあ、いかにしてリスクを飲むか
今回のアプローチ リスク0にはできないが対象を減らしたり可視化することにより リスクを減らすことができるはず。
今回のアプローチ IPA資料から抜粋 知識や資料に依存しない形でこの部分を機 械的実施することができないか。 • 疎結合化 • 総量の削減
システムB システムA 今回のアプローチ • 疎結合化 ◦ レガシーシステムにあるある?? ◦ 業務ロジックを共通化した内部ライブラリが乱立 (Validation、禁止文字制御、文字カウント系など)
FW FW 外部 ライブラリ 外部 ライブラリ 業務共通ライブラリ 業務ロジック 業務ロジック
今回のアプローチ • 疎結合化 ◦ 構築当初:AB両方>Aのみ≒Bのみ>未利用 ◦ レガシー:未利用>Aのみ≒Bのみ>AB両方 業務ライブラリ システムA システムB
レガシーシステム 業務ライブラリ システムA システムB 未利用 Bのみ Aのみ A,B両方 A,B両方 Bのみ Aのみ 未利用 構築当初
システムB システムA 今回のアプローチ • 疎結合化 FW FW 外部 ライブラリ 外部
ライブラリ 業務共通ライブラリ 業務ロジック 業務ロジック システムB システムA FW FW 外部 ライブラリ 外部 ライブラリ 業務ロジック 業務ロジック Before 業務ライブラリ 業務ライブラリ After
今回のアプローチ • 総量の削減 ◦ 事業価値(動作保証)を下げずにコード総量を減らす 実働 コー ド … 実働
コー ド ??? 事業 価値 … 事業 価値 減少 維持
今回のアプローチ • 総量の削減 ◦ プロファイラーによる未使用コードの可視化 ▪ Jacoco,GoogleCloudProfiler, async-profiler etc ▪
クラス、メソッド、1行単位で利用可否を可視化 ◦ アクセスログから未使用導線画面の削除 ▪ 集客目的の静的ページなど 引用:EclEmma https://www.eclemma.org/jacoco/
今回のアプローチ • 規模の縮小 ◦ 毎月集計 20XX/04 20XX/05 20XX/06 : :
20XX/03 Method A B C D E F G H I J K L 未使用 使用 使用 未使用 論点有
今回のアプローチ • 規模の縮小 ◦ 価値がない(未使用)or価値が低いコード ◦ =ビジネス的負債 時間 実働 コー
ド 1Q 実働 コー ド 2Q 実働 コー ド 4Q … 価値が低 い 未使 用 未使 用 ビジ ネス 的負 債 実働 コー ド コード総量
今回のアプローチ • 技術者であれば、技術的負債に目が行きがち • ビジネス的負債は知識・資料なく時間だけで解決が可能 引用:事業価値と Engineering 2024年版 https://speakerdeck.com/recruitengineers/shi-ye-jia-zhi-to-engineering-2024nian-ban
まとめ • 机上ではなく実体からのアプローチ ◦ まずはビジネス的負債の解消が先決 ◦ 時間はかかるので仕込みが大事 • 長期的な目線での下準備 ◦
知らないコードを見る機会となり知見を増やせる ◦ ビジネス・モデル変化タイミングで迅速に追従できるように疎結合化
ご清聴ありがとうございました