SlideShare a Scribd company logo
Agile Japan × JaSSTコラボ企画
「開発がスクラム導入するん
だって!試験どーしよ!?」
-サイボウズQAスクラム奮闘記-
2018/03/07 JaSST’18 Tokyo
登壇者
• 矢引 達教(サイボウズ)
• 岡崎 一洋(サイボウズ)
• 天野 祐介(サイボウズ、Agile Japan 実行委員)
• 今村 博明(Agile Japan 実行委員長)
• 和田 憲明(Agile Japan 実行委員)
タイムテーブル
• 導入(5分)
• 事例1: 2万社のユーザーを支える共通基盤
チームでスクラムをやってみて(40分)
• 事例2: 複数拠点での大規模スクラムへの挑戦
(40分)
• 質疑応答(5分)
「開発がスクラム導入するんだって!試験どーしよ!?」 -サイボウズQAスクラム奮闘記-
2 万社のユーザーを⽀える
共通基盤チームで
スクラムをやってみて
2018/03/07 JaSST’18 Tokyo
自己紹介
• 矢引達教 @yabbysan
• サイボウズ株式会社
グローバル開発本部 東京品質保証部
• 2012年 新卒でサイボウズに入社、QA
• 趣味:ヨガ
会社概要
• サイボウズ株式会社
• 事業内容:「グループウェア」の開発・販売・運用
ミッション
「チームワークあふれる社会を創る」
大企業向けグループウェア
メール共有システム業務アプリ構築クラウド
中小企業向けグループウェア
大企業向けグループウェア
メール共有システム
業務アプリ構築クラウド
中小企業向けグループウェア
クラウドサービス cybozu.com
• 2011年 サービス開始
• 導入社数 20,000社以上
• 契約ユーザーライセンス数 80万人以上
※2017.12.30時点
ボウズマン
チームの開発体制
• cybozu.comの管理者機能の開発を担当
• ユーザー管理、セキュリティ設定など
• 開発は日本、試験は日本+上海の2拠点
• 開発 5名 / QA 5名 / PO 1名
(管理者機能のキャプチャ)
ユーザー管理
スクラム導入前
スクラム導入前の開発プロセス
• ウォーターフォール
• 開発期間が終わってから試験を開始
• 開発6週間、試験6週間
リ
リ
ー
ス
6週間6週間
設計&実装要件定義
テスト設計
テスト実行
(
リ
リ
ー
ス
に
向
け
た
作
業
)
😢スクラム導入前の問題点
• バグの検出が遅い
• 類似バグが複数箇所に埋め込まれてしまう
• 実装担当者の記憶が薄れており調査に時間がかかる
• 要件が曖昧なまま開発がスタート
• 手戻りが発生しやすい
• 開発とQAの隔たり感
• 実装期間が終わると開発者は次期版に着手
• 重要な情報がQAに伝わっていないことがある
• 結合試験のタイミングについて連絡が漏れる
スクラムトレーニングを
受講
えーっ!
試験はどうやればいいの!?
スクラムやってみよう!
不安はあるけど
スクラム開始までの準備(1/4)
• 『カンバン仕事術』の輪講
• 見える化
• WIP制限
• 同時に進める仕事の数を制限する
• 仕事一つ一つが早く終る
👉スクラム関係なくおすすめ
「開発がスクラム導入するんだって!試験どーしよ!?」 -サイボウズQAスクラム奮闘記-
スクラム開始までの準備(2/4)
• Readyの定義の策定
• 開発チームが着手できるバックログの基準
• 「開発チームが納得できる
ユーザーストーリーがある」
• 「受け入れ条件が定義されている」etc
スクラム開始までの準備(3/4)
• スプリント単位での完了の定義の策定
• 何を持って「完了」とするかを定義したリスト
• スプリント単位でどこまでやるか、の基準
• テストに関することをどこまで含めるか
• 「テスト設計が完了する」??
• 「(性能テストを含め)全てのテストが完了」??
スクラム開始までの準備(3/4)
• 開発チームの実力に合わせることが大事
• 完了の定義に含めなかったこと
• 「テスト実行を完了する」
• 次のスプリントで完了することをチームの目標にした
• 「脆弱性検証・性能検証を完了する」
• 社内の脆弱性検証チーム・性能検証チームが行う検証。
2,3スプリントまとめて実施するようにした
• 完了の定義に含めたこと
• 「テスト設計が完了している」etc
スクラム開始までの準備(4/4)
• アジャイルQAの実践者の講演を聞く
• 社内勉強会にお招きして講演して頂く
• 株式会社日新システムズ 永田 敦 さん
• QAから開発への
素早いフィードバック
の重要性を認識
• 覚悟を決めた
社内勉強会の様子
スクラム導入後
スクラム導入後の開発プロセス
• 1スプリント=2週間
• リリース単位は6スプリント+リリーススプリント
…スプリント1 スプリント2 スプリント3
設計&実装
テスト設計
テスト実行
設計&実装
テスト設計
テスト実行
設計&実装
テスト設計
スクラム導入の
メリット
スクラムのフレームワークが
与えた効果
バグの
早期検出
要件の
明確化
チームの
一体感
• 作り込まれたバグを早く検出できる
• 実装完了からバグ検出までの期間が短縮
移行前: 28日 → 移行後: 7日
• 類似バグが量産されることを防ぐことができる
• 開発者の記憶が新しいため問い合わせの返答が早い
• 完了の定義に「テスト設計が完了する」を含めた
• テスト実行は次のスプリントまでに完了することを目標にした
バグの早期検出
• 認識の齟齬による手戻りの減少
• 非機能要件の漏れを早期に指摘できる
• 脆弱性検証の担当者(社内)が要件検討会に参加
• セキュリティの観点を上流でチェックできる
Readyの定義に受け入れ条件の明確化を含めた
要件の明確化
開発チームの一体感
QA 開発
早めに動作確認しておきますね
試験しやすい機能を
追加するね
結合試験のタイミングに
注意した方がいいかも
• QAは開発のリクエストに応えられるようになった
• 開発はQAのことをより気にかけてくれるようになった
スクラムをやれば必ず
生産性が向上する?
メンバーが成長する?
プロダクトを改善できる?
スクラムは
問題発見のフレームワーク
スクラム移行時に
直面した問題
• 実際に遭遇した問題を紹介します
• グループワークの題材とします
• 「自分だったらどう対応するか?」を
考えてみてください
グループ作成&自己紹介
「試験設計のレビューが
間に合わない!?」
背景
• スクラム移行前のテスト設計プロセス
• テスト設計レビューを2段階で実施
• テスト設計は上海QAが担当
• レビュー①は上海QAで担当(クロスチェック)
• レビュー②は東京QAが担当
• 完了の定義に「テスト設計が完了すること」を含めた
• レビュー②でボトルネックが深刻化
テスト
設計
テスト設計
レビュー①
テスト設計
レビュー②
テスト
実行
😊
😊
😊
😊上海QA(4名) 😓東京QA(1名)
ボトルネック深刻化
私
問題
「試験設計のボトルネックを解消するには?」
• 東京QAは1名のみ
• 東京QAの増員は難しい
• レビュー②でのレビュー観点
• テスト観点に不足は無いか(漏れがないか)
• 東京QAに属人化している
• 省略できる組み合わせは無いか(無駄は無いか)
• 省略できそうな組合せがあれば開発者に質問する
• スクラム移行前のテスト設計プロセス
• テスト設計レビューを2段階で実施
• レビュー①は上海QAで担当(クロスチェック)
• レビュー②は東京QAが担当
• テスト観点に不足は無いか(漏れがないか)
• 省略できる組み合わせは無いか(無駄は無いか)
• 完了の定義に「テスト設計が完了すること」を含めた
テスト
設計
テスト設計
レビュー①
テスト設計
レビュー②
テスト
実行
😊
😊
😊
😊上海QA(4名) 😓東京QA(1名)
ボトルネック深刻化
問題
「試験設計のボトルネックを解消するには?」
ボトルネックを解消する案を考えて付箋に書き出してください
(いくつ挙げてもOKです)
解決策
-私達のチームではこのように対応しました-
開発(4名)
解決策:レビュー②の属人化を解消した
• 漏れのチェックを前倒しで確認する
• チェック観点をリストにしてレビュー①で確認する
• 無駄のチェックを開発者に依頼する
• 開発者にテスト設計レビューに参加してもらう
テスト
設計
テスト設計
レビュー①
テスト設計
レビュー②
テスト設計
レビュー②
テスト
実行
😊
😊
😊
😊上海QA(4名) 😓東京QA(1名)
😏
😏
😏
😏
無駄の
チェック
漏れの
チェック
漏れのチェック
無駄のチェック
廃止 NEW!
👉
👉
チームの問題はチームで解決する
• チーム内で問題に対する共通認識を持つ
• カンバンでチームの進捗を見える化
• チームで共通の理想を持つ
• 完了の定義にテストに関することを含めて合意する
• 職能間のスキルの障壁を下げる
• 「QAしかできない」作業をできるだけ減らす
• 開発者が見やすいように試験仕様書の形式をExcelからマインドマップに移行
QAのみで解決しようとせずに
チーム全体で解決に取り組む
課題
• リリースサイクルの短縮
• リリースに必要な試験の実施タイミングの調整
• 1スプリント内でテスト実行まで完了する
• スプリント開始前のテスト工数の見積もり
• 職能間のスキルの障壁を下げる
• QAによるテスト自動化の推進
• 拠点間コミュニケーションのさらなる促進
まとめ
• スクラム移行のためにやったこと
• スクラム移行によるメリット
• バグの早期検出
• 要件の明確化
• チームの一体感
• スクラムは問題発見のフレームワーク
• チームの問題はチームで解決する
イラスト提供:8suke/人物イラスト館
http://jinbutuillust.businesscatalyst.com
「開発がスクラム導入するんだって!試験どーしよ!?」 -サイボウズQAスクラム奮闘記-
Agile Japan x JaSST
JaSST’18 Tokyo
複数拠点での
大規模スクラムへの挑戦
岡崎 一洋
サイボウズ株式会社
グローバル開発本部 東京品質保証部 副部長
いわゆるプレイングマネージャー
・サイボウズ Garoon QA責任者
・スクラムマスター
長年QAをやっていたが、昨年からスクラムマスターも開始。
最近の楽しみは子どもを連れてウサギの散歩。
About me
Garoon とは?
中堅・大規模向けのグループウェア
生産性・チームワーク向上の支援
「開発がスクラム導入するんだって!試験どーしよ!?」 -サイボウズQAスクラム奮闘記-
Garoon の開発体制
日本、ベトナム、中国の3拠点で開発
・開発モデルは一般的なウォーターフォール。
・テストは海外がメインで日本QAはマネジメント中心。
・リリースサイクルは6ヶ月ごと。
PM
日本
PG
日本
越南
中国
QA
日本
越南
中国
要件 実装 テスト
SRE
日本
リリース
1ヶ月 2ヶ月 2ヶ月 1ヶ月
Garoon
開発チーム
スクラム導入前
スクラム導入後
東京 (3チーム)
中国 (1チーム)
越南 (4チーム)
・(Nexus Integration Team)
・Jupiter Team
・Moon Team
・Mars Team
・Vela Team
・Draco Team
・Cetus Team
・Leo Team※Nexus Integration Teamは全体の統括を行っている
3拠点 8チーム
・各拠点ごとにスクラムチームを形成。
・星をモチーフにしたチーム名を付けている。
開発プロセス
・スプリントのタイムボックスは3週間。
・リリースサイクルは3ヶ月ごと。
・大規模スクラムのフレームワーク「Nexus」を採用。
・リリース前のスプリントでは機能実装しない。
・回帰テストや技術的負債の対応、次バージョンの準備など。
※1スプリント=3week
SP1 SP2 SP3 SP4 SP5 SP6 ・・・
リリース
スクラムイベント(1/2)
・スプリントプランニング
・各チームごとに実施、2~3時間確保しているチームが多い。
・デイリースクラム
・各チームごとに毎朝実施、15分が基本。
・スクラム・オブ・スクラム
・各チームの代表者+Nexusメンバーで実施、30分確保。
・チームを跨ぐ問題やその他トピックがあるときのみ開催。
・TV会議システムを利用して3拠点接続している。
・スプリントレビュー
・全スクラムチーム+プロダクト関係者で実施、2時間確保。
・TV会議システムを利用して3拠点接続している。
スクラムイベント(2/2)
・レトロスペクティブ
・各チームごとに実施、1~2時間確保しているチームが多い。
・レトロスペクティブ・オブ・レトロスペクティブ
・各チームの代表者+Nexusメンバーで実施、1~2時間確保。
・全チームに影響するふりかえり内容を取り扱う。
複数拠点大規模スクラムへの道のり
スクラム導入を決めたが…
導入
導入
プロダクトメンバー全員がスクラム未経験
導入
複数拠点同時導入は失敗のフラグ?
まずは日本のみスタート!
導入
いきなり問題発生!
日本のQAが足りない…
・当時は、PGが7名に対してQAは2名。
・日本QAはマネジメント中心だったため。
・1名はスクラムマスターをやるため、QAは実質1名となる。
導入
スクラムチームに日本QAが足りない?
試験どーしよ!?
チームで話し合った結果…
導入
スクラムの基本に則るのは諦める
・スプリント完了時に出荷可能な状態。
▶スプリント内では実装完了までとし、
次のスプリントでテスト設計/テスト実施。
・チームメンバーが物理的に同じ場所にいる。
▶テスト設計/テスト実施は海外拠点で行う。
導入
SP1 SP2 SP3 SP4 SP5 SP6
SP1で実装したものをSP2でテスト
SP2で実装したものをSP3でテスト
数スプリント回した結果
結論だけ、書く。
「失敗した失敗した失敗した失敗した失敗した
失敗した失敗した失敗した失敗した失敗した
失敗した失敗した失敗した失敗した失敗した
失敗した失敗した失敗した失敗した失敗した
私たちは失敗した失敗した失敗した失敗した
失敗した失敗した失敗した失敗した失敗した」
とあるスプリントのバーンダウン
導入
失敗の主な原因
導入
・価値分割できずバックログアイテムが巨大化。
・WIP制限がなく仕掛中のタスクが多数発生。
・割り込みタスクを無条件で受け入れ。
・準備不足によるプロセス不備。
・職能の壁がありチームでバックログを完了させる
という意識が低かった
課題はまだ残っていたが、
海外拠点でも導入することに
海外展開時にやったこと
海外展開
担当の配置換えを行いQAリソースを確保
日本のQAリソース確保 海外展開
大規模スクラムフレームワーク導入
・Nexusのフレームワークを導入
・Nexusをベースに複数チームでの開発プロセスの再構築
▶SoS、レトロスペクティブ、スプリントレビュー、Nexusリファインメントなど
・Nexus Integration Teamは、日本拠点メンバーで構成
導入
PO
SM
メンバー
※職能的には以下の構成
PM
QAマネージャ(私)
PGマネージャ
PG
日本拠点の
メンバーで構成
用語や考え方などの認識を揃える
拠点メンバーでスクラム研修受講 海外展開
実際に一緒に活動することで理解の促進
現地でOJT実施 海外展開
QAはどうだったか?
海外展開
PG(開発)と比べると、
QA(テスト)の方が変化が大きい(と思う)
海外展開
テストを段階的にスクラムに適応させる
海外展開
SP4 SP5 SP7 SP9
SP3から
海外展開
探索的テスト
取り入れ
SP内で
テスト設計
PGテスト参加
カンバン統一
同一SPで
開発/テスト
テスト設計
手法見直し
テスト自動化
SP?
QAからの
品質フィード
バック モブ/ペア
テスト
性能テスト
CI対応
拠点横断
でのテスト
DEVQAOps
海外展開
グループワーク
問題
「スプリント内にテストを完了させる
ためチームにどう働きかける?」
問題
「スプリント内にテストを完了させるためチームにどう働きかける?」
・テスト設計の方法
・機能(開発)仕様書が作成されてからテスト設計を開始。
・テスト設計/レビューともにQAメンバーが担当。
・テストの実施方法
・該当のPBIの実装タスクがすべて完了してからテストを開始。
・テストの実施はQAメンバーが担当。
・その他の状況
・チームにはPG4~5人に対して、QAが2~3名いる状態
・テスト関連のタスクは実装タスクと同様にカンバンに付箋あり。
・機能仕様書は実装中または、実装後に作成されることが多い。
・ユニットテストはPGにより行われているが、QAに共有なし。
問題発生時のチームの状況
チームへの働きかけの案を考えて付箋に書き出してください
(いくつ挙げてもOKです)
Solution
- 我々のチームが取った行動 -
Solution 1
ギルドを結成してAgile Testingを学ぶ
・ PG/QAの有志メンバーでギルドとして活動。
・「実践アジャイルテスト」をActive Book Dialogue 手法で勉強会。
・参加メンバーを通じてPGメンバーに品質意識が芽生える。
Solution 1
ABDの様子
Solution 1
カンバンによる物理WIP制限
・物理カンバンを変更して貼れる付箋を制限
・PBIを置けるスペースを狭くし、PBIのタスクが完了しないと、
次のPBIを貼れないように制限。
・テストも含めてチームでタスクを完了させる意識が根付いた。
Solution 2
Before
PBI
After
PBI
Solution 1
テスト設計プロセスの見直し
・要求仕様書、リファインメント結果でテスト設計。
・実装とテスト設計が同時に開始でき、
機能仕様書からは差分のアップデートを行うようになった。
・これにより、テスト実施のタイミングが早まった。
Solution 3
Solution 1
職能間の障壁を下げる
・チームのクロスファンクショナル化。
・できる作業は職能に関係なく着手。
・QAが機能仕様書の作成や、テスト自動化など。
PGメンバーがテストの実施や、テスト仕様書のレビューなど。
・これにより、作業の手待ちのムダが軽減された。
Solution 4
PG QA PG QA
※重なる領域を増やして職能間の障壁を下げる!
課題
Solution 1課題
・チーム間での格差が大きい
・アジャイルテスティングになりつつあるチームもあれば、
まだ移行に踏み出せていないチームもある。
・大規模スクラムの探求
・チーム間の情報共有や、バックログの振り分け、
各種スクラムイベントの進め方など改善ポイントが多数。
・拠点、場所に依存しないチーム形成
・100人100通りの働き方をした場合でも生産性の高いチーム作り。
ご清聴ありがとうございました
Q&A

