QAって何?
SI業界でQAっていうのが何かというと、
Quality Assurance(品質保証)の略で、品証とか言われることがあります。
システムテストレベルのテストであったり、テスト結果を踏まえた品質分析であったり、設計書のレビューであったりを担当する、いわば品質保証のスペシャリストの組織です。開発者と異なり、自分ではコーディング作業をすることは少ないです。(コードレビューをしたり、テストツールのコードを書くことはあります)
しかしそんなQAにも、タイトルにもあげた「開発者と敵対っぽい立場をとるQA」がいるんですね。
開発者と敵対っぽい立場をとるQA
なぜ敵対してしまうのか?と言うと
QAが開発者の味方をしてしまうと、
品質の低下につながるリスクを許容してしまう
あるいは、
品質の向上に寄与できない
といった可能性が出てくるのです。
QAとしては、開発者がいい加減なテストをしていたり、てきとうなバグ票管理をしていた場合は、しっかりと管理するよう指導しなければなりません。
そういうときに、「テストめんどくさいよね〜」とか「いちいちバグ票管理してられないよね〜、わかるわかる」と受け入れていたら、ざる管理がまかり通ってしまいます。そんで、 「QA何してんだ。ちゃんと仕事しろ」となります。
なので、「ちゃんと指導しろよ!」という指導を受け続けた結果、「開発者と敵対っぽい立場をとるQA」になってしまうのです。
まあしかしですね。
こういった立場をとることには当然弊害があります。
それは「開発者とのコミュニケーションが阻害されるおそれがある」ということです。
悪い例 〜敵対っぽい立場をとることによる弊害〜
「開発の奴らはてきとうなんだよなー」
完全に開発の人を見下しています。アウト。
直接言ってなかったとしても一緒です。そういうことって言葉にしてなくても伝わるもんです。
そうなると、とても開発の人は心なんて開いてくれません。
読者の方はわかると思いますが、要するに「敵対すること」と「冷静に、客観的に対応すること」は違います。
良い例 〜良いQAとは〜
「開発も大変ですよね。でも、こういったところはこまめに対処していかないと後々になってきついですから、ここで対策しておきましょう」
この例が本当に良い例かはちょっと微妙ですが、要するにここでお伝えしたいのは「バランス感覚」が大事ということです。
品質向上のために必要なことを客観的に判断し、指導することは、もちろんQAの重要な存在意義です。
しかし、一方で開発エンジニアとの良好なコミュニケーションももちろん大事です。良好なコミュニケーションが取れていない場合、開発側からの情報提供が十分に行われない場合があります。行われない、といったら語弊があるのですが、要するに
「必要なこと、言われたことに対応する」のと「これも必要かなあ」と気を配ってくれるレベルではやはり違うのです。
良好なコミュニケーションの中で、ぽろっと聞いたプロジェクトの話がかなり重要な情報だったり、いろいろ話を聞いている中で開発している機能について理解が深まったりします。昔はタバコ部屋でのコミュニケーションにも効果があったと聞きますね。(今はどうなのかわかりませんが…)
開発の現場はQAとはまた違った大変さがあります。納期に、予算に追われていますし、そんな中色々なことを考えてプロジェクトを回していくのは慣れているベテランの方でも大変です。
そういった大変さをわかった上で、開発がより楽になるにはどうしたらいいか?という視点で話ができるQAになりたいと私は思っています。
基本的に人は目の前のことに意識が行きがちです。それはスキルが云々ではなく、そういうものなのです。
そんな中、品質とかについて意識を巡らすのはいわば投資のようなものと言えます。
(バグが後工程で摘出されるほど、対策に掛かるコストが膨らむという話がありますよね?そういった意味で自分は品質向上が「投資」であると考えています)
無理やりやらせる、というのは良いQAじゃないと思います。それは単なる押し付けです。そうではなくて、いかにその投資のハードルを下げ、納得してやってもらうか。そういったことに気を回せるのが良いQAなのではないかと思います。