Simple designs through Test Driven Development
Scott Bellware keeps on wowing me with his elegant way of putting ideas into words, sentences and paragraphs. If you are into Test Driven Development, you should be reading his blog.
In one of his latest posts he talks about the value of simplistic design, and how you can achieve it with test driven development, despite your brain telling you to do different. here's a nice quote:
"Imagine that you have the freedom to create the simplest, most uncomplicated, and easiest library to use. Write some client code that shows how that simple library would be used in an ideal scenario. If you write that client code in an NUnit (or other) test method, you've written naive test code. And since you've written this specification before you've written your functional library code, you've also just done some Test-Driven Development."
That is truly one of the qualities I try to teach students who take on my TDD classes. Simplicity is key, and is definitely one of the hardest things to come up with the more experience you have.
One of the unfortunate things about Scott's blog is that he has comments turned off (I asked - he's not in any mood to turn them back on due to spam and stuff, and he's not into moderation).
So, if you do have comments on that post, feel free to post them here. If interesting questions come up I'll try to answer them myself, if I can't get Scott to answer them personally (since this is *his* post - I'll try to act as a "comment by proxy")