More Related Content

PDF
アジャイル開発とメトリクス
PDF
4つの戦犯から考えるサービスづくりの失敗
PPTX
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
PDF
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
PPTX
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
PDF
自動テストの誤解とアンチパターン in 楽天 Tech Talk
PDF
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
PDF
100%Kotlin ORM Ktormを試してみた
アジャイル開発とメトリクス
4つの戦犯から考えるサービスづくりの失敗
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
自動テストの誤解とアンチパターン in 楽天 Tech Talk
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
100%Kotlin ORM Ktormを試してみた

What's hot (20)

PDF
ユーザーストーリー駆動開発で行こう。
PDF
アジャイル開発を支えるアーキテクチャ設計とは
PDF
正しいものを正しくつくる
PDF
イミュータブルデータモデル(入門編)
PDF
テスト自動化入門@Graat勉強会
PDF
ChatGPTは思ったほど賢くない
PDF
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
PDF
マイクロにしすぎた結果がこれだよ!
PDF
今どきの若手育成にひそむ3つの思いこみ
PDF
テスト計画の立て方 WACATE2019 夏
PDF
フロー効率性とリソース効率性、再入門 #devlove #devkan
PDF
上っ面スクラムチームにならないために気を付けたいこと
 
PPTX
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
PPTX
Jasst'21 niigata_事例紹介_インプロセスQAをした時のtips
PDF
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
PDF
あなたはPO?PM?PdM?PjM?
PDF
テストを分類してみよう!
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
PDF
What should you shift left
PDF
サービス開発における フロントエンド・ドメイン駆動設計の実践
ユーザーストーリー駆動開発で行こう。
アジャイル開発を支えるアーキテクチャ設計とは
正しいものを正しくつくる
イミュータブルデータモデル(入門編)
テスト自動化入門@Graat勉強会
ChatGPTは思ったほど賢くない
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
マイクロにしすぎた結果がこれだよ!
今どきの若手育成にひそむ3つの思いこみ
テスト計画の立て方 WACATE2019 夏
フロー効率性とリソース効率性、再入門 #devlove #devkan
上っ面スクラムチームにならないために気を付けたいこと
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
Jasst'21 niigata_事例紹介_インプロセスQAをした時のtips
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
あなたはPO?PM?PdM?PjM?
テストを分類してみよう!
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
What should you shift left
サービス開発における フロントエンド・ドメイン駆動設計の実践
Ad

