Last week I spent at Tech-Ed Europe. Here is my round up and follow up on audience questions etc.
Note: Why do I always loose that note – the one that says NEVER start an epic blog post… ;~) well… here it is… an epic post. Sort of. At least in length and diversity of subject matter.
It was very very eventful and quite exhausting to be a first time as a speaker at Tech Ed. Consequently (naturally/obviously?) I overreached a little. But – oh – did I have fun! It was friggin’ awesome and I want more!
The Role of the Software Architect Caring and Communicating X 2
My first session was an interactive on “The Role of the Software Architect Caring and Communicating”. This topic turned out to be hugely popular at the event even though it is a “soft” topic. I believe the popularity of talking about the Software Architect Role is due to the fact that this role – when given in an official capacity to a developer – is one of the very few real career moves for a developer in many firms. Sure we can go all day talking about weather or not the Software Architect really is a real role that should exist or if the team shouldn’t be the ones in charge of Architecture. But let’s not go there. Suffice to say that the formal role of Software Architect does exist in many companies today and that awesome responsibility usually also comes with real benefits or at least with a bit of respect and rank.
I’m the kind of guy who likes to deliver my material in a way that makes people think and get involved. In so doing I sometimes like to challenge sensitive topics. In this session I was bringing up a stereotype, or two actually, in order to prove a point and to invoke a discussion. My example was that of a guy who is 100% techie and has 0% communication skills. The opposite being a 100% communicator that could not change batteries in a remote control if she was given a map. Did you note that I said he and she here? Well in my talk I accidently chose a man for the techie and a woman for the communicator. Funny thing was that my example woman is a good friend of mine whom I know as one of the best techies in any room. I never gave the gender implication any real afterthought. In fact to add insult to injury I make a crack about it. I got a pretty good laugh from the room. One person, however, took offence and left the room. I never caught who that was but he (or she) immediately went out and wrote a “death and fire” review on me being sexist. There were a 100 people in the room. There were quite a few women there. No-one took offence that I pulled up the stereotype of the man being unable to communicate because he was a technician. I am not making any excuses; the person who had the feeling of sexism is perfectly entitled to his (or hers) opinion. I do feel perhaps that if everyone else understood that Í was speaking about stereotypes then perhaps (dare I say it) that person was being a bit over-sensitive? If you can’t event speak about the stereotypes how will you be able to ever do anything about them?
Still I would like to offer an apology to the person who took offence in my session because I certainly did not mean that I subscribe to sexist and improper judgments of people.
I did get a bunch of good reviews too. One stood out in particular: http://www.teebot.be/2009/11/teched-09-day3-its-architecture-day.html
This was a great picture you created. Loving it! Yes I did quote Yoda: The opposite of a good UI leads to anger, anger leads to pain and pain leads to suffering. Now Yoda wasn’t talking about UIs but still…

Flexible Design
I also did a session on Flexible Design which I’ve been told was too complicated and I did not deliver as clearly as the topic would have required. Sorry about that because the message is important and also the gateway to good maintainable code design. I have gone and commented the code in my session demo for you. It should be possible to follow my train of thought from one to nineteen. My files in the demo are numbered. If you follow the numbers all the way it starts off with a little calculator that has no flexibility, no testability and no maintainability with a lot of dependencies to everything in the book including the kitchen sink. In the end at the number nineteen you would have a piece of code that has VERY much flexibility (testability, maintainability and very few references to other code). The final sample uses both a Dependency Injection container which is abstracted away AND the Managed Extensibility Framework MEF (which is part of .NET Framework 4.0). It is certainly not required to build your code with this extreme amount of flexibility. I do – but I’m very extreme in these respects.
The main gains from this approach are as follows: You are removing references to the Dependency Injection container. Still you are using the DI Containers configuration API for speed and compile time integrity but with a simplified API that keeps the hard reference to the larger API of the DI container. The solution is made easily extensible. The testability is very high. The maintainability also.
Here is the code from my demos: References – which are not included may be found at CodePlex; Common Service Locator, Unity and MEF. The other code will be released soonish at http://commonserviceconfig.codeplex.com
Also I promised to post my Common Service Configurator API on codeplex. NOTE : If this link here is dead I have not published yet… ;~) Right now I’m sending my API out on review to a few friends to make a good strategy of this thing before I release it. Please be patient.
Talk: Building extensible systems in .NET 4.0 and Silverlight
I also did a session on Managed Extensibility Framework MEF. This session went really really well. I am very happy with the fact that I seemed to have gotten my message across and the audience was very satisfied with my overall performance, my knowledge on the subject and the efficiency of delivery. Thank you who attended. It was a pleasure delivering this talk.
Backup fail - Master fail - ohoh - less then 30 minutes to show...
Scary moment folks… In final preparations for this MEF session suddenly I noticed that my backup USB key was broken. Strange I had used it not 30 mins earlier. Now I notice that I have a frozen window in my PC as well… well that’s weird. Instead of killing processes I decide to make sure and reboot. This is what my computer looked like when it stared up:
With a prestigious .NET Framework session at Tech Ed that I was doing to help out a friend and with less than 30 minutes before show I suddenly find myself without a working backup and now without a working master! Slides were available on the computer in my presentation room but I had no demos. They were all on the presumably broken computer and the broken backup USB. Imagine walking into session saying "sorry my computer is not working"... That’s like saying “my dog ate my homework”. Minutes where ticking away and my computer was checking hard drive integrity… Twenty minutes to show... Seventeen minutes... Computer comes up. I log on and start up Power Point and Visual Studio with one of my demos. They work. Now I’m afraid to shut down my machine. I walk through the conference with my computer running under my arm and my luggage rolling behind me including the Aladdin Chocolate I brought to attendees on all my interactive sessions. (Yes really.) Make it passed the escalators and into my room. Hook up the computer. Validate that it’s running. Calming down. Collected. Time is here… I go on. And I deliver. Phnew… That was nerve wrecking.
Next time I’ll have two backups.
Tech Talks
When at Tech Ed why not record a couple of Tech Talks? A Tech Talk is a short interview on some interesting technical topic. I did two
Managed Extensibility Framework extends to Nirvana – 6 min pitch on MEF.
Windows Azure Applications: Bring it on! - Open Source advanced Azure template – 19 min discussion on how to code maintainable and nice Azure applications. This interview relates to http://azurecontrib.codeplex.com and http://cloudstorageapi.codeplex.com.
Speaker Idol Jury
Finally at Tech Ed I was on the Speaker Idol jury for the final round of this years prestigious Speaker Idol competition. The contestants were really good. The competition is to present a technical topic for five minutes. The winner is awarded a session on next years Tech Ed. It was fun to be part of the panel of judges. Hard work - but fun.
Well that’s it for my Tech Ed week. Not really sure what this post added to the greater good? I guess for future documentation and for my references to material attendees were asking for at the event.
Cheers,
M.