Coping With TDD

Graduate to a new level of professionalism in Agile development

Are you finding that your architecture and code deteriorate over time? Or are you finding that in spite of intensive unit testing your quality is still not up to customer expectations? Frustrated over the pile of unit tests you have amassed over the months, and even more frustrated with how many of them are fragile, need repair, or are out of date? Do your users find your GUIs hard to use?

TDD is a widely heralded staple of XP-style development, yet both experience and recent research suggest that it can do as much harm as good. In particular, the problems show up in architecture and, by consequence, in the user interface.

This half-day presentation unveils the problems with TDD and cuts to the quick with specific, easy-to-understand solutions and alternative approaches that are proven to improve architectural quality, developer deliberation, design flexibility, and a better interaction experience.

Outline

    1. Historic sources and drivers for TDD

    2. OO Fundamentals and GUIs

    3. The Direct Manipulation Metaphor

    4. Theory and Practice: TDD violates OO principles

    5. Lightweight Architecture as one solution

    6. Medium-Scale Integration testing as another solution

    7. Model-View-Controller architecture as a foundation

    8. Domain Design and incremental Use Case coding

    9. The place of true system testing