デバッグの楽しさ

デバッグの快感を知らないプログラマがもしいたら、たいへん不幸だと思う。
自分が手がけたシステムのどこかで異常が起きてしまった、というのは大ショックだ。
しかし、それが予想もつかなかった異常であるほど、面白い。「絶対ありえねーーーー」と悶え苦しみつつ楽しさが沸き上がってくるのを感じる。軽い興奮状態だ。
さっそく限られたバグ情報から推理を始める。どんな操作で起こったのか。前後の状況は。瞬時に処理の流れの全体像を脳内メモリにロードし、経路をたどる。
ロンドンのタクシードライバーの脳を調べたら、記憶を扱う海馬という部分が平均よりも発達していたという話があるが、すくすくと育ったプログラマの脳内にもそれと同じことが起きているかもしれない。
ときどき路に迷う。よく考えろ。情報が足りないのでは? この区画が怪しいぞ。フォーカスフォーカス。
答えにたどり着き、それが正解だと実証されたときには(はあーっ、あの処理が巡り巡ってこんなところに影響を与えるなんて!)、とても晴れやかな気持ちになれる。
かようにデバッグは楽しいものだが、以下の場合は例外だ。
プロジェクトが火を噴きまくっている時、お客さんが怒り狂っている時、そして自分が手がけてもいない悲惨なプログラムをデバッグしなければならない時。特に最後のは最悪である。(そしてこの三つの状況はときどき集団で襲来する。)


ジョン・ベントリーの名著『珠玉のプログラミング』にデバッグにまつわる面白い話がいくつか載っている。


珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造

珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造