I kept forgetting to post something about this.
In the April 2009 issue of MSDN Magazine, Udi Dahan wrote a fascinating and informative article entitled that describes the difficulties he and his team faced in building a sophisticated smart client trading application.
Sometimes when I read posts/articles/etc. about development practices, it seems as if the writer has never implemented an application of any significant size or complexity. All one needs to do is TDD themselves to a happy place, and then everything else is just an implementation detail that will fall into place.
Of course, it almost never like that. You often times *have* to change code because of implementation details, and you can't abstract away from them entirely (thus, people who have never been in a situation where stored procedures were *required* due to implementation issues like to make pronouncements about their usage).
Anyway, it's a great read.