Similar to 「開発がスクラム導入するんだって!試験どーしよ!?」 -サイボウズQAスクラム奮闘記- (20)

PDF
QAにおけるスクラム導入 Before/After
KEY
スクラムプロジェクト準備(公開用) No.31
PPTX
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
PDF
テストエンジニアのおっさんの日常です
PDF
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組み
PDF
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
PDF
SGT2013 技術トークス「アジャイルテスティング」
PDF
アジャイル×テスト開発を考える
PDF
振り返ればカンバンがある ~チームとカンバンとProduct Ownership~
PDF
大規模ソフトウェア開発とテストの経験について
PDF
テスト勉強会よしおか100311 1
PPTX
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
PDF
世界のソフトウェアテストの会議 (JaSST 2018 東京)
PDF
Na ite 28_op
PPTX
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
PDF
異業種でのテスト自動化の実際
PDF
Agile Japan 2017 長崎サテライト with NaITE 開会のご挨拶
PDF
Conference Summary Report: STARWEST 2017, Agile Testing Days 2017 ( #JaSST )
PPTX
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
PDF
NaITE27_op
QAにおけるスクラム導入 Before/After
スクラムプロジェクト準備(公開用) No.31
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
テストエンジニアのおっさんの日常です
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組み
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
SGT2013 技術トークス「アジャイルテスティング」
アジャイル×テスト開発を考える
振り返ればカンバンがある ~チームとカンバンとProduct Ownership~
大規模ソフトウェア開発とテストの経験について
テスト勉強会よしおか100311 1
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
世界のソフトウェアテストの会議 (JaSST 2018 東京)
Na ite 28_op
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
異業種でのテスト自動化の実際
Agile Japan 2017 長崎サテライト with NaITE 開会のご挨拶
Conference Summary Report: STARWEST 2017, Agile Testing Days 2017 ( #JaSST )
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
NaITE27_op
Ad

「開発がスクラム導入するんだって!試験どーしよ!?」 -サイボウズQAスクラム奮闘記-

Editor's Notes

  • #3: このセッションはAJとJaSSTのコラボ企画です。和田さん経由でAJにコラボ企画の相談があり、QAとアジャイルという観点でコンテンツを検討しました。その中で私がサイボウズのQAプロセスがスクラム導入とあわせてすごく変わったという話をして、それを事例として提供させていただくことになりました。 登壇者はこちらの5名です。サイボウズの2名にはQAの現場メンバーとしてアジャイルなQAに取り組んだ事例を発表していただきます。私はモデレータとして全体の進行をお手伝いします。AJ実行委員の2名はグループワークなどのお手伝いをさせていただく予定です。
  • #4: 全体の進行はこのように進めます。各事例の中で、実際に遭遇した問題や現在直面している問題についてグループワーク形式で議論してみましょう。イメージは「世界ふしぎ発見!」です笑 サイボウズでの事例を通して、アジャイルなQAについてみなさんで議論を深めていければと思います。
  • #7: サイボウズ株式会社 グローバル開発本部 東京品質保証部の矢引達教と申します。 2012年に新卒でサイボウズに入社して以来、 主にクラウドサービスのアプリケーションのQAを担当しています。 趣味はヨガと書きましたが、2週間前にヨガ教室に通い始めてまだ3回しか行っていないので、 これから趣味になってほしいなという気持ちを込めてここに記載しています。
  • #8: まずは弊社について簡単にご紹介します。 サイボウズ株式会社は、 「チームワークあふれる社会を創る」というミッションのもと、 グループウェアの開発・販売・運用をしています。
  • #9: 主な製品は企業向けグループウェアのサイボウズOffice,ガルーン、 業務アプリ構築クラウドのkintone、メール共有システムメールワイズといった製品があります。
  • #10: 2011年に提供を開始したクラウドサービスcybozu.comでは、 これらのアプリケーションをクラウドサービスとして提供し、 導入者数2万社以上、契約ユーザーライセンス数80万人以上のお客様にご利用いただいています。
  • #11: まずは私達のチームの開発体制についてお話しします。 クラウドサービスcybozu.comの管理機能の開発を行なっています。 こちらは画面の例なのですが、 kintoneやガルーンといったアプリケーションを利用するユーザーやその組織の情報をシステム管理者が管理をするための機能です。 こういった機能を開発しています。 開発は日本で行い、試験は日本と上海の2拠点体制です。 メンバー構成は、プログラマは4〜5名、QAは5名、プロダクトオーナーは1名です。
  • #12: ユーザー管理機能とは、こういった、組織やユーザーの情報を管理するためのシステム管理者向けの機能のことです。
  • #13: スクラム導入前の開発プロセスについて説明します。
  • #14: スクラム導入前は、ウォーターフォール型を採用していました。 テスト設計の一部は開発期間と並行して進めていましたが、 開発期間が終わってからテスト実行を開始していました。 開発期間と試験期間はどちらも1.5ヶ月くらいずつでした。
  • #15: スクラム導入前に感じていた問題点は、次のようなものがありました。 実装から試験開始までにラグがあるため、どうしてもバグの検出が遅くなってしまいます。 それによって、原因が似たようなバグが複数箇所に埋め込まれてしまったり、 テスト対象に関する質問をしても、実装担当者が記憶が薄れているため調査に時間がかかることがありました。 また、先ほどウォーターフォール型と言ったのですが、 設計に着手する前に要件のチェックを行うプロセスが明確には存在していなかったので、 要件が曖昧な状態で開発を開始してしまい、 要件の考慮漏れに気づくのが遅くなり手戻りが発生してしまうことが何度かありました。 さらに、試験期間は開発者はもう次のバージョンの開発に着手しているため、 開発チームとして同じものを開発しているという感覚が薄く、チームとしての一体感が薄いという状態でした。 また、共通管理機能という製品の都合上、社内の他のチームが開発する製品との結合試験が度々必要となるのですが、 開発者間では共有されていた情報がQAには伝わっていないことが何度かありました。
  • #16: そんな中、去年の1月に部署でスクラムトレーニングを受講する機会があり、 私達のチームメンバーは全員研修を受けました。
  • #17: ただ、スクラムトレーニングでは主に考え方を学ぶというところがメインの目的であり、 特に試験をどのように進めるかという具体的な説明はあまりなかったので、 「試験プロセスはほんとうにスクラムに対応できるのかな・・・?」という不安を抱えていました。
  • #18: とはいえ、既に社内の他のチームでスクラムを採用しているチームがあり、 その雰囲気が良さそうだったということもあり、 不安はあるけど私達のチームでもまずはスクラムをやってみよう!ということになりました。
  • #19: スクラム開始までは少し時間があったので、スクラム開始までにいくつか準備作業を行いました。 やったことを4つ紹介します。 まず1つ目は、開発チームのチームメンバー全員で「カンバン仕事術」の輪講をしました。 この輪講をしたことで、各自の作業を見える化することの大切さや、 WIP制限と呼ばれる同時に進める仕事の数を制限することで、 仕事一つ一つが早く終るという、スクラムにも役立つ知識を付けることができました。 これはとても大事な考え方だと思いますので、 スクラムをやらない会社でもカンバンはおすすめです。
  • #20: 実際の私達のチームのカンバンの様子です。 ToDo, Doing, Review, Doneといった列があります。
  • #21: 二つ目は、Readyの定義をチームで話し合いました。 Readyの定義とは開発チームが着手できるバックログの基準で、 これを満たさないと開発チームは設計や実装に取り掛かることができないというルールです。 テストに関係するところでは、 「開発チームが納得できるユーザーストーリーがある」 「受け入れ条件が定義されている」 といった内容をReadyの定義とすることにしました。
  • #22: 3つ目は、スプリント単位での完了の定義について話し合いました。 完了の定義とは、何を持って「完了」とするかを定義したリストであり、 スプリントでどこまでやるか、の基準です。 カンバン仕事術を読んでいたこともあり、 開発チーム内では、実装だけではなくテストに関する項目を含めることまではみんなが合意していましたが、 どこまで含めるかは議論の余地がありました。 例えば、テスト設計が完了するところまででよしとするのか、 機能試験から性能検証に至るまで全てのテストをスプリト内で完了するところまでを含めるか、ということです。
  • #23: ここで大切なのは、 達成できない理想を掲げるのではなく、現在の開発チームの実力に合わせることが大事だと考えています。。 具体的には、私たちの実力に合わせて、次の2つは完了の定義に含めないことにしました。 テスト実行完了については、次のスプリントで完了することをチームの目標にしました。 また、脆弱性検証と性能検証については、社内の脆弱性検証チームと性能検証チームが行うのですが、 1スプリントごとの実施が難しいということだったので2,3スプリントまとめて実施するようにしました。 完了の定義に含めたことは、 「テスト設計を完了させる」ことです。これをチームで合意しました。
  • #24: さらに、アジャイルQAをすでに実施されている方の講演を聞きました。 弊社の天野の紹介でアジャイルQAの実践者である日新システムズの永田さんに社内勉強会に来て頂き、 DevQAについての講演をしていただきました。 この講演の中で、QAから開発への素早いフィードバックの重要性を再認識しました。 正直なところ、それまでスクラムに対する不安の方が大きかったのですが、 この講演を聞いて大変そうだけどスクラムやってみようという覚悟ができました。
  • #25: それでは、スクラム導入によってどのような変化があったということについて説明します。
  • #26: スクラム導入後は、1スプリントを2週間とし、リリース単位は6スプリント+リリーススプリントとしました。 リリース頻度は3ヶ月で、これはスクラム導入前後で変化していません。 先ほど説明しましたが、テスト設計はそのスプリントで完了し、 テスト実行はその次のスプリントで完了できるように進められるようになりました。 最近はすべてのタスクというわけではないですが、 1 Sprintで開発からテスト実行完了までを終えられるようになって来ています。
  • #27: スクラム導入によって得たメリットを紹介します。
  • #28: スクラムのフレームワークを取り入れたことによって、 主にQAの活動に対して与えた大きな効果は以下の3つだと思っています。 バグの早期検出、要件の明確化、そしてチームの一体感の向上です。
  • #29: まず、次のスプリントでテスト実行まで完了するようにしたことで、 実装からテスト実行開始までの期間が短縮されました。 これによって、作り込まれてしまったバグを早く検出できるようになりました。 バグが作り込まれてから検出するまでの期間を調べてみると、 スクラム移行前は平均28日だったのが、約7日に短縮しました。 また、類似バグが量産されてしまうことを防ぐことができたり、 開発者の記憶が新しいので、調査を依頼してもすぐに返答が返ってくるようになりました。
  • #30: 二つ目のメリットは、。 Readyの定義として「開発チームが納得できるユーザーストーリーがある」を含めたため、 要件が曖昧なまま実装に入ることを避けることができ、 認識の齟齬による手戻りが減少しました。 また、サイボウズでは社内に脆弱性検証を行うチームがいるのですが、 最近では、要件検討のミーティングにその担当者も同席してもらえるようになり、 要件定義の段階でセキュリティの観点を含めることができるようになりました。
  • #31: 3つ目のメリットは、開発チームとしての一体感が高まったことです。 デイリーミーティングやカンバンによって開発チーム内のコミュニケーションがより深まったことで、 QAは開発者のリクエストをより柔軟に聞くことができるようになりました。 例えば、「この機能の実装が終わったので、ちょっと早めに動作確認してほしい」といった要望があれば、本格的な試験の前にさっとQAが動作確認したりすることができるようになりました。 逆に、開発者もQAのことをより気にかけてくれるようになりました。 「次のスプリントで試験が終わる」ことをチームが目指していて、かつカンバンで進捗が逐一わかる状態担っているので、 開発者も自然と試験の進捗が気になるようになります。 そうなると、例えば、試験容易性を高める機能を追加する提案をしてくれたり、 「この部分は確認しづらいので次のスプリントで実装する機能と一緒に試験した方が確認しやすいかもしれない」 といった提案をしてくれるようになりました。
  • #32: ここまでスクラムのメリットを紹介してきましたが、 それではスクラムを採用すれば必ず 生産性が向上し、メンバーが成長し、プロダクトが改善するようになるのでしょうか? 自分もスクラムを取り入れる前はそのような理解をしていた面があったのですが、
  • #33: 実際にスクラムをやって見ると、スクラムは問題を発見しやすいフレームワークであると実感するようになりました。 どういうことかというと、 どこがうまくいっていないかを特定しやすく、 それを解消する機会が与えられている、ということです。 発見した問題を解決することで、結果的に生産性の向上につながる場合があるということです。
  • #34: そこで、ここからは、私のチームがスクラム移行時に直面した問題と、それをどう解消したかを紹介します。
  • #35: これから紹介する問題をこの後のグループワークの題材とします。 もしかするとみなさんのチームとは状況が異なるかもしれませんが、 「自分だったらどう対応するか?」を考えてみてください。
  • #37: 遭遇した問題は、「試験設計のレビューが間に合わない!?」という問題です。
  • #38: 背景を説明します。 スクラム導入以前は、テスト設計レビューを2段階で実施していました。 テスト設計は上海のQAが担当し、レビューの1回目はクロスチェックという形で上海のQAメンバー内で行なっていました。 その後、2回目のレビューを東京QAが担当し、それを通過すればテスト実行の工程に進むというプロセスでした。 スクラム導入以前から、このレビュー2にタスクが溜まりがちになるという状況は発生していましたが、 スクラム以前は試験期間が1.5ヶ月あり、その長い期間内でなんとか都合をつけて行っていました。 ただ、スクラムを導入したことより2週間以内にテスト設計を完了する必要が出てきたため、 このボトルネックが深刻化しました。
  • #39: 東京QAは1名のみで、直近での増員は難しいという状況でした。 レビュー2でのレビュー観点は主に以下の2つです。 一つ目はテスト観点に不足はないかという「漏れがないか」の確認で、 レビュー観点は東京QAに属人化していました。 二つ目は、省略できるテストケースの組み合わせが無いかという「無駄がないか」の確認で、 テストケースの組み合わせが爆発する場合、東京QAが開発担当者に相談しつつ、 開発の視点で省略できるテストケースがあれば省略するといったレビューを行っていました。 ということで、グループワークの題材は、 「スクラム導入により深刻化した試験設計プロセスのボトルネックをどう解消するか?」です。
  • #41: グループワークでの議論ありがとうございました。 唯一の解決策は無く、皆さんが挙げていただいたいろんな方法で解決できると思いますが、 ここでは私たちのチームが実際にどうやって解決したかを紹介します。
  • #42: まず、レビュー2でチェックしているレビュー観点のうち、「漏れが無いか」については観点をチェックリスト化し、 試験設計とレビュー1でチェックしてもらうようにしました。 次に、無駄のチェックについては、 開発者にも試験設計レビューに参加してもらい、直接チェックしてもらうようにしました。 このような対策を行うことにより、試験設計レビュー2のレビュー観点を他のフェーズに移管することができました。 これによって、スクラムのタイムスケジュールに合わせて試験設計を行うことが可能になりました。
  • #43: ここで、なぜ解決できたかを振り返ってみると、 試験設計という問題をQAのみで解決しようとせずに、 チームの問題としてチーム全体で取り組めたことが解決につながったと思っています。 ではチーム全体で解決に取り組むために何をしたか?を考えてみると 次の3つが大きかったと考えています。 1つ目はカンバンによって試験の進捗についても見える化したことで、 どこにどれだけのボトルネックが発生しているかが分かりやすくなり、 チーム内で問題に対する共通認識を持つことができたことです。 2つめは、完了の定義にテストに関する事項を含めてチームで合意したことで、 チームで共通の理想を持てたことです。 そして3つめは、なるべく職能間のスキルの障壁を無くすことです。 それまでは試験仕様書の形式をExcelにしていましたが、 試験仕様書を初めて見る開発者にとってはテストケースの意図を汲み取るのは難しいものがありました。 そこで形式をマインドマップに変えて、開発者がレビューしやすいようにしました。 テストに関する問題はどうしてもQA内で解決しようとしてしまいがちなのですが、 チームの問題としてチーム全体で取り組むことが重要で、 スクラムはそれをやりやすくしてくれるツールであると考えています。
  • #44: 今日は私のチームのスクラム移行の話をしましたが、まだまだ課題が残っています。 リリースサイクルはスクラム移行前後で変わっておらず、今でも6スプリント=3ヶ月単位となっているので これを1ヶ月単位にしたいです。 また、1スプリント内でテスト実行まで完了するようにしたいです。 そのためにはスプリント開始前のテスト工数の見積もりをどうするかといった問題も解決する必要があります。 また、それとも関連するのですが、開発チーム外が行っている、性能検証や脆弱性検証も高速に実施できるように 関係部署と調整を進めていく必要があります。 また、拠点間でコミュニケーション不足が発生してしまいがちなのでそれも改善したいです。 テスト自動化は現在開発者が行っていますが、今後はQAがテストコードを書けるようにしたいです。
  • #45: ここまでの発表をまとめます。 私たちのチームがウォーターフォールからスクラム移行した際に 行った準備作業を紹介し、 スクラム移行によって得たメリットを紹介しました。 また、スクラムは問題発見のフレームワークであり、 チームに問題はチームで解決することが大事であるということを紹介しました。 ご静聴ありがとうございました。
  • #55: ・チーム名は実際に使われているチーム名です 星座や惑星をモチーフにしたチーム名になっています
  • #59: 現在の複数拠点大規模スクラムへどのように移行していったかを紹介しようと思います
  • #60: 去年、スクラムトレーニングをキッカケにスクラム導入を決めたのですが・・・
  • #62: ただでさえ分からないことだらけの状態で複数拠点同時導入はハイリスク!失敗が目に見えています。 ・導入時の鉄則、スモールスタート ・失敗したときのリスクを小さく ・プロセス改善の意思決定/反映を素早く
  • #65: はじめのほうでもお伝えしたように日本のQAはマネジメント中心だったため、もともとQAの人数が少ない状態でした
  • #67: ・日本ですぐにQAリソースを増やすのは困難。 ・このときはまだ職能に対する壁があり、チームでバックログをdoneにするという意識が低かった・・・
  • #70: ・紫ラインが実績、緑ラインが理想線 ・バーンダウンなのに途中で上がってるのは、バックログを追加したため
  • #71: 一方でこんな声も・・・ ・コミュニケーション増えた!(PG/QA/PO) ・カンバン好評。(見える化) ・問題点を共有しやすい。(デイリースクラム) ・気持ちを切り替えやすい。(スプリントによるタイムボックス) ・ワイワイやるのが楽しい!
  • #74: これにより日本チームも含めて各チームにQAが配置されて自分のチームで完結できる体制になった
  • #75: ・日本ですぐにQAリソースを増やすのは困難。 ・このときはまだ職能に対する壁があり、チームでバックログをdoneにするという意識が低かった・・・
  • #76: ・現地企業によるスクラム研修
  • #77: ・約3週間ほど現地に出張してOJTを実施 ・出張者のうち2名は開発チームの一員として活動 ・帰国後も同スクラムチームに所属して日本/越南混合チームを形成
  • #79: ・テスト設計、テスト実施のやり方、タイミングなど
  • #81: 一度に変更するのではなく徐々に適用させていった
  • #84: 前のスライドでもあったように今まではテストは開発した次のスプリントで実施していました。 それは、このような問題・課題があったためです。
  • #86: ・ギルド:興味のあるコミュニティの集まり ・ABD:1冊の本を裁断し、担当パートごとに読み、要約文を作ってリレープレゼンを行う       その後感想や疑問について話し合う