| Comments

First a word on the “continuum” I keep hearing about for applications.  I’d like to apply it to my digital lifestyle.  You know that vision where you only have one place to keep your music, but can access it anywhere, etc., etc.  I still haven’t hit nirvana like that yet, but for movie watching it’s getting close.

I used to be a customer of Netflix when they first launched.  To be honest, at that time their pricing was singular and I just wasn’t watching enough movies at home to warrant the cost, so I ended my relationship.  Now I have kids, travel a bit, have an XBOX, etc.  For me, Netflix has become more relevant as a matter of convenience…oh and the fact they have a pricing model that totally fits in line with my use.  The thing that is great about Netflix for me now is that they “get it” with regard to how digital and old-school movie rentals can/should occur.  Why? Simple, it’s everywhere for my lifestyle now.  My Netflix account enables me to get DVDs the traditional way (even with Blu-Ray even though I don’t have a player, but nice to know the option is there) as well as digitally.  Recently they changed their Watch Instantly capabilities to use Silverlight.  But that wasn’t all.  With the launch of the XBOX next generation experience, Netflix now has an application for the XBOX.  So now I can get DVDs, watch on my computer(s) and watch on my home theater system.  All with one account, one place, etc.  The only missing piece is a supported/legal way to download to my portable media player (iPod, Zune, etc.).

The one thing that I really like about the instant watch capability is the fact that it remembers where you were.  So if I am traveling and start watching a video but couldn’t finish, when I get home to my XBOX, it starts where I left off.  Nice polish on that feature.  I can still start over if I want, but it is great to see that added value of watching where I left off.  For me, Netflix truly has figured out fast how I want to watch movies and innovates to offer the options for me.

I was showing my family these features and went to a PC in my house to show them the instant watch capabilities as an example.  It just so happened to be a machine that didn’t have Silverlight installed on it yet for some reason.  After logging in to my Netflix account and picking the first movie to demonstrate to them, I was greeted with this images:

It was a reminder of two things for me: 1) that I didn’t have Silverlight installed and 2) what paying attention to the install experience of your web application features can do to enhance the experience and loyalty of your customers.  You see in reality Netflix could have just left the default Silverlight install experience:

on a blank screen.  For me, I would have known what that meant and still been reminder.  But I’ve ranted about providing a great Silverlight deployment experience, about some easy ways of implementing it and how important it is not to assume and to optimize your rich client experiences for your users.  Netflix nails it and is the best example I’ve seen yet.  Period.  Let’s examine the key areas here (numbering mine):

Netflix focused on the main tenants of first impressions with new technology:

Maintain Visual Cues

Netflix keeps the user engaged, not by using the default Silverlight install image, but by maintaining a consistent user experience in the design.  Although the user has chosen to “watch instantly” and they are not there yet, this design helps keep a consistent brand recognition and even shows a player in the background a little bit.  This tells the user that they are still starting along the same action they desired.

Focus on the Content

Content is king.  Content is king.  Nobody will install anything if they don’t believe the content is relevant.  Look at how Netflix uses some personalization in this experience.  In section 1 you can see that they’ve alerted you about the content you chose…they haven’t forgotten about your desire.  They also put the DVD cover as a part of this experience to remind you of the content you wanted to watch.  This is HUGE to the experience.

Reduce Barriers to Entry

Some people might be apprehensive about installing new things.  In section 4 Netflix helps alleviate some concerns by showing the value of the action, and assurance that this is not something that has to do with advertising, etc.  They are providing you with additional information to help you make a decision and help you feel that the process is relative only to the task you requested (watch instantly).

Set Reasonable Expectations

In section 2, the authors of this experience help give some reasonable expectations to the user with “it only takes a minute” instructions.  This gives the user a reasonable expectation of time.  They have a reasonable assumption now that they aren’t downloading the entire movie, or something huge that will take 20 more minutes before they can watch their selected video.

Minimize Decisions

They haven’t given you any other offers here.  No option to create a new account, or sign up for other methods.  You’ve asked to watch instantly and that’s what they are presenting here…the option to do that.  They are making that decision clear in section 3 as well – this is the call to action…no other.

You may also notice the absence of giant Silverlight logos.  To me, this is a good thing.  It is important that you provide some context to your users about what they are installing if it isn’t directly from you though, whether it be from Microsoft, Adobe, wherever.  Here Netflix points out “Install Microsoft Silverlight” which puts in your mind the brand of Microsoft.  This way when the installer shows up it isn’t a surprise it isn’t from Netflix.  Perhaps adding the Silverlight brand/logo in a subtle way wouldn’t be a bad touch here to have some visual recognition and continuity from this screen to the installer.

Summary

Creating these experiences is an important step in managing first impressions.  It isn’t difficult to do either.  We provide some tools and support scripts (Silverlight.js) for you to understand the different scenarios.  Over time as more and more get Silverlight installed this will be less of an issue, but still shouldn’t be ignored.  I’ve seen many Flash sites that use the default “Get Adobe Flash” small icon and wish they would concentrate just as much on the experience as well.

I mentioned that the Silverlight.js file can help aid in detection/installation of Silverlight.  I’m curious your thoughts on it.  If you have a few minutes to spare, I’d love for you to take this very quick survey of your impressions of this technique and using the Silverlight.js script.  No personal information is required.

Bravo to the Netflix team…very well done.  Oh, and the experience isn’t that bad either ;-) -- Seriously though the player and bandwidth/quality detection is great.  Overall Netflix has won me back as a customer for sure!

| Comments

If you are doing Silverlight development, you are no doubt slapping in the <object> tag or using the <asp:silverlight> control (if in ASP.NET) to host your Silverlight content/application.  This is all great, but don't forget about deployment!

