ユーザはシステム不具合に遭遇すると気軽に「バグった!」という言葉を連発しますが、システム開発に関わる我々からするとバグという言葉を聞くと心臓に悪いのでやめてほしいといつも思っています。そもそもバグという言葉にはプログラムの不具合という程度の意味しかないわけですが、世の中を見渡してみると、バグという言葉はどうも広い意味で使われすぎているように思います。そこで今回はバグという言葉について考えてみようと思います。

バグという単語の一般化はファミコン時代から?

バグという言葉が大衆化したのはファミコン時代からではないかと思います。ファミコンで気軽に遊ぶ子供達が、動作不具合を見つけるや「バグだ。バグった」の大騒ぎ。ファミコンの場合システムトラブルの原因にはプログラムの不具合の他にカセットの差し方が悪い、ほこりがたまりすぎてショートした、熱暴走等々様々な要因があったわけですが、子供達はそれらをひっくるめて全て「バグった」という言葉で片付けてしまいました。ここからバグという言葉に対する誤用の一般化が始まったのではないかと思っています。

これはバグなのか?

社内でシステムを使ってもらっていると、たまに「これはバグですか?」という問い合わせが来ることがあります。調べてみると、元々要件定義になかったので実装していなかった機能についてだったり、ユーザに使い方を誤解されていたりといった場合がとても多いです。これらは明らかにバグではないです。何故なら動作結果はどうであれ仕様通りであり、プログラムの不具合ではないからです。

バグという言葉はどうなるか?

ユーザにとって、自分自身が想定しない境遇に陥った場合それらはすべて「バグ」と片付けてしまいます。ユーザにとってシステムは一つのブラックボックスであって、自分の思い通りに動かなければ原因がどんなことであれ「バグった」状態であると片付けてしまいます。

しかし我々がユーザに対して「これはバグだ」「これはバグではない」という説明をいちいちしたところで全く効果はないと思っています。何故ならユーザにとっての関心ごとはシステムが正常に動いているか動いていないかであって、これまではそれを「バグった」という一言で説明できていたわけです。もし我々がバグという言葉の正確な定義を教えたとしてもユーザがそのような便利な言葉を簡単に手放すとは思えません。

そう考えると今後も「バグ」や「バグった」という言葉はシステム不具合と同義語で使われ続け、消えてなくなることはないと思われます。心臓に悪いですけど。

★おまけ

jspやapacheなどのエラーメッセージって、いかにもシステムトラブルだ~って画面でどきっとしますよね。たしかにあの画面を見ればユーザが「バグった~」と大騒ぎするのもわかる気がします。

そこで私はエラー画面をもっとユーザフレンドリーにすることをお勧めします。たとえばエラー画面を4コマ漫画にしてどう対応すればいいか教えてくれるとか。

ただ残念なことにそういった本質的ではない部分にはなかなか工数や予算をかけられない事情もあるんですよね。そういった遊び心を取り入れられるような楽しいシステム開発を行いたいものです。現実逃避工数(?!)をそちらに回すとよいかもしれません。