in reply to TDD: a test drive and a confession

Ahhhh good.... another convert :-)

I'm a little curious you saying that:

I had to put my design on paper. This may be the most important aspect of TDD. I can usually hold most designs in my head, but I've been working on some projects that no-one can hold in their head. (Well, maybe Abigail-II, but not most people.) I don't have the habits of putting stuff on paper to work it through. This will give me those habits.

In my experience I get the complete opposite. Because TDD makes me move in very small steps, refactoring all of the time, I find that I don't have to keep that big design in my head - just whatever bit I happen to be working on at the time.

Replies are listed 'Best First'.
Re2: TDD: a test drive and a confession
by dragonchild (Archbishop) on Sep 17, 2003 at 15:44 UTC
    I think we're talking about the same thing. I'm traditionally a holistic developer - I work on all the parts at once. With systems under 2.5k lines and under 50-ish modules, that's generally worked well. Anything over that and I start losing details. This methodology allows me to forget the details because I had to write them down to build tests for them. So, I actually have notes that make sense! :-)

    ------
    We are the carpenters and bricklayers of the Information Age.

    The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6

    Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.

      I think we're talking about the same thing

      I don't think we are :-) I've come from the other direction. In the old days I did a lot of up-front design and documentation work. Now I incrementally produce the design using TDD and constant refactoring. Most of the design is in the tests - I produce few external design documents, and many of the ones I do produce are discarded as soon as the tests they help me with are written.

      This methodology allows me to forget the details because I had to write them down to build tests for them. So, I actually have notes that make sense! :-)

      Do you need to keep your notes after you have written your tests? If so, what's in the notes that's not in the tests?

      (he asks curiously :-)

        Do you need to keep your notes after you have written your tests? If so, what's in the notes that's not in the tests?

        Actually, my notes tend to be the holistic stuff I was talking about. Things that would fall under the "User Stories" category, but not as formal. So, yes, having that written down helps out a ton.

        ------
        We are the carpenters and bricklayers of the Information Age.

        The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6

        Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.