「人に頼れる」技術者の話 | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

先輩社員が突然やってきて、「Java のソースをくれ」と言う。なんでも、VB.NET から Excel のマクロ(VBA)を呼び出したいが、やりかたがわからないのだそうだ。どこかで、私が Java で似たようなことをやったことがある、という話を聞きつけてきたのだろう。

確かに、私は彼が求めるソースコードを持っていた。しかし、それが VB.NET での参考になるとは思えなかった。同じことを実現するとはいうものの、Java での書き方と VB.NET での書き方は全く違うからである(※1)。もし、彼に Java のコードを渡しても混乱するだけだろう。かといって、私にも VB.NET での開発経験はない。結局、ネットやヘルプなどで、VB.NET の例を探すのが一番早いだろうと思った。

私はそのことを彼に伝えた。しかし、彼はとにかく Java のソースコードをくれの一点張り。しかたがないので、私は、彼の目の前でネットを検索し、彼の求める答えを見つけ出し、印刷して、注釈まで書き込んで彼に渡した。ほんの数分の作業である。

意外と親切なやつだって? とんでもない。彼に、私が検索しているところを見せたのは、「あんたは、どうしてこの程度のことができないんだ」という皮肉のつもりだったのだ。しかし、彼はそんな私の気持ちには全く気づかない様子で、満足げに自分の席に帰っていった。


どうも腑に落ちない。

彼はどうして自分で情報を探そうとしないのか? もちろん、誰かに聞いた方が早いという事柄もあるだろう。しかし、今回の場合、聞いた相手が「探した方が早い」といっているのに、なぜそうしないのか(※2)?

もっとおかしいのは、質問の仕方である。彼はなぜ単刀直入に「VB.NET で Excel マクロを呼び出す方法を教えてくれ」と言わないのか。「Java でも VB.NET でもおなじようなものだろう」という勝手な思い込みのせいだろうか? それにしても、Java のコードが参考にならないことを伝えたにもかかわらず、それに固執するのはどういうわけだろう?


しばらく不思議だったが、やがて気がついた。

彼には、質問をするための口実が必要だったのだ。「私が Java で同じようなことをしたことがある」ということを、私に質問する口実にしていたのである。もし、「VB.NET による Excel 制御」について、私と彼が同じ程度の知識量だということになると、彼は私に質問する理由を失ってしまう。単刀直入に質問したとしても、「知りません。自分で調べてください」と言われたらおしまいである。

私が「Java は参考にならない」と言っても、決してそれを認めようとしなかったのは、そういうことなのだろう。質問する理由がなくなって追い返されるのは困るから、食い下がったのだ。

もしかすると、そうしていれば、私が彼の代わりに答えを探すということまで知っていたのかもしれない。だとすれば、私はまんまと利用されたことになる。どうりで彼が満足げに帰っていくはずだ・・・。

人に頼ることに慣れた人は、なるほど、そのための技術を持っているということだろう。

応援のクリックお願いします →



※1
「オートメーション」という仕組み(ActiveX 技術のひとつ)を使っていた。Java では標準的にオートメーションを扱う機能を持たないため、Windows API を直接使用するか、それをライブラリ化したものを利用することになる。私のソースでは後者だったが、当然、そのライブラリ独特の記述になっていた。一方、VB.NET には、オートメーション利用のための機能が標準で用意されており、もっと簡単にコードを記述することが出来る。(オートメーション自体が、VB ファミリで使いやすいように設計されているのだから当然なのだが)。

※2
確かに、彼は、私が使った検索キーワード(「CreateObject」のような)は知らなかったかもしれない。しかし、彼が知っている言葉(「Excel」や「VB.NET」のような)から、そのキーワードにたどり着くまでには時間はかからないはずだ。検索した結果のページから言葉を拾い、それをキーワードにして次の検索を行う。これを繰り返しすことで、答えに到着する、という方法は誰もがやっているはずだ。


■関連記事
頭を使って探せ



何でも見つかる 検索の極意
笠井 登志男
技術評論社 (2005/12/10)

質問力―話し上手はここがちがう
齋藤 孝
筑摩書房 (2003/03)
売り上げランキング: 3,756