クリエイティブを楽しむ新メディア 牛の歩みで更新中!クリエイティブを楽しむ新メディア 牛の歩みで更新中!
プログラム・IT
デバッグできる人になる① 怒れるプログラマーの心理とは
2023年10月1日(日曜日)

「プログラムにバグは付き物」という言葉は、おそらくプログラムの概念ができて以来、古今東西どこでも言われてきた言葉でしょう。皆から尊敬を集める優秀なプログラマーが書いたコードでも、バグ(プログラムの動作不良)を出すことはごく普通のことです。

もちろんプログラムの規模にもよりますが、スラスラとコーディングしたプログラムが、そのまま何の問題もなく完璧に動作することがあるとすれば、それは人知を超えた奇跡としか言いようがありません。

あるいは、もしも「このひとはバグを出さない」というスーパープログラマーがいたとしたら、そのスーパープログラマー氏はまず自分でバグを見つけ、逸早く"デバッグ"(バグを取り除くこと)することで他人にバグを見せない努力をしているのでしょう。

プログラミング初心者はもちろん、スーパープログラマーでさえ、プログラミングに関わるすべての人はデバッグ能力を身に着けなければならないのです。

怒れるプログラマーたち

ソフトウェアやサービス開発の現場で多くのプログラマーたちと関わると、まれに困ったプログラマーに出会うことがあります。それは、"怒るプログラマー"です。

もちろん、普段から腹を立てては唸り声をあげているようなクレイジーな人物というわけではありません。ただ、バグを報告すると不機嫌になるのです。

バグ報告に対するプログラマーの怒りは複雑です。「バグの報告がわかりにくいから」とか「自分のせいじゃない」とか「これくらい我慢しろ」とか、いろいろな理由で立腹するプログラマーがいます。

でも、一概に"怒れるプログラマー氏"が悪いとは限りません。

例えば、本当にバグではないものをバグだと報告されることがあります。バグ報告者とよく話をしてみると、「実は仕様(本来あるべき動作)を勘違いしていた」と判明することがあるのです。バグ報告を受けて、さんざん苦労して再現を試みたり、思い当たる原因を調べたのに無駄だったとしたら……。その脱力感は、怒れるプログラマーを育てる肥やしになってしまうことでしょう。

また、「バグる」という言葉がプログラマーの逆鱗に触れることもあります。

プログラマーは、「画面が停止して操作をいっさい受け付けなくなった」とか「通常の警告文ではなく、断片的な英語のメッセージが表示される」などの"現象"がわかりさえすれば、バグの原因を特定し、修正できます。でも、「バグった」と言われても、何が起きているかわかりません。その報告はあってないようなものなのです。

どちらの例も「バグ報告そのものがバグだった」と言ってもいいかもしれません。このようなバグったバグ報告がなされたとき、プログラマーは、バグ報告者に対して"より良いバグ報告の仕方を教える"という一種のデバッグ作業をしなければならない場合もあります。

そしてこのような経験を何度も繰り返すうちに、プログラマーは「またかよ」と思うようになり、バグ報告を疑うようになります。その人自身の人柄の問題ではなく、周囲の環境が怒れるプログラマーを生むことがあるわけです。

ところが不幸なことに、事態は表面的に受け取られ、怒れるプログラマー個人の問題とされます。

周囲の人々はバグを見つけても怒れるプログラマー氏に報告したくなくなり、絶対にバグだと断言できて、かつ報告しやすいものだけを報告するようになっていきます。「バグかもしれない」という報告は、本当は重要なのに。

このようなバグ報告の停滞は、当然、バグの修正を遅らせます。そしてバグが見過ごされたまま開発が進んでいけば、砂の上に城を築くように、あとになって大きな問題を引き起こすことになりかねません。

にもかかわらず、プログラミングの世界では、デバッグの重要性が見過ごされることが少なくありません。

「バグはないのが当たり前」というユーザー目線に立てば、自分のミスを自分で直しても評価にはつながらないという考え方になります。プログラマーはどんどんコード書いてソフトウェアやサービスを形にするのが仕事、テストはそれ以外のひとがやればいい、という体制の開発会社もあります。

とはいえ、バグを恐れるプログラマーが、いつまでも慎重にテストを続けるのが正しいわけでもありません。大切なのは"バランス"で、臨機応変な対応こそが求められます。それがうまくいかない環境では、"怒れるプログラマー"だけでなく"病めるプログラマー"もまた次々に生み出されていきます。「生み出す」と言って良いかわかりませんけどね、そのまったく反対の事態が起きるのですから。

だからこそ、先に述べたように「プログラミングに関わるすべての人はデバッグ能力を身に着けなければならない」のです。自分の身を守るためにも。

(つづく)

コメントを記入

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

CAPTCHA