ヤフーでは開発迅速性と品質のバランスをどう取ってるか

2.7K Views

April 18, 22

スライド概要

Test Engineers Meetup

近年のソフトウエア開発では、ビジネス変化への対応がスピーディーで あることが求められます。いかに迅速にかつサービスの品質を落とさず にお客様へ新しい価値を提供できるかが重要です。 このプレゼンテーションでは、開発迅速性とサービスの品質の計測と可 視化、そして、2つの要素をバランスよく改善するべく自分たちが取り組 んでいることを事例として紹介します。

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

公開 開発迅速性とサービス品質の バランスをどう取るのか ヤフー株式会社 システム統括本部 技術⽀援本部 ©2022 Yahoo Japan Corporation All rights reserved. 安永 華七⼦

2.

公開 このセッションについて 近年のソフトウエア開発では、ビジネス変化への対応がスピーディーであることが求められます。 いかに迅速にかつサービスの品質を落とさずにお客様へ新しい価値を提供できるかが重要です。 このプレゼンテーションでは、開発迅速性とサービスの品質の計測と可視化、 そして、2つの要素をバランスよく改善するべく ⾃分たちが取り組んでいることを事例として紹介します。 ©2022 Yahoo Japan Corporation All rights reserved.

3.

公開 アジェンダ 1. ⾃⼰紹介と取り組みの背景 2. 開発迅速性とサービス品質について 数値的 にわ かるようにする 開発習慣 を⾒つける 改善のための アクション を開発現場で実践す 3. 数値改善に有効な 4. る ©2022 Yahoo Japan Corporation All rights reserved. 3

4.

公開 1.⾃⼰紹介と取り組みの背景 ⾃⼰紹介 • 名前 : 安永 華七⼦ • 経歴 : 2004年 Yahoo! JAPAN⼊社 • 2004年 サービス開発 運⽤ • Yahoo! BEAUTY / Yahoo!チケット / Yahoo! BB / Yahoo!プレミアム • 2015年 プラットフォーム開発 推進 • 全社Jenkins / Screwdriver / Splunk / 統合Console / 社内技術ドキュメント / 社内 Community⽴ち上げ / 社内技術カンファレンス • 2020年 技術⽀援 • 開発⽣産性可視化PFシステム開発および分析 • 趣味 : 最近は健康のために散歩しています。歩数計アプリ で仮想通貨を貯めることにはまっています。 ©2022 Yahoo Japan Corporation All rights reserved. 4

5.

公開 No Measurement, No Improvement 「 測れないものは、改善できない 」 ©2022 Yahoo Japan Corporation All rights reserved. ©2020

6.

公開 アジェンダ 1. ⾃⼰紹介と取り組みの背景 2. 開発迅速性とサービス品質について 数値的 にわ かるようにする 3. 数値改善に有効な開発習慣を⾒つける 4. 改善のためのアクションを開発現場で実践する ©2022 Yahoo Japan Corporation All rights reserved. 6

7.

公開 開発迅速性 VS サービス品質 写真︓アフロ ©2022 Yahoo Japan Corporation All rights reserved. ©2020

8.

公開 2.開発迅速性とサービス品質について数値的にわかるようにする 開発迅速性とサービス品質を数値化する 開発迅速性 サービスの品質 メトリクス 計測内容 Change Lead Time 開発が始まってから、本番にデプ ロイされるまでの時間 Deploy Frequency 本番にデプロイされる頻度 MTTR 発⽣した事故の平均修復時間 Change Failure Rate 本番にデプロイされていたものの うちシステム事故が発⽣した割合 【表1 . 開発迅速性とサービス品質指標】 出典 DORA's research program,「LeanとDevOpsの科学」(書籍) ©2022 Yahoo Japan Corporation All rights reserved. 8

9.

公開 2.開発迅速性とサービス品質について数値的にわかるようにする サービスの品質 開発迅速性 開発迅速性とサービス品質をクラスタ分け Low Medium High Elite Change Lead Time 1ヶ⽉以上 1週間超〜 1ヶ⽉未満 1⽇〜 1週間未満 1⽇未満 Deploy Frequency 1ヶ⽉超 〜半年に1回 1週間超〜 1ヶ⽉に1回 1⽇〜 1週間に1回 オンデマンド (1⽇複数回) MTTR 1週間以上 1⽇〜 1週間未満 1⽇未満 1時間未満 Change Failure Rate 45%超 30%超〜45% 15%超〜30% 0〜15% 【表2 . クラスタ分類における指標基準】 出典 DORA's research program,「LeanとDevOpsの科学」(書籍) ©2022 Yahoo Japan Corporation All rights reserved. 9

10.

公開 2.開発迅速性とサービス品質について数値的にわかるようにする 開発迅速性とサービス品質をクラスタ分けをプロットする 高 迅速性と品質の両⽅が サービスの品質 High&Eliteパフォーマ 迅速性と品質のどちらか、または両⽅が Mediumパフォーマ 迅速性と品質のどちらか、または両⽅が Lowパフォーマ 低 低 開発迅速性 高 出典 DORA's research program,「LeanとDevOpsの科学」(書籍) 【図1 . 4Metricsクラスタ分類】 ※調査対象 371プロダクト(421システム)結果 (2020年10月〜12月)の状況 ※Eliteクラスは対象が少なかったので、今回はHighパフォーマとして分析しています。 ©2022 Yahoo Japan Corporation All rights reserved. 10

