>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.
I asked Robert Martin the following (on twitter): In your list of cases when you don't practice TDD, as discussed in "The Pragmatics of TDD" http://tinyurl.com/d3tncqtand and in "TDD Triage" http://tinyurl.com/perhq8n, is there place for throw-away versions and experiments? See the following two examples. (1) In http://testng.org/doc/book.html Cedric Beust says "your first version will most likely be rewritten completely, why bother writing tests for it? Isn’t it a waste of time? Why not wait until you’ve come to at least a second internal version?" (2) In http://dannorth.net/the-art-of-misdirection/ Dan North says "What is the opportunity cost of all that extra time spent TDDing the sketches? You can sketch half-a-dozen ideas in the time it would take to TDD any one of them. And it doesn’t end there. The result of one attempt can change your understanding of the problem as much as offering a potential solution, which sends you in a new, unexpected direction." Philip. P.S. I'll report back if I get an answer. 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.