Slide 1

Slide 1 text

Nstock QAの旅 2024/9/17 JaSST nano vol. 40 Nstock じゃが

Slide 2

Slide 2 text

はじめに Make the startup ecosystem AWESOME 02 © Nstock NstockにはQAエンジニアがいません (めっちゃきて欲しい!)

Slide 3

Slide 3 text

はじめに Make the startup ecosystem AWESOME 03 © Nstock QAエンジニアがいない中での 等身大のQA活動についてお話しします

Slide 4

Slide 4 text

自己紹介 Make the startup ecosystem AWESOME 06 © Nstock じゃが Nstock株式会社のソフトウェアエンジニア 前職は AWS Japanでスタートアップの技術支援 今年、じゃがいもの原産地(ペルー)に行きました X: @jagaimogmog

Slide 5

Slide 5 text

Nstockについて

Slide 6

Slide 6 text

Nstockについて 資金調達を実施 億円 30

Slide 7

Slide 7 text

Our Mission スタートアップエコシステムをブーストし 日本からGoogle級の会社を生み出す

Slide 8

Slide 8 text

Nstockの事業構成 現在 将来 セカンダリー事業 Secondary スタートアップへの 再投資事業 Reinvestment in startups 株式報酬 SaaS事業 Stock Compensation SaaS ス タ ー ト ア ッ プ エ コ シ ス テ ム の 進 化 ス タ ー ト ア ッ プ エ コ シ ス テ ム の 進 化

Slide 9

Slide 9 text

株式報酬のポテンシャルを 引き出すSaaS https://nstock.com 行使申請が2件あります 想定キャピタルゲイン 13,750,000円 SO個数 150個 株式数 1,500株 持株比率 0.025% 須磨栄子 プロダクト開発部 SO一覧 第7回 新株予約権 第6回 新株予約権 第5回 新株予約権 下書き 確定 確定 今日のお話は株式報酬SaaSの開発チームの取り組み Make the startup ecosystem AWESOME 07 © Nstock

Slide 10

Slide 10 text

