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

Nstock QAの旅 / nstock-qa-jouerney

Jaga
September 17, 2024

Nstock QAの旅 / nstock-qa-jouerney

NstockではフルタイムのQAエンジニアがいない中でも、等身大のQA活動をしています。
最初にこんなことから手をつけてみたよというのが参考になれば幸いです。

JaSST nano vol.40での登壇資料です。
https://jasst-nano.connpass.com/event/328652/

Jaga

September 17, 2024
Tweet

More Decks by Jaga

Other Decks in Programming

Transcript

  1. 自己紹介 Make the startup ecosystem AWESOME 06 © Nstock じゃが

    Nstock株式会社のソフトウェアエンジニア 前職は AWS Japanでスタートアップの技術支援 今年、じゃがいもの原産地(ペルー)に行きました X: @jagaimogmog
  2. Nstockの事業構成 現在 将来 セカンダリー事業 Secondary スタートアップへの 再投資事業 Reinvestment in startups

    株式報酬 SaaS事業 Stock Compensation SaaS ス タ ー ト ア ッ プ エ コ シ ス テ ム の 進 化 ス タ ー ト ア ッ プ エ コ シ ス テ ム の 進 化
  3. 株式報酬のポテンシャルを 引き出す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
  4. 前提 Make the startup ecosystem AWESOME 07 © Nstock b

    ローンチから1年、月次30%以上で成長をしているサービY b 9人の開発チーム (PdM1 + デザイナー2 + エンジニア68 b 2年ほど、1週間スプリントのスクラムで開発
  5. はじめたモチベーション Make the startup ecosystem AWESOME 09 © Nstock はじめての受注のタイミングでこう思っ„

    ‚ 「今提供できている品質で十分だろうか?i ‚ 「品質をもっと上げられるんじゃないか?」
  6. SmartHR(親会社)に相談してみた Make the startup ecosystem AWESOME 09 © Nstock 相談相手「QA始めるんですか!いいですね!」

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

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

    品質に対する思いを相互理解するワークショッR ai 品質レベルを考えるワークショッR Ei インシデントレベルを考えるワークショップ
  9. 背景 Make the startup ecosystem AWESOME 09 © Nstock ‘

    miisanには「Nstockにおける品質の定義を一緒に作ってほしい」と相談 してい† ‘ お話しした結果、「NstockにおけるQAのカルチャー・ミッション」から 考えるといいかもねーと話していた
  10. 目的 Make the startup ecosystem AWESOME 09 © Nstock まずは現状の品質に対する意識・解像度を棚卸してみe

    ba Nstockのプロダクトに関わる全員が、互いに品質についてどう思っている かを知• Ba miisanにNstockの開発組織が品質についてどう考えているのかを理解し ていただく
  11. 参加者 Make the startup ecosystem AWESOME 09 © Nstock 株式報酬SaaS

    Nstockの開発・運用に関わるメンバd @ Pd6 @ デザイナd @ CI @ エンジニア
  12. 進め方 Make the startup ecosystem AWESOME 09 © Nstock T…

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

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

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

    開発工程ごとの品質分g X リリーストレイu X 1stリリースでエッジケースまでカバーするこi X エラーバジェットの運用
  16. 振り返り w/miisan Make the startup ecosystem AWESOME 09 © Nstock

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

    「より実践的な品質基準を作り、品質を管理できる状態にすること」 の優先度が高そう!
  18. 背景 Make the startup ecosystem AWESOME 09 © Nstock g

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

    + 株式報酬SaaS Nstockの開発・運用に関わるメンバF 9 Pd5 9 デザイナF 9 CP 9 エンジニア
  20. 進め方 Make the startup ecosystem AWESOME 09 © Nstock mi

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

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

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

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

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

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

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

    セキュリティインシデンt s 代替手f s 法令遵Y s Nstockとの契約内容とのアライy s 体験の希少H s 影響範u s タイミング
  28. 振り返り Make the startup ecosystem AWESOME 09 © Nstock €

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

    + 株式報酬SaaS Nstockの開発・運用に関わるメンバF 9 Pd5 9 デザイナF 9 CP 9 エンジニア
  30. 進め方 Make the startup ecosystem AWESOME 09 © Nstock rf

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

    Nstock https://speakerdeck.com/mii3king/compass-for-quality-assurance
  32. 過去のインシデントを全て書き出す Make the startup ecosystem AWESOME 09 © Nstock “

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

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

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

    x 描画の崩R x 代替手段がありお客様 or CSが実行できH x 代替手段はないが、対応までの期限が遠い
  36. P3: 次サイクルまでに対応 Make the startup ecosystem AWESOME 09 © Nstock

    U 普段タスクを切って対応していて、Postmortem DBに残っていないこと もあり、基準の議論が難しかっT U バックログのBugラベルを持つチケットをピックアップしたらよかった
  37. インシデントレベルの決定フロー Make the startup ecosystem AWESOME 09 © Nstock ‚

    意思決定フローにない理由で、P1じゃない?となったらP1でOKS ‚ プロダクトの成長に伴って、この決定フローは変えていく
  38. ワークショップを経て変わったこと#1 Postmortem DBの見直し Make the startup ecosystem AWESOME 09 ©

    Nstock s 障害検知時に設定したインシデントレベルと、障害対応振り返り時に精査 したインシデントレベルを追“ s 不具合要因(仕様考慮漏れ、仕様実装漏れ、実装考慮漏れ、運用不備、
 デグレ)を追“ s 発生期間のカラムを、発生、検知、復旧と別の日時カラムに分割
  39. 振り返り Make the startup ecosystem AWESOME 09 © Nstock „

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

    チームでインシデントの発生頻度をどのくらいに抑えるw d いかに復旧スピードを高速化し、被害を最小限に防げるw d インシデント以外の側面で、どのような品質のメトリクスがあるとよいか
  41. リファインメントでQAの帽子をかぶる人を作る Make the startup ecosystem AWESOME 09 © Nstock w

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

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

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

    Nstockは限られた数のスタートアップ、および従業員に対し、複数の
 プロダクトを提供し売上を積み上げていくビジネスモデf  一社に複数のプロダクトを利用していただくには、「Nstockの新しい
 プロダクトであればぜひ使ってみたい!」と既存ユーザーに信じていただ ける品質を提供し続ける必要がある
  45. 改めてフルタイムのQAエンジニアと働きたいと思うようになった Make the startup ecosystem AWESOME 09 © Nstock ~

    miisanとワークショップを通じ、QAの視野が広がり、解像度があがっ‰ ~ 普段の開発からQAエンジニアの方と働けたら、もっともっと高い品質を 目指せるし、それが会社にとって必要だと確信し‰ ~ Nstock QAの旅、次の章は、フルタイムのQAエンジニアと一緒に
 あゆみたい!!!
  46. 参考資料 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