Good point! Yes, I'll always write a prototype where I can - the whole "write one to throw away" principle, just to get an idea of the problem space. TDD just gets in the way there. Then for the next iteration I'll use TDD once I know where I'm heading.
It's not exactly hard and fast though. For smaller stuff, I'll often do my trial and error stuff on demand in the REPL, it doesn't always need an entire dedicated throwaway project. On 21 February 2014 21:47, Cédric Beust ♔ <ced...@beust.com> 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 > > not regard them as "lines produced" but as "lines spent": the current > conventional wisdom is so foolish as to book that count on the wrong side > of the ledger" ~ Dijkstra > -- 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.