Taking My Medicine
I woke up this morning from a terrible dream. A dream where I had punted a presentation in front of all of my peers. Laying there in bed, I started thinking to myself ‘how could I punt a presentation? I’ve done hundreds of presentations in front of tens of thousands of people. It must have been a dream’. Or was it? I crawled out of bed, walked across the hall into the office and cracked open my laptop. Much to my dismay, when I looked down, there it was. The residue from a single tear. Not just any tear. The presenters tear. The purest of all tears. A tear that can only be shed after punting a presentation in front of one’s peers.
Here is my story…
I was at a team offsite that was being held at the Hard Rock Hotel in San Diego. Prior to the trip, my boss sent along a note to all evangelists asking them to be prepared to do a 5 minute presentation to the team. So, who was the team? Along with me were all of my peers, my boss and his peers, his boss and, yes, his bosses boss – or as I call him, my great-grandboss. The general feel you should be getting here is that there were more than a few people in the room who could fire me. Oddly, I still can’t decide who it’s worse to punt a presentation in front of: a) senior management or b) a room full of evangelists who are going to make your life miserable for the foreseeable future. I suppose time will tell.
I digress. The note from my boss actually read that we should be prepared to do a 5 minute presentation on a topic that we are passionate about. I decided upon .NET RIA Services. I should be clear here that I am not new to .NET RIA Services. In fact, it is now sitting on top on ADO.NET Data Services which I am very familiar with and ADO.NET Data Services sits on top of WCF REST with which I am intimately familiar. I should also note that I have presented on .NET RIA Services dozens of times and wrote ALL of the code that I was going to present. Lastly, I should mention that I am not the type of guy to “wing it”. I spent a good deal of time preparing for this, ensuring that I could get my message across in 5 minutes (not an easy task, by the way). In other words, I was ready for success.
The presentations were split across 2 days. 7 or so of my peers went on day 1. Each one made himself and the team proud. There may have been a minor glitch or 2, but they were minor – nothing like what was about to occur on day 2. Anyway, at the end of the day 1 presentations, our GM stood up, thanked all of the presenters and then said those fateful words… something to the effect of ‘you might consider adding a little flair to your demos’. As my friend Jason Mauer would say – enter ominous music here.
There are certain rules that you should never break. I’m not talking about wimpy rules like don’t go swimming for a half hour after you eat. I’m talking about rules which, if you break, there will be epic consequences. Think Bobby Brady and “mom always said don’t play ball in the house” or Maverick and “never leave your wingman”. Well there are a few of those for presenters. One such rule is “never change your presentation just before your present it”. Hi, I’m Rob and I broke that rule.
I wanted to add a bit of flair to my demo. What I did was to add a simple animation to my XAML. I wanted to make a DataForm spin in a circle (using perspective 3D) every time a different record was selected in the DataGrid. It seemed harmless enough. All in all, it was 9 lines of XAML and 4 lines of code. The change was so insignificant, I thought “what could go wrong?”.
Things started out ok. I felt relaxed and was ready to go. I started out explaining the context for the presentation. I got into the demo and added the DomainService (if you are not familiar with .NET RIA Services or some of the other technical mumbo-jumbo I discuss a bit later, it is not really necessary to get the rest of this story – however, I do suggest looking into it). The next part of the demo was to add a DomainDataSource control into the XAML – the same XAML I added to animation to. Unfortunately, I opened up the wrong XAML file. Had I not made the “simple change” and added the animation, I would likely have noticed that I opened the wrong page – but I did… I did make that change. It is kind of hard to describe what happened next. I suppose the best way to describe it is I had a mental blue screen. My entire memory dumped. Things started getting all slow. That is, everything but the 5 minute countdown timer. I think it actually sped up.
I did finally figure out that I had opened the wrong page, so I closed it and opened the proper page. However, somehow, the effect of those extra 9 little lines of XAML on my now weakened intellect were devastating. That page (that I had authored myself less than a week ago) could have just as easily been Beowolf. At this point, I knew I was hosed. The timer was at less than a minute and I was flailing. Unfortunately, only thing came to my mind and it went out unfiltered to the audience. If I know my colleagues (and I do), I am sure that this will live on for a long, long time. I looked up at the audience, nodded slowly and said “this is kinda like watching your dad get beat up, isn’t it?”. I’ll leave the audience’s response to your imagination. However, I will tell you that I am almost certain that, as I was walking back to my seat, I could hear playing on the Hard Rock background music from the hall “ha ha ha ha ha ha ha ha, wipeout”.
I named this post ‘Taking My Medicine’. Part of that medicine is sharing that horrifying moment with you, in the hope that you will not repeat it. However, there is a second dose of medicine. At the very end of my presentation (from here on out I’ll just refer to it as ‘the incident’), I told the audience that I would record the presentation properly. I thought I’d share it with all of you, as well. Click here to watch my screencast of .NET RIA Services in 5 Minutes.
- Never leave your wingman
- Don’t play ball in the house.
- Never change your presentation just before you present.