Jul 29, 2014

ソフトウェアのバグを見つけたときにやってはいけないこと

ソフトウェアのバグを見つけたときの対応には、プログラマとしてのセンスがけっこうあらわれると思っている。ぼくはセンスの無い人間の代表例みたいなものだから、ここにはぼくがよくやってしまう行動を思い返して書き、「ソフトウェアのバグを見つけたときにやってはいけないこと」とした。

バグを見つけたことを周囲に吹聴してはいけない

 

ソフトウェアにバグを見つけることや、ソフトウェアのバグを踏むことは、基本的に嫌なことだ。本当にそうだろうか。

有名なソフトウェアが不可解な挙動をするのを見たとき、周囲のひとびとをデスクに呼んで、

「いやー、このソフト、マジでクソですよ。こんなバグがあるんです。ほら、ひどいでしょ」

と毒づいているとき、ぼくは口を歪めながら、ある種のよろこびを感じている。それは、他者のプレゼンに対して不備を指摘するときのよろこびにとてもよく似ている。いうなれば「鬼の首を取ってやったぞ」という気分だ。

あら探しによろこびを感じるひとは少なくない。経験上、バグを見つけた側からそのことを周囲に吹聴するようなひとには、こうした傾向がある(ぼくがそうであるように)。そんなひとびとは「見つけたバグにどう対処するか」という生産的な思考がすぐにはできず、ソフトウェアの抱える不具合という「あら」につい矛先を向けてしまう。

これが悪化するとと、一度バグを踏んだだけで、だんだんそのソフトウェアを憎たらしく思えてくるようになってくる。ソフトウェアを敵視しがちになってしまう。しまいには、「俺の仕事がうまくいかないのも、全部このソフトのせいだ」なんていう被害妄想にすら発展することもある。

バグを見つけたと思ったら、周囲に話したくなる気持ちをぐっとこらえ、深呼吸をしよう。それでも収まりがつかないなら、テディベアにでも打ち明けてみればよい。

プログラマとしてのセンスとは、ソフトウェアを敵視しないことだ。

バグをすぐ直そうとしてはいけない 

 

バグを見つけたと思ったとき、「なんだよもう」 とぼやきながらソースコードをエディタで開き、問題のありそうな箇所にあたりをつけ、デバッグ文を仕込みーー。

それが、あなたのつくっているソフトウェアであって、時間が無尽蔵にあるのならばよい。しかし、そうではないのだとしたら。納期のある中、巨大なコードベースからなる著名なソフトウェアを前にしているのだとしたら。それは最善の選択ではないし、最悪の選択となってしまうことすらあるだろう。

もちろん、それが本当にバグだとわかったのなら、バグレポートを登録するぐらいは礼儀だと思う。しかし、ソースコードの修正までいくのは早計だ。ぼくらにとってバグを直すことは本来の目的ではない。

プログラマは手を動かし続けることが好きだから、ついつい問題が与えられると、それを解こうとしてしまう。目先の Yak-shaving に夢中になってしまう。Yak-shaving がどれだけ時間を奪うか、それを嫌というほど知っているにも関わらず、気がつけば Yak-shaving のなかにいる。

プログラマとしてのセンスとは、本来の目的を見失わないことだ。

バグを見つけたと思ってはいけない

 

そもそも、それはバグではないのかもしれない。

これまで、ぼくが「ソフトウェアにバグを見つけた」と思った経験のうち、実に半分以上は見事な思い違いだった。それは仕様だったり、ドキュメントを読んでいれば回避できる問題だったりした。「あのバグ、結局どうなった?」と同僚に聞かれ、勘違いだったとは言えずに赤面しながら言葉を濁した経験は枚挙に暇がない。

そんな恥をかかないためにも、まずバグを見つけたと思ったら、 そのことを疑ってみよう。ドキュメントをもう一度読んでみよう。そのソフトウェアに詳しいひとが周囲にいれば、恥ずかしがらずに聞いてみよう。こうした行為はもうひとつの視点を与えてくれ、それによって思い込みが正されることも少なくない。

プログラマとしてのセンスとは、思い込みを排除して、常に二つ以上の視点から問題に取り組むことだ。

免責

 

ぼくは残念ながらプログラミングを生業にすることができていない。趣味で十年近くプログラムは書いてきたが、いまだ上に書いたようなことをやらかしている。そういうわけで、この題材を選んだ。これは自戒の記事を出発点とするから、ごく個人的なことを、偉そうに一般化して書いてしまったきらいはある。許してください。

3 comments:

  1. It was a great content I feel glad to read this posting. thanks for sharing it. crack software download

    ReplyDelete
  2. It was a great and impressive information you have posted here and I am glad to read this wonderful information. latest software

    ReplyDelete
  3. I like to share this information about the software with my friends. thank you so much for the article. download full version software

    ReplyDelete