Monday, September 11, 2006

Is the Internet Really That Powerful?

About 2 weeks ago Serenity won a Hugo award.  If you haven't seen this movie or watched the TV series that inspired it, Firefly, you should.  It's arguably some of the best TV of recent years.  It's certainly some of the best sci-fi to come down the pipe in a long time.  I was watching the acceptance speech on YouTube and a thought hit me.  Serenity had a *huge* following on the web.  Before the movie came out the hype was really intense.  Then the movie launched and instead of being the next Star Wars it quickly became an also-ran.  The hype didn't translate to lots of people seeing the movie.  It made back the money it cost but didn't make anyone rich.  Recently there was another big internet hyped movie.  Snakes on a Plane received enormous amounts of hype and seemed sure to have at least a huge opening weekend.  It won the weekend but the total box office take was really low.  The hype again didn't translate into people going to see the movie. 

I don't mean to equate these two movies.  Serenity was a great movie.  Snakes is, by all accounts, not very good.  Still, they both had lots of hype.  Lots of blog posts.  Lots of fan websites.  Neither had as many people go see it as was predicted.  Why didn't the hype translate into people going to see the movies?  Is the blogosphere just a echo chamber with a limited audience?  Is it more about the hype itself than the target of the hype?  I don't know the answers but I do find it interesting.  In a day when so much advertising and effort is being made to create a web presence for products, it is important to know whether creating excitement on the web is actually a way to sell products or not. 

Wednesday, September 6, 2006

What does "RC1" really mean?

With the recent release of Windows Vista RC1, I have seen many comments on places like Slashdot and various blogs which demonstrate there is a lack of understanding of what we mean when we say we have "Release Candidate 1".  I will attempt to explain what we mean when we say RC1.  This is not an exhaustive definition nor is it official but it should give you a good idea what we mean when we say it.

There is an impression that this is the build we intend to release as the final build unless something heinous bug is found in it.  That is often what the term release candidate means in the world of software but not here. 

Back when I started at Microsoft in 1997, we were in the process of releasing IE4 and then Windows 98.  In both of those cases, the release candidate builds were just that, candidates for release.  If we had RC1 on Monday and found a bug in it, on Tuesday we'd have RC2.  If we didn't find a bug on Tuesday but found one on Thursday, then Friday we would have RC3 and so on.  After a half-dozen builds or so, we would have a final release.

When I moved to the NT5 team (what became Windows 2000), it was confusing to me to hear the same terminology mean something very different.  In that world, and in the world of Vista today, what we call a release candidate is more of a waypoint on the way to release than a build we actually think will be the final one.  An RC build is one that we iterate on for a while to drive up the quality (like a beta or one of the CTP releases--only moreso).  A release candidate, in this way of thinking, is a build you release that will differ only in minor ways from the final one.  The bar for bugs goes up substantially after it.  We become really strict about what we will take for the product.  No new features or even major changes are allowed in.  Just bug fixes which don't perturb the system too much.  In this nomenclature, a "release candidate" is not really a candidate for final release.  We know there will be bugs to fix after we release it.  In the WinXP timeframe, there was a month or maybe even two between RC builds.  During that time we still had daily internal builds.  Each release candidate was closer to the final build and the amount of change allowed afterward was smaller than before.

So what do we call the builds we are really considering for release?  We usually call them escrow builds.


Update:  I found a nice chart in this Seattle PI article showing the time from RC1 to RTM for Windows 2000 and Windows XP.  For Windows 2000, it was 166 days.  For XP, it was 53.