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

【デブサミ2025登壇資料】新卒1年目が0から始めたDevOps~プルリクマージ数を8倍にした...

Teppei Shimada
February 14, 2025
1.3k

 【デブサミ2025登壇資料】新卒1年目が0から始めたDevOps~プルリクマージ数を8倍にした開発プロセス改善~

Teppei Shimada

February 14, 2025
Tweet

Transcript

  1. 2 ©Social Databank, Inc. 兼務i • 新機能を3本開発 • テックブログ立ち上げ •

    DevOpsの推進 自己紹介 島田 鉄平 / Teppei Shimada 新卒3年目 運用保守チーム 新卒入社 メインのプロダクトチームにジョイン 2022年 4月 2022年 9月 メインi • 運用保守(本番監視 ・障害対応 etc…)
  2. ©Social Databank, Inc. 正解がある問いではありませんが…、 DevOpsはまず 人、 次に プロセス、 そしてその次にようやく ツール

    について考えるのです。 (システム運用アンチパターンより) 今日は、私が DevOpsの考え方やプラクティスを どうやって組織に根付かせたか についてお話します ※ツールの話はしません
  3. 16 ©Social Databank, Inc. 数字で見る 8740 万人 総友だち数 21428 件

    契約アカウント数 2億 6395万通 月間送信メッセージ数 ※2024年9月時点 0.61 2.10 4.62 10.10 17.21 18.99 19.73 1期 2期 3期 4期 5期 6期 7期 売上推移(億円) (OEM含む)
  4. 24 ©Social Databank, Inc. なぜ1年目がDevOpsを? 0.61 2.10 4.62 10.10 17.21

    18.99 19.73 1期 2期 3期 4期 5期 6期 7期 売上推移(億円) 島田がジョインした時期 サービス規模が拡大 ◎リードエンジニアが忙しい ◎信頼性の改善を優先   インフラ基盤の改善   コード品質の改善   ライブラリの大型アプデ    …etc
  5. 27 ©Social Databank, Inc. 面白そうだから • 『LeanとDevOpsの科学』の出版 • texta.fm で

    twadaさん が紹介 なぜDevOpsを始めた? https://findy-code.io/engineer-lab/t-wada
  6. 29 ©Social Databank, Inc. どこから始めるか 課題 理想 と 現状 のギャップ

    「理想と現状のギャップ」を 明らかにして課題を発掘する まずは 理想を明確に 現状 理想 課題
  7. 30 ©Social Databank, Inc. DORA - DevOps Research and Assessment

    • 開発組織の「能力とパフォーマンスの関係」を 明らかにすることを目的とした研究プログラム 理想を明確にする https://cloud.google.com/devops/state-of-devops
  8. 31 ©Social Databank, Inc. FourKeys - DORAが提唱する、ソフトウェア組織の         パフォーマンスを示す4つの指標 理想を明確にする

    デプロイ頻度 リードタイム 平均修復時間 変更失敗率 (※現在は信頼性を示す指標も追加されているが、今回は割愛)
  9. ©Social Databank, Inc. パフォーマンス指標 低 中 高 デプロイ頻度 月1回〜 6ヶ月に1回

    週1回〜月1回 必要に応じて (1日に複数回のデプロイ) リードタイム 1ヶ月〜6ヶ月 1週間〜1ヶ月 1日〜1週間 平均修復時間 1週間〜1ヶ月 1日〜1週間 〜1日 変更失敗率 46%〜60% 16%〜30% 0%〜15% これがそのFourKeys https://dora.dev/research/2022/dora-report/2022-dora-accelerate-state-of-devops-report-ja.pdf
  10. ©Social Databank, Inc. パフォーマンス指標 低 中 高 デプロイ頻度 月1回〜 6ヶ月に1回

    週1回〜月1回 必要に応じて (1日に複数回のデプロイ) リードタイム 1ヶ月〜6ヶ月 1週間〜1ヶ月 1日〜1週間 平均修復時間 1週間〜1ヶ月 1日〜1週間 〜1日 変更失敗率 46%〜60% 16%〜30% 0%〜15% https://dora.dev/research/2022/dora-report/2022-dora-accelerate-state-of-devops-report-ja.pdf
  11. ©Social Databank, Inc. パフォーマンス指標 低 中 高 デプロイ頻度 月1回〜 6ヶ月に1回

    週1回〜月1回 必要に応じて (1日に複数回のデプロイ) リードタイム 1ヶ月〜6ヶ月 1週間〜1ヶ月 1日〜1週間 平均修復時間 1週間〜1ヶ月 1日〜1週間 〜1日 変更失敗率 46%〜60% 16%〜30% 0%〜15% 当時のDORAレポート https://dora.dev/research/2022/dora-report/2022-dora-accelerate-state-of-devops-report-ja.pdf
  12. ©Social Databank, Inc. パフォーマンス指標 低 中 高 デプロイ頻度 月1回〜 6ヶ月に1回

    週1回〜月1回 必要に応じて (1日に複数回のデプロイ) リードタイム 1ヶ月〜6ヶ月 1週間〜1ヶ月 1日〜1週間 平均修復時間 1週間〜1ヶ月 1日〜1週間 〜1日 変更失敗率 46%〜60% 16%〜30% 0%〜15% 低 パフォーマンス 高 現状 現状 https://dora.dev/research/2022/dora-report/2022-dora-accelerate-state-of-devops-report-ja.pdf
  13. ©Social Databank, Inc. パフォーマンス指標 低 中 高 デプロイ頻度 月1回〜 6ヶ月に1回

    週1回〜月1回 必要に応じて (1日に複数回のデプロイ) リードタイム 1ヶ月〜6ヶ月 1週間〜1ヶ月 1日〜1週間 平均修復時間 1週間〜1ヶ月 1日〜1週間 〜1日 変更失敗率 46%〜60% 16%〜30% 0%〜15% 低 パフォーマンス 高 現状 理想 まずは リードタイム 1週間 を目指してみる
  14. 45 ©Social Databank, Inc. 失敗した チームから厳しい反応が返ってきました • 強い組織に強いエンジニアが居ただけでしょ • 今のプロセス変える必要ある?

    • PRを小さくすればリードタイムが改善するのは当たり前 • それってただ数字をハックしてるだけで意味なくない? 正直心が折れかけました
  15. ©Social Databank, Inc. DevOpsはまず 人、 次に プロセス、 そしてその次にようやく ツール について考えるのです。

    (システム運用アンチパターンより) リードタイムを短縮する文化のない チーム(人) リードタイムを集計する ダッシュボード(ツール)
  16. ©Social Databank, Inc. DevOpsはまず 人、 次に プロセス、 そしてその次にようやく ツール について考えるのです。

    (システム運用アンチパターンより) リードタイムを短縮する文化のない チーム(人) リードタイムを集計する ダッシュボード(ツール) 人(チームの文化)ではなく ツール(ダッシュボード) から始めてしまった
  17. 54 ©Social Databank, Inc. リードエンジニアが頑張って整備してきた • CI / CD •

    自動テスト • …etc 実践可能なプラクティスを探す 主要なプラクティスは整備済み
  18. 55 ©Social Databank, Inc. WIP制限とは… • 仕掛かり中の作業(=Work In Process)を減らす ことで生産性を高めるプラクティス

    • 元々はトヨタ生産方式のプラクティス 実践可能なプラクティスを探す WIP制限に目をつけた
  19. 57 ©Social Databank, Inc. • 調整ごとが増える(コンフリクト の頻発) • 作業を切り替える度に 思い出す時間

    が必要 実践可能なプラクティスを探す PRが多いことって問題なの? 1つ1つにかかる時間は5〜10分程度かもしれない 少しの積み重ねが全体の生産性を下げている
  20. 58 ©Social Databank, Inc. • 調整ごとが増える(コンフリクト の頻発) • 作業を切り替える度に 思い出す時間

    が必要 実践可能なプラクティスを探す PRが多いことって問題なの? 1つ1つにかかる時間は5〜10分程度かもしれない 少しの積み重ねが全体の生産性を下げている そもそも… なぜそんなに沢山PRがあるの?
  21. 69 ©Social Databank, Inc. • PRの生存期間が短くなった ◦ コンフリクト発生数の減少 • 副次的な効果

    ◦ 本番環境で動かせるので環境起因のバグに気付ける ◦ 関係者にβ版開放してFBをもらえるように PRの生存期間を短くする リリーストグルを導入した結果 エンジニアからもPMからも良好な反応
  22. 71 ©Social Databank, Inc. どうやって解消するか 1. PRを作った人と一緒に作業する時間を設定 2. PRを古い順に並べてその場で閉じる ◦

    入れられるものは Merge する ◦ 練り直すものは Close してタスクに戻す これを10回ほど繰り返しました 放置されたPRを閉じる
  23. 78 ©Social Databank, Inc. • PM不在のチームはコントロールする人がいない • 自動化が困難 ◦ PRが5件以上になったら自動Close?

    ◦ 障害対応中に自動Closeされたら…? 過剰な並行作業への対策 WIP制限が定着しなかった理由
  24. 79 ©Social Databank, Inc. 「制限するのではなく、サポートする」 1. しばらく進んでないPRを見つける 2. 発生している問題を聞く 3.

    解消の手を打つ 過剰な並行作業への対策 人間BOT これを BOTのように 週1で繰り返す
  25. 80 ©Social Databank, Inc. 具体的な問題と解消手段、難しいことはしてません • テキストコミュニケーションだと難しいもの • コメントに気づいてなかった •

    レビュアーが他業務で忙しい 過剰な並行作業への対策 ペアプロ・ペアレビューを設定する 後追いで連絡する 他のレビュアーにアサインし直す
  26. 83 ©Social Databank, Inc. 過剰な並行作業への対策 人間BOTの成果 ② • モブプロ・モブレビューが 自然発生

    • チームの 朝会でも実施 されるように • 5分で1PRマージ できることも DevOpsのプラクティスの浸透を実感
  27. 85 ©Social Databank, Inc. どう変わったか 1. 組織文化の変化 2. 定量指標の変化 3.

    顧客や社内からの反応の変化 DevOps実践前後の変化をみる
  28. 86 ©Social Databank, Inc. どう変わったか 1. 組織文化の変化 2. 定量指標の変化 3.

    顧客や社内からの反応の変化 DevOps実践前後の変化をみる
  29. 90 ©Social Databank, Inc. どう変わったか 1. 組織文化の変化 2. 定量指標の変化 3.

    顧客や社内からの反応の変化 DevOps実践前後の変化をみる
  30. 94 ©Social Databank, Inc. どう変わったか 1. 組織文化の変化 2. 定量指標の変化 3.

    顧客や社内からの反応の変化 DevOps実践前後の変化をみる