Several people have asked me to clarify the following tweets I made last week.
http://twitter.com/#!/rschummer/status/76152986992254976
http://twitter.com/#!/rschummer/status/76280482454708224
http://twitter.com/#!/rschummer/status/76286820048044032
http://twitter.com/#!/rschummer/status/76289027896115200
http://twitter.com/#!/rschummer/status/76301141113188352
http://twitter.com/#!/rschummer/status/76326750010867713
I was mostly tweeting to a couple of co-workers who wisely passed on the workshop, but it raised some interest of some followers. At the time I did not want to reveal what workshop I was in hoping it would get better, but now that it is over and I found it disappointing I thought I should share my thoughts. I do this in case it will help other decide if the session is worthwhile to them or not in the event Microsoft decides to do more of them around the planet. Since 140 characters is not nearly enough… here is my story.
This week I attended a one-day workshop from Microsoft called WebCamp. Specifically a special WebMatrix and ASP.NET MVC WebCamp hosted by a couple of Central Region Microsoft Developer Evangelists. When I signed up for this workshop the agenda stated the following:
- Web Stack Introduction
- Building a Site in WebMatrix
- jQuery Fundamentals
- ASP.NET MVC Introduction
- Migrating from WebMatrix to ASP.NET MVC
- Instructor-Led Labs
Since Microsoft is marketing the free WebMatrix to my customers as a simple way to publish Web sites I thought I might get up to speed on the tool. I also anticipate some of our customers potentially hitting a wall with WebMatrix and asking us to migrate to a more robust solution. If there is an easy path to ASP.NET MVC, and that is something we can use to help them, all the better for me to attend this session.
I should state up front that I had very low expectations going into this workshop based on the past history I have had with Microsoft developer workshops. Mostly because I walk out feeling like I just listened to mostly marketing-speak and a lot less technical-speak. That said, even the worst workshop I have attended I have walked away with something of value that allows me to justify at least part of the time spent. I also have a history of being let down by Microsoft Developer Evangelists (with the exception of a couple of exceptional ones like Jennifer Marsman who is in our region).
I also want you to know the Southfield Michigan (suburb here in Detroit) workshop was not the first time this session was given. The room was completely full with approximately 80 people. I would say the venue was completely “sold out”. Also, the WebCamp was free to register.
A couple of days before the workshop we received an email noting we should download and install:
- Microsoft Visual Studio 2010 (get the trial)
- Download and Install WebPI 3
- Install WebMatrix (via WebPI)
- Install MVC3 (via WebPi)
- Download and install the Web Camps Training Kit
The email arrived a couple days before the holiday weekend. I fortunately did not get this email, but one of my co-workers did and it took her hours to download and install everything. Hours that were taken away from doing billable work. These were necessary for the marketed hands-on workshop. (more on this in a minute)
In fact on the WebCamp Web site it states:
A little pre-work will go a long way. Your only homework is to make sure your machine is setup ready to go and you come with questions. Remember these are interactive.
Please, note at events like these, power and bandwidth are limited to some degree. If you download the tooling before the event that will help relieve stress on the network. At some of the events we will not have enough power for everyone. We ask that everyone share appropriately, and if you have multiple batteries it might not be a bad idea to bring it.
I hit some bad traffic on the way to the workshop (a 45 minute drive turned into a 75 minute fiasco) so I arrived just before the official start time of 9:00 on the agenda I got in email so I should only have missed breakfast. The speakers were already started when I arrived with some introductions.
One of the first things announced was a change in the agenda. No hands-on labs today, this was spun as good news since it meant we would get out early. So basically the first smackdown of the day is that everyone who spent hours downloading and installing software might have wasted their time. The agenda is also significantly different from the one I originally signed up for, and in my mind, not in a completely good way. Added is an introduction to HTML 5 (not a bad thing), gone are the Building a Site in WebMatrix and Migrating from WebMatrix to ASP.NET MVC. These are the two primary reasons I signed up. My initial thought was to leave, but at this point I was willing to give them the benefit of the doubt that the refinement of the agenda is based on the previous presentation feedback and maybe it was even better.
I knew this day had a dark cloud over it when the first thing they asked us to do is to go to the WebCamps Web site (built in a few hours with WebMatrix) to register for the daily drawings and the site would not come up. It had nothing to do with the Microsoft Internet access either as I was using my Verizon MIFI card. The site was broken (and later fixed so we could register). Bad omen.
HTML 5 discussion opened up the old Silverlight vs. HTML 5 wound from 2010. The explanation to clarify Microsoft’s position only seemed to muddy the waters with comments like (and I paraphrase here):
- This is my opinion, not the official Microsoft opinion
- There are things the evangelists are not being told that are being decided in Redmond.
What? Redmond is making decisions about future product development and they are not involving or telling the people who are the closest customer contacts they have in the developer community? Either I misunderstood the message, or it was purposely confusing so I would not understand the message. Either way, the message was sloppy.
If I was new to the Microsoft grinder wheel of deprecated technologies I would have walked out of that part of the discussion wondering what I had stepped into. I was hoping to hear from the discussion that I could go to a specific Web page on Microsoft.com to read the official roadmap of Silverlight and HTML 5 and the Microsoft position. But anyone who knows Microsoft developer division knows you won’t get a straight answer on this. The speakers should have just stated this and moved on. Instead they wasted 20 minutes confusing the issue more.
The one clear thing stated and something that should be obvious to any developer is that there are no broad right answers. Each decision to implement technology is based on the circumstances of the project and what is available to help create the solution at the time it is developed. No one should be able to tell you that you should always use Silverlight, or always use HTML 5 without knowing all the requirements and resources (money, time, skills) available to the project team.
What is not clear to developers though is what Microsoft plans to support and what makes sense for developers to invest their training dollars and time learning. I walked out of this session with more confusion, not more clarification.
The first section of the day was JavaScript Fundamentals. All I can say is that the presenter was condescending, insulting, and obnoxious. Completely unprofessional. Examples crashed over and over. I have seen a number of sessions where the demo gods were not kind to the presenter, but this one was a fine example of what not to do when training new presenters. First of all this is not the first time this session was given. I was told it was the 11th stop of the WebCamp tour around the Microsoft Central Region. Second, these are Microsoft Evangelists doing the training. Their job is to learn the Microsoft technologies and then show developers this technology so we can adopt it. It is their job to show us how well it works so we have an “ah-ha” moment and start using it to build solutions for our customers. What we saw was a train wreck. Clark Sells either was not on his game Wednesday, was distracted by some external force, or is not competent in his job. This is not the first time I have said this about a Microsoft Developer Evangelist unfortunately. I have not seen Clark present before so I can only hope he was having a bad day.
As the day progressed he became less obnoxious, and fewer demos crashed, but when it comes to the signal-to-noise ratio, it was night and day between the time he was presenting and Brandon Satrom was presenting.
I provided a number of examples of Clark’s unprofessional techniques in the evaluation sheet I handed in so I won’t repeat all of them here, but my favorite was his offhanded comment about sites that support certain browsers with: “give you the middle finger and tell you to download Google Chrome.” While I know some people found his antics entertaining, I found they distracted from the material. I appreciate speakers who add humor to their session, but in this case the bad humor used was an attempt to mask the bumbling and fumbling through the presentation crashes, and it was in my opinion a disaster. Maybe not an epic disaster, but for me a complete waste of time listening to someone showing me why raw JavaScript is a pain to use, and why I should be using a supported framework like jQuery. For those that already understand the truth in this were bored and off surfing the net during the presentation. Those that did not understand this might not have learned it in the end.
I am the kind of developer who learns by doing. I can read until I am blue in the face, and I can watch others demonstrate things all day long, but those only reinforce in my mind what I am capable of doing some day. It is not until I actually sit down at the computer and do it that I actually learn it. So to me the loss of the hands-on workshop was a major disappointment. Granted, I did not have the software loaded, but my co-worker did and together we would have learned during this time.
I have seen a few jQuery introductions at conferences over the last year by Rod Paddock, Paul Mrozowski, and Steve Bodnar. Microsoft should just hire one of those three guys to give this portion of the WebCamp as they were 10x better than the session at the WebCamp.
The session on WebMatrix had so much potential. The product is quite interesting as you can start with template sites that leverage open source tools like WordPress, Umbraco, Joomla, Orchard, and Drupal. Unfortunately we never really saw all that much of how WebMatrix works, and how you would go about building a site other than the canned templates. I am sure there is a lot more to this product than what we saw.
During the MVC section the presenters built a podcast database site with some basic functionality. They showed how straight-forward it is build a site. What they did not do is migrate a site built by WebMatrix. They also stressed how close it was to Ruby on Rails. I believe Microsoft only built MVC to slow or stop the trend of developers moving from ASP.NET to Ruby on Rails. There is one point new to me I think is important to share. The presenter said that PHP was created at the time Microsoft moved from Classic ASP to ASP.NET and that the reason it was created was ASP.NET made it more difficult to develop Web applications initially. PHP is designed to be simpler like Classic ASP. Microsoft is recognizing the complexity of ASP.NET and is trying to make it easier to develop Web apps, and to get more Web developers to use their Web technologies. I found this a little enlightening.
I know I have been slanted on the negative side during this blog post, and I apologize for that since I try hard to look for the positive in everything and really believe in the “positive approach attracts positive results” philosophy. That said, I learned a few things during the six plus hours:
- Modernizr looks like a cool tool for Web developers supporting HTML 5 on current and older browsers.
- HTML 5 is not just about HTML markup.
- WebMatrix has potential for developers learning the Web now.
- Microsoft workshops will continue to disappoint me, but if I learn who is presenting in advance I can be more selective.
At least I walked away feeling it was a technical session and not a marketing session.
I also left with one big question: Why is WebMatrix and Lightswitch two separate products? Since they have a lot of similarities, why not one product with a build switch that selects the deployment for Web or desktop? I ask this question without a lot of experience in either tool. This is a casual observation from someone who has seen demonstrations and overviews of both products. I know WebMatrix is creating ASP.NET solutions and Lightswitch is creating a rich Silverlight experience. I know Microsoft likes to have different groups go off and develop products internally that will compete in the open marketplace, but to me I see more synergy than difference. Maybe they target a different level of end-user or developer? I think it would be cool if they shared the same metadata on the backend and would allow me to deploy one or the other generated solution depending on my needs. I don’t know. More to ponder before my next geek get together I guess.
Even though the WebCamp was “free”, as the owner of my business it cost me 12 hours or more of billable time to send two people. My coworker also spent five hours download, installing, and reviewing the lab materials – which were never used, and a couple hundred dollars in travel expenses out of my pocket. Not to mention the intangibles of the night away from her family and extra help she had to arrange to help her son while she was gone. The bottom line impact for this “free” workshop is financially significant for our small company and our employees. I feel it is important to budget for training for the staff, and the type of people we have thrive in a learning environment. What I really dislike is wasting this budget, which is exactly what we did this past week. Fortunately, next time I’ll be smarter.
I do want to retract one tweet, or at least alter it slightly. I originally stated:
I may be watching a train wreck in the making. Nope, definitely a train wreck. Possibly the worst presenter ever.
“Possibly the worst presenter ever” is flat out wrong. Back at a Microsoft DevCon I watched as a presenter spend an extraordinary amount of time navigating Open File Dialogs looking for files, and navigating menu pads looking for the correct menu item to demonstrate the topic at hand. Many of my blog readers remember the session well. The presenter never rehearsed, and might have made it up the night before for all I know. It was years ago and they remain in my mind as the worst presenter ever and worst conference session ever. And there are other sessions I have blogged about over the years where I have felt I wasted my time. Overall, Clark’s presentation was not worse, but could easily be ranked in the top 10 worse sessions I have had the time to sit through. {sigh}
And to balance it, Brandon was polished and his presentations went smoother. Now if I could only forget the HTML 5 vs Silverlight, and Web Forms vs. what ever is better or not discussion. {g}
So I hope this clarifies my tweet ramblings of frustration that my followers were reading. If you are not on Twitter and ran across this blog post I hope it provides you some insight on a developer’s experience with a workshop that went bad. If you are a Microsoft employee who is looking for feedback on your WebCamps, I believe I was as frank and honest in my paper evaluation as I was here, although this blog post gives you a lot more detail than the simple paper evaluation allows me to provide. I am sure there are others who saw this presentation way differently than I did. I know the people sitting around me were quite frustrated, but as I waited to talk with one of the speakers at a break near the end of the day I saw a lot of people hand in evaluations with high marks on the presenter scale. Different perspectives are important to the organizers of the event. I know that because I run conference and speak at several more each year.
Thanks for taking the time to read this blog post.