09-他人より自分を疑う

プログラマが知るべき97のこと」の9つ目のエピソードは、問題が発生したときの心構えです。誰もが経験したことがあるとは思いますが、実装したコードが期待通りに動かなかった場合に、真っ先にライブラリや実行環境を疑ってしまうことがあります。特にテンポ良くプログラミングをしている状態では、自分のコードに自信がある事が多く、陥りやすいでしょう。しかし、枯れたライブラリや実行環境で問題が発生する可能性はほとんどゼロに等しいのです。まずは自分のコードにバグがあると疑います。
しかし、自分は、どのように原因を特定していくかのアプローチさえ間違えなければ、ライブラリや実行環境もあわせて疑う事は問題ないと思います。具体的には問題が発生している箇所を再現するための最小限のコードを書いて実行することが重要です。もし、最小限のコードを書いて、かつ問題が再現したならばそれはライブラリや実行環境の不具合である可能性があります。問い合わせた結果、それが仕様通りの動きで自分の仕様に関する理解が誤っているケースもありますが、その最小限のコードを添付して問い合わせる価値はあるでしょう。このステップを踏む理由は、ライブラリや実行環境の問題ではないという確信を得ることですが、あわせて自分のコードに問題があるという事を証明することになります。
プログラマも人ですから問題を他人のせいにしたくなる真理は働くでしょう。自分には「他人より自分を疑う」とまで良い人にはなれそうにありません。なので、代わりに「他人が正しいことを証明する」ようにしています。
ホームズの「あり得ないことを全部排除して残ったものは、どんなに信じがたくとも、間違いなく真実だ」という言葉が引用されているように、あり得ないことを論理的に排除していきましょう、論理的に、プログラマなのですから。

プログラマが知るべき97のこと

プログラマが知るべき97のこと