Slide 1

Slide 1 text

2024/01/11 Regional Scrum Gathering Tokyo 2024 QAエンジニアって スクラムで何をすればいいの? @rinchsan

Slide 2

Slide 2 text

今日のキーワード

Slide 3

Slide 3 text

「どこでもテスト」 「壁をこわす」 今日のキーワード

Slide 4

Slide 4 text

「どこでもテスト」とは

Slide 5

Slide 5 text

“For me, testing fits at each and every single point in this model.” “DevOpsモデルのすべての ポイントでテストする” “Continuous Testing in DevOps...” (2016) https://danashby.co.uk/2016/10/19/continuous-testing-in-devops/

Slide 6

Slide 6 text

スクラムのサイクルでも考えてみる どこでテストすべきか? 引用:https://www.slideshare.net/akienomoto/ss-2611775

Slide 7

Slide 7 text

すべてのイベントで テストする どこでテストすべきか?

Slide 8

Slide 8 text

スクラムでも「どこでもテスト」する この考え方が「QAEってスクラムで何をすればいいの?」の答えに繋がる

Slide 9

Slide 9 text

「壁をこわす」とは

Slide 10

Slide 10 text

「どこでもテスト」するとは言っても… 考えるべきことが多すぎて、QAエンジニアだけでは実現できない

Slide 11

Slide 11 text

「壁をこわす」をQAEが推進する チームメンバー全員がそれぞれの得意分野で品質に対する責任を持てるように PdM デザイナー 開発エンジニア アナリスト QAE

Slide 12

Slide 12 text

“アジャイル開発における品 質保証は、特定の段階で特定 の人々のみが取り組むという よりも、…(中略)…あらゆる 段階でチーム全体となって取 り組む活動となります。” 『QA to AQ』(2022)

Slide 13

Slide 13 text

“そこで、QA担当者を早い段 階から参加させる、…(中 略)…など、さまざまなアク ションを通じて、コミュニ ケーションを阻害する障壁を 取り払うことが必要です。” 「障壁の解体」(第2章)

Slide 14

Slide 14 text

CTO @SODA inc. ○ 2020年10月に入社 ○ Webエンジニア → VPoE(2022/01) → CTO(2023/10) ⇧⇧⇧ Backend Engineer @CyberAgent ○ 2019年新卒入社 バックエンドエンジニア ○ Go / AWSでサービス開発 Masaya Hayashi - @rinchsan X@rinchsan

Slide 15

Slide 15 text

CTO @SODA inc. ○ 2020年10月に入社 ○ Webエンジニア → VPoE(2022/01) → CTO(2023/10) ⇧⇧⇧ Backend Engineer @CyberAgent ○ 2019年新卒入社 バックエンドエンジニア ○ Go / AWSでサービス開発 Masaya Hayashi - @rinchsan QAEの経験は ありません! X@rinchsan

Slide 16

Slide 16 text

目次 プロダクトの急成長と組織の急拡大 1 急成長に伴うQA難易度の増加 2 QAEってスクラムで何をすればいいの? 3

Slide 17

Slide 17 text

プロダクトの急成長と組織の急拡大 1

Slide 18

Slide 18 text

鑑定付き 利用者数 No.1 スニーカー・トレカ フリマアプリ

Slide 19

Slide 19 text

MAU リクエスト数 ソースコード プロダクトの急成長

Slide 20

Slide 20 text

3年で 100万人 → 500万人 MAU プロダクトの急成長

Slide 21

Slide 21 text

負荷スパイク(人気スニーカー発売など) 1万〜2万 rps リクエスト数 プロダクトの急成長

Slide 22

Slide 22 text

ファイル数は1年で 4,400→7,300 コード行数は1年で 80万行→126万行 ソースコード - Go プロダクトの急成長

Slide 23

Slide 23 text

Dartファイル数 約3,700ファイル Dartコード行数 約417,000行 ソースコード - Dart プロダクトの急成長

Slide 24

Slide 24 text

プロダクト開発組織 デプロイ頻度 組織の急拡大

Slide 25

Slide 25 text

3年で エンジニア 2名 → 45名 プロダクト開発組織全体では 4名 → 55名 プロダクト開発組織 組織の急拡大

Slide 26

Slide 26 text

Monthlyで 60回 〜 90回 Dailyで 3回 〜 4.5回 デプロイ頻度 組織の急拡大

Slide 27

Slide 27 text

急成長に伴うQA難易度の増加 2

Slide 28

Slide 28 text

QAプロセスが整備されていく 2023/01に1人目のQAEがジョイン!

Slide 29

Slide 29 text

「開発→テストケース設計→テスト実施」で不具合を事前に検知できることが増えた しかし、これだけでは品質を高めるためのコスパが次第に悪くなり… テスト実施 おねがいします! テスト実施 していくぞ! テストケース 設計できた! まずは仕様の キャッチアップ からだ! 開発チーム QAチーム

Slide 30

Slide 30 text

