丁寧さの是非

仕事をしている時の悪い癖なのだが、比較的に納期に余裕があって、じっくりと作ることができる場合(理想的だね)は書いているソースコードの扱いも非常に丁寧になることが多い。いきおい、テスト中、テスト後にリファクタリングをしまくることになり、下手をすると収集が付かなくなる。テストが完了してもコードを見直したくなり、そして実際に見直していると、「ここはもっとこうした方がスマートだよね」とか、「ここはこう括りだせばコードの重複をなくせるよね」とか、「名前が気に入らない、パッケージ構成変えよう」とかを納期ぎりぎりまで繰り返すのだ。きりがなくなるし、私の近くで見ている人はうんざりするだろうと思う。
YAGNIはXP(eXtreamPrograming)における実装の精神だったと思うが、リファクタリングにもそれは当てはまるのだろうか。あ、日本の格言にも「過ぎたるは及ばざるが如し」って有名なのがあったか。

逆に、時間に余裕が無いと丁寧どころか、自分が書いたコードへの愛着みたいなものも一切発生しない。テストさえ通ればそれでお終い。見直すこともしないし、その後誰の手に渡るのか、なんてことも一切気にしない。半年も経てばそんなコード書いたことも忘れる。「やっつけ仕事」とは正にこういうことなのだろうけど。

それを生業としている以上、長い時間をかけて仕上げることを否定されるのが商用のソフトウェアだということは理解しているし、限られた時間の中で最も良い結果を出すのが腕の見せ所なのだろうけど、一年に一度、無理ならば数年に一度位は、じっくりと、腰を据えて取り組める仕事が欲しいよね。