みんなどうやって自分のやった仕事をいつまでも覚えているのだろう


学生のときは気付かなかったんだけど、仕事始めてみたら自分が大事なことを片っ端から忘れる人間だということがわかって、たとえば

  • 先月までやってたプロジェクトのビルドとかデプロイの方法が思い出せない。毎日何十回もビルドしてたのに
  • 昨日解決したバグが別の機能でも発生したが、いったいどうやってデバッグしたのか思い出せない

みたいなことがたくさんあって、ダメだこりゃーと思ってテレビで見た記憶障害の人と同じことを始めた。
その日やった仕事を、試行錯誤の過程も含めて、全部テキストファイルに書くのだ。
たとえばデバッグならエラーメッセージとスタックトレースを貼るところから始めて、ここが怪しいあそこがおかしいといった推論を、けっきょく的外れだったものも含めて、全部一本のテキストファイルに書き込む。
打ち合わせの議事録がメールで届いたらコピーして貼る。
客先の電話番号も貼る。
開発機のIPも貼る。
パスワード以外とにかく何でも貼る。これが転職後の2年間で4MBぐらいに育っている。


上のファイルはノイズが多いので、その日分かったことの上澄みだけを別のテキストファイルに書き込む。
たとえば Teradata と SQL Server は、結合を使ったUPDATE文のシンタクスが微妙に違う。
こんなのは1週間経ったらどっちがどっちかわからなくなるので、調べた日付とともに上記ファイルに書く。
これが2004年の1月から始めて2MBぐらいになっている。
いろいろ大事なことを知らなかったことがばれるので、このファイルは人に見せられない。


あと「何でだろう」「どうやってやるんだろう」と思ったことは、また別のテキストファイルに書く。
RDBがテーブルのレコード件数をメタデータとして持てない理由は何か*1」という、何か大きな勘違いしてそうなことから、「grepの大文字小文字を無視するオプションは何だろう*2」といった、そんなこと書いてないで調べた方が早いんじゃないのというようなものまで、「?」と思ったら何でも書く。だいたい分かると思うけどこれも恥ずかしいので人に見せられない。これが10KBぐらいある。


自分はこの3本のテキストファイルがないと仕事にならないが、そういうものに頼って仕事してる人に会ったことがない。
みんなどうやって自分のやった仕事をいつまでも覚えているのだろう。
あと、テキストファイルじゃなくて、もうちょっとよい道具はないものでしょうか*3

*1:select count(*) from xxxx を実行したら、RDBはその都度レコード数をカウントしますよね。レコードの追加削除は必ずDBMSを通してやるのだから、レコード数をメタデータで持ってればいいと思うのですが、なんで毎回カウントするのでしょうか ...という意味

*2:いやー今調べたんだけど -i ですね

*3:これらのファイルに画像とかハイパーリンクとかを埋めたくなるときもある