「ミノ駆動さんと語るエンジニア怪談〜技術的負債の呪いにどう立ち向かうのかLT〜」で発表した資料になります。https://forkwell.connpass.com/event/291332/
©2023 RAKUS Co., Ltd.OSSライブラリの呪縛と解放戦略2023/08/24ミノ駆動さんと語るエンジニア怪談 LT@akkiee76
View Slide
Akihiko Sato株式会社ラクス / 楽楽精算 / Lead Engineer@akkiee76自己紹介
OSSライブラリのアップデート戦略今日のテーマ
OSSライブラリのアップデートしていますか?
アップデート大変ですよね?
アップデートしないと様々な問題が発生します 👻
OSSライブラリの呪縛 1● セキュリティリスク● 互換性の懸念● 保守性の低下○ 公式のサポートが受けられないことも● 法的リスク○ ライセンス違反などの法的問題が発生こともアップデートしないとどうなるか?
OSSライブラリの呪縛 2● セキュリティホールが増える 😈● 顧客情報が流出することも 😈● 社会的信頼の低下 😈● 株価低下 😈更にアップデートしないとどうなるか?プロダクト存続の危機 😅
OSSライブラリの呪縛 3● 対応コストが取れない 😭● 技術的な難易度が高い 😭● 仕様を知る人がいない 😭どうしてアップデートが難しいか?アップデートのハードルが高くなる 😅
OSSライブラリの呪縛を解放しよう● OSSライブラリを管理する○ アップデート日、EOLスケジュール● アップデートのコストを見積もる● アップデートを開発スケジュールに計上する(必要なコスト)継続的なアップデートを行うためには?アップデートのハードルを下げよう 😃
OSSライブラリアップデート対応例 🔨
OSSライブラリをアップデートしよう 1● OSSライブラリを見える化(一覧化)😃● 定期的なアップデートを行う 😃● アップデートはバージョン開発の初期に行う 😃弊社での主なアップデートへの取り組み
OSSライブラリをアップデートしよう 2● 管理ツールで一覧化○ yamory、楽楽販売、スプレッドシート● アップデート時のバージョン、最終リリース日を記載● 難易度・優先度を棚卸し○ 難易度・工数は定量的に判定し、工数に反映するOSSライブラリを見える化(棚卸し)する 😃
OSSライブラリをアップデートしよう 3● 半年〜1年周期でアップデートを実施● 開発リストに計上する(コストを計上する)○ レビュー待ちのタスクなどでコツコツ行う● アップデートする組み合わせは柔軟に組み替える○ 影響度、難易度によってスコープを変える定期的なアップデートを行う 😃
OSSライブラリをアップデートしよう 4● 場合によっては全機能影響を受けることも○ 機能開発中だとデグレを発見しやすくなる● 可能であればアップデート後から開発スタート○ merge を次バージョン初期にするでもOK!アップデートはバージョン開発初期に行う 😃
● OSSライブラリを見える化(一覧化)😃● 定期的なアップデートを行う 😃● アップデートはバージョン開発の初期に行う 😃主なアップデートへの取り組み
● Frontendライブラリの アップデートで苦労した話● これで失敗しない!JUnit 5 へのマイグレーション方法● 既存プロジェクトへの Swift Concurrency 導入戦略● 大規模AndroidアプリのDIをKoinからHiltへ移行するTIPSこれまで行なってきたアップデート戦略
まとめ● OSSライブラリは生物○ 対応しないとハードルが上がる● アップデートは定期的に○ アップデート不可能にならないように定期的にアップデート!● アップデートは戦略を持って行おう○ アップデート対応は開発スケジュールに入れる!
Thank you !