<BACK> <HOME>

妖怪てぬき


  お隣さんが作ったプログラムを眺めていたら、
  控えめに見ても回りくどい処理があったので、
  ちょっとつついてみた。

  ら、曰く、結果は同じじゃないか、と。

  確かにその通りだけど、さ、
  ここをあーしてこーした場合比べると、
  プログラムのルートが8分の1になるやろ?

  これって逆に言うと、
  テストの項目が8倍になるんだけど、判る?

  複雑な表情。

  だって、よぉ、あんた、
  仕事は楽なほうが良いだろ?

     ミ★

  こちらは顔も視線もそのままだったが、
  対面の年配社員がこちらを気にし始めたのが判る。

  きっと嫌そうな顔をしているに違いない。
  楽をするという言葉に引っ掛かって。

  お隣さんの表情は変わらない。

  同じことをするなら楽なほうが良いやんか、
  言い方変えるなら、さ、効率を上げるってことさね。

  ふーん、てな表情に変わる。

     ミ☆

  中年男はまだ聞き耳を立てているようだ。
  さっきまでせわしなく動いていたので良くわかる。

  語弊があるのは承知しているので、
  最後に一言付け加えることを忘れない。

  言っとくけど、さ、勘違いするんじゃないよ。
  楽をしろってのは手を抜けってことじゃないからね。

  なにやら考え始めたので、自分の仕事に戻る。

     ミ★

  時と場合にもよらないことはないが、
  手抜き仕事をするヤツは大嫌いだ。

  先日、バグがあった。

  ありがちな凡ミス。
  仕様も中身もそれなりに知っていたプログラム。

  テスト込みで10分もあれば十分だろうけれど、
  まぁ、とりあえず30分てとこかな?

  などと見積もりつつ、
  担当者に障害連絡表 ―― バグの内容を記した紙を渡す。

  一通り読み終えたあたりを見計らって声をかける。
  すぐに直るやろ?

  どこか曖昧なうなずき方。

  ぱぱっとやっちまってちょーだいな。

  喋りつつ、自分の席に戻る。

     ミ☆

  2時間後。

  反応がないので様子を見に行く。
  と、出来た、と言う。

  んじゃ、ソースちょうだい。

  エクスプローラを操作するマウスカーソルを眺め、
  指定したフォルダにコピーされたのを確認し、
  ごくろーさん、などと言ってさっさとその場を離れる。

  小言を言っているほど暇ではない。

     ミ★

  気になったので、とりあえずソースを開く。
  念のためDOS窓で fc.exe でコンペアしてみる。

  変更はその1ヵ所のみ。
  場所は予想通り。

  タイムスタンプを確認。
  修正に要した時間は、ふむ、10分か。
  この数字は、妥当。

  コンパイルしてみる。

  と、コンパイルエラー。
  よく見ると、変数の綴りが間違っている。

     ミ☆

  言語は Visual Basic 5.0 。

  標準のエディタは小細工の限りが尽くされたもので、
  痒い所に手が届く、なかなかに便利なものである。
  ま、たまに痛い所や関係ない所も引っ掻いてくれるが。

  変数は大文字小文字を区別する。

  で、便利なことに、宣言済みの変数なら、
  全部小文字で打ち込んでも勝手に宣言通りに修正してくれる。

  例えば、

    Dim iDemBreakCount As Integer

  などと宣言しておいて、

    iDEMbreakcount = cint("そんなの数え切れません")

  と書くと、自動的に

    iDemBreakCount = CInt("そんなの数え切れません")

  と書き直してくれる。

  大文字小文字を混在させておけば、
  それなりに打ち間違え予防になるので便利である。

  因みに、上の例は実行時にエラーになるので、
  よい子の皆様はこんなコーディングはしないよーに。

     # 要求( Demand )が破棄された回数という意味……ではない :-b

     ミ★

  例に漏れず大文字小文字混じりの変数。

  上に書いたようなことを気にしていれば、
  スペルミスなら書き直した直後に見つけることができる。

  少々神経質に思われるかもしれないが、
  総合試験という、何段階かあるテストの最終段階なので、
  こーゆー修正は慎重にやってもらわなければならない。

  もっとも、ここで見逃したとしても、
  コンパイルすれば絶対に引っ掛かる。

  ところで VisualBasic では変数を宣言せずに使うことができる。
  それらしいモノを見つけると、
  コンパイラが自動的に変数と解釈してくれるのだ。

  場合によっては便利かもしれないが、
  デメリットが多すぎ、しかもそれは致命的でもある。

  バグ探しで徹夜したくなければ、
  変数宣言を必須とするオプションを指定しよう。

     ミ☆

  で、そのコンパイルでエラーが出るのである。

  まっとうに考えれば、ソースの修正をしただけで、
  テストはおろかコンパイルすらしていない事になる。

  さすがにムッと来た。

  その旨を伝えると、
  嫌そうな顔をしてソースを開き、コンパイル。
  当然だが、こちらでもエラーが出る。

  静寂。

  修正にどのくらいかかる?

  問うと、エラーを示す赤い文字を見つめたまま沈黙。
  もう1度だけチャンスをあげる。

  どのくらい時間がいる?

  反応がない。
  聞こえているのは間違いないので、切り捨てることにした。

  10分。10分後だから、あの時計で16時25分。
  それまでに修正してコピーしておいて。
  良いね? 分かった?

  それでも一言も発しなかったが、
  わずかに頷いたのを見、背を向ける。

     ミ★

  勘違いされと困るので断っておこう。
  上のバグは全くの実話であるが、人物テストも兼ねている。
  意図的にアバウトにしたのだ。

  また、これも勘違いされると困るのだが、
  彼の教育を担当したのは私ではない。

  そして、こーゆーことが出来るのも、
  単純でお手軽なバグだからこそ、だ。

  結果はもちろん見事な落第。
  子供じゃないんだから、さぁ。


<BACK> <HOME>