前提 Make the startup ecosystem AWESOME 07 © Nstock b ローンチから1年、月次30%以上で成長をしているサービY b 9人の開発チーム (PdM1 + デザイナー2 + エンジニア68 b 2年ほど、1週間スプリントのスクラムで開発

Slide 11

Slide 11 text

なぜQA活動をしたいと思ったか

Slide 12

Slide 12 text

はじめたモチベーション Make the startup ecosystem AWESOME 09 © Nstock はじめての受注のタイミングでこう思っ„ ‚ 「今提供できている品質で十分だろうか?i ‚ 「品質をもっと上げられるんじゃないか?」

Slide 13

Slide 13 text

SmartHR(親会社)に相談してみた Make the startup ecosystem AWESOME 09 © Nstock 相談相手「QA始めるんですか!いいですね!」 相談相手「ただ、採用に1~2年かかるのは覚悟したほうがいいですね...」 じゃが「1~ 2年!?」 早いに越したことはないから、まずはQAエンジニアの求人を出しました が、なかなか採用に至らず...

Slide 14

Slide 14 text

できることからやってみよう! Make the startup ecosystem AWESOME 09 © Nstock p QAエンジニアが採用できるまでQAに手をつけないのは違h p 「こんなQA活動をしてるよ!」と発信することで誰か興味を持ってくれ るかW p 社内メンバーとつながりのあった令和トラベル社のmiisanに業務委託とし て支援していただくことに

Slide 15

Slide 15 text

3つの取り組みを紹介します Make the startup ecosystem AWESOME 09 © Nstock vi 品質に対する思いを相互理解するワークショッR ai 品質レベルを考えるワークショッR Ei インシデントレベルを考えるワークショップ

Slide 16

Slide 16 text

取り組み#1 品質に対する思いを相互理解するワークショップ

Slide 17

Slide 17 text

背景 Make the startup ecosystem AWESOME 09 © Nstock ‘ miisanには「Nstockにおける品質の定義を一緒に作ってほしい」と相談 してい† ‘ お話しした結果、「NstockにおけるQAのカルチャー・ミッション」から 考えるといいかもねーと話していた

Slide 18

Slide 18 text

目的 Make the startup ecosystem AWESOME 09 © Nstock まずは現状の品質に対する意識・解像度を棚卸してみe ba Nstockのプロダクトに関わる全員が、互いに品質についてどう思っている かを知• Ba miisanにNstockの開発組織が品質についてどう考えているのかを理解し ていただく

Slide 19

Slide 19 text

参加者 Make the startup ecosystem AWESOME 09 © Nstock 株式報酬SaaS Nstockの開発・運用に関わるメンバd @ Pd6 @ デザイナd @ CI @ エンジニア

Slide 20

Slide 20 text

進め方 Make the startup ecosystem AWESOME 09 © Nstock T… 4つの観点で付箋を張り出f p 青: やれているこY p 黄: これからやりたいこY p 紫: (まだ)やらなくていいこY p 緑: そのI w… 付箋をなんとなくグルーピングすb B… 付箋の内容について互いに質問しながら、理解を深める

Slide 21

Slide 21 text

やれていること Make the startup ecosystem AWESOME 09 © Nstock i 毎年、第三者による脆弱性診断ができてい i より良いテストを書くためにエンジニアで勉強会をしてい i スプリントレビューを通じプロダクトへのフィードバックがもらえてい i 顧客からのフィードバックをタスク化し、優先度が高いものから対応して いる

Slide 22

Slide 22 text

これからやりたいこと Make the startup ecosystem AWESOME 09 © Nstock f 統合テストに偏っているため、単体テストの比重を高めた’ f 既存機能の品質を高めた’ f JSTQBのFoundationレベルは知識のベースとして持っておきた’ f 仕様策定時点で品質観点から成果物を考えたい

Slide 23

Slide 23 text

(まだ)やらなくていいこと Make the startup ecosystem AWESOME 09 © Nstock X 開発工程ごとの品質分g X リリーストレイu X 1stリリースでエッジケースまでカバーするこi X エラーバジェットの運用

Slide 24

Slide 24 text

振り返り w/miisan Make the startup ecosystem AWESOME 09 © Nstock 「NstockにおけるQAのカルチャー・ミッション」をつくるのがいいかも、 と話していたが... NstockにU R QAやっていきマインドが実は既にあるこj R Nstockのバリュー「真摯にやろう」がそれに影響してそうなこと がわかった

Slide 25

Slide 25 text

参考資料 Make the startup ecosystem AWESOME 09 © Nstock 現状は品質やっていきマインドをつくるよりも、 「より実践的な品質基準を作り、品質を管理できる状態にすること」 の優先度が高そう!

Slide 26

Slide 26 text

取り組み#2 品質レベルを考えるワークショップ

Slide 27

Slide 27 text

背景 Make the startup ecosystem AWESOME 09 © Nstock g NstockにはQAやっていきマインドはありそr g 「Nstockではどのような品質レベルを守りたいか?」を
 言語化してみよう!

Slide 28

Slide 28 text

目的 Make the startup ecosystem AWESOME 09 © Nstock 「より実践的な品質基準を作り、品質を管理できる状態にする」ために 「Nstockではどのような品質レベルを守りたいか?」を言語化すること

Slide 29

Slide 29 text

参加者 Make the startup ecosystem AWESOME 09 © Nstock miisan + 株式報酬SaaS Nstockの開発・運用に関わるメンバF 9 Pd5 9 デザイナF 9 CP 9 エンジニア

Slide 30

Slide 30 text

進め方 Make the startup ecosystem AWESOME 09 © Nstock mi 過去に経験した or 今後ありうる、インシデントについて挙げてみ‰ ui それぞれ、どんな緊急度で対応することになりそうか考えてみ‰ H インシデント発生として、検知後すぐに対X H Issueを切って、数週間以内に対X H 対応しなh 7i どんな軸で品質を考えているか、まとめる

Slide 31

Slide 31 text

進め方 Make the startup ecosystem AWESOME 09 © Nstock

Slide 32

Slide 32 text

インシデント発生として、検知後すぐに対応 Make the startup ecosystem AWESOME 09 © Nstock 注) メンバーが過去に体験したインシデントや、これから起こりそうなインシデントを挙げたものです。
 必ずしも、Nstockで発生したインシデントではありません。 “ ユーザーがログインできな„ “ セキュリティホールをつかって侵入された形跡があっŠ “ データベースの吹き飛ばo “ 金額計算のミス

