クリエイティブを楽しむ新メディア 牛の歩みで更新中!クリエイティブを楽しむ新メディア 牛の歩みで更新中!
プログラム・IT
デバッグできる人になる③ 3つの「信じられない」を克服するには
2023年10月15日(日曜日)

プログラミングに付き物の「バグ」を直せるようになるには? を考える記事の3回目です。

プログラミングをしていると時々やっかいなバグに出会うことがあるものですが、それを正すために必要なのは「信じる」ことだと言ったら、多くの人が「なんてエキセントリックな」と思うことでしょう。プログラミングは信仰ではありませんからね。

でも、バグに躓く"怒れるプログラマー"には、その大きな特徴として「信じられないもの」が3つあります。

"信じられない報告"は保留する

ひとつめの「信じられない」は、"バグ報告"です。怒れるプログラマーは、受けたバグ報告について「そんなわけない!」と言って認められないことがあります。

でも、よほど雑なプログラミングをしていない限り、そもそもバグは発生するわけがないのに"出てきてしまった"ものです。なのに、「そんなわけない」と言っても仕方ありません。

とはいえ、だからといって逆に「バグ報告を信じよ」なんて言われても困りますよね。バグ報告には、正確とは言えないものや誤解が含まれることがあるのもまた事実です。存在しないバグの原因をいつまでも追い求めても無駄ですから、プログラマーが「怪しいバグ報告は相手にしない」という態度を取ることは、ときには必要な場合もあります。

大切なのは、どんなバグ報告も「信じる」か「信じないか」をすぐにジャッジしてしまわずに一時保留することです。バグはそもそもプログラムの複雑さから生じた"歪み"のようなものですから、最初は「本当にそんなバグが出るのか」と疑い、「なぜそんなことになるのか」わからないのは当然のことです。

でも、まだ"わからない"のに、すぐ「そんなわけない」と答えを出してしまうのは、ただの決めつけになってしまいます。

決して、バグ報告をなんでも「信じよ」というわけではないのですが、「信じない」と心に決めてしまうことは適切ではありません。「本当かな?」くらいの疑いを持つのはかまわないのですが、その疑いがあまり強いと「きっと報告は間違いだ」という気持ちに傾いてしまいますから、ほんの少しだけでいいので「きっと本当なんだろう」と思っておくことが大切です。

もし、どうしても「本当かどうかわからない再現性のないバグ報告のためには、時間を割けない」という場合は、あとまわしにしてもかまいません。「なにかの拍子にバグが再現されたり、原因がわかるかも」という気持ちを持ってさえいれば解決することもありますからね。

"信じられないプログラム"は回避する

プログラマーが言う「そんなわけない」は、バグ報告に対してだけでなく、プログラミング言語自体に向けられることもあります。

「正しく動作するようにプログラムを書いた。なのに正しく動作しないのは、プログラミング言語に問題があるせいだ」というものです。

実際のところ、プログラム言語に不具合が存在することはごく稀にあります。

ですが、多くの人が扱う言語そのものに問題があれば、それは広く知られることになります。本当にプログラミング言語に問題がある場合は、それなりの情報を示して周囲を納得させることができるでしょう。

あるいはプログラミング言語以外でも、外部サービスを利用するための"API"や、高度な機能を簡易的に扱うための"ライブラリ"は仕様どおりに動作しないことがそれなりにあります。

とはいえ、とにかく「動作しない」のであれば、何らかの方法で問題を回避するしかありません。誰が悪いか、犯人さがしをしても仕方ないのです。犯人さがしをするということは、「直せない」あるいは「直さない」という姿勢を見せて白旗をあげることにほかなりません。

頑なにプログラム言語などが正常に動作するものだと信じる必要はありませんが、「自分は正しくプログラムを書いたのに」という理由でいきなりプログラミング言語のせいにしていると、よその言語へ逃げることになります。そして、きっとその言語でもなぜかまた問題に躓くことでしょう。

「己を信じよ」!?

バグ報告を受けて混乱したり、ストレスを感じる根本の原因は、自分が「バグを修正できる」と信じられないからだと言えます。これは、プログラミング初心者のうちは仕方ないことです。

ところが、ある程度プログラミングに慣れてくると「ほとんどのバグはなんらかの方法で回避できる」と思えるようになってきます。これは、初心者のうちには想像すらできないかもしれません。

あるバグ報告を受けたとき、自分が「修正できるか」「修正できないか」で悩む段階にある人は、「バグは本当に存在するのか」あるいは「修正できなかったらどうしよう」ということに気持ちを持っていかれて不安に陥ります。そして本当に必要な、再現方法や原因の究明からは足が遠のいてしまうのです。

バグに付き物のこのような不安とどう向き合うかは、プログラミングを続けるうえでもっとも大切なことのひとつです。

もちろん「どんなバグでもきっと直せる!」と確信に近いものを持つには、かなりの時間をかけて経験を積む必要があります。でも、それまでの長い期間をずっと不安に苛まれながら生きてはいけませんから、一歩間違うと「自分は正しくプログラミングできる」という根拠のない自信を持ってしまうことがあります。

この誤った自信は自分自身も、周囲をも不幸にするものですから、それだけは避けなければいけません。

そのためには、「プログラマーは誰でもバグを出す」と認めることと、そのうえで「きっとどうにか修正できる」と信じてみることが重要です。

そうは言っても、プログラミング初心者のうちは「自力で直せる」とは思えないでしょう。でも、今はネットで同じ悩みを持つ人と情報を共有することもできますから「誰かが直せる」と思うことくらいはできるはずです。

「誰でもバグを出す」と認めることの大切さは、バグをすぐに直せなかったとしてもそれを「恥」と思わず、ひとに相談できるようになることにもあります。

自分が出したバグには神経質になる人も、他人が出したバグに対しては意外と真剣になってくれることもあるものです。そうやって、助けられることも、助けることも、お互いにノウハウを貯めて「デバッグできる人」になるために役立つことでしょう。

(つづく)

コメントを記入

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA