First, I’ll repeat the news that’s all over: Microsoft has released the “final” version of Silverlight 2.0 to the world! This is a major step for .NET developers, because it means we can do really incredible things on the web without massive injections of AJAX or having to learn Flash. For example, take a look at what we’ve done with Inkubook. However, there is a lot to be said about how Microsoft approached things.
I believe that until Friday, October 10th, Microsoft has led nearly a perfect game with regards to how they’ve managed Silverlight. Here’s my perspective of what they did until now:
- Released a very minimal 1.0 edition that solved a small number of challenging problems in an elegant way.
- Very clearly communicated the known limitations of 1.0 while sharing plans for 2.0 as they became available.
- Released a very early build of 2.0 that generally did not break exiting 1.0 applications.
- Refreshed 2.0 with new released several times, clearly communicating both where the changes were likely to occur, and then what was broken as a result of earlier work.
- Successfully supported the Olympic Games with a Beta product with very few issues.
- Repeatedly engaged the community with what’s going on throughout the process, with many Microsoft developers and program managers sharing the work in progress and building training material on their blogs.
- Taking the unprecedented step of releasing an RC0 a short time before the release of a web-based product would break many developers application. They told the community that we’d have a short notice before they released the real final version, but they wanted us to have a chance to get everything updated ahead of time.
Fourth Quarter, two minute warning, Microsoft up by a touchdown with the ball and all their timeouts remaining.
Can anybody out there please tell me what possessed Microsoft to change the game plan this close to the end? Here’s what (to my perspective) happened:
- Friday, Oct 10, Microsoft announces a conference call for Monday the 13th through their PressPass site (http://www.microsoft.com/presspass/press/2008/oct08/10-10GuthrieSilverlightMA.mspx).
- Apparently, they also communicated a gag order internally, because nobody inside Microsoft blogged about Silverlight over that entire weekend with the exception of Jessie Liberty’s ongoing Silverlight daily tutorials.
- As a result, many teams probably missed this call entirely. We were only aware of it through the vigilance of one developer… on a team where everybody tries to follow blogs and keep up on the tech we’re using day in and day out.
- During the call (Monday, noon EST), Scott announces that Microsoft will be releasing Silverlight to the web “Tomorrow morning”, with no more detail. Note that he essentially just said that “Sometime in the next 12-24 hours we will be turning off your web site unless you’re ready.
- After the call (Monday, 1pm EST) we go into scramble mode, refreshing the prototype branch where we characterized the fixes to the breaking changes, merging it into our mainline build, and throwing the entire team at “making it work”. Please note that this meant that means that most of our developers needed to install VS SP1 (1-2 hours), uninstall and reinstall the silverlight developer tools, runtime, and Blend (1-2 hours)… prior to this, we had one machine capable of building our site in RC0.
- Microsoft makes an updated breaking changes list available. This list includes a half-dozen new items. This list does NOT include a number of items that have been commented on public blogs between the publication of the two lists. There are a number of breaking changes that have affected me that are not on any list. (Examples: Negative border widths no longer valid in styles, changes to when ActualWidth is set relative to first Measure pass, introduced need to explicitly call ApplyTemplate in some cases)
- That afternoon (Monday, 3pm EST) through evening (Monday, 11pm EST) we flew through our code base… first, commenting out or deleting the bits that didn’t work, then slowly fixing them back in once we got a baseline working.
- The first posts about it start coming out, and most of them aren’t from MS employees (Monday, ~4pm EST)
- We put in place plans to put the site into maintenance mode as soon as we see evidence of the RTW,
- We go home (Monday, 11pm EST), planning on cleaning up further graphical glitches in the morning.
Now, you notice that this has a fairly happy ending, for which we’re entirely grateful and I give full credit to my team for accomplishing this in less than 12 hours… even the new dev that just started yesterday stayed till 7pm and made meaningful contributions. This doesn’t change my opinion of how Microsoft bungled this release.
I have personally lost a lot of trust in how Microsoft will support products on their Go-Live licenses. They’ve earned a lot over the last couple of years, but much of it was burnt today. I still don’t know when they will flip the switch and turn on automatic updates to existing clients… which greatly impacts our release plans over the next week or so. At this point, I think I’m going to stop, and end with a few specific steps that Microsoft could have taken that would have saved my trust.
- Announce the plans to the world on Friday when they were clearly already set. If there was still a chance of calling it off, tell us that, so we can plan accordingly.
- Provide a specific forum to discuss the logistics with the community. Silverlight.net would be a great place for this. Who knows, maybe the community could suggest things to make it go more smoothly all around.
- Specify a single, authoritative place (blog, forum, web page, whatever) where we can get up-to-the-minute status of what’s happing… is the RTW out there, is it available, etc?
Summary: Communicate – don’t shut down at the most critical moment.
I very much appreciate the quick reaction from Tim Heuer at Microsoft. After exchanging a number of emails with him last night, I want to clarify a wee bit:
I am VERY IMPRESSED with how Microsoft communicated leading up to this release, right up until Friday of last week.
I am VERY IMPRESSED with the work produced by the Microsoft developers at a technical level.
I am VERY IMPRESSED with the road map that’s been shared and followed.
I am VERY IMPRESSED with the efforts extended by most contact points to “make things right”, especially Midwest architect evangelist Larry Clarkin.
However, I still have a core set of issues, which are summarized below:
Key issue: No warning was given of when and where the announcement
would take place. ScottGu didn’t even post on his own blog that he’d be
making an announcement at 9am Monday.
Key issue: The information followed a different path than all other announcements did previously.
Key issue: The original announcement said it would be short, possibly
very short notice. I don’t think many people understood that meant
“same day notice”
issue: Monday’s announcement said “we’ll release this tomorrow
morning”. Nobody clarified a) What time (i.e. 11pm PST?) or b) that
automatic update would/would not be turned on out of the box.