Slide 33

Slide 33 text

タスクを切って、数週間以内に対応 Make the startup ecosystem AWESOME 09 © Nstock … 外部サービスの不具合により、自社サービスに影響が生じŒ … 退会済みのユーザーにもメンテナンス告知を送ってしまっŒ … SOや役員従業員のソートがきかな‚ … iPadで表示がバグって、特定の操作ができなくなった(スマホはできる‚ … 大量操作時に明らかにレイテンシが悪化する(全体のSLOは違反してい
 ないので緊急対応はしない) 注) メンバーが過去に体験したインシデントや、これから起こりそうなインシデントを挙げたものです。
 必ずしも、Nstockで発生したインシデントではありません。

Slide 34

Slide 34 text

対応しない Make the startup ecosystem AWESOME 09 © Nstock 注) メンバーが過去に体験したインシデントや、これから起こりそうなインシデントを挙げたものです。
 必ずしも、Nstockで発生したインシデントではありません。 s クラウドの障害でどうしようもない~ s サポート外のスマホ・ブラウザで見れない・使えなw s 特定の拡張機能を入れたユーザーのみ再現するバグ

Slide 35

Slide 35 text

行われた会話の例#1 割当契約書が作成できない Make the startup ecosystem AWESOME 09 © Nstock ” 割り当て契約とは、会社から
 従業員にSOを渡すための契g ” 契約の締結期限は取締役会や株主 総会で決まり、動かすのが大変

Slide 36

Slide 36 text

行われた会話の例#1 割当契約書が作成できない Make the startup ecosystem AWESOME 09 © Nstock ª 契約社数の少ない今(当時)であれば、仮にシステムが止まってもそこまで 影響がなさそš ª 一方で、契約締結までに日数の少ないお客様がいると緊急度は跳ね上がh ª 今後ユーザーが増えていくと全ての会社の割り当て契約のスケジュールを 知ることは難しくなるし、多くの会社でSOを配る頻度が増えていくと、 より落とせない機能になっていく プロダクトのフェーズやお客様の状況によって、対応優先度が変わりうる!

Slide 37

Slide 37 text

行われた会話の例#2 画面表示に時間がかかる Make the startup ecosystem AWESOME 09 © Nstock *SOを株式に変えること … 所要時間や、その画面を使う頻度によって緊急度がかわるかv … 特にSOを行使*するという体験は人生でそう何度もあるわけじゃない (Nstockとしては増やしていきたいけどv … いかにNstock上での「レアな体験」の品質を上げるかは重要そうだ

Slide 38

Slide 38 text

品質を考える軸になりそうなキーワード Make the startup ecosystem AWESOME 09 © Nstock s セキュリティインシデンt s 代替手f s 法令遵Y s Nstockとの契約内容とのアライy s 体験の希少H s 影響範u s タイミング

Slide 39

Slide 39 text

振り返り Make the startup ecosystem AWESOME 09 © Nstock € みんなの良いものを作りたいという思いをはじめ、普段それぞれの心の中 にあった当たり前が言語化できてよかったs € miisan) 品質って正解がないので、みんなが思ってることを言語化
 するっていうのがすごく大Q € 品質を考えるうえで軸になりそうな概念が洗い出せ~ € 同じ事象でも、状況やタイミング、影響範囲によって緊急度が変わりうる ことがチームの共通認識になった

Slide 40

Slide 40 text