何が正しい仕様か分からなくなってくる… この挙動って 正しいですか? これはPdMに 聞かないとですね このケース どうしますか? これPdMの人も 知らないってさ ドキュメント ないのか…

Slide 31

Slide 31 text

振り返りもそれぞれでやってしまう… 開発チーム こんな不具合 出ちゃったね QAチームに お願いしますね 次はもう少し テストしますか 壁 QAチーム こんな不具合 出ちゃったね もっと早く 気づけたかも? 似てるのが前も 出てましたね 一緒に議論したほうが絶対に品質が上がりそう… ※ 他にも課題ありそう

Slide 32

Slide 32 text

仕様策定時点での考慮漏れに気づけなかったりも… 開発チーム このケース 漏れてましたね ちょっと想像と 違いましたね… こんな感じで 実装してました 壁 QAチーム このケース 漏れてましたね もっと早く 気づけたかも? この機能に矛盾 してますもんね プロダクトにより詳しい人どうしが協力できれば… ※ 他にも課題ありそう

Slide 33

Slide 33 text

どうしてもコミュニケーション不足が発生したりも… 開発チーム コレもうQA できますね 開発完了なので QAしてほしい あ、もうQA 終わってたのか 壁 QAチーム コレもうQA 開始できるのか 準備完了なので 早くQAしたい いつの間に開発 完了してた? 「コミュニケーション取ればいいだけ」って意外と難しい! ※ 少し誇張しています

Slide 34

Slide 34 text

「どこでもテスト」 「壁をこわす」 どうすれば改善できる?

Slide 35

Slide 35 text

QAEってスクラムで何をすればいいの? 3

Slide 36

Slide 36 text

価値提供をテストする QAEってスクラムで何をすればいいの?

Slide 37

Slide 37 text

「どこでもテスト」 「壁をこわす」 価値提供をテストするには?

Slide 38

Slide 38 text

「どこでもテスト」とは

Slide 39

Slide 39 text

スクラムでもすべてのイベントでテストする スクラムで「どこでもテスト」するとは例えば?

Slide 40

Slide 40 text

リファインメントでは、高いプロダクト理解をもってテストする こんな仕様で 作りたい! この既存仕様と 矛盾してるかも エッジケース 漏れてるかも 過去事例的に テストケース 多くなりそう じゃあもう少し 仕様をシンプル にしますか ユーザ行動ログ はどう設計? 不具合(広義)は発見するよりも予防する ※ すべてをQAEがやる必要はない

Slide 41

Slide 41 text

こんな仕様で 作りたい! リファインメントでは、高いプロダクト理解をもってテストする この既存仕様と 矛盾してるかも エッジケース 漏れてるかも 過去事例的に テストケース 多くなりそう じゃあもう少し 仕様をシンプル にしますか ユーザ行動ログ はどう設計? ※ すべてをQAEがやる必要はない スニダンのような5年以上の歴史があるプロダクトではなかなか難易度が高い…

Slide 42

Slide 42 text

プランニングでは、開発計画作りへの高い理解をもってテストする このEpicはこう Backlog Itemに 分割しよう ここまで開発 できたら一旦 テストしよう というのを 意識して計画を 作ろう Itemごとに テストケース 作ろう テスト計画の作り方だけでは知識が足りないことも

Slide 43

Slide 43 text

このEpicはこう Backlog Itemに 分割しよう ここまで開発 できたら一旦 テストしよう というのを 意識して計画を 作ろう プランニングでは、開発計画作りへの高い理解をもってテストする Itemごとに テストケース 作ろう 大きなEpicほどBacklog Itemごとにテストケースを作成する難易度が高い…

Slide 44

Slide 44 text

レトロスペクティブでは、開発プロセス全体への高い理解をもってテストする 各イベントで完了の定義を作るイメージ この不具合を 再発防止 するには? 良いタイミング でQA開始 できていたか? もっと細かく Backlog Itemを 分割できたか? ユーザへの価値 を考えると許容 してもよい? そもそも予防 することは できなかった? テストケースを 次はもっと 網羅するには?

Slide 45

Slide 45 text

ユーザへの価値 を考えると許容 してもよい? もっと細かく Backlog Itemを 分割できたか? 良いタイミング でQA開始 できていたか? テストケースを 次はもっと 網羅するには? 再発防止や予防にはSET領域のスキルも重要で難易度が高い… この不具合を 再発防止 するには? そもそも予防 することは できなかった? レトロスペクティブでは、開発プロセス全体への高い理解をもってテストする

Slide 46

Slide 46 text

もっと細かく Backlog Itemを 分割できたか? ユーザへの価値 を考えると許容 してもよい? そもそも予防 することは できなかった? この不具合を 再発防止 するには? 良いタイミング でQA開始 できていたか? テストケースを 次はもっと 網羅するには? レトロスペクティブでは、開発プロセス全体への高い理解をもってテストする やろうと思えば無限にテストできるからバランスも難しい…

Slide 47

Slide 47 text

