You often hear it stated by very bright people that they thought they understood object oriented design until they began practicing Test Driven Development (TDD). I definitely include myself in that group (the misunderstanding OOD part anyway!).
Here is a list of the very best books I have found that helps bridge the divide between OOD and Agile for those of you who are currently making that transition. They are highly recommended.
Agile Software Development, Principles, Patterns, and Practices
by Robert C. Martin
Refactoring: Improving the Design of Existing Code
by Martin Fowler
Working Effectively with Legacy Code
by Michael Feathers