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

アジャイルな状態を持続するための実践的マネジメント 〜「LeanとDevOpsの科学」から学ぶ...

アジャイルな状態を持続するための実践的マネジメント 〜「LeanとDevOpsの科学」から学ぶ計測と組織ケイパビリティ〜 #DevOps #4keys #cloud #cicd #Accelerate #LeanとDevOpsの科学

全社的にスクラムを導入してみたが生産性は上がらず、むしろ下がったように感じる…
アジャイルに取り組みはじめてから競争力が落ちている気がする…
エンジニアは楽しそうだが、顧客を向いていない気がする…
こういった声はアジャイル変革中の上位マネジャーや経営層から良く聞かれる台詞です。実際問題、こういった声が上がり始めると改革のスピードは遅くなり、最悪の場合中断せざる得ません。
ここで重要なのは、アジャイルの取り組みに対しささやかれる台詞がファクトに基づくものなのか?それとも誰かの意見なのか?これらを判断する仕組みが組織に織り込まれているかどうかです。

「LeanとDevOpsの科学」という書籍があります。
この本に書かれた研究成果は継続的にアップデートされており、毎年Googleから「Accelerate State of DevOps Report(*1)」という名でレポートが一般公開されます。
「LeanとDevOpsの科学」の骨子は、four keysと呼ばれるパフォーマンス指標と、four keysの改善促進が高いとされるケイパビリティが紹介されており、ビズリーチではこれらの指標を計測しています。この計測結果をファクトとし、より良く・速く・安全にプロダクト開発を続けていくことを目指しています。
今回の講演では「LeanとDevOpsの科学」を実践して収集したファクトからどのようにカイゼンを進めているか、事例や書籍では読み取りにくい勘所をお伝えし、アジャイルを推進するにあたってマネジャー視点で大事なポイントにも触れたいと思います。

*1 https://cloud.google.com/blog/ja/products/devops-sre/announcing-dora-2021-accelerate-state-of-devops-report

Hiroyuki TAKAHASHI

July 25, 2022
Tweet

More Decks by Hiroyuki TAKAHASHI

Other Decks in Technology

