Slide 1

Slide 1 text

DevOpsメトリクスとアウトカムの接続にトライ! 開発プロセスを通して計測できるメトリクスの活⽤⽅法 Try connecting DevOps metrics and outcomes! How to use metrics that can be measured throughout the development process. DevOpsDays Tokyo 2024 2024/04/17 Naoto Hamada

Slide 2

Slide 2 text

開発⽣産性が向上する⽅法を探求しているエンジニア! Ruby / Rails / React / TypeScript / AWS Agile / DevOps / Developer Productivity / DevEx Stock Investment 浜⽥ 直⼈ Naoto Hamada (ham) @hamchance0215

Slide 3

Slide 3 text

Findy Team+(チームプラス)とは? 3 開発⽣産性の可視化、開発プロセスの伸びしろの発⾒、継続的な改善をサポート ⽣産性可視化 ⽣産性向上 事業開発スピード加速 (開発スピードの向上により、仮説検証スピードも加速) 開発プロセス改善 (開発フロー・配置・ツールの伸びしろを可視化‧最適化) ⽂化づくり‧⾃⼰組織化 (メンバーの⾃発的な改善促進、改善を称賛する⽂化作り) 継続的な⽣産性向上サイクル データ 連携 Biz Engineer Engineer 開発組織ブランディング (エンジニアは、開発⽣産性が⾼い組織で働きたい) Recruit

Slide 4

Slide 4 text

Agenda ● 組織のアウトカム ● 組織のアウトカムとプロダクト開発 ● プロダクト開発の効果を最⼤化 ● 開発チームのアウトプット向上

Slide 5

Slide 5 text

組織のアウトカム

Slide 6

Slide 6 text

組織とは 組織のアウトカム 組織とは何でしょうか?

Slide 7

Slide 7 text

組織とは 組織のアウトカム 特定の⽬的を達成するために構成されるシステムのことです。 単に個⼈の集まりではなく、共通の⽬的を持ち、内部のメンバーが統制され、かつ助け 合いながら個々の役割を全うするための活動を⾏う集団を指します。 by Bing Copilot

Slide 8

Slide 8 text

組織の共通の⽬的 組織のアウトカム 組織ごとに呼び⽅は違いますが、ビジョンやパーパスとして共通の⽬的を掲げていま す。 例えば、ファインディの場合は下記のビジョンを掲げて⽇々活動しています。 https://findy.co.jp/about/

Slide 9

Slide 9 text

組織の共通の⽬的 組織のアウトカム 組織の共通の⽬的はビジョンやパーパスの実現と⾔えるので 組織のアウトカムは「組織の⽬的に向かって前進していること」と⾔えます。 ⼀⽅で、継続して活動を⾏うためには資⾦が必要です。 株式会社では、商品やサービスの対価として利益をあげて、それを原資として活動を継続 しています。

Slide 10

Slide 10 text

組織のアウトカム 組織のアウトカム 組織の⽬的 × 利益 この発表では、この2つを最⼤化することを組織のアウトカムと定義します。 短期利益を求めすぎると、組織の⽬的を⾒失います。 組織の⽬的だけを求めすぎると、活動の継続が困難になる可能性があります。

Slide 11

Slide 11 text

組織のアウトカムと プロダクト開発

Slide 12

Slide 12 text

プロダクト開発が⽬指すこと 組織のアウトカムとプロダクト開発 プロダクト開発チームは、プロダクトを提供することで組織のアウトカムを最⼤化しま す。 例えば、機能追加により新たな価値を創出することで、価値提供できる範囲を広げたり、 既存機能をより良くして価値を向上させることでアウトカムを最⼤化します。

Slide 13

Slide 13 text

プロダクト開発が⽬指すこと 組織のアウトカムとプロダクト開発 組織のアウトカムに 最も影響を与えるもの から開発すること

Slide 14

Slide 14 text

プロダクト開発の優先度 組織のアウトカムとプロダクト開発 組織のアウトカムに最も影響のあるものから開発するためには、開発イシューをアウト カムへの影響が⼤きい順番に優先度をつける必要があります。 優先度の決め⽅は様々あると思いますが、⼀例としてRICEスコアがあります。 RICEスコア ● Reach: 影響を受けるユーザー数 ● Impact: ユーザーやビジネスへの影響の⼤きさ ● Confidence: 成功確度 ● Effort: 開発に必要な⼯数 RICEスコア = (Reach × Impact × Confidence) / Effort

Slide 15

Slide 15 text

プロダクト開発の優先度 組織のアウトカムとプロダクト開発 組織のアウトカムに最も影響のあるものから開発するためには、開発イシューをアウト カムへの影響が⼤きい順番に優先度をつける必要があります。 優先度の決め⽅は様々あると思いますが、⼀例としてRICEスコアがあります。 RICEスコア ● Reach: 影響を受けるユーザー数 ● Impact: ユーザーやビジネスへの影響の⼤きさ ● Confidence: 成功確度 ● Effort: 開発に必要な⼯数 RICEスコア = (Reach × Impact × Confidence) / Effort 開発にかかるコスト アウトカムへの影響

