侍れっどの明日できることは明日やれ

徒然なるままに筆を書き連ねます。

不定期連載(2):君はテスタだ!

本当は前回の続きから、単体テストとかをする観点のメソドロジーを書こうと思ってたんだけど、ちょっと気分が違うのでいきなり飛びます。

君は"コーダー"でも"プログラマ"でもない、"エンジニア"だ、ということを思い出してほしい。
確かに、"エンジニア"の仕事のうちに"プログラマ"要素もあるだろうけれど、それだけでは器が小さすぎやしないかい?
そう、君は"エンジニア"だ。
胸を張っていってやるべきだ。

"コーダー"や"プログラマ"と"エンジニア"の違いはなんだろう。
僕は単純に、"プログラマ"は"作ったものが設計書どおりならOKな頭を使わない人種"、"エンジニア"は"作る上で設計書どおりでなくとも設計書を書き換えてでもよりよいものを作れる人種"だと思っている。
当然、いろいろと上下関係とか雇い雇われ関係とかがある中で、"設計書を書く権限"を持ち合わせるか否かというのはあるだろうけれど、あくまで一意見として。

で、何が言いたいかというと、エンジニアにもいろいろあって、どちらかというととにかくコーディングばかりするタイプの人もいると思う。
今回はまさにそういう人たちにぜひ読んでもらいたい内容だ。

さて、あなたはコーディングをしたものをテストしているだろうか?
まぁ当然、この質問には100%YESが返ってくるだろう。
自分のコーディングに自信と責任が持てなければコーディングする資格はないからね。
話は戻るが...あなたはテストをしたんだよね?
じゃあ何に基づいてテストをして何に基づいてエラーを検知したんだろうか。
当然、詳細設計書やプログラム仕様書に基づいたろうし、それに基づいてエラーを検知しただろう。

あなたは正しいと思う。

でも、そのテストの時に何か感じなかった?
たとえば、「単体テストなのにちょっとこの処理はレスポンスが気持ち遅いかな」とか、「この画面ってこうなってれば絶対良いのに」みたいなの。

絶対何かあるはず。
人に言われて素直に作って簡単に納得するほど人は単純じゃないもの。

僕はその感覚が一番大事だと思うんです。
特にWeb系をやっている人間なのだからかもしれませんが。
でも、フロントを作っている人は特にそうだと思うので、Web系に限らず、組み込みもクラサバもありますよね?
この感覚をもっともっとエラーとして検知したいんです。
それを改善することで、最終的なアウトプットをよりよいものにしたいんです。

何が言いたいかというと、要は君はテスタだ!と。
テスタってのは、テストを実施する人であり、第一次検証者なんです。
この検証でぴぴっと気になったことは検証者じゃない人にもひっかかるはずなんですよ。
きっと、テストをしたら、テストを検証する上位者がいることでしょう。
でも、残念ながらテストの上位者はあなたの結果だけを検証します。つまり、ホットな意見であるあなたの些細かもしれない疑問は残されたままになるのです。

釈迦に説法とはわかっていながらあえていいます。
後工程での修正の方が、コストや期間や影響調査などたくさん無駄にすることが多いのです。
であれば、今気づいた疑問は今なおした方が得策ではないですか?
もちろん、あなた一人では決められないでしょう。
すぐにリーダーの意見を聞いたらどうですか?

結局、ものを作るというのは、そういう些細なことをどうできるかで評価は決まると思うんです。
それは、有り体な言い方をすれば、品質や顧客満足度に直結すると考えます。

つまり、自分の作ったものに責任を持つと言うことは、「与えられたものを与えられた通りにやる」のではなく、「与えられたものを"自分"というフィルタを通して最高のものにする」ことなのです。

そう、だからタイトルにもあるとおり、君は単なるプログラマやコーダーじゃない、最高の品質を保証できる「テスタだ!」という意識を持って取り組むことが大事なんです。

あなたは最高の"エンジニア"だもの。