「どこでもテスト」する すべてが品質を高めるための取り組み

Slide 48

Slide 48 text

「壁をこわす」とは

Slide 49

Slide 49 text

「どこでもテスト」するとは言っても… すべてをQAエンジニアだけで実現するのは不可能

Slide 50

Slide 50 text

QAEが「壁をこわす」ことでチームメンバー全員で品質を高める文化を作る PdM デザイナー 開発エンジニア アナリスト QAE スクラムで「壁をこわす」とは例えば?

Slide 51

Slide 51 text

じゃあもう少し 仕様をシンプル にしますか ユーザ行動ログ はどう設計? 過去事例的に テストケース 多くなりそう こんな仕様で 作りたい! リファインメントでは、高いプロダクト理解をもってテストする この既存仕様と 矛盾してるかも エッジケース 漏れてるかも ※ すべてをQAEがやる必要はない 開発エンジニアはエッジケースを見つけるのが得意かも?

Slide 52

Slide 52 text

頼っちゃいましょう じゃあ開発エンジニアに

Slide 53

Slide 53 text

ユーザ行動ログ はどう設計? 過去事例的に テストケース 多くなりそう この既存仕様と 矛盾してるかも エッジケース 漏れてるかも こんな仕様で 作りたい! リファインメントでは、高いプロダクト理解をもってテストする じゃあもう少し 仕様をシンプル にしますか ※ すべてをQAEがやる必要はない PdMはユーザへの価値を考慮したスコープの調整が得意かも?

Slide 54

Slide 54 text

頼っちゃいましょう じゃあPdMに

Slide 55

Slide 55 text

過去事例的に テストケース 多くなりそう この既存仕様と 矛盾してるかも エッジケース 漏れてるかも こんな仕様で 作りたい! じゃあもう少し 仕様をシンプル にしますか リファインメントでは、高いプロダクト理解をもってテストする ※ すべてをQAEがやる必要はない データアナリストはユーザ行動ログ設計が得意かも? ユーザ行動ログ はどう設計?

Slide 56

Slide 56 text

頼っちゃいましょう じゃあデータアナリストに

Slide 57

Slide 57 text

というのを 意識して計画を 作ろう Itemごとに テストケース 作ろう このEpicはこう Backlog Itemに 分割しよう ここまで開発 できたら一旦 テストしよう プランニングでは、開発計画作りへの高い理解をもってテストする 開発エンジニアは開発を進めやすいBacklog Item分割が得意かも?

Slide 58

Slide 58 text

頼っちゃいましょう じゃあ開発エンジニアに

Slide 59

Slide 59 text

ユーザへの価値 を考えると許容 してもよい? もっと細かく Backlog Itemを 分割できたか? 良いタイミング でQA開始 できていたか? この不具合を 再発防止 するには? テストケースを 次はもっと 網羅するには? レトロスペクティブでは、開発プロセス全体への高い理解をもってテストする 開発エンジニアはSET領域にも詳しいかも? そもそも予防 することは できなかった?

Slide 60

Slide 60 text

頼っちゃいましょう じゃあ開発エンジニアに

Slide 61

Slide 61 text

全員で「どこでもテスト」する つまり「壁をこわす」ことで

Slide 62

Slide 62 text

One more thing...

Slide 63

Slide 63 text

後押しするための組織デザイン そもそも「どこでもテスト」と「壁をこわす」はとても難しいこと

Slide 64

Slide 64 text

フルサイクルなチームを作る QAE含めたフルサイクルなチームで動くことも重要 引用:https://speakerdeck.com/rinchsan/huroxiao-lu-wozhong-shi-site-2nian-ban-deenzinia2ming-35ming-noji-kuo-da-zu-zhi-degao-isheng-chan-xing-woshi-xian-sitahua

Slide 65

Slide 65 text

フルサイクルなチームがバリューストリーム全体に関わる バリューストリーム全体でテストする 引用:https://speakerdeck.com/rinchsan/huroxiao-lu-wozhong-shi-site-2nian-ban-deenzinia2ming-35ming-noji-kuo-da-zu-zhi-degao-isheng-chan-xing-woshi-xian-sitahua QAE

Slide 66

Slide 66 text

フルサイクルなチーム バリューストリーム全体 「どこでもテスト」と「壁をこわす」を後押し

Slide 67

Slide 67 text

まとめ

Slide 68

Slide 68 text

「どこでもテスト」 「壁をこわす」 QAエンジニアってスクラムで何をすればいいの?

Slide 69

Slide 69 text

スクラムのすべてのイベントでテストする 「どこでもテスト」をQAエンジニアが推進する

Slide 70

Slide 70 text

チームメンバー全員がそれぞれの得意分野で品質に対する責任を持てるようにする 「壁をこわす」をQAエンジニアが推進する PdM デザイナー 開発エンジニア アナリスト QAE

Slide 71

Slide 71 text

「どこでもテスト」 「壁をこわす」 QAエンジニアってスクラムで何をすればいいの?