普通、アジャイルチームは複数の機能を持っている。つまり、開発者やテスターというような異なる能力を持った人々が集まっているということだ。チームのメンバの協力はチームの成功を助ける。アジャイルチームで開発者とテスターが協力し合うようにするためにはスクラムマスタはどうすればいいだろうか。
when developers and testers collideという記事でLen Lagestee氏は開発者とテスターの協力関係がうまくいかない状況について考察している。氏はアジャイルチームにテスターが加入した場合、何がおきえるかについて説明している。
アジャイルを組織に導入するとき、テストチームは大きなインパクトを感じます。運用環境にバグが混入した場合、テスターは簡単に非難の標的になります。それゆえ、テスターたちは自分たちを守るため重厚な業務プロセスと承認プロセスを構築しています。テスターがチームに参加して自由に働くようになる前に信頼を回復しなければならないでしょう。
アジャイルチームがうまくいくようにするには、チームの各人が互いに尊敬しあい、互いの意見を尊重する必要がある。氏は、スクラムマスタがアジャイルチームを作るときに一仕事するのを提案している。
小さく始めますが何かを実行しましょう。組織の中で開発者とテスターの関係の歴史がすでに毒をはらんでいるなら、何かしなければその毒を排除できません。アジャイルチームのその関係に巻き込まれてしまうだけです。品質は全体の関心事でなければなりません。
氏はいくつかの方法を提案している。"テスターと開発者の関係の基礎を構築する"には、
- 顧客について一緒に学ぶ
- ストーリーや受け入れテストについて一緒に学ぶ
- “完了”の定義を成熟させる
- 単体テストを一緒に作る
- ツールやプロセスよりも品質や“完了”について積極的に会話する
ShriKant Vashishtha氏はdeveloper first test automationという記事でというブログ記事でアジャイルチームで開発者とテスターが一緒に働くのがなぜ重要なのか説明している。
アジャイルプロジェクトの人々は“開発者対テスター” (我々 vs やつら)という構図の文化を離れ協力して、スプリントの終わりに製品を完成させます。開発者の成功やテスターの成功ではなく、Sprintの成功こそが目的なのです。
氏は開発者とテスターが一緒にテストケースを作成する方法を試した。
開発者がユーザストーリーの最初の機能テストを記述しようと提案しました。このテストは基礎となりテストケース作成に必要なすべてのリソースを提供しました。テストを作る間、開発者は多くの問題を見つけました。これらの問題がこの時点で見つかっていなければ、テスターの仕事の妨げになったでしょう。開発者が最終的にこれらの問題を修正すると、自分たちで問題を見つけたということの意義が感じられました。
この基礎的なテストに基づいて、テスターがテストケースをさらに細かくし、自動テストを作ります。チームの標準状態はかなり良くなり、開発者はテスターが日々直面している問題に対する理解を深めました。
Ole Lensmar氏はtesters and developers, please learn to get alongという記事でオーランドで開催されたStarEASTカンファレンスでの経験を書いている。氏はテスターと開発者の協力の必要性を強調する。
皆一緒に開発者とテスターが優れた製品を作り出したときの実経験を話すべきではないのでしょうか。一緒に座ってテストを実行してデバッグして素晴らしいソフトウエアを作るべきではないでしょうか。
氏はStartEASTカンファレンスで聞いた、テスターと開発者の間の壁を壊すのに使えるいくつかのアドバイスを紹介している。
- ペアプログラミングを導入する
- 互いのツールをインストールして学習する
- 一緒にハッカソンに参加する
- ひとつのチームのメンバとしてテスターと開発者を扱う
testers vs developers: how to make them being friend?というブログ記事では、デザイナとテスターの関係を良くするために何ができるかを説明している。
- 共有することです。考えと戦略を開発者と共有することです。D
- 開発者に対してオープンマインドを持ち、フレンドリーに振舞います。開発者にどのような情報でもよいので開発者に共有する機会を与えてください。
- 報告のスタイルは積極的に。気の利いた報告にします。