﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>James Gregory commented on re: Are you smart enough to do without TDD</title><description>Daniel:
  
  
&gt; And you should not encourage that. It's irresponsible.
  
  
We often disapprove when people blindly follow the patterns and practices that Microsoft lays out for us, but it also applies to everyone else who is passionate to share their opinion. Somebody who follows what Ayende says without first thinking and drawing their own conclusions, deserves everything they get. We are not sheep, and individual developers should not feel they're unable to voice their opinions for fear of misleading people.
  
  
Feel free to disagree and debate all you like, that's one of the great things about our industry, but it's not your place to embue responsibility where none is appropriate.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment22</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment22</guid><pubDate>Tue, 20 Oct 2009 11:47:03 GMT</pubDate></item><item><title>Sean commented on re: Are you smart enough to do without TDD</title><description>You mean your entire first "proof" and the main content of each of your comments here?  As others noted on your blog that "one thing" ended up detracting greatly from the "key" of your post.  The comments here only add to that, making it look like the entire point was to bash Rhino Mocks, I assume in favour of Moq.  That is indeed unfortunate.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment21</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment21</guid><pubDate>Thu, 01 Oct 2009 19:24:35 GMT</pubDate></item><item><title>Ayende Rahien commented on re: Are you smart enough to do without TDD</title><description>Daniel,
  
Rhino Mocks has _5 years_ of backward comparability.
  
One of the most frequent requests that we got for Rhino Mocks 4.0 is backward compact, and we intend to deliver on that.
  
Feel free to ignore this for Moq 2.0, see what would be the result.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment20</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment20</guid><pubDate>Thu, 01 Oct 2009 17:00:21 GMT</pubDate></item><item><title>Daniel Cazzulino commented on re: Are you smart enough to do without TDD</title><description>Sean: it's unfortunate that you end up picking on the one thing that is not the key of my post, but whatever. 
  
  
Ayende: yeah, it's so important that you're explicitly letting everyone know that Rhino 4.0 will break compat in a big way.
  
  
Don't be hypocrite. You know there's a limit to back compat. You know how that ends up by just looking at .NET BCL.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment19</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment19</guid><pubDate>Thu, 01 Oct 2009 16:55:50 GMT</pubDate></item><item><title>Ayende Rahien commented on re: Are you smart enough to do without TDD</title><description>Daniel,
  
Those aren't concepts, those are features. Features that make using Rhino Mocks possible in complex scenarios.
  
Backward compact is _essential_ for long term projects. When you have 1000s of tests using Rhino Mocks, you really care about this.
  
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment18</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment18</guid><pubDate>Thu, 01 Oct 2009 16:04:03 GMT</pubDate></item><item><title>Sean commented on re: Are you smart enough to do without TDD</title><description>If it wasn't clear from Daniel's post, it certainly is after his comments here—this is just a spring-board for Rhino Mocks bashing.  If you don't like it, fine, don't use it.  Don't be crappin' on Ayende for not completely refactoring it to suit you though.
  
  
  
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment17</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment17</guid><pubDate>Thu, 01 Oct 2009 14:41:23 GMT</pubDate></item><item><title>Daniel Cazzulino commented on re: Are you smart enough to do without TDD</title><description>As Frank corrected, I meant to say Integration test, of course, which is what your scenario tests are in reality. 
  
  
Ayende:
  
