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

DMMプラットフォームでプルリクエストのマージ時間を250時間から50時間に減らした話 / D...

juve534
February 10, 2023

DMMプラットフォームでプルリクエストのマージ時間を250時間から50時間に減らした話 / Developers Summit 2023

juve534

February 10, 2023
Tweet

More Decks by juve534

Other Decks in Programming

Transcript

  1. © DMM.com DMM プラットフォームとは 5 DMM は多くのWebサービスを運営しており、1 つの Web サービスにつき

    1 部署があります。 次の図でいうと電子書籍であれば電子書籍配下に、動画であれば動画配下 に組織があります。 私が所属する DMM プラットフォームは会員や決済といった共通利用される 機能を提供する部署です。
  2. © DMM.com CSS グループとは 15 Customer Service Support の略です。 「カスタマサポート(CS)を行う人たちと連携し、DMMユーザーの顧客満足

    度をあげること」をミッションに、ユーザと CS がやり取りするシステム開発を 行っています。 BE と FE でユニットが分かれており、 BE は開発者が 10 人、テックリードが1人の構成になっています。
  3. © DMM.com PR 生存期間も長い 17 PR の作成日を見ると 10 営業日以上前の日付でした。 週に

    10 件近く PR が出ているくらい開発が活発なのに、10 営業日前の PR が残っており、何らかの問題を抱えていると感じました。
  4. © DMM.com PR 生存期間とコンフリクトは関係している 18 PR の生存期間が長いと feature brunch と

    trunk brunch の乖離が大きく なり、コンフリクトしやすくなります。 PR マージに時間がかかっていることがコンフリクトの原因と考えました。
  5. © DMM.com ヒアリングして改善に乗り出す 19 マージに時間がかかっていることやコンフリクトに課題感を持っているか、 CSS グループにヒアリングしました。 • マージに時間がかかっていることは認識している •

    忙しくて改善まで手が回っていない状態 DMM プラットフォーム全体の開発効率向上がグループの責務なので、改善 に乗り出すことにしました。
  6. © DMM.com PR 作成までに時間がかかる 39 PR作成からマージまでを集中して改善することにしました。 1. 10日かかっているので改善できる点が多いはず 2. 2日かかっている開発

    &PR の期間を短縮するには、開発者が小さいPR を作成する必要があるので、開発者がそれなりのスキルを持つ必要があ り、意識付けも必要になる 3. 開発着手からの時間を正確にトラッキングすることが難しい
  7. © DMM.com PR 生存期間が長くて数値が悪かった 45 仮に 1h でマージできた PR があっても

    20 日前の PR がマージされれば平 均値が上がり、マージ時間は増えてしまいます。 まずは溜まっている PR を減らすことが必要でした。
  8. © DMM.com 2 週間レビューでPR 数を全力で減らす 50 まずは時間を確保する方向で進めました。 CSS グループと相談し、レビュアー 2

    人は 2 週間の間、レビューに集中さ せる体制にしました。 後続でもこの話は登場するので、「 2 週間レビュー」と発表では表現します。
  9. © DMM.com 2 週間レビュー & レビュアー 3 人体制の結果 52 2

    週間レビュー & レビュアー 3 人体制の相乗効果で、 溜まっていた PR を 2 週間で 30 → 15 → 7 と減らせました! マージ時間もジリジリと減っていきました。
  10. © DMM.com オーナーシップの欠如による失敗 63 課題の共有こそしていたものの、具体的な解決策について、 自分も CSS グループも主体的に提案していなかったのです。 • 自分→CSS

    グループで課題意識を持っているから助言で良い • CSS グループ→忙しくて余裕がないので準備に手が回らない どちらもオーナーシップを持っておらず、主体的に引っ張る人がいない状態 でした。
  11. © DMM.com Findy Teams+ を活用してみる 68 Findy Teams+ を活用したところ、 下記の効果を得ることができました。

    • 数値を手軽に確認でき、定例ミーティングの時間を有効に使えた • 様々な情報を可視化してくれるので、問題の深堀りができた
  12. © DMM.com マイクロサービスアーキテクト活動集 75 下記のようにアウトプットも行っていますので、興味がある方はみてみてくだ さい。 • DMMプラットフォームのマイクロサービス戦略 オーナーシップの落とし穴 •

    DMMプラットフォーム ゼロから始めるKubernetes運用 課題と改善 • DMMプラットフォームを支える負荷試験基盤 • DMMの取り組み最前線 ~フルマネージドNewSQLであるTiDB Cloudの 可能性~