バグは無くならない

システム開発に関わる限り、あなたはバグと関わらなければなりません。どれほど注意して開発をしていても、ほとんどのシステムにバグは存在します。

バグは出てくるものと考える

バグは無くならないのですから、開発や運用のスケジュールを組む際にも、バグ修正の工程が発生する前提でスケジュールを組むべきです。システム開発は往々にしてテスト工程が最終盤に配置され、しわ寄せが集まりがちですが、バグ修正のための余裕は確保しておきましょう。

また、バグに対応する時間が分散するような開発プロセスを検討してみるのも良いかもしれません。

参考:様々な開発プロセス

バッファの確保を怠ってしまうと、取り返しのつかない段階で大きなトラブルを抱えてしまうことにもなりかねません。もしスケジュールに余裕がないのであれば、開発の範囲を小さくするか、スケジュールを伸ばすか、メンバーの構成を見直すか……。なんにせよ、何らかの対策を講じなければなりません。

バグの調査がしやすい環境づくり

バグは出てくるものと考えると、出てくるのを避けられないのならば、いざバグが発見された際の調査がしやすい環境を作ることが重要だと気づきます。

出力するログを整理する

必要な情報がしっかり残っているログは、バグの調査に大いに役立ちます。例外の記録はもちろんのこと、時刻や行った操作、処理の結果などが見やすく整理されていれば、バグの発見から修正までの時間が大幅に短縮できるでしょう。

また、あまりにも多くのログが出力されてしまうと、それらがノイズとなって調査の妨げになります。本当に必要な情報はなにかを考えて、出力するログを整理していきましょう。

コードの責任範囲を明確にする

コードを書く際に、そのコードが責任を持つ範囲はどこまでか?を意識しながら書くことで、バグの調査がしやすくなります。

曖昧な責任範囲で書かれたコードでは、処理を最初から追っていかなければなりません。コードの責任範囲が明確になっているシステムであれば、発生した現象から、この現象はあのコードのあたりかな、と推測しやすくなるのです。

バグが見つかった時の準備をしておくばい!

サルのダイミョー