&gt;. redo.. Things like partial mocks, multi mocks, delegate mocks, etc.
  
  
Precisely the myriad of concepts people have to learn to use the tool and increasing the learning curve. I'm not saying you should not have reused what you had. I'm saying that the *public* API could use a severe revamp, what you seem to be doing for 4.0, which is a GREAT thing to do. Backs compat for an OSS project that wants to stay at the edge of programming paradigms and styles, should be low pri. (maintained if possible, provide legacy wrappers if possible, etc.)
  
  
Just to reiterate: I'm not opposing to have integration tests. I do believe people may use those as an excuse not to do TDD. And you should not encourage that. It's irresponsible.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment16</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment16</guid><pubDate>Thu, 01 Oct 2009 13:43:02 GMT</pubDate></item><item><title>Former cowboy commented on re: Are you smart enough to do without TDD</title><description>It amazes me how so many programmers have a tendency to learn about some methodology or set of rules and stick to it as if they are the ten commandments.  They also feel the need to crusade against those who dare to 'disobey' these rules.  I battle this everyday at my company and it is exhausting.  Ayende you have fearlessly battled the entire internet and that makes you a freakin hero!
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment15</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment15</guid><pubDate>Thu, 01 Oct 2009 13:31:26 GMT</pubDate></item><item><title>Chris Missal commented on re: Are you smart enough to do without TDD</title><description>The fact that we're having arguments...err, discussions about TDD and/or mocking/isolation frameworks makes me smile. I don't care who "wins".
  
  
As long as people have their preferred framework and are even using one is good enough for me. We'll figure out all the details later, but the positive note is that there even is a discussion about this.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment14</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment14</guid><pubDate>Thu, 01 Oct 2009 02:50:39 GMT</pubDate></item><item><title>Awkward Coder commented on re: Are you smart enough to do without TDD</title><description>I'm clever enough, but I still do TDD for people who aren't...
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment13</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment13</guid><pubDate>Wed, 30 Sep 2009 19:03:49 GMT</pubDate></item><item><title>Kelly Stuard commented on re: Are you smart enough to do without TDD</title><description>Ayende: "I don’t really enjoy being controversial"
  
  
That's too bad, because I think if you did enjoy it the world would be in for a lot of hurt. Shake up the status quo, and all that.
  
  
I think most of the readers here are just happy to hear your thoughts.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment12</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment12</guid><pubDate>Wed, 30 Sep 2009 16:27:43 GMT</pubDate></item><item><title>Dan Finch commented on re: Are you smart enough to do without TDD</title><description>This is why I advocate the Do Exactly What You Have To Do Exactly When You Have To Do It methodology (DEWYHTDEWYHTDI), of which I am a licensed Invincible Grand Master. I will teach it to you for one million dollars.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment11</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment11</guid><pubDate>Wed, 30 Sep 2009 15:53:15 GMT</pubDate></item><item><title>Scott White commented on re: Are you smart enough to do without TDD</title><description>I don't see what his issue is with Rhino Mocks.  It supports R&amp;P and AAA.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment10</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment10</guid><pubDate>Wed, 30 Sep 2009 13:32:38 GMT</pubDate></item><item><title>Mr_Simple commented on re: Are you smart enough to do without TDD</title><description>@Nick - Integration tests are the sweet spot in the middle. You test your entire system as a whole, writing fewer, less-brittle tests, but still catching the biggest bugs.
  
  
Yeah buddy!
  
  
[www.idesign.net](http://www.idesign.net) - C# Coding Standard v2.32 - page (8) - item (14)
  
  
Assert every assumption.  On average, every fifth line is an assertion.
  
  
---
  
  
I load my programs with Assert's.  Assert arguments, Assert return values.  Gives me warm fuzzies everytime I press F5.
  
  
I also log everything with SmartInspect.  Client has a problem, send me the log.  It makes debugging a complete no-brainer.  A complete no-brainer.  Almost boring.
  
  
Between these and unit test as needed, sleep comes easy, software is stable and runs as expected, and client's are happy.
  
  
Rocket science isn't always needed to achieve rocket science results.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment9</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment9</guid><pubDate>Wed, 30 Sep 2009 13:31:11 GMT</pubDate></item><item><title>Frank Quednau commented on re: Are you smart enough to do without TDD</title><description>Ayende,
  
I think Daniel meant to say Integration tests (not interaction). I think your scenarios are of an integrative nature.
  
  
It is interesting though that people witness your posts as controversial while you are not even really criticizing any of the current practices, merely adding something new to the plate worth thinking about. 
  
  
People should consider that a design and process evolution cannot be complete after, what, not even a decade of putting those things (testing, mocking, etc.) into practice. Those things are still evolving and the full story is not known yet. It seems we are just now reaching the stage of craftmansship. If history is anything to go by, we haven't reached the age of Engineering yet in software development (oh dear, what have I said?!). 
  
  
Hence the correct reaction for now in many areas of software development seems to me: Find your masters, see how they do it, compare and use their methods and draw your conclusions. Thank God many of them are willing to put their experiences onto the web.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment8</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment8</guid><pubDate>Wed, 30 Sep 2009 12:10:53 GMT</pubDate></item><item><title>Torkel commented on re: Are you smart enough to do without TDD</title><description>I find the scenario model of doing testing on a higher level that you have talked about very interesting. Not as a complete substitute for TDD (which is not what I understand you propose) but just as another way of doing BDD like integration testing (or what ever you call it, doesn't matter).  
  
  
But it would be very nice with complete examples that show the scenario runtime, the application, etc, and how this can be applied to an MVC  or WPF application. 
  
  
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment7</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment7</guid><pubDate>Wed, 30 Sep 2009 12:08:38 GMT</pubDate></item><item><title>Bunter commented on re: Are you smart enough to do without TDD</title><description>Well, that's what you get if you go against religion. TDD is a lot about "it _will_speed you up" and "it _will_ life merry and happy", lot of guys have sold this idea for long, most of them have little to no actual measurements to back up their bidding. Note that I don't contradict those claims, just that like always with any other shining sd-methology, evangelists attack and zombies follow. Remember RUP and UML? Like usual, software engineers are passionate about development strategy and pretty crappy when it comes to tactics and actual, verified measurement of their work. U know, this "i'm an artist" "i'm an engineer" thing depending on the suitable context.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment6</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment6</guid><pubDate>Wed, 30 Sep 2009 09:23:54 GMT</pubDate></item><item><title>Barry Dahlberg commented on re: Are you smart enough to do without TDD</title><description>We wouldn't read you if you weren't so good at being controversial and relevant at the same time...
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment5</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment5</guid><pubDate>Wed, 30 Sep 2009 08:30:30 GMT</pubDate></item><item><title>Nick Aceves commented on re: Are you smart enough to do without TDD</title><description>"Either one is a risk without the other."
  
  
Sometimes risks are worth taking. When TDD gets in the way of design flexibility, you have to weigh your development time vs. time spent fixing bugs in the future. Integration tests are the sweet spot in the middle. You test your entire system as a whole, writing fewer, less-brittle tests, but still catching the biggest bugs. When smaller bugs appear, you write regression tests for them. When you are forced to write code that may be especially bug-prone (complex logic, regular expressions, etc), then you write some lower-level (maybe even unit-level) tests for it.
  
  
There's always risk. There's a risk a meteor could come through my ceiling and strike me dead, right this instant. But you don't see me adding armor plating to my roof, because in all practicality I don't need it.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment4</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment4</guid><pubDate>Wed, 30 Sep 2009 08:30:26 GMT</pubDate></item><item><title>Arnis L. commented on re: Are you smart enough to do without TDD</title><description>Just keep Mocks&amp;Stubs separated. That's the thing i dislike about Moq - there's a bunch of mocks in my tests despite that test is supposed to contain 1 mock only.
  
  
P.s. Ignore Daniel.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment3</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment3</guid><pubDate>Wed, 30 Sep 2009 08:08:11 GMT</pubDate></item><item><title>Ayende Rahien commented on re: Are you smart enough to do without TDD</title><description>Daniel,
  
Starting from blank slate would mean having to re-do a LOT of stuff. Things like partial mocks, multi mocks, delegate mocks, etc.
  
That would be truly stupid thing to do. Adding the AAA merely added, not substracted, and we kept all the power in Rhino Mocks.
  
  
Interaction tests? That is most certainly not what I am doing there.
  
  
And when using my approach, writing a unit test is stupid, it is actually harder to do than a scenario test, and doesn't tell you much about what is going on
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment2</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment2</guid><pubDate>Wed, 30 Sep 2009 07:55:32 GMT</pubDate></item><item><title>Daniel Cazzulino commented on re: Are you smart enough to do without TDD</title><description>As I said "...if he had sat down with a blank project, two years ago...", so I fail to see how being 5 years old or coming out for .NET 1.0 has anything to do with what I said.
  
  
And if Rhino has 5 years, it does NOT predate the debate. Even Fowler's often cited article on the matter (
[martinfowler.com/articles/mocksArentStubs.html](http://martinfowler.com/articles/mocksArentStubs.html)) is first dated as 08 Jul 04: First published.
  
  
"The main tenet is: “A feature creation may not involve any design activity.”
  
  
I stand by my idea that all you've done is invent a fancy name for an interation test and trying to use that as an excuse not to write actual unit tests. I say you still need both. Either one is a risk without the other.
  
  
Note that I'm defending unit tests, NOT TDD in this particular case where "feature creation" is not a design activity (i.e. you have a whole infrastructure that allows a business app developer to just implement IRule and that's it). You still need unit tests.
</description><link>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment1</link><guid>http://ayende.com/4220/re-are-you-smart-enough-to-do-without-tdd#comment1</guid><pubDate>Wed, 30 Sep 2009 07:14:49 GMT</pubDate></item></channel></rss>