🤔

なぜ、"非エンジニア"という呼称だけが存在するのだろう

に公開2

書くきっかけになった記事

https://note.com/nrryuya/n/n1bbe717d0185#b8f10653-1c02-453e-afc7-31eb50bffed6

個人的に「非エンジニア」という言葉をなるべく使わないようにしていますが、ここも近い考え方に基づいています。誰だって「まず何かを作ってみる」という一歩を踏み出して、そのループを回すことができる(特に最近は生成AIでさらに格段とやりやすい)のに、「非エンジニア」という強いレッテルでそれを封じ込める感じがするからです。自分はエンジニアだという勝手な思い込みから色々なものづくりは生まれていると思います。

思うこと

  • 『非エンジニア』という言葉は不思議だ。エンジニアに対して、『非セールス』とか『非CS』あるいは『非ビジネス』だったり、『非QA』なんて呼び方はしない。 同じ専門性を持っているか、という視点でいえばどの職種でも同じはずなのに。
  • 問題意識もとい使う目的は推測できる。コードを書ける人……この言葉も生成AIの興隆でだいぶ意味合いが変わってきた。コードに対して自分の意図を説明でき、gitでコードを管理でき、チーム開発を行える(あるいはその見込みがある)人物、をざっくり指して『エンジニア』と呼び、そうでない人を『非エンジニア』と呼んで区別している、ように見える。
  • この行動は理解できる。門外漢から、十分な質に達しておらず業務で使えないコードを渡されて「コードを書きました!」なんて言われたら迷惑だ。gitを十分に扱えず、ファイルやディレクトリを壊されるなんて論外だ。コードを書いてチーム開発をするのはエンジニアの仕事なのだから、非エンジニアには行わせないという考えがあるのだろう。
  • ただ、理解できないことがある。なぜ、開発者をはじめとした『非QA』が「テストをしました!」と言うのは通るのだろう。 どういったリスクを低減するのか、どんな操作をして、何を期待するのか、質を判断する以前に内容すらわからない『非QA』による『テスト』が許容されるのは、なぜだろう。

書いてみて思ったこと

  • 根本にあるのは自分のコンプレックスだ。コードを書けない自分にコンプレックスがあり、自分の専門領域であるはずのテストが軽視されていると感じる、それだけのことだ。明日からは『エンジニア』を『非ビジネス』『非QA』と呼ぶことも検討したが、どうせ趨勢は変わらず、惨めさが増すだけのことだろう。明日からも『非エンジニア』として自分の職務を全うし、『非QA』のテストには目をつぶろうと思う。
  • と諦念を綴って締めくくろうと思ったが、BETAのAIレビューを試して少し冷静になったので書き足す。曲がりなりにもテストや品質を専門とする者として、自らの言動に対しても正しさを確信せず、疑い続けることが必要だと感じたからだ。これすら捨ててしまったら、本当に何もなくなってしまう。

AIレビューを経て追記した部分

『QA』と『非QA』の定義

  • 「テストを主な職務として働いているため、そうでない人よりはテストについて詳しい人」を『QA』とする。
  • この見出しと定義には『QA』と『テスト』を混同している問題があるが、本質ではないので言及しない[1][2]

『QA』と『非QA』のテストの違い

  • 「正常な操作を行った際の確認に加えて、正常でない操作をした際の確認」や「設定を組み合わせた際の確認」など、幅広い視点を持っているのが違いだろう。「QAだから気づけたね!」という実感が、おそらく期待されている。
  • ただ、一番大きな違いは「テストを記述する習慣があるか」だと思う。 どういったリスクを減らすか、どういうことを確認するかというテスト設計、どういう手順で何を確認するのかというテスト実装。テスト実行の前の『記述』が、『非QA』のテストには欠けていることが多いと実体験から思う。どんなものであれ書かれていれば検討できる。改善できる。書かれていなければ、評価自体ができない。
  • 私は、『非QA』に対して「大雑把でもいいので、何を確認する(した)のか書いてみてください。一緒に検討しましょう」と何度も働きかけた。ただ、この働きかけが聞き入れられたことはない。

ここまで読んでくださった方への問い

  • なぜ、『非QA』はテストを記述しない(ことが多い)のだろう?
  • 「私の態度や人望に問題があり、聞き入れてもらえない」という原因は一旦ないものとして、「こういう理由で、テストを記述したくない(できない)」という意見があれば、ぜひコメントで教えてほしい。
  • そしてタイトルにもなっている、"なぜ、非エンジニアという呼称だけが存在するのだろう" という問いに対しても、コメントで答えてくれると幸いだ。
脚注
  1. QAとは品質を高める活動で、テストはQAに内包される関係にあると私は考える ↩︎

  2. よって本来は区別したいが、今回は『テストを専門にする人と、そうでない人』の話がしたいだけなのでここより先は言及しない ↩︎

Discussion

tsuemuratsuemura

素朴な疑問なのですが、「非QA」にもテストをしてもらいたいのかそうでないのかどちらなのでしょうか?終わりで「非QAはなぜテストを書かないのか」と問いかけている割に、冒頭では「なぜ非QAがテストをして良いのか」と書いているようなので、どちらなのかなと思いました。

僕個人としては、プログラミングとテストはソフトウェアエンジニアリングを構成する大きな要素だと思うので、開発職もQA職も当然やるべきだと思います。「テストをやりたくない」理由は人それぞれあると思いますが、そのせいで十分な品質を顧客に提供できないのだとしたら、それは役割がどうこうというよりプロとして恥ずべき態度だと思いますね。

スナミスナミ

tsuemuraさん、コメントありがとうございます。
更に深く考えるきっかけをいただき、恐縮です。

「非QA」にもテストをしてもらいたいのかそうでないのか

「してもらいたいし、一緒にしたい」が答えです。
プログラミングと同様、スウォーミングやモビングによるメリットがあると考えています。
ただ現状では「非QA」のテスト[1]に対してスウォーミングやモビングを提案すると、「こっちでやっておくから、新規機能のテストに集中して」と説得されてしまいます。
これに関しては粘り強く対話を続け、改善していくべきだと自覚しております。

プログラミングとテストはソフトウェアエンジニアリングを構成する大きな要素だと思うので、開発職もQA職も当然やるべきだと思います

同感です。開発はテストをやってくれ、でもQAはプログラミングをやらないよ、では不公平というか自分勝手というか。私にはあまり適性がないような気はしているのですが[2][3][4]、できる限り貢献したいですね。

そのせいで十分な品質を顧客に提供できないのだとしたら、それは役割がどうこうというよりプロとして恥ずべき態度だと思いますね。

おっしゃる通りですね。
この点に関しても、開発チームや会社に対して粘り強く伝え続けるつもりです。

脚注
  1. 往々にして"リリース前の最終確認"のようなふわっとした呼び方をされます ↩︎

  2. 能力がというより、コードを書くぞ! という気持ちがテストに対するそれと比べて乏しいのです ↩︎

  3. それがコンプレックスの源かもしれません ↩︎

  4. そして開発者は、テストをするぞ! という気持ちがプログラミングに対するそれと比べて乏しいのかも、と推察しています ↩︎