ログ・ファースト (Log First)

 

アジャイル開発では「テスト・ファースト(test first)」という手法が使われます。

 

ロジックをコーディングする前に、そのロジックが通るようなテストコーディングを先に行うというものです。

 

このテストがある意味では仕様となり、プログラムの動作を保証していきます。

 

ただし現実にはどこまで細かくテストロジックを書いたらいいものか迷ってしまうのも事実です。

 

「初めにテストありき」とはリリース時の完全性を目指してとても手間のかかる道を歩むことになります。

 

一方で私はこのように考えます。

 

「初めにログありき」

 

ソースコードの随所で細かい「ログ」メッセージを書き出すようコーディングしていきます。

 

一昔前はログは開発時に出力すべきものであり、リリース時には無効化しておくものだと考えられていました。(今でもそのように考えるエンジニアは多いでしょう)

 

ところが私はリリース後でも「ログ」をそのまま残しておきます。

 

そうすればユーザからのトラブル報告でも「ログ」を見ながらスムーズに対応することができるからです。

 

トラブル報告を受けたとき、ユーザにどのような操作をしたかを聞いてもほとんど有益な答えを得られないので「ログ」から追跡していく手法は必須です。

 

このため「ログ」はできるだけ詳細に取ります。

 

CPUパワーやHDの浪費などということを考える必要はありません。

 

できればユーザが見てもある程度理解できるよう日本語でわかりやすくログを残すといいでしょう。

 

バグは現場で起こります。

 

完全なプログラムを目指すより完全なフォローアップを目指すほうが賢明なのです。