取り組み#3 インシデントレベルを考えるワークショップ

Slide 41

Slide 41 text

目的 Make the startup ecosystem AWESOME 09 © Nstock 「より実践的な品質レベルを作り、品質を管理できる状態にする」ために 「Nstockにおけるインシデントレベル」を言語化すること

Slide 42

Slide 42 text

参加者 Make the startup ecosystem AWESOME 09 © Nstock miisan + 株式報酬SaaS Nstockの開発・運用に関わるメンバF 9 Pd5 9 デザイナF 9 CP 9 エンジニア

Slide 43

Slide 43 text

進め方 Make the startup ecosystem AWESOME 09 © Nstock rf インシデントレベルの概要説明 by miisaT xf 過去のインシデントを全て書き出C cf 過去のインシデントをインシデントレベルの叩き台に当てはめてみS @f インシデントレベル自体を洗練する

Slide 44

Slide 44 text

インシデントレベルの概要説明 by miisan Make the startup ecosystem AWESOME 09 © Nstock https://speakerdeck.com/mii3king/compass-for-quality-assurance

Slide 45

Slide 45 text

過去のインシデントを全て書き出す Make the startup ecosystem AWESOME 09 © Nstock “ プロダクト開発初期から社内インシデント事例を貯める、Postmortem DBをNotionでつくってい† “ そのため書き出しは楽だった

Slide 46

Slide 46 text

過去のインシデントをインシデントレベルの叩き台に当てはめてみる Make the startup ecosystem AWESOME 09 © Nstock

Slide 47

Slide 47 text

インシデントレベルのBefore/After Make the startup ecosystem AWESOME 09 © Nstock ˆ P0とP1は対応が同じ(開発ストップ&即時対応)なので統s ˆ 対応しないもの(元のP3)はインシデントではないので削h ˆ 即時対応と次のサイクル(最長一週間)までに対応の間に、「営業日+1日中 に修正」を追加

Slide 48

Slide 48 text

P1: 即時修正 Make the startup ecosystem AWESOME 09 © Nstock a 影響が全テナントにあり、コミュニケーションコストが高w a 従業員に対して案内が必T a 代替手段がなw a 代替手段があるが、お客様側 or CSで実行できない

Slide 49

Slide 49 text

P2: 営業日+1日中に修正 Make the startup ecosystem AWESOME 09 © Nstock x 描画の崩R x 代替手段がありお客様 or CSが実行できH x 代替手段はないが、対応までの期限が遠い

Slide 50

Slide 50 text

P3: 次サイクルまでに対応 Make the startup ecosystem AWESOME 09 © Nstock U 普段タスクを切って対応していて、Postmortem DBに残っていないこと もあり、基準の議論が難しかっT U バックログのBugラベルを持つチケットをピックアップしたらよかった

Slide 51

Slide 51 text

インシデントレベルの決定フロー Make the startup ecosystem AWESOME 09 © Nstock ‚ 意思決定フローにない理由で、P1じゃない?となったらP1でOKS ‚ プロダクトの成長に伴って、この決定フローは変えていく

Slide 52

Slide 52 text

ワークショップを経て変わったこと#1 Postmortem DBの見直し Make the startup ecosystem AWESOME 09 © Nstock s 障害検知時に設定したインシデントレベルと、障害対応振り返り時に精査 したインシデントレベルを追“ s 不具合要因(仕様考慮漏れ、仕様実装漏れ、実装考慮漏れ、運用不備、
 デグレ)を追“ s 発生期間のカラムを、発生、検知、復旧と別の日時カラムに分割

Slide 53

Slide 53 text

ワークショップを経て変わったこと#2 インシデント対応テンプレート Make the startup ecosystem AWESOME 09 © Nstock

Slide 54

Slide 54 text

振り返り Make the startup ecosystem AWESOME 09 © Nstock „ 実際のインシデントについて話すことで、インシデントレベルを考える
 上での観点がほどよく絞られi „ 品質を考える軸となり、実務でも使える尺度「インシデントレベル」の
 共通認識が得られた

