On names and codenames...

The naming of products at Microsoft is something that never ceases to fascinate the world.

The latest thing to get the blogosphere's proverbial knickers in a twist is the re-renaming of Windows Live Mail to Windows Live Hotmail. Well, guess what... I actually have no opinion on this re-rename. Why? Because while Live Mail is orders of magnitude better than Hotmail Classic, it's still not overly imaginative as a product. So, until the product is something I can really get excited about, it doesn't really matter what it's called.

Note: I did have a very strong opinion about the renaming of Windows Live Local to Windows Live Maps.I won't go into the details, but let's just say I'm a lot happier with the new name.

Anyway, on to my real topic: codenames.

Over on InsideMicrosoft, Nathan Weinberg wrote an post recently, titled "Sinofsky's on to something: Codenames must die." He discusses the "problem" with codenames in some detail, and proposes a solution:

Microsoft has this problem all the time. People are still referring to Windows codename: Longhorn today, even though the final name of Vista was announced 18 months ago, and that Vista is nearly a completely separate project from Longhorn. Windows Mobile 6.0 is probably going to be called “Crossbow” for the next year or so. Many analysts and Microsoft employees have complained of products that have better codenames than final brand names. The next version of Windows is on its third codename, first BlackComb, then Vienna, now Windows 7.

I honestly don't understand this railing against codenames. Who cares? So what if the digerati are still referring to it as "Longhorn" or "Crossbow." It really doesn't matter.

How about the people who still refer to Mac OS X 10.4 as Tiger, and to the previous one as Jaguar? (In fact, Apple had some fun with the box art for Mac OS X 10.3). Or what about the code name for OS/2 3.0, "Warp" (from a long history of Star Trek related OS/2 codenames), which eventually became a part of the product name.

Do you really think, for example, that if Vista had been called "Windows 6" during the development, the problem that "Vista is nearly a completely separate project from Longhorn" would have been avoided? We would still have had PDC03 at which we told people about the amazing new things in Win6, and then we would have dropped it all and replaced it with new amazing thing by PDC05. Nothing about the codename helped or hindered in that scenario. And for what it's worth, Longhorn was the codename for Vista for a long time after the event known as the "Longhorn reset" (all we did was start referring to the version prior to the reset as "Alpha Longhorn."

In fact, the codename thing can often be a savior, because if too much "baggage" gets attached to one codename, you can drop it and start fresh. This happens over, and over again. Blackcomb became associated in people's minds as "the next big release" and teams would start planning the grand new projects they would deliver in Blackcomb. So jettisoning the codename and picking another was the only sane idea.

Or, how about Kodiak -- the version of Exchange that would switch to using Yukon (the product eventually known as SQL Server 2005) as its datastore? That name was tightly focused on the SQL Server datastore project (not the least because Kodiak is a town in Alaska located fairly close to the Canadian territory of Yukon), so being able to jettison the name (and the associated baggage) and move to another is a good thing. What if it had been called E8 -- would that have helped, or would Exchange be getting the same heat that Windows gets about the difference between the early visions of Longhorn and the later visions of Longhorn?

In short, it really doesn't matter what you call your product. No matter what you name it, it get a set of attributes attached to it as visions turn into plans and plans turn into code. When we rename Windows 7 as Windows Coffeetable (you heard it here first, folks), there will still be tons of people calling it Windows 7. It's just a habit. 2 years later -- it won't matter any more. So, just pick something, and move on.

As a minor anecdote, a short time after we started working on IE7, there was an effort afoot to come up with a codename for IE7. In particular, we wanted a codename-series (a series of codenames related in some way: Whistler, Longhorn, Blackcomb (Windows); Platinum, Mercury, Titanium (Exchange); etc.).

Eventually, we settled on beach-related codenames (because that's where people surf -- get it?), and the name Rincon was selected for IE7. Rincon is a famous surfing beach in Puerto Rico, which has a famous road leading to -- the roadsign is here, so you can see for yourself why it was attractive. :) I believe Tony was responsible for that one. Random trivia: the codename for the version after Rincon was going to be Maui (this was "decided" a year before IE7 even shipped).

Well, as it happened, it never stuck. IE7 had been used internally as the name for so long that we never really got any momentum behind it. I offered to be the champion for the name, but only as long as management agreed to take the team to the associated beach when each product was done. That one didn't fly.

Oh, well. At least IE is already ahead of the game on the current "productname + number" naming scheme trend that Sinofsky favors.