Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DMMプラットフォームにおけるコード品質を改善する取り組みの理想と現実

pospome
November 21, 2023

 DMMプラットフォームにおけるコード品質を改善する取り組みの理想と現実

"コード品質向上のいろは - 先達に学ぶ実践例 Lunch LT" の資料です。

https://findy.connpass.com/event/300912/

pospome

November 21, 2023
Tweet

More Decks by pospome

Other Decks in Programming

Transcript

  1. DMMプラットフォームにおける
    コード品質を改善する取り組み
    理想と現実
    @pospome

    View full-size slide

  2. 登壇者
    名前:pospome(ぽすぽめ)
    所属:DMMプラットフォーム
    Twitter:@pospome

    View full-size slide

  3. 今回の発表内容について
    DMMプラットフォーム
    x
    コード品質向上
    x
    理想と現実

    View full-size slide

  4. DMMプラットフォームについて
    扱う領域:DMM会員、決済、DMMポイント、不正対策など
    エンジニア数:120名以上
    開発チーム数:16チーム
    マイクロサービス数:約40サービス
    ピーク時のリクエスト:19,000RPS

    View full-size slide

  5. レガシーシステムのリプレイスプロジェクト
    ● DMMプラットフォーム内のレガシーシステムをリプレイスする。
    ● コード品質を高く保つ体制が必要になる。

    View full-size slide

  6. pospomeの持論
    コード品質を高く保つには以下の要素が必要である。
    1. 定期的なリファクタリング
    2. 静的解析
    3. 設計スキルの高いエンジニア←これが重要

    View full-size slide

  7. レビューシステムの導入
    ● 各チームのコードを設計スキルの高いエンジニアがレビューする。
    擬似的に「強いエンジニアがいる環境」を作った。
    ● 自チームの数人が業務時間を割いて取り組んだ。
    ● 正直な話、結構成功させる自信があった。

    View full-size slide

  8. レビューシステムの導入

    View full-size slide

  9. そんなことはなかった・・・
    チームによって様々な課題を抱えていた。
    ● リファクタリング時間の確保が難しい。
    ● コードの良し悪しを精度高く判断できる人がいない。
    ● テストコードを書いていない & カバレッジ可視化してない。
    ● マネージャーやテックリードがコード品質に対するリテラシーを持っていな
    い。

    View full-size slide

  10. Developer Productivity Teamの設立
    ● 専門のチームを設立
    コード品質に対して組織的に取り組んでいく

    View full-size slide

  11. Developer Productivity Teamの取り組み
    ● レビューシステムによるコードレビューは継続
    ○ 問題のあるコードを記録
    ○ 解消率によってリファクタリング時間の確保を可視化
    ● Sonar Cloudの導入
    ○ テストカバレッジの可視化
    ○ 問題のあるコードの可視化(静的解析)
    ● モノレポの導入
    ○ コードを一元管理

    View full-size slide

  12. Developer Productivity Teamの取り組み
    ● 各チームのコード品質を可視化し、比較できるようにする。
    ○ 各チームのマネージャーやTLに危機感を持ってもらう。
    ○ 各チームに介入する妥当性を保証できる。

    View full-size slide

  13. まとめ
    ● 大きな組織になるほどコード品質に向き合うのは難しくなる。
    ● 組織的に戦略を立てて取り組む必要がある。
    ○ 組織としてコード品質に投資する意思決定が必要になる。

    View full-size slide