Tuesday, September 15, 2009

TechDays 2009 Retrospective

I’ve just arrived home after the end of TechDays Vancouver and I feel compelled to write a retrospective on my experience.  I have to say that TechDays was nothing like I expected.  I want to write this post with complete honesty to best tell the full story.  I hope that this transparency is appreciated.

About 6 weeks ago there was a flurry of activity in the blog-o-sphere about the lack of fundamentals covered in TechDays sessions.  I replied to this with my own comments as I felt at the time that, in conferences like TechDays, Microsoft was so intent on marketing that they would not allow any fundamentals sessions.  This blog post got me in trouble because no more than a day later John Bristowe (Developer Evangelist for western Canada) contacted me to ask if I was interested in presenting at TechDays in Vancouver.  I was a little hesitant at first, especially given my thinking at the time, but I decided to explore the opportunity and see where it went.  John sent me a list possible sessions and one session jumped out at me right away.  It was entitled “Test-Driven Development Techniques” but I didn’t really have a lot more to go on.  This was a session that was originally presented at TechEd, so I was given the slides, demo and a video of the original presentation.  I thought the session was alright, but decent enough that it delivered content that would be valuable to the community and did not focus on marketing a Microsoft production.  I have since heard 2nd, 3rd, 4th hand accounts of how John and team had to fight to keep this and another session in TechDays because they did not market a Microsoft product enough.

A little while later Justice Gray contacted me with a very cryptic message, but hinting at the fact that there might be opportunity to present some content that was more centered around development foundations.  I responded to him with my ideas, and sure enough, it was soon confirmed that Microsoft had agreed to add an additional Developer Foundations track to TechDays in Vancouver.  I was quite excited about this opportunity because I had a pretty good idea that Justice and I were of similar mind and that this session would be quite aligned with my ideals about software development.  Once the abstracts had been made available to me, I selected the session about the S.O.L.I.D. design principles, which I was quite excited about.  I did feel quite under the gun given that TechDays was not far away and I had already agreed to present another session that I needed to prepare for.  Given that I was already feeling swamped, not to mention I was in the middle of a home renovation, I asked Justice if I could give my input into the vision of the presentation, but ultimately I did not feel that I had the time to fully write it.

Over the next few weeks I was preparing madly, rewriting the demos and changing up the first couple slides for the TDD talk.  I was collaborating with Justice about the content for the SOLID talk and still trying to find some time to drywall in the evenings.  Once the planning for the Developer Foundations track started coming together, Justice and Peter Ritchie decided on the order of the sessions and it meant that my TDD and SOLID talks were back-to-back on the first day which I wasn’t comfortable with because I felt I would not be able to give either talk my full effort if they were so close.  Given this conflict, it was decided that I switch talks in the Developer Foundations track on the first day and present the Layers session instead.  It wasn’t supposed to be a big deal given that Adam Dymitruk was responsible for the content of the session.  So now I had somehow gone from zero to three sessions in no less than the span of about 3 weeks and was wondering how the hell I had got myself into such a mess!

At this point in time my home renovation got put on hold.  I told my wife that I was not allowed to complete the next step until after TechDays was over.  I spent a lot of time preparing for all of the sessions and have since decided that it is at least as much work to prepare for a session that someone else writes as it is to prepare your own.  The only difference is that you tend to get the content later if you don’t prepare the content yourself.

I arrived at the first day of TechDays with a little trepidation, this was after all my first time speaking at a conference of any size.  I watched Adam present S.O.L.I.D. since I was going to present it the next day.  My first session was my TDD talk in the Core Fundamentals and Best Practices track.  Looking back on it now, I think I was so focused on the presentation that I barely noticed that there were over 200 people in the room watching me.  I do feel that it went quite well and that people got the point of what I was trying to convey.  I had an attendee come up to me after and comment on how expressive my test method names were.  I used English readable sentences and he told me that he usually liked to try to keep his method names under 6 characters, but thought it was pretty cool to see some expressive method names.  Now this was not a focus of the presentation at all, but if this is all that he takes home from the session then I think we have to count that as a win.

After lunch I presented on Layers and I think it went alright.  Of the three presentations that I was presenting, I felt the least comfortable with its content.  Reception to the talk was quite positive, so I’m fairly pleased with how it turned out.  We weren’t quite sure what to expect in the Developer Foundations track given its late addition to the conference, but we were relatively pleased with the 30 or 40 people that were in attendance.  We had roughly the same level of attendance for all four sessions in the track that day.

I arrived early on day two since I was presenting S.O.L.I.D. in the first time slot of the day.  Justice and I were talking as we were setting up and wondering ifwe  could realistically expect anyone to show up.  All of the sessions in this track had been presented already the day before so we figured that attendance would have to be less than the previous day.  Needless to say that we were both absolutely shocked when there were not only more people in attendance than the previous day, but the room was packed!  Seriously!  There were people standing in the back!  I was quite excited about this talk since it was my favourite of the three I was doing, and I was really happy with how it went.  After I finished, an attendee came up to me and told me that he had flown in from Calgary just to attend the Developer Foundations track.  Think about that for a minute.  TechDays is happening in Calgary in November, but he felt that the content of the Developer Foundations track was important enough to spend the extra money to fly to Vancouver just to attend this track.  This absolutely floored me and is probably why I have felt the need to ramble on here for so long.

The rest of the day I spent relaxing and taking in the other speakers in the Developer Foundations track and the room was just as packed for each one of them.  Something happened between the first and second day of TechDays.  Something compelled a lot more people to attend this track the second day and I’m still at a loss to explain it.  I’m hoping that when we get to read the evaluations that it will shed some light on this.

The whole experience was much more than I imagined!  I will freely admit that there was about a 0% chance that I would have attended TechDays if I hadn’t had the opportunity to speak, so I am so glad that John and Justice took a chance on me.  I do mean that they both took a chance on me because I knew both of them only by reputation and by their blogs, and I’m pretty sure they knew even less about me.  I understand the risk that they both took putting their faith in me and I only hope that I met their expectations.

I want to publically thank John for putting together the Core Fundamentals and Best Practices track, which I have a sneaking suspicion had something to do with the low attendance in the Developer Foundations tracks on the first day.  Whatever battles you had to fight to put this together were worth it.

I also want to publically thank Justice and Peter for putting together the Developer Foundations track on such short notice.  I know that it far exceeded my expectations and I’m certain that it exceeded the expectations of everyone involved.  The biggest thanks goes out to all of the attendees that chose to come to check out my sessions and other sessions in the Developer Foundations track!  Microsoft has said that it was an experimental track and that, if the response was positive, that it would be continued in the future.  All I can say is that I’m looking forward to this track next year!


Justice~! said...

Man, you were seriously an *awesome* presenter. I had no idea it was your first time speaking and I'm pretty sure the audience had no idea either. So many people were talking about SOLID after today!!!

Great work. If you need me to help with your home renos, I feel like I have a responsibility to now!!

It was awesome doing this with you, I had a ton of fun. Hopefully I won't end up thanking you a million times over but seriously I owe you man.

Adam said...

Well done on presenting even the content you were not too comfortable with! I'm hoping that we can do something for Vancouver Code Camp. If not, at least do another alt.net evening after.