リファクタリングするうちに仕様が見えてくる

私は,実際にテストとしてメンテナンスしていく価値を持っているのは,この大きいテストケースのほうだと考えています。この大きいテストケースをグリーンにするために,小さいテストケースのレッド,グリーン,レッド,グリーンの繰り返しがあったと考えるのです。

コードを書いて、リファクタリングしていくうちに、そのコード片に何をさせたかったのかがだんだん見えてくるということがありますが。
テスト駆動で開発していると、テストを通してだんだん仕様が固まってきて、その仕様に粒度の小さいテストが合わなくなってくる、ということなのかなあ、と思いました。
今やっている仕事はまさにそんな感じで進めていて、リファクタリングしていく中で、同じような仕事をさせるクラスのインターフェイスがDuck Typing的にだんだん揃ってきたり、そこに自分のコードを書く能力や知識の向上みたいな要素も絡んでソースコードがだんだんいい感じに洗練されてくるのが気持ちいい感じです。
そんなことばかりやってると肝心の開発が全然進まなかったりするんですが、そこはそれ、仕様をきちんと固めながら進まないとあとでまとめてひっくり返すのは大変だから、と自分を納得させて頑張っております。

プロジェクトのセンサーとしてのテストの質を維持するために,資産価値が低くて用済みになってしまった赤くなったテストたちは,プロジェクトの健康のために捨ててしまいましょう。

心します。