This post originated from an RSS feed registered with Ruby Buzz
by David Heinemeier Hansson.
Original Post: Being able to execute on insights
Feed Title: Loud Thinking
Feed URL: http://feeds.feedburner.com/LoudThinking
Feed Description: All about the full-stack, web-framework Rails for Ruby and on putting it to good effect with Basecamp
Dion discovers the pleasure of removing code. This is also by far the most enjoyable aspect of programming for me. When I'm able to remove code, it means that my understanding of the domain has deepened. Some times it's just picking up another Ruby insight that turns three template lines into one succinct expression. That's satisfying in the "getting closer to my tool" kind of way.
But more interesting is it when the domain model reveals itself. When once fuzzy associations and unsure delegations become crystalized abstractions. I've had this experience a good handful of times with both Rails and Basecamp. When it clicks and you spot the missing class or the deeper pattern, there's a unique burst of energy released. The light bulb that goes off.
And this is where I think test-driven development has been most rewarding. It gives you the courage to execute on the deeper understanding. To radically simplify through swift cuts and add missing bridges.
The few times where I haven't had the comforting confidence of a good test suite when discovering an insight have been some of the most frustration ever. The gold is right there, yours for the taking, but you dare not grasp for it in fear of what hidden traps you'll uncover. It's horrible.
Especially because the mind is now set on the gold. The regular joy of working with the rest of the code base drops below zero when you know that an executable insight is available.