Slide 1

Slide 1 text

AgilityとQualityを両立し 競争力を高めるプロダクト開発手法 pmconf 2021

Slide 2

Slide 2 text

● Autify Co-founder & CEO ● エンジニア歴10年以上、3カ国で開発に従事 ● ブログ「顧客のBurning needsを解決する」 自己紹介 Ryo Chikazawa (近澤 良)

Slide 3

Slide 3 text

Blog & Podcast

Slide 4

Slide 4 text

セッション満足度 1位 を獲得 再演動画はYoutubeに pmconf 2020

Slide 5

Slide 5 text

概要・沿革 30名

Slide 6

Slide 6 text

Sales & Marketing / 2 Global team 󰏦󰑔󰑍󰐣󰏙󰑐󰐮󰏅 CEO & Co-founder Ryo Chikazawa CTO Hayato Matsuura COO Taka Shimizu Development / 14 CS / 6 Admin / 2 US / 3

Slide 7

Slide 7 text

AutifyのSolution No codeで誰でも簡単 AIがメンテナンス AIを用いたWeb/MobileアプリのE2Eテスト自動化サービスです。

Slide 8

Slide 8 text

Autify for Web & Autify for Mobile Autify for Web, for Mobile デモリクエスト受付中

Slide 9

Slide 9 text

Agilityがなぜ重要か

Slide 10

Slide 10 text

● 競争環境の激化 ● 継続的に価値を届ける必要 → 素早く変化し続けなければ生き残れ ない なぜAgilityが重要か

Slide 11

Slide 11 text

大手テック企業の例 1日1,000回以上デプロイ 11.7秒毎にデプロイ * 10 companies killing it at DevOps 彼らに匹敵する競争力が求められてきている

Slide 12

Slide 12 text

リリース頻度調査 45.1%が週1回以上リリース → 顧客ニーズの素早い変化に対応するには、高速なリ リースサイクルが必要不可欠 週1回以上 29.3% 週1回 15.8% 隔週 16.7% 1ヶ月に1回 17.5% 3ヶ月に1回 7.2% わからない 10.9% リリース頻度(Autify調べ) 半年に1回 2.6%

Slide 13

Slide 13 text

こんなことありませんか?

Slide 14

Slide 14 text

機能開発に想定以上の時間 がかかっている こんなことありませんか?

Slide 15

Slide 15 text

リリースする度に バグが出る こんなことありませんか?

Slide 16

Slide 16 text

QAが長くてなかなか リリースできない こんなことありませんか?

Slide 17

Slide 17 text

いつもユーザーの指摘で バグに気づく こんなことありませんか?

Slide 18

Slide 18 text

このどれかに当てはまる場合 AgilityとQualityがトレードオフ になってしまっている Agility vs Quality

Slide 19

Slide 19 text

Agility vs Quality

Slide 20

Slide 20 text

Quality x Agility Quality Agility 低い 高い 低い 高い Low quality trade-off Agility: High Quality: Low Low performer Agility: Low Quality: Low Low agility trade-off Agility: Low Quality: High Elite Agility: High Quality: High

Slide 21

Slide 21 text

プロダクトローンチ前~直後 ● QualityよりAgilityを優先 ● 品質が良くてもユーザーに受け入れられないと意味がない ● 少し壊れていても早く出して改善を重ねる

Slide 22

Slide 22 text

プロダクトローンチ前~直後 Quality Agility 低い 高い 低い 高い Low quality trade-off Agility: High Quality: Low Low performer Agility: Low Quality: Low Low agility trade-off Agility: Low Quality: High Elite Agility: High Quality: High

Slide 23

Slide 23 text

プロダクトローンチ1~2年後 ● 徐々にユーザーが増え品質基準が上がる ● プロダクトが複雑化 ● Qualityを優先してQAに時間をかける

Slide 24

Slide 24 text

プロダクトローンチ1~2年後 Quality Agility 低い 高い 低い 高い Low quality trade-off Agility: High Quality: Low Low performer Agility: Low Quality: Low Low agility trade-off Agility: Low Quality: High Elite Agility: High Quality: High

Slide 25

Slide 25 text

Quality Agility 低い 高い 低い 高い Low quality trade-off Agility: High Quality: Low Low performer Agility: Low Quality: Low Low agility trade-off Agility: Low Quality: High Elite Agility: High Quality: High トレードオフが発生

Slide 26

Slide 26 text

Quality Agility 低い 高い 低い 高い Low quality trade-off Agility: High Quality: Low Low performer Agility: Low Quality: Low Low agility trade-off Agility: Low Quality: High Elite Agility: High Quality: High トレードオフから脱却する

