僕の開発スピードが最高に上がるとき

それは、完成が楽しみなとき。
早く完成した姿が見たい、早く頭の中のアイデアを実現してみたい、そう思っているときが一番速い。
逆に、完成がぜんぜん楽しみじゃないときは、何をやってもスピードが上がらない。アジャイルとかタスク分解とかTDDとか、そんなの関係ない。


誰しもが陥りがちな、とっても悪いパターンがある。僕自身もこの悪いパターンにはまったことがある。
それは、あまりプロジェクト自体が楽しくないとき、つまり完成が楽しみじゃないとき、「手法」「方法論」に逃げるというパターンだ。完成は楽しみじゃないんだけど、XPでペアプロすれば楽しくなるかもしれない、なんて考えてしまうパターン。TDDと称してテストケースを完璧に揃えることに固執してしまうパターン。
完成が楽しみじゃないから手法で楽しむ、ってのは、やっぱりちょっとおかしい。完全に目的と手段が入れ替わっている。


この悪いパターンにはまり込んだとき、僕の場合は次のような症状が出る。
延々とリファクタリングばかりをし続けるのだ。際限なく。あーでもない、こーでもない、とコードをいじくりまわして、機能は何も追加されていかない。


そんな僕の悪い癖を、下記の質問を見て思い出した。

ソフトウェア開発やプログラミングのスピードを上げる方法はありませんか?

プログラマーとして生きていこうと決めたのですが、いつも見積もりの3倍時間がかかってしまいます。
そのため いつもつらい思いをしています。

環境を良くしようとHHKLite2を使い、カスタマイズソフトでホームポジションから離さずにプログラミングしています。
マウスもゲーム用の高精度のものを使っています。
調べ物にもタブブラウザを使い、拡張し続けて効率化をしています。
DualCoreマシンを使いメモリもたくさん積み、障害がないように心がけがけています。

出始めのころから効率化のためにエクストリームプログラミングも取り入れていました。
単体テストリファクタリングも当然行いますが、余計に開発速度が落ちています。

http://q.hatena.ne.jp/1203667934