この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。
ソフトウェアにはバグが付き物。
どんなに慎重に設計・実装を行ってもミスはどこからか紛れ込むものであり、これを完全になくすことはできません。
しかし、バグの発生やそれによって生じる被害を抑えるためにできること・すべきことはいろいろとあります。
そうした手法にどれだけ通じているか、がプログラマとしての技量だと言い換えてもよいでしょう。
バグを減らすための重要な方針のひとつに、「エラーの発生を目立たせる」というものがあります。
異常が発生した場合、プログラムの動作を停止させたり、エラーメッセージを出したりすることで、ユーザがこれに気付き、開発者・管理者に連絡をせざるを得ないようにシステムを設計するわけです。
エンドユーザとしては「異常が発生してもなんとか処理を続けられるようなシステムにして欲しい」と思うかもしれません。
しかし、発生した異常を表面上取り繕って処理を続けるということは、結果的に、
- バグの発覚を遅らせることで、ユーザの時間がより多く浪費する
- 異常な状態で処理を進めることで、データの喪失・損壊範囲を拡大させる
といった問題を許容するシステムを作り上げてしまうということです。
そんな危険なシステム、とてもじゃないが利用できたものではありませんね。
問題の発覚・解決の先延ばしが破滅を招くのは、現実の世界と同じです。
もちろん、リリース前のテストでバグをすべて取り除ければそれに越したことはないのですが、実際には運用開始後のバグ発覚というのは避けられないもの。
もし稼動中のシステムのバグを見つけたら、どうか助けると思って開発者に教えてあげてください。
成田 (過ちは正すに如かず。)