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
220
人材領域のレガシーシステムにおける 負債への向き合い方
2025/2/20に開催したRecruit Tech Conference 2025の森廣の資料です
Recruit
PRO
March 03, 2025
Tweet
Share
More Decks by Recruit
See All by Recruit
Browser
recruitengineers
PRO
5
720
JavaScript 研修
recruitengineers
PRO
4
460
TypeScript入門
recruitengineers
PRO
26
7.9k
モダンフロントエンド 開発研修
recruitengineers
PRO
4
1.1k
Webアクセシビリティ入門
recruitengineers
PRO
2
500
攻撃と防御で実践するプロダクトセキュリティ演習~導入パート~
recruitengineers
PRO
3
480
モバイルアプリ研修
recruitengineers
PRO
4
540
事業価値と Engineering
recruitengineers
PRO
3
1.4k
制約理論(ToC)入門
recruitengineers
PRO
5
1.2k
Other Decks in Technology
See All in Technology
株式会社ARAV 採用案内
maqui
0
360
kintone開発チームの紹介
cybozuinsideout
PRO
0
73k
退屈なことはDevinにやらせよう〜〜Devin APIを使ったVisual Regression Testの自動追加〜
kawamataryo
3
750
浸透しなさいRFC 5322&7208
hinono
0
120
mruby(PicoRuby)で ファミコン音楽を奏でる
kishima
1
290
LLMエージェント時代に適応した開発フロー
hiragram
1
420
.NET開発者のためのAzureの概要
tomokusaba
0
230
マイクロモビリティシェアサービスを支える プラットフォームアーキテクチャ
grimoh
1
240
知られざるprops命名の慣習 アクション編
uhyo
11
2.6k
JuniorからSeniorまで: DevOpsエンジニアの成長ロードマップ
yuriemori
1
250
「AI2027」を紐解く ― AGI・ASI・シンギュラリティ
masayamoriofficial
0
110
どこで動かすか、誰が動かすか 〜 kintoneのインフラ基盤刷新と運用体制のシフト 〜
ueokande
0
190
Featured
See All Featured
Faster Mobile Websites
deanohume
309
31k
How to Ace a Technical Interview
jacobian
279
23k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
185
54k
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
まとめ • 机上ではなく実体からのアプローチ ◦ まずはビジネス的負債の解消が先決 ◦ 時間はかかるので仕込みが大事 • 長期的な目線での下準備 ◦
知らないコードを見る機会となり知見を増やせる ◦ ビジネス・モデル変化タイミングで迅速に追従できるように疎結合化
ご清聴ありがとうございました