>If you're beginning to work on a problem from scratch, you will most 
likely throw one or two initial implementations before reaching something 
you feel is acceptable as a v1.0. Writing tests for any version prior to 
this one is a waste of time.

Even Kent Beck doesn't always write automated tests at first. He wrote 
about this in "To Test or Not to Test? That’s a Good Question." [1]:

"Just as golf has a long game and short game requiring related but not 
identical skills, so software has a long game and a short game."


At the time, he considered 'JUnit Max' a short game:

"When I started Max I didn’t have any automated tests for the first month. 
I did all of my testing manually. After I got the first few subscribers I 
went back and wrote tests for the existing functionality."


Contrast this with JUnit, which he considers a 'long game':

"Working on JUnit, the whole bag of XP practices makes sense. We always 
test-drive development. We refactor whenever we can, sometimes trying 3-4 
approaches before hitting one we are willing to live with."


Philip 

[1] http://www.threeriversinstitute.org/blog/?p=187

On Friday, 21 February 2014 21:47:44 UTC, Cédric Beust ♔ wrote:
>
> Not a big fan for multiple reasons:
>
> - TDD introduces a lot of churn, especially in the early phases of your 
> coding. If you're beginning to work on a problem from scratch, you will 
> most likely throw one or two initial implementations before reaching 
> something you feel is acceptable as a v1.0. Writing tests for any version 
> prior to this one is a waste of time.
>
> - TDD encourages myopic design. You are more focused on writing your code 
> so it can pass trivial unit tests than thinking about how your overall 
> design will fit with the rest of the code base.
>
> - TDD has high friction. If you are very zealous with TDD, every minor 
> change in the code base will cause you to update tests. I'm okay with a 
> little bit of that (it's the purpose of tests) but not to the extent that 
> TDD promotes.
>
> - It overly privileges unit tests over functional tests, and my default 
> position is that functional tests are more important (if I have the time to 
> write a functional or a unit test and just one, I'll always go for 
> functional because these tests have a direct impact on users, as opposed to 
> unit tests which are just a convenience for you, the developer).
>
> I have more (I wrote a bit of that in my book) but heading out for now.
>
> -- 
> Cédric
>
>
> -- 
> Cédric
>
>
>
> On Fri, Feb 21, 2014 at 1:08 PM, Rakesh <rakesh.m...@gmail.com<javascript:>
> > wrote:
>
>> Hi,
>>
>> **usual disclaimer about not looking to start a flame war**
>>
>> A friend of mine recently interviewed at a company for a position as an 
>> iOS dev.
>>
>> The topic of TDD came up and my friend stated that she was a big fan.
>>
>> The interviewer on the other hand, said he wasn't and that the 'jury was 
>> still out'.
>>
>> I'm curious, who is the 'jury'?
>>
>> As for myself, if i can join a team doing tdd or be in a position where i 
>> can, i'm happy.
>>
>> This group is stocked with experienced devs so i'm not looking to convert 
>> anyone, but surely by now, the nay sayers are in the decline?
>>
>> Thoughts?
>>
>> Rakesh
>>
>> Ps kevin, REALLY interested in your opinion.
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Java Posse" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to javaposse+...@googlegroups.com <javascript:>.
>> To post to this group, send email to java...@googlegroups.com<javascript:>
>> .
>> Visit this group at http://groups.google.com/group/javaposse.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups "Java 
Posse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to javaposse+unsubscr...@googlegroups.com.
To post to this group, send email to javaposse@googlegroups.com.
Visit this group at http://groups.google.com/group/javaposse.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to