複数の機能を持つアジャイルチームには、ほとんどの場合、テスターと開発者がいて、互いに協力し合うことが成功の鍵だと考えられている。しかし、同時に独立したテストチームを持つことの利点もある。品質について忌憚のない意見をもらえるからだ。アジャイルチーム内でどのようにテスターの独立性と協力関係のバランスを保てばいいのだろうか。
Rajini Padmanaban氏はThe dotted line in role delineation between a developer and a testerという記事で、チーム内での協力関係を構築しようとする努力がチームのメンバの役割や責任に両義性をもたらす可能性があるということを説明している。氏はテスターが独立性を維持することの重要さを説明している。
(…) チーム内でのテスターの役割の領域を理解する場合、独立性を維持するのは重要です。テスターがチームの他のメンバと協力して何らかの責任を共有すると、テスターは自分たちの目的や独立性と衝突する仕事を引き受けないように注意しなければなりません。
Rajini氏の考えでは、開発チームはユニットテストに責任を持ち、テスターが開発に関わりすぎて、独立性を危うくすることに対して警告する。
テスターが開発者にユニットテストの設計のための情報を提供し、ツールの問題の解決を手伝い、テストフェーズにリリースするビルドの完了基準のパラメータを定義します。テスターが独立性を失わずに開発者が品質に注力できるようにするシナリオがあるのです。テスター自身がユニットテストの作成に手を出してしまうと、ユニットテストが報告するバグや欠陥をソースコードに触って直してしまう誘惑にかられるでしょう。しかし、これは明らかに開発者の領域に侵入しています。
氏はテスターは独立性を保ち、自分自身のタスクに注力しなければならないが、開発者との協力関係とは矛盾しないと結論付けている。
コインの裏と表は開発者とテスターの役割のバランスを維持し、互いの領域で協力しながら高品質の製品を提供するのに役に立つでしょう。
Elisabeth Hendrickson氏はwhy I won’t go backというブログ記事で、テストマネージャの存在が無益になってしまうことを図解している。
氏は自身が独立したQA/テストグループを管理するときに出会った問題を説明する。
開発サイクル全体やそれぞれの役割に対してテスト業務が付随しているような組織で働くことが多いのですが、テスト行程を最後に置く組織でのテストマネージャの従来の役割は悲惨なものです。非難を受けながら、同時に品質向上のためのQAマネージャの努力は評価されないという、鬱のレシピのような仕事です。
agile vs fragile: The role of “independent” testing in the agile frameworkと題したブログ記事でBrian Copeland氏は、テスターが独立性を保ちながら協力をする方法について、氏の考えを披露している。
テスターは自分の仕事はソリューションが要求を満たしているかどうかを独立して評価することだと認識するべきです。これは、テスターが開発者と話てプロジェクトの活動に参加しなくてもいいというわけではありません。まったく反対で、テスターは開発が始まる前に問題を特定するくらい、積極的に関わりを持つべきです。設計セッションに参加し、独立した視点を持つ必要があります。
氏は、“テストは継続的にスプリントに統合されるべき”だと考えている。
テストはスプリントを計画するセッションで計画される必要があります。テストはストーリーポイントを消費し、テストチームはこのストーリーポイントの将棋はスプリント全体のコストの一部であるということを明確にする必要があります。テストは最後のパズルのピースが嵌るまでは開始できないのです。
今年のはじめ、InfoQはアジャイルチームでテスターと開発者の協力を改善することについての記事を掲載している。この記事では、スクラムマスタがテスターや開発者を支援し、協力関係を改善する方法について事例を挙げている。
テストコンサルタントであるFiona Charles氏はTechWellに独立テスターについて書いている。氏は組織的に独立したテストの良くない結果について説明している。
テスターは自分たちを組織で品質について独占的に引き受けていると考えがちです。プログラマと一緒に働いて作っているものについて話し合ったりするのではなく、机に座って固まった要求がやってくるのを待ち、システムが仕上がるまでテストを始めないという姿勢です。多くのテスターが開発者のパートナーではなく、品質の門番として働いています。テスターが価値を生み出さない邪魔者と思われている組織もあります。このような見方やテスターの振る舞いによって、テスターの信頼性が毀損されるのです。
組織はテスターの価値を認め、テスターがもっと開発者と関わるようにしなければならない。テスターを支援し、技術力やコミュニケーション力を身につけるようにします。テスターの独立性は、Fiona氏によれば組織の文化が可能にするマインドセットのことだ。
独立したテストチームが解決策にならないなら、テスターの独立性という概念は重要ではないのでしょうか。私は重要だと思います。テスターは開発者のパートナーであり、独立したオブザーバーとして働く必要があります。協力しないながらもテスターとしてのアイデンティティを保たなければなりません。これはとても難しいことです。組織の文化全体で支えなければ、テスターははしごを外されてしまいます。