Transcript

  1. 2009年4月 創業 (資本準備金含む) ※2021年5月18日時点 164億円 資本金 (2021年7月末日時点) ※臨時従業員(契約社員、パート タイマー、アルバイト)を含む 1,469名

    従業員数 東京・大阪・名古屋・福岡 静岡・広島 拠点 ) (株式会社ビズリーチ創業) 2020年2月 設立 (ビジョナル株式会社設立) グループ概要 6
  2. 9 会社の成長 売上高推移 サービス数推移 ೥ؒͰ ਓҎ্ͷ૊৫ʹ੒௕ͨ͠ݱࡏ΋ɺച্ߴɺαʔϏε਺ڞʹ૿͑ଓ͚͍ͯ·͢ɻ 約 100億 2017年 ※2016年8月〜2017年7月

    約 287億 10以上 1 ※2020年8月〜2021年7月 2009 2013 2015 2017 2011 2021 1,469名 従業員数 2021年 2021年 2009年 2019 雇用形態:正社員、契約社員、アルバイト・パート、派遣社員、出向受入 ※当社グループから当社グループ外への出向者を除き、当社グループ外から当社グループへの出向者を含む 5年間 287% 成長
  3. u 所属:プロダクト組織開発本部 プロダクト品質管理部 部長 u ソフトウェアエンジニア31年目 u 専門領域1:ソフトウェアプロセス改善(SPI)コーチ u 専門領域2:エンジニアリング組織のリファクタリング

    u 【略歴】転職7回・フリーランス1回・倒産1回 組込みエンジニアとして交換器やルーターなどの通信インフラソフト ウェア開発、コンシューマー向けデジタルカメラ・カムコーダー開発 のプロジェクトリーダーを経て、SEPG、PMO、QA などのマネジメ ントに従事。 ビズリーチには2021年7月入社。 u 技術書や翻訳本のレビュー u Management 3.0 (licensed facilitator) u Certified ScrumMaster® Advanced Certified ScrumMaster® Certified Scrum Product Owner® Certified Scrum Professional® - ScrumMaster Certified Scrum Professional® - Product Owner Certified Agile Leadership I u 好きな言葉:「そなえよつねに」(Be Prepared) u 好きな小説:十二国記シリーズ (小野不由美) u 推し’23年夏アニメ:「オーバーロードⅣ」「リコリス・リコイル」 「異世界おじさん」「メイドインアビス 烈日の黄金郷」「シャドー ハウス 2nd Season」 高橋裕之(たかぼー) hiroyukitakah taka_bow @Taka_bow 13
  4. l SPI:Software Process Improvement l 継続的にソフトウェアプロセスを改善する活動、ならびに支援チームを指す l もともとはCMM/CMMI、SPICE、TickIT Plusといったフレームワークを 組織にインストール実戦部隊。昔はSEPGとも呼ばれていた。

    l 2000年8月に「日本SPIコンソーシアム(JASPIC)※」という研究・普及団体が 作られ現在も活動中。 l 近年、アジャイルな開発において、本当にプロセス効率が高く顧客のアウト カムを達成しているのか?を証明するためにSPI活動が益々重要になっている。 ソフトウェアプロセス改善(SPI)とは何か? ※日本SPIコンソーシアム(JASPIC):http://www.jaspic.org/ 15
  5. ソフトウェアプロセス改善(SPI)とは何か? アセスメント 能力判定 改善戦略 ソフトウェア プロセス (ソフトウェアプロセス)は (アセスメント)によって 判断される (アセスメント)は

    (能力判定)へつながる (能力判定)は(改善戦略)の 基盤となる (アセスメント)は (改善戦略)へつながる (能力判定)は(ソフトウェアプロセス)の ➢ 能力,強み,弱みを識別する ➢ 成熟度を明らかにする (改善戦略)は(ソフトウェアプロセス)の ➢ 変更を明らかにする ➢ 改善アプローチを 提案する 実践ソフトウェアエンジニアリング[第9版] Roger S Pressman・Bruce R.Maxim著 より引用 17
  6. ソフトウェアプロセス改善(SPI)とは何か? 材料 × 料理法 × 味付け = おいしい料理 Scrum ウォーターフォール

    アジャイル風の何か リモートワーク Java Python iPhone Mac Angular AWS JIRA GitHub 信頼性 マーケット 利用時の品質 セキュリティ 保守性 性能効率性 プロダクト …… …… …… 18
  7. ソフトウェアプロセス改善活動(SPI活動)とは? 20 ソフトウェア開発は料理に似ている 料理 ソフトウェア開発 料理研究家 ソフトウェアプロセス 改善コーチ 研究・鍛錬 研究・鍛錬

    似ている 実践・伝達 SPI活動 日本の食卓を変える 日本人のくらしを変える アウトカムを加速する エンジニアの仕事を楽しくする
  8. エターナルズ? 開発者 スクラムマスター プロダクトオーナー スクラムチーム セールス マネジャー サポート デザイン メンテナンスで

    すぐ停止するよね 品質が悪いなー サービスよく 落ちてない? 生産性が低い 処理が重いね 27
  9. 29 Opinion vs Fact(意見か事実か) メンテナンスで すぐ停止するよね 品質が悪いなー サービスよく 落ちてない? 生産性が低い

    処理が重いね 事 実 か ? 意 見 か ? 開発チームはこれらの問いに パッとすぐ答えられるデータを 持ち合わせていないことが多い
  10. 36 ◦ 「書いたコードの量」をパフォーマンスとして見ない ▪ 1000行から成るコードより、10行のコードで解決するほうが望ましい ▪ 誰も理解出来ない1行のコードより、理解も保守もしやすい数行のコードのほうが望ましい ◦ 「ベロシティ(速度)」をパフォーマンスとして見ない ▪

    ベロシティはキャパシティを予測する(計画する)ための重要なツール。計測はマスト ▪ ただし、これをチームの生産性とみなしたり、チーム同士の比較で用いてはならない ▪ ベロシティは、あくまでもチームに閉じた相対的な尺度(過去の自分たちとの比較) ◦ 「リソース効率(利用率)」をパフォーマンスとして見ない ▪ 人が足りない問題がいつまでも続きがち。本当に大事なのは「フロー効率」 ▪ 数学の待ち行列理論:平均利用率(ρ)が100%に近づくにつれてリードタイムは無限大に近づく ▪ エンジニアは「ゆとり(Slack)」が大事。業務において予想外の仕事や計画変更は必ず発生する。実 験・勉強・鍛錬の時間がないと人が育たない。 でも、何を? LeanとDevOpsの科学[Accelerate] テクノロジーの戦略的活用が組織変革を加する Nicole Forsgren Ph.D. (著), Jez Humble (著), Gene Kim (著), 武舎広幸 (著), 武舎るみ (著)
  11. l DORA社(現Google)が直近6年間の研究から導いた開発チームのパフォーマンス指標=Four Keys l アジャイルでもウォーターフォールでも計測可能 デリバリーパフォーマンスの指標 リードタイム コードがコミットされて から本番環境で正常に実 行されるまでの時間

    デプロイ頻度 コードを本番環境にデプ ロイまたはエンドユーザ ーにリリースした頻度 平均サービス 回復時間(MTRS) サービスインシデント または不具合が発生した ときにサービスの復元に どれくらいの 時間がかかるか 変更失敗率 本番環境に変更を加えた、 またはユーザーへのリリ ースを実施した結果サー ビスが低下し、 その後修正を行う必要が 生じた割合 41
  12. デリバリーパフォーマンスの指標 エリート ハイ ミディアム ロー 変更リードタイム 1時間未満 1日〜1週間 1ヶ月から6ヶ月 6ヶ月以上

    デプロイ頻度 オンデマンド (1日複数回) 1週間から1ヶ月 1ヶ月から半年 半年以上 平均サービス 回復時間(MTRS) 1時間未満 1日未満 1日〜1週間 6ヶ月以上 変更失敗率 0-15% 16-30% 16-30% 16-30% state of devops 2021を参考に作成 42
  13. エリートとローの差は年々開いている デリバリーパフォーマンスの指標 エリート エリートとローの差 ロー 変更リードタイム 1時間未満 6570倍 6ヶ月以上 デプロイ頻度

    オンデマンド (1日複数回) 973倍 半年以上 平均サービス 回復時間(MTRS) 1時間未満 6570倍 6ヶ月以上 変更失敗率 0-15% 3倍 16-30% state of devops 2021を参考に作成 43
  14. 45 • 品質とスピードは相互に影響しながら(前ページ参考)、デリバリパフォーマンスを高めていく • four keysのバラツキが大きいと負の循環が生じる。 • つまり全ての指標がエリートでないと、現状エリートレベルの指標も長期的には低下する。 four keysはバランスが取れていることが重要

    four keysのバラツキが少ないと、品質とスピードの相互 影響が強まり、パフォーマンス向上が見込める 品質 スピード four keysにバラツキがあると、品質とスピードの相互影 響が弱まり、長期的にはパフォーマンス低下する スピード 品質
  15. 46 • four keysの改善を促すにはケイパビリティ(能力)の獲得が重要 • four keysを改善するために、組織が保有するケイパビリティ(能力)に着目 • 「LeanとDevOpsの科学」ではfour keysの改善に効果が高いとされる24のケイパビリティが

    紹介されている(現在は27にUpdateされている) ケイパビリティについて 終わりのない継続的改善 組織の目標に応じた ケイパビリティに焦点を当てる 結果をベースに特定のケイパビリティが 結果にどう有用なのか重視する 変化に合わせた(動的な)改善が可能 ケイパビリティモデルの特徴
  16. ケイパビリティは定期的にアップデートされている 技術 プロセス 測定 組織文化 バージョン管理 チームのツール選択の サポート チームのテスト システムをモニタリングしてビ

    ジネス上の意思決定に役立てる 仕事の満足度 トランクベース開発 テストデータ管理 変更承認の効率化 障害の予兆通知 Westrumの組織類型 継続的インテ グレーション セキュリティの シフトレフト お客様の フィードバック 仕掛かり制限 学習文化 デプロイの自動化 データベースの チェンジマネジメント バリューストリーム での作業の可視性 ビジュアル管理 変革型リーダーシップ 継続的なテスト クラウド インフラストラクチャ 小さいバッチ 単位の作業 モニタリングと オブザービリティ 継続的デリバリー コードの保守性 アーキテクチャ 現在27のケイパビリティが公開されている https://cloud.google.com/architecture/devops/capabilities?hl=ja 47
  17. 49 1. 計測仕様を決める 2. 計測データを収集する 3. 計測結果を可視化する 4. プロダクト開発チームのケイパビリティ調査を実施する 5.

    four keysとケイパビリティ調査結果を踏まえ、改善施策を定める 6. 改善施策を実行する 大まかな流れ
  18. 50 1. 計測仕様を決める 2. 計測データを収集する 3. 計測結果を可視化する 4. プロダクト開発チームのケイパビリティ調査を実施する 5.

    four keysとケイパビリティ調査結果を踏まえ、改善施策を定める 6. 改善施策を実行する 大まかな流れ ここを説明
  19. 計測仕様の一例 four keys 定義 計測仕様 リードタイム コードがコミットされてから本番環 境で正常に実行されるまでの時間 初回コミットからメインブランチへの マージ日時

    デプロイ頻度 コードを本番環境にデプロイまたは エンドユーザーにリリースした頻度 一定期間にメインブランチへマージし た回数 平均サービス 回復時間(MTRS) サービスインシデント または不具合が発生したときにサー ビスの復元にどれくらいの 時間がかかるか 障害検知から解消までの時間 変更失敗率 本番環境に変更を加えた、またはユ ーザーへのリリースを実施した結果 サービスが低下し、 その後修正を行う必要が生じた割合 障害件数 / メインブランチへのマージ 件数 データ収集に手間がかかる場合もあるので、 なるべく軽くスタートして、必要であれば改善をする方針とした 54
  20. l ケイパビリティを計測する上で「何を持ってそのケイパビリティが備わっているか」の定義が必要 l ケイパビリティ毎に満たすために必要な観点を作成 l 観点についてはGoogle cloudが公開しているケイパビリティに関する説明を参考に作成 ケイパビリティ毎の観点を定める https://cloud.google.com/architecture/devops/devops-tech-test-automation?hl=ja 59

    顧客からのフィードバックの測定⽅法 顧客からのフィードバックを収集して可視化し、それに対処することを実現するために、⾼度な データ収集は必要ではありません。次の質問により、製品設計のために顧客からのフィードバッ クをどの程度活⽤しているかを判断できます。 • 顧客満⾜度を測定する指標はありますか?これらは定期的に更新され、チームに定期的に 配信されますか?それらに対処していますか? • すべての機能を構築する前に検証を⾏い、配信の⼀環としてプロトタイプを使⽤してユー ザー調査を実施していますか? • このユーザー調査に基づいて機能に変更を加えていますか? • ユーザーから積極的かつ定期的にフィードバックを収集し、それに対処していますか?
  21. 79 l 可視化することで同じものをみて、建設的に 話し合うことができる l 実際にでてきた意見 l 「次はプルリク単位のリードタイムでは なく、PBI単位のリードタイムがみたい」 l

    「障害のより詳細な情報がみたい (とりたい)」 l ファクトを元に話し合い、カイゼンする文化の 第一歩になった 視えるからこそ意見が生まれる
  22. 91