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

atama plusの開発チームはどのように「不確実性」に向き合ってきたか〜2022夏版〜

atama plusの開発チームはどのように「不確実性」に向き合ってきたか〜2022夏版〜

2022年7月21日のDevelopers summit 2022・夏にて、atama plus・WEBエンジニアの宮原(@pandineer)が登壇しました。

▼開発チームの情報発信リンク集
https://linktr.ee/atama_plus_dev

atama plus

July 21, 2022
Tweet

More Decks by atama plus

Other Decks in Programming

Transcript

  1. 自己紹介 • 2010-2015 株式会社リコー • 2015-2019 株式会社ぐるなび • 2019-2021 株式会社マネーフォワード

    • 2021/06 atama plus に join! • Missionに強く共感! • cultureを大事にしているのが良い! • プロダクトが!とても良い!! 2 ぱ ん だ さ ん エ ン ジ ニ ア
  2. ⓒ 2022 atama plus Inc. Our Mission 3 at am

    a plus株式会社 「基礎学力」の習得 「基礎学力」の習得 「社会でいきる力」の習得 学習を一人ひとり最適化し、「基礎学力」を最短で身につけ、 そのぶん増える時間で、「社会でいきる力」を伸ばす。 そんな新しい学びを数億人の生徒に届け、社会のまんなかから変えていきます。
  3. ⓒ 2022 atama plus Inc. 学習を Personalize 一人ひとりの 「得意」「苦手」「伸び」 「つまずき」「集中状態」

    などの データをAIが分析し 「自分専用カリキュラム」 をつくります。
  4. ⓒ 2022 atama plus Inc. 全国の塾・予備校 3100教室で導入 5 at am

    a plus株式会社 全国トップ100の塾の約3割で導入済。2022年4月末現在、3100教室以上に拡大。 他多数(五十音順) 2018/4 2019/4 2020/4 2021/4 2022/4 100 500 1,000 2,400 3,100 教室 導入教室数
  5. ⓒ 2022 atama plus Inc. 沿革 6 at am a

    plus株式会社 2017/10 2017/4 10人 2019年 2018年 2020年 2021年 2017年 2022年 20 40 60 100 170 200 2018/7 2019/3 2019/12 2020/6 2021/12 2022/3 2017/10 2020/3 2021/12
  6. ⓒ 2022 atama plus Inc. 沿革 7 at am a

    plus株式会社 DCMベンチャーズより5億円の資金調達 DCMベンチャーズ、ジャフコ グループ より15億円の資金調達 DCMベンチャーズ、ジャフコ グループ、 Pavilion Capital、T. Rowe Price などより74億円の資金調達(融資を含む) シリーズB シリーズA シードラウンド 2021 2018 2019 5億円 15億円 74億円 累積 94億円
  7. ⓒ 2022 atama plus Inc. 今日お話すること • atama plusは「Missionの実現」に真摯に向き合っています •

    Mission実現により早く近づくために、日々プロダクトを磨き続けるこ とにこだわり、アジャイル開発を採用しています • atama plusはプロダクトも組織もどんどん成長しています • そんな中、開発プロセスも磨き込んでいます 8 at am a plusの開発チームはどのように「不確実性」と向き合ってきたか
  8. ⓒ 2022 atama plus Inc. 今日お話すること 1. atama plusはどのように「アジャイルテスティング」を広めたか 2.

    開発チームにおける品質向上のプラクティス事例の紹介 9 at am a plusの開発チームはどのように「不確実性」と向き合ってきたか
  9. ⓒ 2022 atama plus Inc. 品質向上に向けた取り組み • 改めて • “Mission”実現に向けて、全速力で取り組んでいく

    • プロダクトも組織もどんどん成長している • その中で • 機能開発に全力で取り組みたい • 高品質な状態で機能をリリースしたい • 開発プロセスも、これらを実現できるように磨き込んでいきたい 11 at am a plusはどのように「アジャイルテスティング」を広めたか 「プロダクト品質」と「開発スピード」の両立を目指し 「不具合の早期発見」に取り組んでいく
  10. ⓒ 2022 atama plus Inc. なぜ、「不具合の早期発見」なのか 12 at am a

    plusはどのように「アジャイルテスティング」を広めたか 不具合を早期に発見していくことで、品質 も保証され、開発スピードもあがっていく 開発スピードが上がれば、 Mission実現により早く近づける! リリース スプリント リリーステスト (リグレッションT) スプリント 実装・レビュー・FT スプリント 課題発見・仮説検証
  11. ⓒ 2022 atama plus Inc. 開発プロセスの前半で不具合を検知していく • そのためには、下記が必要なのではないか • アジャイルにおけるテスト活動を深く理解すること

    • アジャイルテスティングのエッセンスを開発プロセスに取り込んで いくこと 13 at am a plusはどのように「アジャイルテスティング」を広めたか
  12. ⓒ 2022 atama plus Inc. アジャイルテストとは 14 at am a

    plusはどのように「アジャイルテスティング」を広めたか アジャイルテストの核心は、自分たちのプロダクトにおける品質の構築 やテストにチーム全体が関与することです。欠陥を見つけるためのセー フティネットとしてテスターに頼るのではなく、チームが欠陥を防ぐこ とを学ぶという、大きなマインドセットの変化があります。 〜中略〜 始まりからデリバリーまで、そしてそれ以降も継続的に実施される協調 的なテストの実践により、お客様への価値の頻繁な提供をサポートしま す。テスト活動は、高速なフィードバックループを用いて理解を検証し ながら、プロダクトの品質を築くことに重点を置いています。このプラ クティスは、品質に対するチーム全体の責任という考え方を強化し、サ ポートします。 Agile Testing Condensed より
  13. ⓒ 2022 atama plus Inc. アジャイルテストとは 15 at am a

    plusはどのように「アジャイルテスティング」を広めたか アジャイルテストの核心は、自分たちのプロダクトにおける品質の構築 やテストにチーム全体が関与することです。欠陥を見つけるためのセー フティネットとしてテスターに頼るのではなく、チームが欠陥を防ぐこ とを学ぶという、大きなマインドセットの変化があります。 〜中略〜 始まりからデリバリーまで、そしてそれ以降も継続的に実施される協調 的なテストの実践により、お客様への価値の頻繁な提供をサポートしま す。テスト活動は、高速なフィードバックループを用いて理解を検証し ながら、プロダクトの品質を築くことに重点を置いています。このプラ クティスは、品質に対するチーム全体の責任という考え方を強化し、サ ポートします。 Agile Testing Condensed より
  14. ⓒ 2022 atama plus Inc. アジャイルテスティングとは 開発チーム • 品質に対するチームの責任という考え方を持つ •

    開発後のテストでバグを見つけるのではなく バグを作り込まないマインド • チームで欠陥の作り込みを防ぐ QA • 品質のゲートキーパーではない • いつでもどこでも素早いフィードバックを実施 • チーム内で品質を導く役割となる • チーム内にテストに関する知識を共有する 16 at am a plusはどのように「アジャイルテスティング」を広めたか SM デザイナー エンジニア QA PO
  15. ⓒ 2022 atama plus Inc. アジャイルテスティングとは 開発チーム • 品質に対するチームの責任という考え方を持つ •

    開発後のテストでバグを見つけるのではなく バグを作り込まないマインド • チームで欠陥の作り込みを防ぐ QA • 品質のゲートキーパーではない • いつでもどこでも素早いフィードバックを実施 • チーム内で品質を導く役割となる • チーム内にテストに関する知識を共有する 17 at am a plusはどのように「アジャイルテスティング」を広めたか SM デザイナー エンジニア QA PO
  16. ⓒ 2022 atama plus Inc. まずはQAメンバー間でアジャイルテスティングにチャレンジ 18 アジャイルテスティングへのチャレンジ 引用:「Agile Testing

    Condensed Japanese Edition」P.42より、アジャイルテストの四象限 「実践アジャイルテスト」という書籍を基に、 アジャイルテスティングのノウハウを開発プロセスに組み込んでみた 例えば「テストで明らかにしたいことをアジャイ ルテストの4象限に当てはめてみて、目的の違うテ ストは分けて考えよう」「このタイミングで◦◦ な不具合を見つけるテストをすることがベストタ イミングなのか?」などをチームで話し合った
  17. ⓒ 2022 atama plus Inc. QAメンバーの気持ちの面は大きく変わった 20 アジャイルテスティングへのチャレンジ スクラムチームの少し外側にいて 必要なミーティングには出て開発内容を把握し

    最後にまとめて変更点をテストしてどうにかしよう!という体制だった スクラムチームの一員として一緒に活動し、 開発中のテストに力を入れていくことを 少しずつ意識できるようになった
  18. ⓒ 2022 atama plus Inc. まだまだアジャイルテスティングの実現には遠かった QAメンバー • アジャイルテスティングの概念(やりたいこと)は分かる •

    開発前〜中のタイミングでの立ち回りが難しく、行動があまり変わらなかった • 認識齟齬や仕様誤りといった不具合が後半に発覚しがちだった 22 アジャイルテスティングへのチャレンジ
  19. ⓒ 2022 atama plus Inc. まだまだアジャイルテスティングの実現には遠かった プロダクトオーナー、エンジニア、UXデザイナー • QAに対する期待値が人によって異なる •

    自分たちはどのように(どの程度)品質に関わるべきかの認識が異なる • QAからどういう振る舞いを期待されているかわからない • QAが「最後にテストするだけではない」とは知っている (が、具体的に何をするかはイメージがない) • どのようにQAとコラボレーションしていくかのイメージがまだない 23 アジャイルテスティングへのチャレンジ
  20. ⓒ 2022 atama plus Inc. まだまだアジャイルテスティングの実現には遠かった 25 アジャイルテスティングへのチャレンジ 同じスクラムチームの一員として行動していたが、 よりよい品質をめざす一体感のようなものが足りていなかった

    これらを解消するために試行錯誤していたところ 「Agile Testing Condensed」の日本語訳の書籍が販売されたことを知った 「Agile Testing Condensed」は、アジャイル開発においてどのように テストを考えていけば良いのかが、90ページほどにコンパクトにまとめられている!
  21. ⓒ 2022 atama plus Inc. まだまだアジャイルテスティングの実現には遠かった 27 転機 QAメンバー間でAgile Testing

    Condensedの読書会を実施 「QAとしての動き方や姿勢」の解像度がだいぶ上がった • QAからチームにFBではなく、QAも1チームメンバーである、という意識 • 積極的に質問していく • 「チームで品質を守っていく」ために上流でも遠慮なく意見を言う • テストフェーズでQAだけ忙しくなるのはおかしい、という意識
  22. ⓒ 2022 atama plus Inc. QAメンバーが社外研修に参加 読書会と同タイミングで QAメンバーが「認定研修Agile Testing for

    the Whole Team」の研修に参加 様々な学びが得られた • 研修タイトルにもある「Whole Team」(チーム全体)というのが大切 • QAはQuestion Askerでもある • 質問や会話を通して全体像を把握する • 可能な限り早くフィードバックする 28 転機
  23. ⓒ 2022 atama plus Inc. QA&開発チーム合同「Agile Testing Condensed」読書会 31 転機

    Agile Testing Condensedを各々で読み スクラムチームごとに2時間のワークショップを実施
  24. ⓒ 2022 atama plus Inc. QA&開発チーム合同「Agile Testing Condensed」読書会 32 転機

    Agile Testing Condensedを各々で読み スクラムチームごとに2時間のワークショップを実施 2時間の枠では足りないくらい、各チームで活発な会話が生まれた! 「◦◦はできているね」や「△という概念は初めて知った!」 「□はできるようになりたいね」など、現在地を確かめつつ アクションを検討できた
  25. ⓒ 2022 atama plus Inc. 結果 • 「Agile Testing Condensed」の読書会を通じて、開発チーム全体にアジャイ

    ルテスティングについての共通理解をつくることができた • atama plusでは、Mission達成に向けて大切にしている行動のひとつ に”Speak up.(話そう、とことん。)”を掲げていた • 「チーム全体で品質について話し合う」ことに相性が良かったので、綺麗 に土台が整った • 今までも共通して持っていた「よいものを届けたい」気持ちに、具体的な方向 性を示すことができたのではないか 34 アジャイルテスティングの考え方が開発チーム全体に
  26. ⓒ 2022 atama plus Inc. 結果 • チームでテストや品質について積極的に会話できるようになったことは大きな 財産になった •

    読書会での学びが多かったという反響もあり、現在は入社時のオンボーディン グのコンテンツとして追加されている • 新しくjoinする開発メンバー(PO・エンジニア・デザイナー・QA・SM) はAgile Testing Condensedが課題図書になる • 読んだ後、既存社員を交えて認識合わせ会を開く 35 アジャイルテスティングの考え方が開発チーム全体に
  27. ⓒ 2022 atama plus Inc. atama plusのアジャイルテスティングのこれから at am a

    plusはどのように「アジャイルテスティング」を広めたか 新しく開発チームにメンバーが増えるタイミングで みんなと目線を合わせる取り組みとして また品質について考える場として 「Agile Testing Condensed」の読書会を継続することで チームとしてもっと進化していきたい 36
  28. ⓒ 2022 atama plus Inc. atama plus のチーム構成 38 背景

    SM デザイナー エンジニア QA PO
  29. ⓒ 2022 atama plus Inc. なぜ手戻りが多くなってしまったのか? • 仕様の認識ズレ • 仕様が分散していて、検討内容と最終決定が別の所に書かれたりしていた

    • 機能の考慮漏れもあった • デグレードが多発 • 何かを修正するたびに、どこかしらデグレした • チケットが大きすぎた 41 背景
  30. ⓒ 2022 atama plus Inc. good事例「ふるまいを書く」 AS 純二くん(主語) GIVEN atama+アプリの教科選択画面を開いている(前提条件)

    WHEN 「中学英語」を選択し、[選択する]ボタンを押下した(取ったアクション) THEN 中学英語の学習ホーム画面に遷移したことがわかる(それに対する結果) 47 解決に向けた試行錯誤 例:「教科選択画面で中学英語を選択したら、学習が開始できる」のふるまいを書く Gherkin(ガーキン)フォーマット
  31. ⓒ 2022 atama plus Inc. good事例「ふるまいを書く」 • チーム内で仕様の認識ズレを防ぐために開始 • まずは「チームの誰かが把握していたのに、齟齬があったせいで不具合が生じ

    る」ケースをなくすことを目指した • 認識齟齬をなくすだけで防げるもったいないパターンを潰したい 48 解決に向けた試行錯誤
  32. ⓒ 2022 atama plus Inc. やってよかったこと • チームで共通認識が取れる • 誰が読んでも誤解なく読み取れる

    • 具体的な機能の仕様が「例」で示されるので、わかりやすい • サブタスクが切りやすい • 1ふるまいに対し1サブタスクを切ることで、程よいサイズのタスクになる • 主な正常系のふるまいを考えることで、プランニングがやりやすくなる • どのふるまいから開発するか、の優先順位の議論がしやすい • 「ここまで実装できたら検証環境にデプロイしよう」のように、テスト のまとまりでスライスしやすい 51 「ふるまいを書く」のメリット・デメリット
  33. ⓒ 2022 atama plus Inc. エンジニア視点のやってよかったこと • 観点の違いがあっても同じ目線で見れるのがありがたい • デザイナーがこう作りたい、という仕様は新しい機能にフォーカスした観

    点であることが多い • 対して、エンジニアは既存の仕様との整合性など全パターンを網羅的に考 えるが、ストーリーでふるまいを書くと、お互いの観点が違っても認識を 合わせやすい 52 「ふるまいを書く」のメリット・デメリット
  34. ⓒ 2022 atama plus Inc. デザイナー視点のやってよかったこと • エンジニア、QAに仕様を正しく伝えられる • 口頭のみだと、意外と伝わってなかったり忘れてることがある

    • (ビジュアル的な部分や画面遷移図はfigmaでカバーできるとより仕様 がはっきり伝わる) • ふるまいを正にしているので、変更もふるまいを更新することで齟齬を防 げる • ふるまいが書いてあれば、他チームに引き継ぐときのコストを下げられる • ストーリーの単位でエンジニア、QAと認識が取れる 53 「ふるまいを書く」のメリット・デメリット
  35. ⓒ 2022 atama plus Inc. QA視点のやってよかったこと • 「正常系は動く」という安心感がある • あらかじめ、ふるまいに書いていない箇所の探索的テストにより注力できる

    • ふるまいを記述する過程で、より具体的な観点が発見できることがある • テストをスライスすることで、スプリント終盤にまとめてテスト、のリスクが 減らせる 54 「ふるまいを書く」のメリット・デメリット
  36. ⓒ 2022 atama plus Inc. のびしろ 55 「ふるまいを書く」のメリット・デメリット • 慣れるまでは記述するのに時間がかかる

    • どういうまとまりで切るのか、が難しい • デザイナーの中には、最初は苦手意識を感じる人も • 慣れるまでは、GIVENやTHENなどを読むのも辛い • (GIVENは前提、THENは→とかにしても良いのかも) • 常に「ふるまいの記述が最新で正」に保とうとすると、コストがかかる • 「ふるまいをテストコードに落とす」はまだまだやれていない
  37. ⓒ 2022 atama plus Inc. 学び 56 「ふるまいを書く」のメリット・デメリット • ふるまいを書く

    / 書かないはチームで相談すると良い • UI調整みたいなチケットはあまり意味なさそう • ロジックで出し分ける、動線に差分がある、仕様がややこしい、などは効 果的(認識齟齬が起こりそうな時に効果的) • ふるまいをモブワークで書けると良い • スプリントプランニングまでにみんなで書いておけると後がスムーズ
  38. ⓒ 2022 atama plus Inc. 59 2 E2Eテストの 自動化 1

    ユニット テストの拡充 4 ナレッジ 平準化 3 体験 バッシュ
  39. ⓒ 2022 atama plus Inc. 60 2 E2Eテストの 自動化 1

    ユニット テストの拡充 4 ナレッジ 平準化 3 体験 バッシュ
  40. ⓒ 2022 atama plus Inc. ユニットテストの拡充 • Codecovの導入 • まずは可視化

    • PRを作ると、そのPRによるカバ レッジ増減が自動的に添付される • 「カバレッジが下がったら気 持ち悪いからテスト書こう」 という声も • 約半年で5%くらいカバレッジが上 がった🎉 61 新しい試み 1
  41. ⓒ 2022 atama plus Inc. ユニットテストの拡充 • 草の根活動 • Python(django)が得意なメンバーを中心に色々な取り組み

    • 肥大化したテストデータの整理 • 2分以上かかっていたテスト実行が数秒程度まで高速化 • 効果的なテストの書き方ワークショップの実施 • 参考にできるテストコードを追加 • テストコードを書く際のガイドライン作成 62 新しい試み 1
  42. ⓒ 2022 atama plus Inc. 63 2 E2Eテストの 自動化 1

    ユニット テストの拡充 4 ナレッジ 平準化 3 体験 バッシュ
  43. ⓒ 2022 atama plus Inc. E2Eテストの自動化 • QAメンバーがE2Eテストの自動化に取り組んでいる • 今は1週間のリリーステスト期間を設けている

    • 「リリーステスト」の内、既に13%程は自動化されている • 少しずつ自動化比率が上がってきている • さらに自動化を加速し、「これが通っていればリリースできるよ」という 世界を目指したい 64 新しい試み 2 リリース スプリント リリーステスト (リグレッションT) スプリント 実装・レビュー・FT スプリント 課題発見・仮説検証
  44. ⓒ 2022 atama plus Inc. E2Eテストの自動化 • リリーステストにおけるE2Eテストの自動化の知見を活かして、FT(Feature Test)のE2Eテストも効率化できないか、という検討がとあるチームで始まる 65

    新しい試み 2 リリース スプリント リリーステスト (リグレッションT) スプリント 実装・レビュー・FT スプリント 課題発見・仮説検証 良い取り組みや知見を積極的にシェア・取り入れていく動きができる____
  45. ⓒ 2022 atama plus Inc. 66 2 E2Eテストの 自動化 1

    ユニット テストの拡充 4 ナレッジ 平準化 3 体験 バッシュ
  46. ⓒ 2022 atama plus Inc. 体験バッシュ • 体験バッシュとは • 「体験バッシュ」は、私達のチームが考えた造語

    • プロダクトの不具合を見つけ出すためのバグバッシュの中でも、よりユー ザーの体験に重きを置いた取り組みのこと • 機能的なバグはもちろんのこと、ユーザーが触った時に体験としておかし くないか・わかりづらくないか、に主眼を置いて自分たちで機能を使って みる活動を「体験バッシュ」と名付けた 67 新しい試み 3
  47. ⓒ 2022 atama plus Inc. 体験バッシュ • 大学入試向け機能開発では、大学など社外ステークホルダーが多かったり、入 試に間に合うようにスケジュールが厳密に決まっていたりという特色があった •

    全体の仕様やスケジュールが出揃う前に、決まった機能から五月雨式に開発す るスタイルで進んだ • そんな条件下で開発を進める中、「全体を通して体験がおかしくないか、文言 等UIに一貫性があるかを最後に確認したいね」とチームメンバーから声が上が り、「体験バッシュ」を実施することになった • 最終的に11点のFBが集まり、8点をプロダクトに反映した 68 新しい試み 3
  48. ⓒ 2022 atama plus Inc. 体験バッシュ 69 新しい試み 3 その後、色々な機能開発で「体験バッシュ」が実施されるようになってきた

    あるチームで生まれた造語「体験バッシュ」が広まってきた 良い取り組みや知見を積極的にシェア・取り入れていく動きができる____
  49. ⓒ 2022 atama plus Inc. 70 2 E2Eテストの 自動化 1

    ユニット テストの拡充 4 ナレッジ 平準化 3 体験 バッシュ
  50. ⓒ 2022 atama plus Inc. ナレッジ平準化 71 新しい試み 4 プロダクトも開発組織もどんどん拡大している

    (特に会社やプロダクト特有の)ナレッジを文書として残したい • 社歴の長い人に聞かないとわからないことがどうしてもある • 社歴の長い人じゃないと気が付けないことがある
  51. ⓒ 2022 atama plus Inc. ナレッジ平準化(なにを いつ 書くか) 72 新しい試み

    4 ナレッジを残したいslack投稿に 「コンフル化」のemojiをつける
  52. ⓒ 2022 atama plus Inc. 専用のチャンネルに 投稿が転送される ナレッジ平準化(なにを いつ 書くか)

    73 新しい試み 4 ナレッジを残したいslack投稿に 「コンフル化」のemojiをつける
  53. ⓒ 2022 atama plus Inc. 専用のチャンネルに 投稿が転送される ナレッジ平準化(なにを いつ 書くか)

    74 新しい試み 4 ナレッジを残したいslack投稿に 「コンフル化」のemojiをつける 現在1チームでトライアル中 チーム出社日(水曜日)に時間を 取って、みんなでもくもく
  54. ⓒ 2022 atama plus Inc. 前半:アジャイルテスティングをどうやって広めたか • アジャイルテスティングのノウハウのうち、取り込みやすいものを開発プロセ スに取り込んでみる •

    「Agile Testing Condensed」の日本語訳をQAメンバーで読んでみる • 「Agile Testing Condensed」の日本語訳を各開発チームで読んでみる • さらに各チームで2時間のワークショップを開催 • 現在は、「Agile Testing Condensed」が開発チームに新しくjoinする人の課題 図書になっている • 読み終わったら、既存社員何名かと認識合わせ会を実施する 75 まとめ
  55. ⓒ 2022 atama plus Inc. 後半:品質向上につながる具体的な事例紹介 • チーム内で仕様の認識ズレを防ぐために「ふるまいを書く」ことによって手戻 りを減らした •

    チームで共通認識が取れる • サブタスクが切りやすい • 上記以外にも、色々なところで自発的な取り組みが行われている • ユニットテストの拡充 • E2Eテストの自動化 • 体験バッシュ • ナレッジ平準化 76 まとめ