Robert Martin has a great book here. I just finished reading Agile Principle, Patterns, and Practices in C# (what a mouthful!).
In this book you get a fantastic play-by-play of a typical TDD/pairing session, which I think is a great way to demonstrate the process.
This was also the book that really got me to appreciate UML for what it is. I'm typically the guy who knows the UML basic shapes, and draws a bunch of interconnected rectangles on a whiteboard to help me solve problems. I was never a "fan" of UML because I always associated it with the monolithic CASE tools that use UML as the source for an architecture, and out spits generated code. The book described what Martin feels are the essential (read: useful) components of UML and really abandons the rest. He emphasizes throwing away your diagrams when you're done and encourages writing them on a napkin or a whiteboard, which is infinitely faster than, say, Visio.
The section on patterns is well written, and it is always nice to get refreshers on patterns that you might not know about or haven't used recently. Again he emphasizes not to go crazy with patterns. They are there when they help, but don't be shy about throwing them out when they complicate things. Indeed, this book is agile.
The final section (or rather 1/3 of the book!) goes about a payroll system. He does a bit of UML to get the basic idea in his head and then he goes straight to the tests. He fleshes out the entire thing, right there in the text. The model changes, the tests drive the design and behavior, and he frequently consults with his "Customer" (himself) over what the requirements are. After he has a working model that is fully tested, he bolts on persistence using a custom ADO.NET pproach, which is difficult. Seeing him do this reminds me of how I like to use NHibernate, but I found it difficult to repeat this approach using flat ADO.NET calls.
I'm thoroughly impressed with this book. If any of the topics above interest you, then go pick it up!