常にフィードバックが得られる状態を保つ

今回のSAStrutsのActionFormの機能を実装しようとしたときに、丸一日コンパイルが通らない状態が続いていました。DynaBeanの実装をどこに持たそうか悩んでいたためです。別にコードをあれこれ書いて試行錯誤していたわけではなく、StrutsとBeanUtilsのソースを何度も読みながら、最適なコードを頭の中で考えていたのです。
最初から、ほぼ完成形のソースを書こうとしていたため、手が止まってしまいました。手が止まるのは、あまり良い傾向ではありません。もちろん、考えもなくコードを書くのは良くないのですが、たいていは、全体のうち、一部は見えているところがあります。その一部分から実装してみて、そこからフィードバックを得るべきでした。
今回は、Strutsベースの開発なので、テストを通すだけでなく、Strutsを使ったWebからのテストも常にできる状態を保つべきでした。
迷ったコードは良くないことが多いので、スパッと捨てました。JavaBeansをMapやIteratorでラップする方法は、大体見えているので、その部分を実装して、Strutsで動かしてみて、フィードバックを得ることにします。
フィードバックを得られるまでの時間がかかる実装は、やはり問題がいろいろあります。多少、時間がかかるように見えても、フィードバックが得られる状態を保ちながら実装することが重要だと改めて感じました。