Slide 16

Slide 16 text

プロダクト開発の優先度 組織のアウトカムとプロダクト開発 アウトカムへの影響 / ⼯数 アウトカムに最も影響のある開発を優先すべきですが、アウトカムへの影響が⼤きかった としても、開発に数年かかったり会社の資⾦をはるかに超えるコストがかかる場合は実⾏ 不可能です。 そのため、影響度だけではなく⼯数も加味する必要があります。 また、⼯数を事前に⾒積もることで、開発にアサインすべき⼈数やリリース時期を計画す ることができるので、開発チームの中⻑期の戦略を⽴てるときにも必要になります。

Slide 17

Slide 17 text

組織のアウトカムとプロダクト開発 組織の⽬的 × 利益 アウトカムに 最も影響を与えるもの から開発 優先度を決める アウトカムへの影響 / ⼯数 プロダクトを通して アウトカムを最⼤化 組織のアウトカム

Slide 18

Slide 18 text

プロダクト開発の効果を 最⼤化

Slide 19

Slide 19 text

プロダクト開発の効果を最⼤化 プロダクト開発の効果を最⼤化 プロダクト開発の効果を最⼤化するためには、優先度の⾼い開発から最速でデリバリー している状態を維持することが必要です。 また、優先度の変動を可視化することで開発するものを⼊れ替えたり、変動理由を蓄積 してふりかえることで次の活動へ活かすことができます。

Slide 20

Slide 20 text

優先度の⾼い開発から最速でデリバリーしている状態 プロダクト開発の効果を最⼤化 優先度の⾼い開発を最速でデリバリーするためには、フロー効率を最⼤化することが⼤ 切です。 フロー効率とは、ニーズが発⽣してから価値提供できるまでのリードタイムを短くするこ とを重視する考え⽅です。 フロー効率を定量的に可視化するために数値化する⽅法を紹介します。

Slide 21

Slide 21 text

優先度の⾼い開発から最速でデリバリーしている状態 プロダクト開発の効果を最⼤化 イシューの優先度 アサイン数(エンジニアが3名の場合) 100 3名 1名 0名 50 0名 1名 1名 10 0名 1名 1名 1 0名 0名 1名

Slide 22

Slide 22 text

優先度の⾼い開発から最速でデリバリーしている状態 プロダクト開発の効果を最⼤化 イシューの優先度 アサイン数(エンジニアが3名の場合) 100 3名 1名 0名 50 0名 1名 1名 10 0名 1名 1名 1 0名 0名 1名 優先度が⼀番⾼いイシューに全リソース投⼊ フロー効率が⾼い󰢍󰢍󰢍

Slide 23

Slide 23 text

優先度の⾼い開発から最速でデリバリーしている状態 プロダクト開発の効果を最⼤化 イシューの優先度 アサイン数(エンジニアが3名の場合) 100 3名 1名 0名 50 0名 1名 1名 10 0名 1名 1名 1 0名 0名 1名 3つのイシューが並⾏して進⾏しているが、リソース が分散しているためそれぞれの完了時期が遅くなる フロー効率が⾼いとは⾔えない🤔

Slide 24

Slide 24 text

優先度の⾼い開発から最速でデリバリーしている状態 プロダクト開発の効果を最⼤化 イシューの優先度 アサイン数(エンジニアが3名の場合) 100 3名 1名 0名 50 0名 1名 1名 10 0名 1名 1名 1 0名 0名 1名 優先度の⼀番⾼いイシューが進⾏していない フロー効率が低い󰢁󰢁󰢁

Slide 25

Slide 25 text

優先度の⾼い開発から最速でデリバリーしている状態 プロダクト開発の効果を最⼤化 イシューの優先度 アサイン数(エンジニアが3名の場合) 100 3名 1名 0名 50 0名 1名 1名 10 0名 1名 1名 1 0名 0名 1名 フロー効率を最⼤化するために 常にこの状態になっていることを可視化する

Slide 26

Slide 26 text

優先度の⾼い開発から最速でデリバリーしている状態 プロダクト開発の効果を最⼤化 フロー効率を可視化できるように下記の計算式を使って定量化します。 フロー効率 = N1 * X1 + N2 * X2 + ... + Nn * Xn Nn: 開発nの係数(優先度が高いイシューほど高い値を設定 ) Xn: 開発nを担当しているエンジニア人数

Slide 27

Slide 27 text

優先度の⾼い開発から最速でデリバリーしている状態 プロダクト開発の効果を最⼤化 フロー効率を数値化することで優先度の⾼い開発に着⼿できていることが定量的にわかる イシューの優先 度 係数 アサイン数(エンジニアが3名の場合) 100 33.3 3名 1名 0名 50 16.7 0名 1名 1名 10 3.3 0名 1名 1名 1 0.3 0名 0名 1名 フロー効率 33.3 * 3 = 99.9 33.3 * 1 + 16.7 * 1 + 3.3 * 1 = 53.3 16.7 * 1 + 3.3 * 1 + 0.3 * 1 = 20.3 優先度最⼤のイシューに全員が着⼿したら100にな るように調整 それ他は優先度の割合に合わせて減算

