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

開発組織の生産性を可視化するState of DevOpsとFour Keysとは(増補改訂版) / Introduction to State of DevOps and Four Keys for Visualizing Productivity in Development Organizations expanded and revised edition

Isana
September 23, 2022

開発組織の生産性を可視化するState of DevOpsとFour Keysとは(増補改訂版) / Introduction to State of DevOps and Four Keys for Visualizing Productivity in Development Organizations expanded and revised edition

以下のイベントの発表資料です。

https://phpcon.php.gr.jp/2022/

想定課題
開発がスケールしたり、開発年数が経過すると、様々な要因で開発生産性の低下が起こります。
そこで現場のエンジニアは改善をしたくなるかと思いますが、大抵の場合、ステークホルダーと工数確保の合意が必要になります。
その際にこのようなことを言われがちではないでしょうか?

今動いているものを直す必要ある?
効果測定どうやんの?
費用対効果はどれくらい?
パフォーマンスチューニングの世界には「推測するな計測せよ」という言葉がありますが、開発組織における生産性についても測定してモニタリングする必要があると思います。

本セッションの目標
以上を踏まえ、本トークでは開発組織とステークホルダーの間の共通言語を獲得することを目標に以下の内容についてお話します。

State of DevOpsとは
Four Keysとは
27のケイパビリティとは

Isana

September 23, 2022
Tweet

More Decks by Isana

Other Decks in Programming