When I talk about Silverlight I like to relay a story I heard from one of the Silverlight program managers (PM) a while back.  The PM was pretty excited about a feature just completed in Silverlight and one of the samples that had been created.  He went home to show his wife and told her to 'go to 'dub-dub-dub-dot-something-dot-com' (yelling from the other room of course) and to tell him what she thought.  After a long pause of a few minutes he shouted back 'what do you think?'  Her response: 'It's lame.'  He was no doubt offended until he walked up to her machine and on the screen saw this:

Silverlight Install Image

The Problem

You see, 'Get Silverlight' means nothing to your mother-in-law (or wife in this matter).  Technology means nothing to non-geek users.  Content is king.  And to your non-savvy users (and even your savvy ones), leaving this default experience isn't a wise one.  It doesn't convey that there is anything of value by installing something they might not have.  It doesn't even convey what the action is going to be when they 'Get Microsoft Silverlight.'  Leaving this experience unchecked leaves your users in the dark as well as a reputation rank downward in my opinion.

NOTE: This site is likely riddled with these badges as seen above.  I'm claiming exempt status because they are samples :-).

While in Silverlight 1.0 creating a great install experience was possible, Silverlight 2 makes that process so much easier.  In Silverlight 1.0, the use of the silverlight.js file could aid in detection and direction to an alternate experience.  This method is still possible in Silverlight 2, and in fact might be a best practice still.  Most interactive developers using Flash use some method of script creation in instantiating the Flash host.  This is mostly due to the IE EOLAS "click to activate" issue that has been resolved and will remedy in an upcoming IE update.

Some Solutions

So that brings a few methods for instantiating the Silverlight control host.  You can still use a script method to do the check for you and provide alternate content or redirect to something.  You can also still simply include the <object> tag itself.  My favorite is using the simple <object> tag and tricking the HTML.  You see an object tag might look like this:

<object type="application/x-silverlight-2-b1">
    <param name="source" value="ClientBin/CallingServices.xap"/>
    <param name="onerror" value="onSilverlightError" />
    <param name="background" value="white" />
    <div id="no-sl" class="install-badge">Some descriptive information</div>
</object>

Notice the random HTML after all the params?  Browsers will read the HTML like a book (US-English) from top to bottom.  They get to the object tag and can't understand it, so will look at the next part of the DOM.  Param tags...nope don't get it.  Next part.  Oh, a <div> element...yep I understand...begin render.

Within here you can put an image or some element with a CSS class that is absolutely positioned, etc.  Bottom line is you own that experience.  It is now on you, the developer, to ensure that your users aren't just seeing 'Get Silverlight' but are being provided at least some explanation of what they are about to see, why they should install this plugin, etc.

Some Examples

Perhaps you need some inspiration?  Here's some examples from some recent sites...


Silverlight.net Gallery


Zombomatic Game on Miniclip.com


WWE Insider Video


Hard Rock Memorabilia Site


65th Annual Golden Globes


Major League Baseball Video

As you can see, the options are endless from very simple, to heavily branded. 

Testing your deployment experience

So now that you've decided you are going to optimized that "no Silverlight" experience, how do you go about testing it?  Well, here's a simple trick that I employ to do this.  There is no need to uninstall/re-install the runtime on your machine.  In fact, this will likely give you headaches in doing so and waste endless minutes :-).  Here's a simpler way.

In Internet Explorer you have the ability to manage your add-on experience.  To test your "no Silverlight" experience, simply do the following.

To make it easier go to a page with Silverlight content.  You can do this without this step, but it will cost you 2 extra clicks and I'm trying to save you time.

Next, go to Tools...Manage Add-ons...Enable or Disable Add-ons:

Now, find Microsoft Silverlight in the Enabled section and change the radio button to 'Disable' and click OK. 

You will be prompted with a message which you can just click OK through.  The page will be refreshed and the Silverlight plug-in no longer enabled.  Now any site you visit will give you the "no Silverlight" experience for you to test your deployment experience.  When you want to re-enable, simply repeat the process and choose 'Enable' and you are back in business.  No messy control panel uninstall/re-install mess.

I'm not a Firefox power user and couldn't find an easy way to do this rapidly without installing another plugin, so if anyone knows the similar method in Firefox, please enlighten me (or Safari for that matter).  I tried searching and found solutions of moving the plugin out of the /plugins folder in Firefox so I'd imagine you could batch script this out.  I really like the ease that Internet Explorer provides in managing my own preferences for each add-in running.  Looks like this gets even better in IE8.  I'm actually surprised it isn't a part of Firefox.

Summary

The bottom line is: don't ignore this experience.  This is your chance to explain that the user is about to see premium content, a better user experience, a fun game, whatever it is you are trying to convey.  I hope this has helped at least some be enlightened on ensuring you make that a work item in your task list and the tip of disabling the add-in is helpful to some. 

| Comments

you may remember the result of EOLAS litigation a while back.  yes, the one resulting in what some feel is the annoying 'click to activate' functionality/feature/whatever that resulted when web authors chose to directly use <embed> or <object> tags in content, usually flash.

this, of course, is mitigated when script creates the content, such as what silverlight does by default as well as the SWFObject script that many flash developers use (and if not, they should be).  well, while i still think a good practice in some instances, we may be looking at a solution.

pete lepage of the internet explorer teams posts about an update coming soon (ctp in Dec 2007) that will remove that.  seems that microsoft has now licensed the technologies from Eolas and enabling internet explorer users to have a better experience.

let's all say it at once: yaaay!

my only complaint.  the naming.  sigh.  c'mon seriously: Internet Explorer Automatic Component Activation Preview -- are you serious?  how about just IE SP1?  oh well, we can continue to make fun of "mr. microsoft product naming guy" but the benefits really are in the technologies.