Slide 28

Slide 28 text

優先度の⾼い開発から最速でデリバリーしている状態 プロダクト開発の効果を最⼤化 ファインディ開発チームの例 ‧10⽉末に優先度が⾼い開発をリ リース ‧スムーズに次に優先度が⾼い開発 に着⼿できず改善開発の⽐率が上が りフロー効率低下 ‧優先度の⾼い開発にアサインできている 状態 ‧改善開発に30%ほどリソースを確保して おり、フロー効率70%ほどで想定通り

Slide 29

Slide 29 text

優先度の変動 プロダクト開発の効果を最⼤化 アウトカムへの影響 / ⼯数 アウトカムへの影響が想定より少ない場合、 優先度が低下する ⼯数が想定以上にかかった場合、 優先度が低下する

Slide 30

Slide 30 text

優先度の変動 プロダクト開発の効果を最⼤化 アウトカムへの影響 / ⼯数 アウトカムへの影響が想定より少ない場合、 優先度が低下する (POの責務) ⼯数が想定以上にかかった場合、 優先度が低下する (開発者の責務)

Slide 31

Slide 31 text

⼯数の推移を可視化 プロダクト開発の効果を最⼤化 ⼯数が⼤幅に増加すると、優先度が下がるため「優先度の⾼い開発から最速でデリバ リーしている状態」ではなくなってしまいます。 また、⼯数⾒積もりはフェーズが進むごとに精度⾼く⾒積もることができる(不確実性 コーン)ので、定期的に再⾒積もりして「想定通り開発が進んでいること」を可視化しま す。 想定通り進んでいない場合は、次の活動に活かすために⼯数が増減した理由を保持してお きましょう。 引⽤: プロジェクトの本質とはなにか: ⽇経クロステック https://xtech.nikkei.com/it/article/COLUMN/20131001/508039/ 不確実性コーン

Slide 32

Slide 32 text

⼯数の推移を可視化 プロダクト開発の効果を最⼤化 ファインディ開発チームの例 週次で開発完了⽬処を記録。 変更がある場合、変更理由をメモしておくこ とで、のちにふりかえる際のネタにする。

Slide 33

Slide 33 text

まとめ プロダクト開発の効果を最⼤化 フロー効率と⼯数推移の可視化により、開発チームの状況を可視化します。 - フロー効率 - 優先度の⾼い開発に着⼿できていること - ⼯数の推移 - 想定通りに開発できていること - 優先度が変わらないこと これらを可視化することで、プロダクト開発の効果が最⼤化できていることを定量的に 把握できるようになります。

Slide 34

Slide 34 text

プロダクト開発の効果を最⼤化 組織の⽬的 × 利益 アウトカムに 最も影響を与えるもの から開発 優先度を決める アウトカムへの影響 / ⼯数 プロダクトを通して アウトカムを最⼤化 優先度の変化 ⼯数推移の可視化 優先度の⾼い開発に着⼿でき ている状態 フロー効率の可視化 アウトカムへの影響を 最⼤化 組織のアウトカム

Slide 35

Slide 35 text

開発チームの アウトプット向上

Slide 36

Slide 36 text

開発チームのアウトプット向上 開発チームのアウトプット向上 これまでの話でプロダクト開発によるアウトカムへの影響が最⼤化できていることを定 量的に把握できるようになりました。 あとはアウトプットを向上させることで、アウトカムへの影響を最⼤化する開発を⾼速 で実⾏できている状態になります。 アウトプットを向上させるためには、様々なDevOpsメトリクスを可視化して改善させて いくことが効果的です。

Slide 37

Slide 37 text

アウトプットを向上させるDevOpsメトリクスや活動 開発チームのアウトプット向上 ● Four Keys ● commit→CI→review→merge→deploy→CD→releaseのサイクルタイム ● イシューやスプリントの各種指標 ● ミーティング時間や回数 ● トイル削減 ● アンケート(SPACE) ○ 個⼈のやりがい、開発環境‧開発者体験の課題を抽出 ● ふりかえり ○ フロー効率、⼯数の予実、DevOpsメトリクス、アンケートなど ○ アウトカムへの影響の予実 ■ 期待付加価値と実現付加価値の⽣産性の⽐較

Slide 38

Slide 38 text

開発チームのアウトプット向上 組織の⽬的 × 利益 アウトカムに 最も影響を与えるもの から開発 優先度を決める アウトカムへの影響 / ⼯数 プロダクトを通して アウトカムを最⼤化 優先度の変化 ⼯数推移の可視化 優先度の⾼い開発に着⼿でき ている状態 フロー効率の可視化 アンケート トイル削減 Four Keys サイクルタイム ふりかえり アウトプットを最⼤化 アウトカムへの影響を 最⼤化 イシュー スプリント MTG時間 組織のアウトカム