11.

公開 アジェンダ 1. ⾃⼰紹介と取り組みの背景 2. 開発迅速性とサービス品質について数値的にわかる ようにする 3. 数値改善に有効な 開発習慣 を⾒つける 4. 改善のためのアクションを開発現場で実践する ©2022 Yahoo Japan Corporation All rights reserved. 11

12.

公開 3.数値改善に有効な開発習慣を⾒つける ベストプラクティスをアンケートで数値化する ベストプラクティス マスター ベース開発 アーティ ファクト 管理 デプロイ テスト テスト ⾃動化 ⾃動化 データ管理 疎結合化 CI/CD(継続的インテグレーション/継続的デリバリー)を中⼼とした開発スタイルを参考 ©2022 Yahoo Japan Corporation All rights reserved. 12

13.

公開 3.数値改善に有効な開発習慣を⾒つける アンケート結果をランクごとに統計データとして表す 【表2 . アンケート設問内容とクラスタ分類】 ※調査対象 371プロダクト(421システム)結果 (2020年10月〜12月)の状況 ©2022 Yahoo Japan Corporation All rights reserved. 13

14.

公開 3.数値改善に有効な開発習慣を⾒つける アンケート結果をランクごとに統計データとして表す 【表2 . アンケート設問内容とクラスタ分類】 ※調査対象 371プロダクト(421システム)結果 (2020年10月〜12月)の状況 ©2022 Yahoo Japan Corporation All rights reserved. 14

15.

公開 3.数値改善に有効な開発習慣を⾒つける アンケート結果をランクごとに統計データとして表す 【表2 . アンケート設問内容とクラスタ分類】 ※調査対象 371プロダクト(421システム)結果 (2020年10月〜12月)の状況 ©2022 Yahoo Japan Corporation All rights reserved. 15

16.

公開 アジェンダ 1. ⾃⼰紹介と取り組みの背景 2. 開発迅速性とサービス品質について数値的にわかる ようにする 3. 数値改善に有効な開発習慣を⾒つける 4. 改善のための アクション を開発現場で実践す る ©2022 Yahoo Japan Corporation All rights reserved. 16

17.

公開 4.改善のためのアクションを開発現場で実践する Highパフォーマのプロダクトと開発習慣を⽐較する ⾃⾝のプロダクトの Status を知る ! 開発迅速性 サービスの品質 Deploy Frequency Change Lead Time Change Failure Rate MTTR 総合評価 0.66 回 / ⽉ (Low) 213.05 H (Medium) 0% (High) 0H (High) Low 【表3 . 改善プロダクトの4Metrics】(調査期間3ヶ⽉値) 写真︓アフロ ©2022 Yahoo Japan Corporation All rights reserved. 17

18.

公開 4.改善のためのアクションを開発現場で実践する Highパフォーマのプロダクトと開発習慣を⽐較する マスターベース開発 ⾃⾝のプロダクトの アーティファクト 管理 疎結合化 x 開発習慣を知る ! テストデータ管理 ⾃⾝のプロダクト デプロイ⾃動化 テスト⾃動化 【図 2. 上位プロダクト⽐較】 写真︓アフロ ©2022 Yahoo Japan Corporation All rights reserved. 18

19.

公開 4.改善のためのアクションを開発現場で実践する Highパフォーマのプロダクトと開発習慣を⽐較する Highパフォーマと マスターベース開発 ⾃⾝のプロダクトの アーティファクト 管理 疎結合化 x 開発習慣の違いを議論 ! テストデータ管理 Highパフォーマンスクラス ⾃⾝のプロダクト デプロイ⾃動化 テスト⾃動化 【図 2. 上位プロダクト⽐較】 写真︓アフロ ©2022 Yahoo Japan Corporation All rights reserved. 19

20.

公開 4.改善のためのアクションを開発現場で実践する Highパフォーマのプロダクトと開発習慣を⽐較する 通常業務と並⾏しながら改善︕ ü(アーティファクト管理)全環境で同⼀のパッケージ・イメージ・構成管理を利⽤している。 ü(デプロイ⾃動化)全環境でデプロイ⼿順が同じである。デプロイは⾃動化されている。 ©2022 Yahoo Japan Corporation All rights reserved. 20

21.

公開 4.改善のためのアクションを開発現場で実践する 改善アクション前後の⽐較 改善後 改善前 サービスの品質 高 サービスの品質 高 Lowパフォーマ 低 Highパフォーマ 低 低 開発迅速性 高 低 開発迅速性 高 【図1 . 5 取り組み前後のクラスタ分類】 ©2022 Yahoo Japan Corporation All rights reserved. 21

22.

公開 まとめ ©2022 Yahoo Japan Corporation All rights reserved. 22

23.

公開 まとめ 開発迅速性とサービス品質のバランスをどう取るのか •開発迅速性とサービス品質について 数値的 にわかるようにする •数値改善に有効な 開発習慣 を⾒つける •改善のための アクション を開発現場で実践する ©2022 Yahoo Japan Corporation All rights reserved. 23

24.

公開 ©2022 Yahoo Japan Corporation All rights reserved.