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
Historic sources and drivers for TDD
OO Fundamentals and GUIs
The Direct Manipulation Metaphor
Theory and Practice: TDD violates OO principles
Lightweight Architecture as one solution
Medium-Scale Integration testing as another solution
Model-View-Controller architecture as a foundation
Domain Design and incremental Use Case coding
The place of true system testing