Slide 27

Slide 27 text

Agility & Quality

Slide 28

Slide 28 text

なぜトレードオフが発生するのか 1. 技術負債が溜まる 2. 品質基準が上がる 3. テスト量が増える

Slide 29

Slide 29 text

1.技術負債が溜まる 技術負債とは、変更のコストが負債のよ うに積み上がっていくこと 原因 ● 過去の仕様の負債化 ● システムの複雑化 ● テストしにくいコード ● etc

Slide 30

Slide 30 text

技術負債が溜まると ● 変更が広範囲に ● 予期せぬバグの発生 ● 仕様理解に時間がかかる → 開発に想定以上の時間がかかる

Slide 31

Slide 31 text

技術負債は避けられない ● 仕様は変わり続ける ● 完璧な設計はない ● 完璧なコードはない 借りすぎず、返済プランがあれば、負債 は悪いことではない。

Slide 32

Slide 32 text

技術負債をどのように返却するか ● 進み続ける限り負債は溜まる ● 一度に完済はできない → 定常的に返却する Autifyではスプリントの30%を改善に当 てている

Slide 33

Slide 33 text

2. 品質基準が上がる ● ユーザー・顧客増 ● バグによる売上げインパクト増 ● 信頼毀損のインパクト増

Slide 34

Slide 34 text

品質基準を定義する ● バグをゼロにする ● 絶対に守るべきものは何か ● バグが出ても迅速に対応する仕組 みを構築

Slide 35

Slide 35 text

3.テスト量が増える ● 品質基準の上昇に伴いカバー範囲 が広がる ● 機能が増える → 自動化しない限り、QAにかかる時間 は長くなり続ける

Slide 36

Slide 36 text

テストを自動化する ● まずUnit/Integrationテストを書く ● カバーしきれない部分をE2E自動テ スト/手動E2Eテストで補う

Slide 37

Slide 37 text

● Unit/Integrationがほとんどない ● 大部分を手動E2Eテストに依存 ● 自動E2Eテストがほとんどない場合も Ice cream cone

Slide 38

Slide 38 text

テスト自動化戦略 ● Ice cream coneの解消は容易では ない ● Unit/Integrationを増やしつつ ● E2Eテストを自動化して負荷を下げ る

Slide 39

Slide 39 text

LayerX様の事例 ● Autifyを活用してE2Eテストの自動 化 ● ピラミッドを上下から攻略 ● 機能が増えてもリリース頻度を保て ている LayerXのQAへの取り組み〜アイスクリームの誘惑に負けるな〜

Slide 40

Slide 40 text

Shift LeftとShift Right Spec Design Implementation Test Deploy Shift Left より早くテストする Shift Right 本番でテスト

Slide 41

Slide 41 text

修正コストは後になるほど高い ● NASAのリサーチ ● リリース後の修正コストは開発中の 最大100倍 ● 早くバグに気づけば修正コストもそ の分低い →より早く頻繁にテストを回す Relative Cost to Fix an Error Average Cost Ratio 400 300 200 100 0 500 600 1 3-6 10 15-40 30-70 40-1000 Requirements Design Coding Development Testing Acceptance Testing Operation Phase in Which Found

Slide 42

Slide 42 text

Measuring the success

Slide 43

Slide 43 text

1. Deployment Frequency 2. Lead Time for Changes 3. Change Failure Rate 4. Time to Restore Service → Autifyでは現在1と3を追っている DORA Metrics by Google Are you an Elite DevOps performer? Find out with the Four Keys Project

Slide 44

Slide 44 text

● 週のデプロイ回数をトラック ● 四半期でデプロイの目標数値を設 定 Deployment Frequency

Slide 45

Slide 45 text

● デプロイ毎の問題発生率 ● 15%以下に抑えると良い Change Failure Rate

Slide 46

Slide 46 text

まとめ

Slide 47

Slide 47 text

Quality Agility 低い 高い 低い 高い Low quality trade-off Agility: High Quality: Low Low performer Agility: Low Quality: Low Low agility trade-off Agility: Low Quality: High Elite Agility: High Quality: High トレードオフから脱却する

Slide 48

Slide 48 text

まとめ Eliteを目指すために ● 技術負債は定期的に返済 ● 品質基準を定義 ● テストは自動化し、より早く頻繁に回 す

Slide 49

Slide 49 text

積極採用中!(フルリモート) 全方位で募集中 デモリクエスト受付中! ● Autify for Web トライアル受付中 ● Autify for Mobile デモリクエスト受付中 デモリクエスト受付中 & 積極採用中 https://autify.com/ja https://autify.com/ja/careers https://autify.com/ja/mobile