My duties as a TechEd booth babe are now done – at least until next year. It was a fun, but exhausting, week and I was typically running on 3-4 hours sleep per night. It all started Sunday night with Party with Palermo. Jeffrey Palermo threw an awesome party again with 437 geeks in attendance at the Glo Lounge. Every party is bigger than the last. If he keeps this up, he’ll have to rent a conference centre next time!

I spent most of the week answering questions at the TLC Architecture booth with Peter Provost, Jeffrey Palermo, Don Smith, David Schmidt, and many others. There was a huge amount of interest in agile development techniques, including test-driven development (TDD), mocking, pairing, Scrum, Extreme Programming, and more. I also realized how dependent (in a good way) on ReSharper I’ve become. I was demonstrating some design techniques (specifically model-view-presenter) and grew so frustrated with vanilla Visual Studio installed on the kiosk, I grabbed my laptop and got down to some serious coding with the help of ReSharper. (Remember going from Notepad to Visual Studio and finding out how addictive IntelliCrack(TM) can be? Becoming proficient in ReSharper is an equally large step in productivity and going back is just painful.) Thanks to everyone who dropped by the booth to chat!

In addition to my booth babe duties, I led a Birds of a Feather session on Creating Flexible Software: TDD, Mocking, and Dependency Injection. The session was scheduled for 7:45pm Tuesday night, which made me a bit worried that I’d only get half-a-dozen people showing up. As it turned out, approximately 50 people turned up for a very lively discussion. There were many agile practitioners there, who generously shared their knowledge and experience. We had to wrap up the discussion after an hour because another group needed the room. The discussion moved into the hall with about a dozen people talking for another hour about experiences, tools, and techniques. It was great to see such enthusiasm from people about one of my favourite topics.

Next was Speaker Idol on Wednesday. What can I say other than complete flame-out on my part? I’m an experienced speaker and have spoken in front of crowds of 500+. Standing in front of a judging panel made me panic. My 5-minute talk was to explain the TDD-style development. I tried something crazy (a rhyming jingle about software development) to be different, but tripped up midway through and didn’t recover. It also turned into more of a rap than a rhyme, and everyone knows that white men can’t rap. Here is the full version meant to be said in the style Jenga, the 80s commercial:

Traditional Development Jenga

You take an object from the bottom and you put it on top,
You take an object from the middle and you put it on top.
That’s how you build your software; you just don’t stop.
You keep building that software putting objects on top.

It teeters and it totters, but you don’t give up;
it weebles and it wobbles, but you build it on up.
You take an object from the bottom and you put it on top,
you take an object from the middle and you put it on top,
till someone breaks the build, and that’s when you stop,
debug all night until you drop.

I wrapped (rapped) Confused it up with TDD Jenga, which went marginally better, though I rushed it:

TDD Jenga

You write a test and see a red glean,
You write some code and you make it go green,
Refactor that solution, that’s what I mean,
You are a TDD machine.

Commit that source to svn,
Cruise Control.NET kicks in,
Builds that software, tests it too,
You go home early ’cause now you’re through.

Needless to say, I didn’t make it to the finals. There were speakers more deserving than me. That evening, I drowned my sorrows/embarrassment with the judges at the Influencers Party. Hopefully one day I will live down the “Rapping Speaker” appellation that I seem to have earned from Stephen Forte.

On Thursday, Jeffrey and I met up with two members of the Microsoft Data Platform team to discuss the Entity Framework. Between that discussion and the one we had at the MVP Summit, the DP team is getting it. They understand what the “NHibernate Mafia” are trying to do with domain-driven design (DDD) and why EF has to be persistent ignorant (PI) if it is going to be useable for DDD the way that NHibernate is used today. Daniel Simmons, one of the EF architects, had a great post explaining his epiphany regarding our ask for PI in EF. Kudos to Daniel for taking the time to do some reading and understand why true DDD requires a persistence-ignorant object-relational mapper!

It was a busy and tiring week, but I’d do it all again. Feel free to live vicariously by browsing through the TechEd 2007 Flickr Set.