LOC Based 進捗管理

今ビールを飲んでいます。午前5:20分です。明日(今日)仕事です。全く問題ないです。

私はもともと寄り道しやすい性質で、納期が迫っている案件でも何かを調べているうちに、いつのまにか180度違うことをやっていたりするんですね。ニコ動見てたりとか。これがあまりにもひどいもんで、なんとかならないかな、といつも思っていたわけです。けっこう深刻でした。
私は主にRuby on Railsで開発するのですが、こいつはコマンドラインから

rake stats

と打つだけで、現在のコードが何行かというのがすぐにわかります(LOC:Lines Of Code、かな?)。
LOCにしてもいろんな数値が出るんですが、Code LOCというのが本質的なコードの行数です。多分。つうかちゃんと調べろよ俺。なにせビール飲みながら書いてますから。上質なエントリは期待しないでください。
これには、Viewのコードはカウントされません。モデル、コントローラ、ヘルパだけです。多分。
まずプログラミングを始める前に、このCode LOCを確認し、これに適当な数字を足してxとし、「よーし、今日はLOC xになるまで帰らないぞ!」と気合をいれて始めると、こんな私でも驚くほど集中することができ、今までに無いほどの進捗を果たすことができました。
この方法の恐ろしいところは、「リファクタリングをするとLOCが減る」というところです。なので、早く帰りたかったらリファクタリングは当面しないことです。ただし、後でLOC制限を解いて、必ずリファクタリングすること。もしくは、リファクタリングも並行して行い、あくまで本質的な進捗をめざすことです。私はもっぱら後者のスタイルです。これをやると安直なコーディングをしなくなり、後で余計なリファクタリングをしなくてもいいよう、綺麗な設計をする感覚が研ぎ澄まされます。
とか偉そうにいってるけど、始めて3日、しかも今日は4時間で25行しか増えず(目標は1日200行)、早くも挫折してしまいました。でも、今後も続ける予定。

今日のBGM

「1万年と2000年前から愛してるうぅぅぅぅぅ」でおなじみのAKINOのアルバム「Lost in Time」を聴いています。神神。