新・闘わないプログラマ No.19

質問の仕方


ある夜、私がもう寝ようかと思っているときに、こんな電話を受けました。
「Excelが動かないんだけど、どうして?」
彼は、ご苦労な事に、この時間まだ会社で仕事をしているようです。まぁ、コンピュータのシステム開発に携わっている人間にとっては、徹夜も当たり前のことですから、そのこと自体はとりたてて珍しい事ではありません。
それはいいですけど、Excelが動かない、とだけ言われても全然状況がつかめません。だいたい私は、彼がExcelで何をしようとしているのかも全然知らないので、これだけでは答えようがありません。

「『動かない』って、どういう状況なの?」
「だから、全然動かないんだってば」
「エラーメッセージとか出ていないの?」
「『スタックオーバーフロー』って出てるけど」
おいおい、メッセージが出ているんじゃないか。それを最初に言ってくれなきゃ。でも、スタックオーバーフローとは、珍しいメッセージがでるもんだ。プログラムで再帰呼び出しでもやっていれば出るかも知れないが・・・
「『スタックオーバーフロー』ねぇ・・・・それが出るまでに何をやった?」
「何もやっていないよ」

出ました、「何もやっていない」。
「パソコンが動かない」とかいって質問を受けることがよくあるのですが、動かなくなるまでにどんな操作をしたか、と聞くと、決まって返ってくる答えがこれです。こちらとしては、問題を解決するためには状況をできるだけ詳しく聞きたいわけですが・・・・
でも、彼は仮にもこの業界でメシを食っている人間ですから、本当に「何もやっていない」のだと、信用してしまったのですが・・・・・それなら再インストールして様子を見るしか無いかな。

「『何もやっていない』ってことは、立ち上げただけで、そういうメッセージが出るってことだよね」
「うん、ほとんどそれに近い」
「『ほとんど』って? もしかして何らかの操作はしたの?」
「少しはやったよ」
なんだなんだ、操作しているんじゃないか。なぁ〜にが「何もやっていない」だ。
「だからぁ、何をやったか教えてくれなければ、答えようが無いでしょ。でも、やったのは、そんな変な操作じゃないんでしょう?」
「そうそう、全然大した事やってないのに、突然動かなくなったんだよ」
「で、何やったの」
「VBAでマクロを作って動かしてただけなんだよな」
あのなぁ、VBAでプログラムを作って動かしたのが「全然大した事」じゃないわけ?
ちなみに、VBA(Visual Basic for Applications)は、Excelに付いてくるプログラミング言語で、これを使うと、マクロと言って、Excelの操作を自動化出来ます。
「まさかとは思うけど、そのプログラムの中で再帰呼び出しとかしてないよね」
「うん、してる」
「じゃ、原因はそれだよ。なんで最初からそういってくれなかったんだよ」

最近いろんな人から、パソコンについていろんな質問を受けるようになりました。でも、ちゃんと問題点を認識・整理してから質問してくる人はまれですね。とにかく「動かなくなった」では、私としてもどうしようも無いことが多いです。せめて、動かなくなる前にどんなことをやったのか、「動かない」というのはどういう状態なのか、そのあたりの情報が無いと答えようが無いですね。
でも、まだ会話が出来る状況での質問なら、こちらからいろいろ聞いて状況を知る事ができるのですが、BBSやNetNewsの場ではそうはいきません。これは、いま私がでっち上げた例ですが、この類の質問がやたら目に付きます。

Subject: 教えてください

FMVにあるソフトをインストールしたのですがうまくいきません。
どうして? だれか教えてください。

初心者より

私なら、見ず知らずの人からこんなこと言われても無視しますね。いちいち付き合っている暇はありませんから。でも世の中には、奉仕精神が溢れているというか、それこそ奇特な方もいらっしゃるようで、一所懸命付き合おうとします。でも悪いですけど、こんな人物に付き合っても、はっきり言って実りが無いんですよね。
実は、一般的に言って、質問に答える、という行為は、質問に答える方にもメリットがあるんです。自分のあやふやな知識を整理するいい機会なんですね。いい質問は、質問した方にとってはもちろん、回答する方にとっても非常に有益なんです。でも、上のような質問に答えることは時間を無駄にするだけで得るものはありません。挙げ句の果てに、答えかたが悪い、とか、偉そうだ、とか質問者から言われて、不愉快な思いをするのがオチです。(そういう例は何度も見てきました)

上の質問のどこが悪いか、ということはいちいち書きませんが、もしどうしても私がこの質問に答えなければいけないとすれば、たとえば次のような返事を書きます。

Subject: Re:おしえてください

質問は拝見いたしました。これだけではよく状況がわかりませんので、いくつか教えてください。
富士通のFMVをお使いのようですが、正確な型番を教えて下さい。また、OSはWindows95をお使いになられている、ということでよろしいでしょうか。
「あるソフト」とは何でしょうか。ソフトの名前とバージョンを教えてください。
それから、「うまくいきません」とのことですが、具体的にどううまくいかないのでしょうか。ソフトのインストールが完了しなかったのでしょうか。インストールは正常に出来たけど、そのソフトが起動しないのでしょうか。エラーメッセージがでたならば、どんな操作を行ったときにエラーメッセージが出たのか、また、そのエラーメッセージの内容を正確に教えてください。
「教えてください」とおっしゃっていますが、あなたのメッセージだけでは誰も何も教えることが出来ません。自分の分かる範囲で結構ですから、出来るかぎり詳細に状況を書いてください。

ね、面倒でしょ。見ず知らずの人相手にこんな面倒なことまでする義務も無いし、だから無視するわけです。しかも、こんなに懇切丁寧に返事を書いても、質問者の中には「偉そうに振る舞われた、馬鹿にされた。何様のつもりだ」といって怒り出す人間までます。
で、上の質問を書いた人(架空の人物ですが)で問題なのは、「自分は初心者だ、だから何も分からないんだから、詳しく教えてくれて当然だ」と言わんばかりのところなんですね。ところが、にもかかわらず、プライドだけはあるようです。なんというソフトをインストールしたのか、それでどううまく行かないのか、といったことを書かないのは、「自分がもしかしてとんでもなく変な事をやっていて、それを指摘されたら恥ずかしい」とも思っているわけです。

私としても、別に、質問には答えたくない、とか言っているわけではないのですが、あまりにも安易な質問が多くて、けっこう大変だったりするのです。答えるのに何日も調べたりすることもありますし(最近はWebでいろいろ情報を得られるので便利ですよね)、結構苦労しているんですよね。でも、いい質問は、自分にとっても有益ですし、それで相手が喜んでくれれば言う事はありません。

で、最後に、質問をされる方に私からお願いです。
まず、自分でも努力する事。初心者だって、初心者なりに努力できるはずです。
動きがおかしい、うまく動かない、といった場合には、状況を出来るだけ詳しく把握するように努力する事。エラーメッセージが出ているのなら、そのメッセージの内容を正確に記録しておいてください。「エラーが出る」だけでは、こっちもお手上げです。
抽象的な質問は避ける事。「パソコンを買いたいんだけど何がいい?」なんていうはもっての他です。
以上、よろしくお願いします。なお、質問は一件20,000円となっております、クレジットカードの番号をどうぞ。ありがとうございました。(^^;)

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp