$30 off During Our Annual Pro Sale. View Details »

OSSライブラリの呪縛と解放戦略

akkie76
August 24, 2023

 OSSライブラリの呪縛と解放戦略

「ミノ駆動さんと語るエンジニア怪談〜技術的負債の呪いにどう立ち向かうのかLT〜」で発表した資料になります。https://forkwell.connpass.com/event/291332/

akkie76

August 24, 2023
Tweet

More Decks by akkie76

Other Decks in Technology

Transcript

  1. ©2023 RAKUS Co., Ltd.
    OSSライブラリの呪縛と解放戦略
    2023/08/24
    ミノ駆動さんと語るエンジニア怪談 LT
    @akkiee76

    View Slide

  2. Akihiko Sato
    株式会社ラクス / 楽楽精算 / Lead Engineer
    @akkiee76
    自己紹介

    View Slide

  3. OSSライブラリのアップデート戦略
    今日のテーマ

    View Slide

  4. OSSライブラリの
    アップデートしていますか?

    View Slide

  5. アップデート大変ですよね?

    View Slide

  6. アップデートしないと
    様々な問題が発生します 👻

    View Slide

  7. OSSライブラリの呪縛 1
    ● セキュリティリスク
    ● 互換性の懸念
    ● 保守性の低下
    ○ 公式のサポートが受けられないことも
    ● 法的リスク
    ○ ライセンス違反などの法的問題が発生ことも
    アップデートしないとどうなるか?

    View Slide

  8. OSSライブラリの呪縛 2
    ● セキュリティホールが増える 😈
    ● 顧客情報が流出することも 😈
    ● 社会的信頼の低下 😈
    ● 株価低下 😈
    更にアップデートしないとどうなるか?
    プロダクト存続の危機 😅

    View Slide

  9. OSSライブラリの呪縛 3
    ● 対応コストが取れない 😭
    ● 技術的な難易度が高い 😭
    ● 仕様を知る人がいない 😭
    どうしてアップデートが難しいか?
    アップデートのハードルが高くなる 😅

    View Slide

  10. OSSライブラリの呪縛を解放しよう
    ● OSSライブラリを管理する
    ○ アップデート日、EOLスケジュール
    ● アップデートのコストを見積もる
    ● アップデートを開発スケジュールに計上する(必要なコスト)
    継続的なアップデートを行うためには?
    アップデートのハードルを下げよう 😃

    View Slide

  11. OSSライブラリ
    アップデート対応例 🔨

    View Slide

  12. OSSライブラリをアップデートしよう 1
    ● OSSライブラリを見える化(一覧化)😃
    ● 定期的なアップデートを行う 😃
    ● アップデートはバージョン開発の初期に行う 😃
    弊社での主なアップデートへの取り組み

    View Slide

  13. OSSライブラリをアップデートしよう 2
    ● 管理ツールで一覧化
    ○ yamory、楽楽販売、スプレッドシート
    ● アップデート時のバージョン、最終リリース日を記載
    ● 難易度・優先度を棚卸し
    ○ 難易度・工数は定量的に判定し、工数に反映する
    OSSライブラリを見える化(棚卸し)する 😃

    View Slide

  14. OSSライブラリをアップデートしよう 3
    ● 半年〜1年周期でアップデートを実施
    ● 開発リストに計上する(コストを計上する)
    ○ レビュー待ちのタスクなどでコツコツ行う
    ● アップデートする組み合わせは柔軟に組み替える
    ○ 影響度、難易度によってスコープを変える
    定期的なアップデートを行う 😃

    View Slide

  15. OSSライブラリをアップデートしよう 4
    ● 場合によっては全機能影響を受けることも
    ○ 機能開発中だとデグレを発見しやすくなる
    ● 可能であればアップデート後から開発スタート
    ○ merge を次バージョン初期にするでもOK!
    アップデートはバージョン開発初期に行う 😃

    View Slide

  16. ● OSSライブラリを見える化(一覧化)😃
    ● 定期的なアップデートを行う 😃
    ● アップデートはバージョン開発の初期に行う 😃
    主なアップデートへの取り組み

    View Slide

  17. ● Frontendライブラリの アップデートで苦労した話
    ● これで失敗しない!JUnit 5 へのマイグレーション方法
    ● 既存プロジェクトへの Swift Concurrency 導入戦略
    ● 大規模AndroidアプリのDIをKoinからHiltへ移行するTIPS
    これまで行なってきたアップデート戦略

    View Slide

  18. まとめ
    ● OSSライブラリは生物
    ○ 対応しないとハードルが上がる
    ● アップデートは定期的に
    ○ アップデート不可能にならないように定期的にアップデート!
    ● アップデートは戦略を持って行おう
    ○ アップデート対応は開発スケジュールに入れる!

    View Slide

  19. Thank you !

    View Slide