2021年5月13日に開催された「各社のサービス品質を支えるベストプラクティス-EngineeringTeamPresentation」で発表した資料です。 https://sansan.connpass.com/event/209357/
「全員品質」を実現するためのメルペイにおけるDevOpsの取り組み
1「全員品質」を実現するためのメルペイにおけるDevOpsの取り組み2021年5月13日 株式会社メルペイ 櫻井みづき(miisan)
View Slide
2本日のゴールToday's goal
3本日のゴールメルペイの文化である「全員品質」形成の過程と思想の理解
4文化とは「物事がその中で実際にどう行われているか」 カール・E・ウィーガーズ(2005)『ソフトウェア開発の持つべき文化』翔泳社
5「全員品質」メルペイにおける文化役割や立場を越境し、One Teamで品質を作り上げること
6メルペイサービスの歴史本日のアジェンダDevOpsについて協働的チームを作った事例全員品質について02030401 自己紹介05
7自己紹介introduction
8自己紹介株式会社メルペイ QA EngineerMizuki Sakurai /@mii________san2018年7月よりメルペイにQAエンジニアとして参画。入社直後よりiD決済領域を主に担当する。キャンペーン、メルペイスマート払い、定額払い機能やバーチャルカード(オンライン決済)のリリースなどにも関わり、メルペイの決済全般のサービスリリースに数多く携わる。「金融系テックカンパニーのQAになること」をミッションに、日々サービスの品質向上、開発プロセス改善、QA技術向上、組織作りをリードし、より良いサービスをお客さまへ届けるために奮闘中。趣味はカメラと旅行。日本47/47都道府県制覇、海外20ヶ国以上旅してます。以前は週末トラベラーとしていろんな場所にフラッと旅してました✈
9メルペイサービスの歴史History of Merpay service
10ミッション信用を創造して、 なめらかな社会を創る
11数字で見るメルペイの今サービス開始は、2019年2月。サービスローンチから約2年。「メルペイ」の利用者数(※1)は1000万人を突破🎉利用者数1000万人決済対応加盟店206万ヶ所※1 メルペイ「電子マネー」の登録を行ったユーザーと、「メルペイコード決済」、「ネット決済」、「メルペイスマート払い」等の利用者の合計(重複を除く)2021年4月21日時点
12メルペイのフェーズの変化サービスをリリースすること ⇒ 価値を継続的に届けること 新しい価値を作る ゼロから、新しい価値を 作ろうとうする 集まったばかりの様子見 事業フェーズ 0 -> 1フェーズ 形成期 仕組みを作る 最初に作った価値を、繰り返し提供できる状態を目指す 1 -> 10フェーズ 仕組みを大きくする 一度作った仕組みを繰り返しながら大きくしていく 10 -> 100フェーズ 組織フェーズ 色んな議論や対立が起きる 混乱期 基準やルールが整備される 統一期 標準や基準が組織内で 浸透する 機能期
13安心して利用できるサービス開発、サービス運用体制を構築して、プランニングからリリースまでのサイクルを継続的に行える構造へメルペイのフェーズの変化
14DevOpsについてAbout DevOps
15Development(開発とテスト)とOperations(デプロイメントとモニタリング)を組み合わせた組織文化であり、開発・運用を推進するための開発モデルDevOpsとは
16開発チームと運用チームの関係 開発チーム■■■■■■■■常に新しい機能やサービスのリリースを考え、開発を進める 運用チーム■■■■■■■■サービスの安定稼働や利便性の維持を目指し、開発を進める開発チームと運用チームの主な役割
17開発チームと運用チームの関係 開発チーム■■■■■■■■「運用チームはサービスリリースの重要性を理解していない」 運用チーム■■■■■■■■「開発チームは運用の重要性を理解していない」開発チームと運用チームの対立関係VS
18開発チームと運用チームの関係 開発チーム■■■■■■■■「良いサービス」をお客さまに提供したい 運用チーム■■■■■■■■「良いサービス」をお客さまに提供したい開発チームと運用チームの協力関係= 同じ目的を持つ仲間
19なぜメルペイはDevOpsに取り組むのか● 協力体制○ 役割に関係なく、サービスの価値向上に目的意識が向き、プロダクト全体に対して活動できる。● 信頼性向上○ 責任範囲をいい意味でわけないことで、開発フェーズの中に、多くのテストが組み込まれやすく、品質の向上につながる。● 生産性向上○ 自動テストが開発フェーズに組み込まれることで、検証フェーズでのテストを効率化することができる。また不具合を早期に検出できるので、開発プロセス全体の生産性が向上し迅速なリリースが可能。お客さまにより早く、より確実に、より良いサービスを継続的に届けるため
20DevOpsにおける品質活動断続的な開発サイクルにおいて、すべての活動の中でQAや改善活動を行う最後にテストする ⇒ ずっとテストし続ける
21協働的チームを作った事例An example of creating a collaborative team
22メルペイが抱えていた課題背景:リリースラッシュによってカオスな状況(負債の累積)を招いていた必要だったこと:● 継続的に価値を提供できる状態を目指すための技術的負債の返済● 同じことを引き起こさないための新しい仕組み作り(文化的負債の返済)
23取り組み目的の共有01課題把握・課題整理02課題の定義03課題の振り返り04課題解消フローの徹底05
24目的の共有「ゴール」を共有し、なぜ課題解消に向き合う必要があるのか理解を得る1. プロジェクトを計画通りに進行し、お客さまにサービスを継続的に届ける2. 今後顕在化するかもしれないリスクを洗い出し、それを事前に予防する⇒ チームで取り組む意義のあるもの● どんな目的があるかが明確であれば、何故それをやらなければいけないのか理解しやすい● そのうえでどのような課題があるのか明らかにして取り組むことで、課題が解消していく
25課題把握・課題整理共通認識として「課題感」の共有が必要● 曖昧なもの、雰囲気で理解していたことを明確化する○ 粒度が異なる○ 温度感が違う○ 優先度の認識齟齬 ⇒ 課題意識は人、立場、役割によって異なるもの● 明確にすべきこと○ いま何が起きているかについて同じ視点で把握できる指標が必要
26課題の定義実際にチームで同じ視点によって課題を把握するために整理した指標● インシデントの内容● インシデントの発生頻度● インシデントの発生原因● インシデントの対応状況・対応率● 滞留課題○ 経過日数○ ブロッカーの確認● インシデントの振り返り状況
27課題の振り返り発生したインシデントの振り返りを横断的に共有する体制と仕組みを導入● どのチームでどんなインシデントが発生したのか● インシデントに対してどのような対応をとったか● 暫定、恒久対応はなにか ⇒ 整理した課題を振り返り、知見をチーム全員にシェアするインシデント検知 課題管理登録 ・Blameless ・JIRA チーム振り返り ・暫定対応 ・恒久対応 振り返りの共有 ・原因、影響範囲 ・対応、再発防止策 ・alert検知 ・CSお問い合わせ
28課題解消フローの徹底体制や仕組みを作っても、はじめはワークしない。習慣化するまでオーナーシップを明確にしてフローを繰り返し実施する。● 役割分担の明確化○ だれがどんな情報をアウトプットするのか○ 課題整理をしたらだれに、いつ情報を展開するのか● 週次チェックを行い、課題感の変化や数値的変化を確認する○ インシデントの発生率○ 滞留課題や負債の解消率● 各チームの課題をシェアすることで互いのチーム状況を理解し合う○ 新規開発チームも運用保守チームが協力し合う「One Team体制」
29振り返りフローの結果メルペイにおける効果● インシデントレポートの対応率○ 課題整理当初:26%○ 半年後:94%● インシデント発生率○ 47%軽減before after26% ・滞留課題を見える化し、毎週チェックインすることで、ほとんどの課題が2週間以内に解消されるようになった・課題の原因と再発防止策を検討すること、他チームにも共有することで知見の浸透94%
30メルペイがたどり着いた「イマ」価値を繰り返し提供するためには、協力してプロダクトと向き合う必要があるという共通理解を得る● 仕組みを繰り返し続けることで新しい習慣が出来上がり、「全員で品質と向き合う」というマインドセットが浸透○ Go Bold:担当領域にとらわれず、チーム全体に対して成果創出する○ All for one:自発的・主体的な参加と連携○ Be a Pro:プロセス以外にも自動化や共通プラットフォーム化などテクニカルな部分のサポート全員品質 と呼んでいる
31全員品質についてAbout all quality
32全員品質とはプロダクト開発・運用に関わるすべてのメンバーが、立場や役割を超え、より良いサービスをお客さまに届けるために、全員で品質を作り上げていくことProcessProductTeam
33全員品質の考え方テストチームの責任と考えず、品質に対するチームの責任と捉えるテストちゃんとした?「不具合」が発生した時の対応方法問題を一緒に振り返ろう!!!Bad case😥 Good case😊
34全員品質を実現するために必要なことどうしたら全員で品質と向き合うことができるのか現状把握 010203課題に対する共通認識を持つことで、個々人が主体的に考えられる。また同じ温度感でプロダクトに向き合うことができるため、認識齟齬などが起きづらくなる。持続すること 負債の累積や慣れ親しんだ文化は簡単になくすことはできない。そのため、いろんな取り組みからフィードバックを得ることや粘り強く継続することが重要となる。 互いを理解し合うこと チームの成果を知ってもらうこと、チームで成果を分かち合うことは価値があり、信頼関係を築きながら進めていくことで強いチームとなる。
35全員で品質と向き合う意味プロジェクトを計画通りに進行し、お客さまにサービスを継続的に届ける安心安全リリース新しい価値提供リソース増加保守運用コストの低減
36「全員品質」本日のゴール役割や立場を越境し、One Teamで品質を作り上げること
37「品質」とは、だれもの?
38良いサービスは全員で創る。DevOps時代の新しいあり方
39Thank you !!