僕の開発スピードが最高に上がるとき
それは、完成が楽しみなとき。
早く完成した姿が見たい、早く頭の中のアイデアを実現してみたい、そう思っているときが一番速い。
逆に、完成がぜんぜん楽しみじゃないときは、何をやってもスピードが上がらない。アジャイルとかタスク分解とかTDDとか、そんなの関係ない。
誰しもが陥りがちな、とっても悪いパターンがある。僕自身もこの悪いパターンにはまったことがある。
それは、あまりプロジェクト自体が楽しくないとき、つまり完成が楽しみじゃないとき、「手法」「方法論」に逃げるというパターンだ。完成は楽しみじゃないんだけど、XPでペアプロすれば楽しくなるかもしれない、なんて考えてしまうパターン。TDDと称してテストケースを完璧に揃えることに固執してしまうパターン。
完成が楽しみじゃないから手法で楽しむ、ってのは、やっぱりちょっとおかしい。完全に目的と手段が入れ替わっている。
この悪いパターンにはまり込んだとき、僕の場合は次のような症状が出る。
延々とリファクタリングばかりをし続けるのだ。際限なく。あーでもない、こーでもない、とコードをいじくりまわして、機能は何も追加されていかない。
そんな僕の悪い癖を、下記の質問を見て思い出した。
ソフトウェア開発やプログラミングのスピードを上げる方法はありませんか?
プログラマーとして生きていこうと決めたのですが、いつも見積もりの3倍時間がかかってしまいます。
そのため いつもつらい思いをしています。環境を良くしようとHHKLite2を使い、カスタマイズソフトでホームポジションから離さずにプログラミングしています。
マウスもゲーム用の高精度のものを使っています。
調べ物にもタブブラウザを使い、拡張し続けて効率化をしています。
DualCoreマシンを使いメモリもたくさん積み、障害がないように心がけがけています。出始めのころから効率化のためにエクストリームプログラミングも取り入れていました。
http://q.hatena.ne.jp/1203667934
単体テスト、リファクタリングも当然行いますが、余計に開発速度が落ちています。