目視だけでデバッグ

いま他人のプログラムをデバッグしている。時間がもったいないので目視のみだ。私の場合、小さなクラスならば、目視のみでほぼ100%デバッグできる。(そのクラスのなかから変なAPIを呼び出していたり、高度なアルゴリズムが使われていたりする場合はその限りではない)


こういう目視でデバッグする能力というのは、私は「出来て当然」だと思っていたのだが、これがどうして。出来る人はごくごく限られているのが現実だ。


目視でデバッグできる人はバグを出しにくいし、設計もしっかりしているし、デバッグ時間も非常に短い。逆に目視でデバッグの出来ない人は、バグだらけのプログラムを平気で書くし、設計はぐちゃぐちゃで、デバッグをしてもしても原因を特定することすら出来ず、ケアレスミスばかりで、いっこうにバグが減らない。バグだらけなもんだから、何はともあれ実行させてバグを対処療法的にとろうとするから、いつまでたっても設計能力が向上しない。悪循環だ。


今回、そのbuggyなC#で書かれたプログラムをいろんな人に見せて、目視でデバッグさせてみた。C#は未経験という人に見せても、バグを的確に指摘することが出来る人は居たし、逆に、C#を2年やっているという人でもバグをまったく指摘できない人も居た。思うにこういうのはプログラミング言語に対する理解度やそのプログラミング言語に対する経験の差ではないのだ。乱暴にひとことで言ってしまえば、問題解決能力の差だと思う。


それなのに出来なかった人は軒並み「C#はまだ初めて1ヶ月なので」なんて言い訳をして出来ないことを正当化しようとする。あのなー!そんなん関係あらへんねん!C#は未経験なのに、バグを的確に指摘できとる人おるわけやがな。なんで自分がでけへんのか、ちょっとは反省したらどやねん!(`ω´) と思った一日であった。