Transcript

  1. 開発組織の生産性を可視化する
    State of DevOpsとFour Keysとは

    (増補改訂版)
    PHP Conf 2022
    by @isanasan_ 1

    View full-size slide

  2. PHP Conf 2022
    by @isanasan_ 2

    View full-size slide

  3. PHP Conf 2022
    PHP要素はまったく無いです
    by @isanasan_ 3

    View full-size slide

  4. 自己紹介
    PHP Conf 2022
    by @isanasan_ 4

    View full-size slide

  5. Lancersプロダクト開発部QAチーム
    CakePHPのバージョンアップを担当
    DevOpsに興味関心がある
    @isanasan_
    @isanasan
    @isana
    PHP Conf 2022
    いさな
    by @isanasan_ 5

    View full-size slide

  6. ゴール
    PHP Conf 2022
    by @isanasan_ 6

    View full-size slide

  7. 開発組織とステークホルダー間の

    共通言語を獲得する
    PHP Conf 2022
    ゴール
    by @isanasan_ 7

    View full-size slide

  8. 課題
    PHP Conf 2022
    by @isanasan_ 8

    View full-size slide

  9. PHP Conf 2022
    とあるサービス
    by @isanasan_ 9

    View full-size slide

  10. PHP Conf 2022
    疲弊した現場
    by @isanasan_ 10

    View full-size slide

  11. 荒みきったコード
    PHP Conf 2022
    by @isanasan_ 11

    View full-size slide

  12. PHP Conf 2022
    爆弾処理のようなリリース
    by @isanasan_ 12

    View full-size slide

  13. PHP Conf 2022
    改善したい!!!!!!!
    by @isanasan_ 13

    View full-size slide

  14. PHP Conf 2022
    今動いているものを直す必要ある?
    効果測定どうやんの?
    費用対効果はどれくらい?
    by @isanasan_ 14

    View full-size slide

  15. 説得失敗
    PHP Conf 2022
    by @isanasan_ 15

    View full-size slide

  16. PHP Conf 2022
    推測するな計測せよ
    by @isanasan_ 16

    View full-size slide

  17. PHP Conf 2022
    そうだ、計測しよう
    by @isanasan_ 17

    View full-size slide

  18. PHP Conf 2022
    State of DevOps
    by @isanasan_ 18

    View full-size slide

  19. DevOps Research and Assessmentによる調査
    デリバリの速度がビジネスに与える影響
    開発とデリバリを高速化する方法
    PHP Conf 2022
    Stete of DevOpsとは
    by @isanasan_ 19

    View full-size slide

  20. レポートはGoogle Cloudのサイトから参照できる
    PHP Conf 2022
    Stete of DevOpsとは
    https://www.devops-research.com/research.html 20

    View full-size slide

  21. 調査結果
    PHP Conf 2022
    by @isanasan_ 21

    View full-size slide

  22. デリバリーの尺度を定義し定量化 = Four Keys
    デリバリを向上させる方法を特定 = Capabilities
    デリバリと組織のパフォーマンスの因果関係を立証
    PHP Conf 2022
    調査結果
    by @isanasan_ 22

    View full-size slide

  23. さらに
    PHP Conf 2022
    by @isanasan_ 23

    View full-size slide

  24. デリバリのパフォーマンスと

    品質の間に

    トレードオフは無いことを

    つきとめた
    PHP Conf 2022
    by @isanasan_ 24

    View full-size slide

  25. 技術の正しいことの実践っていうのが、

    最終的な経営的な成果に繋がっているっていうのを示した


    PHP Conf 2022
    PIXTAのCTOやさいちさんのコメント
    by @isanasan_ 25

    View full-size slide

  26. 書籍
    PHP Conf 2022
    by @isanasan_ 26

    View full-size slide

  27. 上述の調査結果に加えて

    調査・研究手法を紹介、解説した書籍。
    PHP Conf 2022
    書籍 : LeanとDevOpsの科学
    by @isanasan_ 27

    View full-size slide

  28. 心から推薦できるITデリバリの測定手法の解説本

    -ひと握りの分析者のバラバラの体験談に基づいた本より遥かに優れた本-

    が誕生したのである。

    <本書によせて by Martin Fowler>
    PHP Conf 2022
    Martin Fowlerのコメント
    by @isanasan_ 28

    View full-size slide

  29. PHP Conf 2022
    Four Keys
    by @isanasan_ 29

    View full-size slide

  30. デリバリのパフォーマンスを測定する

    4つの尺度
    PHP Conf 2022
    Four Keysとは
    by @isanasan_ 30

    View full-size slide

  31. (1)
    PHP Conf 2022
    by @isanasan_ 31

    View full-size slide

  32. PHP Conf 2022
    デプロイ頻度
    by @isanasan_ 32

    View full-size slide

  33. コードの変更を

    本番環境に適応して

    稼動させる頻度
    PHP Conf 2022
    by @isanasan_ 33

    View full-size slide

  34. (2)
    PHP Conf 2022
    by @isanasan_ 34

    View full-size slide

  35. PHP Conf 2022
    リードタイム
    by @isanasan_ 35

    View full-size slide

  36. コードのコミットから

    本番稼動までの

    所要時間
    PHP Conf 2022
    by @isanasan_ 36

    View full-size slide

  37. 開発ブランチのfirst commitから

    デプロイされるまでの時間ではない
    PHP Conf 2022
    by @isanasan_ 37

    View full-size slide

  38. (3)
    PHP Conf 2022
    by @isanasan_ 38

    View full-size slide

  39. MTTR
    PHP Conf 2022
    by @isanasan_ 39

    View full-size slide

  40. インシデント発生から

    復旧にかかる平均時間
    PHP Conf 2022
    by @isanasan_ 40

    View full-size slide

  41. (4)
    PHP Conf 2022
    by @isanasan_ 41

    View full-size slide

  42. PHP Conf 2022
    変更失敗率
    by @isanasan_ 42

    View full-size slide

  43. デプロイ起因で

    本番障害が発生する割合
    PHP Conf 2022
    by @isanasan_ 43

    View full-size slide

  44. スピードのメトリクス
    デプロイ頻度
    リードタイム
    品質のメトリクス
    MTTR
    変更失敗率
    PHP Conf 2022
    Four Keys
    by @isanasan_ 44

    View full-size slide

  45. ハイパフォーマーは4つすべての尺度で計測結果が抜きん出ていた

    p27 "調査結果から見えてきたもの" より
    PHP Conf 2022
    品質とスピードにトレードオフは無い
    by @isanasan_ 45

    View full-size slide

  46. metric elite high middle low
    デプロイ頻度 オンデマンドに1日数回 1週間から月に1回 1ヶ月から6ヶ月に1回 6ヶ月に1回未満
    リードタイム 1時間以内 1日から1週間 1ヶ月から6ヶ月 6ヶ月以上
    MTTR 1時間以内 1日以内 1日から1週間 6ヶ月以上
    変更失敗率 0~15% 16%-30% 16%-30% 16%-30%
    PHP Conf 2022
    by @isanasan_ 46

    View full-size slide

  47. 現場から遠い立場の人が現状を理解する助けになる
    組織に合わせて指標の定義を拡張できる
    指標をハックすることが難しい
    PHP Conf 2022
    Four Keysの有用性
    https://tech.andpad.co.jp/entry/2022/03/08/110000 47

    View full-size slide

  48. ところで
    PHP Conf 2022
    by @isanasan_ 48

    View full-size slide

  49. State of DevOpsは

    あくまでも学術的な研究と

    その結果にすぎない
    PHP Conf 2022
    by @isanasan_ 49

    View full-size slide

  50. この知識を利用して

    自分たちの利益に繋げていきたい
    PHP Conf 2022
    by @isanasan_ 50

    View full-size slide

  51. PHP Conf 2022
    実際どうやんの?
    by @isanasan_ 51

    View full-size slide

  52. SaaSを使う
    ツールを使う
    システムを自前で構築する
    PHP Conf 2022
    Four Keysの計測って実際どうやんの?
    by @isanasan_ 52

    View full-size slide

  53. Findy Teams
    LinearB
    PHP Conf 2022
    SaaSを使う
    by @isanasan_ 53

    View full-size slide

  54. PHP Conf 2022
    Findy Teams
    https://findy-teams.com/ 54

    View full-size slide

  55. PHP Conf 2022
    LinearB
    https://linearb.io/ 55

    View full-size slide

  56. hmiyado/four-keys
    Trendyol/four-key
    GoogleCloudPlatform/fourkeys
    shibayu36/merged-pr-stat
    isanasan/dmps
    PHP Conf 2022
    ツールを使う
    by @isanasan_ 56

    View full-size slide

  57. ダッシュボードで
    可視化
    APIからデータを
    インポート
    GCP
    BigQuery
    AWS
    PHP Conf 2022
    システムを自前で構築する
    by @isanasan_ 57

    View full-size slide

  58. PHP Conf 2022
    システムを自前で構築する
    https://developer.hatenastaff.com/entry/2021/03/04/093000 58

    View full-size slide

  59. PHP Conf 2022
    システムを自前で構築する
    https://github.com/isanasan/pull-request-analysis-sample 59

    View full-size slide

  60. SREの指標と関連付けて運用する
    財務諸表と関連付けて運用する
    経営層を巻き込む
    PHP Conf 2022
    Four Keysはどうやって運用したらよいのか
    by @isanasan_ 60

    View full-size slide

  61. デプロイ頻度 × 変更失敗率 × MTTR

    = 変更起因障害の予想時間
    PHP Conf 2022
    SREの指標と関連付けて運用する
    SREで開発を加速させる class SRE implements DevOps (WEB+DB PRESS Vol.129 株式会社技術評論社) 61

    View full-size slide

  62. エラーバジェット × ウィンドウサイズ × 変更起因障害の割合

    = 変更起因障害の許容時間
    PHP Conf 2022
    SREの指標と関連付けて運用する
    SREで開発を加速させる class SRE implements DevOps (WEB+DB PRESS Vol.129 株式会社技術評論社) 62

    View full-size slide

  63. 許容時間と予想時間を比較すれば改善のための議論ができる
    PHP Conf 2022
    SREの指標と関連付けて運用する
    SREで開発を加速させる class SRE implements DevOps (WEB+DB PRESS Vol.129 株式会社技術評論社) 63

    View full-size slide

  64. 財務諸表
    PHP Conf 2022
    by @isanasan_ 64

    View full-size slide

  65. PHP Conf 2022
    財務諸表と関連付けて運用する
    https://twitter.com/yamotty3/status/1342258793644617730?s=20&t=fHD6r1cAhRzfJf9De3-8jA 65

    View full-size slide

  66. PL(損益計算書)
    企業の損失と利益を計算する表
    BS(賃借対照表)
    財産や残高、借入金などの一覧表
    PHP Conf 2022
    財務諸表と関連付けて運用する
    texta.fm #6. 1on1 in Public 66

    View full-size slide

  67. デプロイ頻度
    人的資本の効率
    デプロイ頻度を上げると資本を調達している訳ではないが資本効率が向上する
    リードタイム
    広義でみれば人権費や機会創出の指標
    MTTR
    売上そのものに関連する指標
    変更失敗率
    無価値なデプロイ = 人的資本の無駄使い
    PHP Conf 2022
    財務諸表と関連付けて運用する
    texta.fm #6. 1on1 in Public 67

    View full-size slide

  68. 財務諸表 メトリクス
    PL(損益計算書) リードタイム, MTTR
    BS(貸借対照表) デプロイ頻度, 変更失敗率
    PHP Conf 2022
    財務諸表と関連付けて運用する
    texta.fm #6. 1on1 in Public 68

    View full-size slide

  69. 目標設定する(デプロイ頻度昨年度比2倍)
    経営層が参加するMTGで進捗報告
    PHP Conf 2022
    経営層を巻き込む
    by @isanasan_ 69

    View full-size slide

  70. PHP Conf 2022
    経営層を巻き込む
    「LeanとDevOpsの科学」を実践して LancersのDevOps的取り組みとこれから 70

    View full-size slide

  71. はい
    PHP Conf 2022
    by @isanasan_ 71

    View full-size slide

  72. 計測方法
    PHP Conf 2022
    by @isanasan_ 72

    View full-size slide

  73. わかった
    PHP Conf 2022
    by @isanasan_ 73

    View full-size slide

  74. 運用方法
    PHP Conf 2022
    by @isanasan_ 74

    View full-size slide

  75. わかった
    PHP Conf 2022
    by @isanasan_ 75

    View full-size slide

  76. Four Keysの改善って

    実際どうやんの?
    PHP Conf 2022
    by @isanasan_ 76

    View full-size slide

  77. PHP Conf 2022
    DevOps Capabilities
    by @isanasan_ 77

    View full-size slide

  78. Four Keysの改善効果が高いことが

    特定されている組織の能力
    PHP Conf 2022
    DevOps Capabilitiesとは
    by @isanasan_ 78

    View full-size slide

  79. 4つのカテゴリーに分類されている。
    Google Cloudに詳しいドキュメントがある
    継続的に更新されている(現在は27個)
    PHP Conf 2022
    DevOps Capabilitiesとは
    by @isanasan_ 79

    View full-size slide

  80. PHP Conf 2022
    DevOps Capabilitiesとは
    by @isanasan_ 80

    View full-size slide

  81. どのようなアウトカムを得たいのかから逆算する
    ケイパビリティについても現状を可視化する
    ボトムアップでできることは現場に任せる
    PHP Conf 2022
    DevOps Capabilities を実装していく
    by @isanasan_ 81

    View full-size slide

  82. PHP Conf 2022
    どのようなアウトカムを得たいのかから逆算する
    https://www.devops-research.com/research.html 82

    View full-size slide

  83. ケイパビリティは定量的だったり定性的だったりする
    サーベイを実施することでケイパビリティを可視化する
    PHP Conf 2022
    ケイパビリティについても現状を可視化し実装する
    ファクトから始める改善アプローチ 〜「LeanとDevOpsの科学」を実践して〜 83

    View full-size slide

  84. 勉強会を開催して啓蒙する
    チームで自立して実践できる項目はいくつかある
    Value Streem Mapping
    Trunk Base開発
    PHP Conf 2022
    ボトムアップでできることは現場に任せる
    by @isanasan_ 84

    View full-size slide

  85. まとめ
    PHP Conf 2022
    by @isanasan_ 85

    View full-size slide

  86. Four Keysを計測して開発組織の生産性を可視化しよう
    いろんな観点からFour Keysを運用しよう
    DevOps Capabilitiesを実装して改善しよう
    PHP Conf 2022
    まとめ
    by @isanasan_ 86

    View full-size slide

  87. 最後に
    PHP Conf 2022
    by @isanasan_ 87

    View full-size slide

  88. 組織を変えようと思ったら上からも下からも変えなきゃいけない。

    <名無しさんのポッドキャスト #9 by ryuzee>
    PHP Conf 2022
    最後に
    by @isanasan_ 88

    View full-size slide

  89. PHP Conf 2022
    トップダウンとボトムアップ
    両方から改善していこう
    by @isanasan_ 89

    View full-size slide

  90. エリート DevOps チームであることを Four Keys プロジェクトで確認する

    DevOpsの能力

    Findy Teamsの指標を使ってチームの生産性を改善しよう

    エンジニアの活動情報からFour Keysを集計、可視化した話

    SREで開発を加速させる class SRE implements DevOps (WEB+DB PRESS
    Vol.129 株式会社技術評論社)

    Mackerel開発チームのリードSREが考える働き方と組織作り

    ファクトから始める改善アプローチ 〜「LeanとDevOpsの科学」を実践して〜

    texta.fm #5. Accelerate

    texta.fm #6. 1on1 in Public
    PHP Conf 2022
    参考文献
    by @isanasan_ 90

    View full-size slide