Slide 55

Slide 55 text

次に考えられると良さそうなこと Make the startup ecosystem AWESOME 09 © Nstock d チームでインシデントの発生頻度をどのくらいに抑えるw d いかに復旧スピードを高速化し、被害を最小限に防げるw d インシデント以外の側面で、どのような品質のメトリクスがあるとよいか

Slide 56

Slide 56 text

その他のQA活動

Slide 57

Slide 57 text

リファインメントでQAの帽子をかぶる人を作る Make the startup ecosystem AWESOME 09 © Nstock w Nstockではスクラムのファシリ、タイムキーパー、QAなどを交代制で やってい‚ w 自分がQAの帽子を被った時には、受け入れ条件に強く意識を割c w だれがQAの帽子を被っているかわかりやすいよう、デザイナーが用意し た背景をつか‘ w 品質について自分がオーナーシップを持つんだ
 という意識がついた

Slide 58

Slide 58 text

ユニットテストの勉強会をする Make the startup ecosystem AWESOME 09 © Nstock 読書会についてのテックブログ: https://zenn.dev/nstock/articles/0115aafeb7d1e1 Š 「やったこと#1 相互理解するワークショップ」 で統合テスト偏重な状態からユニットテストの 比率を高めたい、という話が出r Š 全員で読書会を実™ Š ユニットテストを重く書くようになった結果、 直近の機能はC0で97%、C1で100%に!

Slide 59

Slide 59 text

募集要項のアップデート Make the startup ecosystem AWESOME 09 © Nstock Nstock QAエンジニア募集要項: https://herp.careers/v1/nstock/ITMAoU-QgtQt z 元々はSETっぽい書き振りで、テストを書いたり、テストの仕組みを作っ たりする人を募集する内容だっœ z 今は、テストを書いたり実施するのはエンジニアがやるので、QAのスキル をチームにインストールしてくれる人、そしてNstockにあったQA文化・ 組織づくりを進めてくれる人を募集する内容になった

Slide 60

Slide 60 text

1年を振り返って

Slide 61

Slide 61 text

なぜ会社として品質が重要なのか言語化できてきた Make the startup ecosystem AWESOME 09 © Nstock  Nstockは限られた数のスタートアップ、および従業員に対し、複数の
 プロダクトを提供し売上を積み上げていくビジネスモデf  一社に複数のプロダクトを利用していただくには、「Nstockの新しい
 プロダクトであればぜひ使ってみたい!」と既存ユーザーに信じていただ ける品質を提供し続ける必要がある

Slide 62

Slide 62 text

改めてフルタイムのQAエンジニアと働きたいと思うようになった Make the startup ecosystem AWESOME 09 © Nstock ~ miisanとワークショップを通じ、QAの視野が広がり、解像度があがっ‰ ~ 普段の開発からQAエンジニアの方と働けたら、もっともっと高い品質を 目指せるし、それが会社にとって必要だと確信し‰ ~ Nstock QAの旅、次の章は、フルタイムのQAエンジニアと一緒に
 あゆみたい!!!

Slide 63

Slide 63 text

さいごに

Slide 64

Slide 64 text

Nstockの1人目QAエンジニアになりませんか? Make the startup ecosystem AWESOME 09 © Nstock スタートアップの歴史に残る事業を 私たちと一緒につくりましょう

Slide 65

Slide 65 text

We are hiring! https://recruit.nstock.co.jp/

Slide 66

Slide 66 text

参考資料 Make the startup ecosystem AWESOME 09 © Nstock ˜ Nstock QAの旅 #1 品質に対して思うことをチームで相互理解してみる
 https://zenn.dev/nstock/articles/nstock-qa-journey-C ˜ Nstock QAの旅 #2 品質レベルを考えるワークショップ
 https://zenn.dev/nstock/articles/nstock-qa-journey-G ˜ Nstock QAの旅 #3 インシデントレベルを考えるワークショップ
 https://zenn.dev/nstock/articles/nstock-qa-journey-3