最後の門番はもう古い!? QA2.0をQA立ち上げ期の2社が語る - connpassというイベントでこんど登壇することになっています。
が、(登壇するくせに)QA2.0ってなんだ?というところについて考えがまとまっていません。
この記事では、いろいろなところで見聞きしたことがあるQAエンジニアの区分(たとえば世代やタイプなど)がいくつかあるため、それをまずはメモしつつ、自分の中でQAに区分や段階があるとしたら、QAに1.0や2.0があるとしたらこういうことかな?について現段階で思っていることを書いておきます。
生煮えなので他の方の意見もぜひ聞きたいところです。
前提
ここでは、QAすなわち品質保証に関する活動と、QAエンジニアの振る舞いや心の持ちようといった、厳密には違うであろうものを特に区別せずに「QA」とします。
『第一世代のQAエンジニア』での定義
技術書典マーケットでなんと無料(本記事執筆時点)で入手できる同人誌では、第一世代のQAと第二世代のQAというふたつが定義されています。
※第一世代のQAエンジニア #QAエンジニア - Qiitaでも読めます。
書籍中の定義は以下。
• 第一世代の QA エンジニア:立ち上げ段階から多種多様なニーズウォンツに対して QA のサービスを広く浅く(+専門分野はそれなりに深く)提供する • 第二世代の QA エンジニア:分業体制下で専門分野の QA のサービスを深く提供する
書籍のタイトルを目にしたときに想定していた話とは実は異なりました。
読む前は、第一世代と第二世代という表現から、第二世代のほうが優れているような、優劣のあるものだと想像していました。第一世代のやり方は今は通用しない、これからは第二世代のやり方が正しい!のような。
ところが上記の定義はそうではなく、プロジェクトに関わるフェーズの違いをもって第一世代・第二世代と表現しているようです。そこに優劣はなさそうです。
なお、この世代という表現はゲーム作りで「第1世代目はなぜ一線級を保ちつづけるのか?」と、そのなり方、落とし穴|かえるDという記事に着想を得たそうです。
右利きの品質保証と左利きの品質保証
にしさんのスライドに出てきます。
もとは右利きの経営・左利きの経営から来ている表現のようで、それぞれ以下のような要素があります。
- 右利きの品質保証
- 伝統的
- テスト開発、テストアーキテクチャ、モデリング
- TQM
- 左利きの品質管理
- 自動化
- レジリエントQA
- アジャイルQA
- 仮想化・コンテナ化
スライド中では「一方に寄ることなく両利きが大事」と言われています。 ここは一つ前のQA第一世代第二世代と同じで、右利き・左利き間に優劣はありません。
また、ここからは自分の感覚であってエビデンス等は特にないのですが・・・ ここ数年のソフトウェアテスト・QA界隈でホットなのが左利きの品質管理に当てはまるような技術要素だったように思います。 自動化!アジャイル!シフトレフト!なムードを感じました。 これはいわゆる「Web系企業」のQAが増えたからかなと思っていて、そちらの価値観でいくとリリースサイクルを早く回すのが正しくて、遅いのは悪といった感覚になりそうです。
それはそれで良いのですが、一方でごくごくごく一部には「右利き=古い」とか「SIerは遅い、オワコン」とか「製造業は遅い」みたいな言説も聞こえてきたりして・・・
それは正しくなくて、左利きの技術が活きる、適切に用いられるには結局右利きの伝統的な品質保証わかってないといかんよねという話だと思います。そしてそう思って「品質管理わかってなくてまずいな」といって、『現代品質管理総論』とか『ソフトウェア品質保証の考え方と実際』を読み始める、までが皆通る道なのかもしれません。
で、QA1.0とかQA2.0とかがあるとしたら何nano?
わたしはKazuさんの以下のツイートから、色々と思考が膨らみました。
「QAエンジニアがテストだけやっていればいい時代は終わった!」
— Kazu SUZUKI (@kz_suzuki) February 17, 2024
みたいなのを見ると、ついつい「いつ、そんな時代があった・・?」って言いたくなってしまう。
これ非常にわかるというか、ほんとそうで。
この「QAエンジニアがテストだけやっていればいい時代」って、どこで語られていたとか、出どころが不明なものの、なんとなくどこかで一度は聞いたことがありそうな話なんですよね。
わたしとしてはこれが、もしあるとするならばQA1.0に相当するのかなと思っています。
つまり、
- 第一世代のQA=QA1.0:テストさえしていればよかった
- 職務範囲が限られている
- 「あなたつくるひと、わたしテストするひと」
のように考えることもできそうです。
が、注意したいのは第一世代=QA1.0のほうは、実際には存在しなかった「架空QA1.0」とでも呼ぶべきものかもしれない、という点です。
架空QA1.0がこのようなものだ、と仮に設定した場合、そこから進んだQA2.0があるとすれば、
- 第二世代のQA=QA2.0:越境!上流から!テスト以外も!
が方向性としてはありそうです。
ソフトウェア開発のいろいろな職種・ロールにおいて、壁をとっぱらうとか、越境するとか、要するに専門の狭い範囲にとどまらずいろんなことをやる・いろんな職種と協調すべし!というのが昨今の主流の考え方のようなので、これをQAにも当てはめたものがQA2.0なのかもしれない、と思います。(個人の感想です)