Killing Code Names
As part of the process to open source Java, Sun have switched from using codenames for Java releases to just using the actual name. Thank goodness for that. I'm not sure I know of anything more frustrating than attempting to have a conversation with someone using code names instead of actual versions. Was Dolphin before or after Mustang? Which Tiger do you mean, Mac OS Tiger, Java Tiger or Tiger Direct? How hard is it to just pick a version number and use it? Does marketing really need to mess around with that number at all, and even if they do, do they really have to wait until the very end of development to pick a number?
Ephox has for some reason decided that code names are absolutely essential to have and that we couldn't possibly refer to projects by the version numbers that engineering and product management have been referring to them as for the past year or more. Nope, got to pick a new name and then remind everyone what version number that maps to every time you use it.
I don't complain much about Ephox and it's probably a good sign that all I'm complaining about is the use of code names – apart from causing confusion at the start of every meeting it's really not that big a deal.
On the plus side, sanity reigns in the engineering department – we just focus on the story cards and get stuff done, the rest of the company can worry about what cards make up the Harrison release and which are part of Moreton. Bonus points to any Ephox employee that knows what the Buzz Lightyear release was. Of course, anytime I have to pick a project code name you can bet it'll be really memorable…

August 27th, 2006 at 11:08 pm
Code-names existed for a reason … to quell a tension between development and marketing! Development (and CM) folks had this crazy idea that version names/numbers should correspond to some logical scheme whereby each set of numbers & letters separated by a ‘.’ or ‘-’ or ‘_’ actually has some logical meaning. Such crackpot ideas gave rise to release naming and numbering conventions.
Marketing didnt like this! The release name (like the release itself) is a marketing opportunity and the release numbering has a psychological impact on users and customers that cause them to make certain assumptions (ofr better or worse). So marketing wanted to set the officially advertised release name/number based on how they felt they could manipulate perception rather than based upon some logical convention brainstormed by analytical geeks.
Marketing won that battle – a lot! So to combat the effect of having a rlease start out with one release-number only to change into another after marketing got their hands on it, the “internal name” or “code name” was born.
“It doesn’t matter what marketing calls it now – we’ll still just always use the code-name internally. Then when they turn our “0.2″ into “1.0″ for marketing purposes … we can still all use the same name we were using before. We just ‘add another level of indirection’ to our naming convention to ‘encapsulate’ identifier-name changes made by marketing.”
The problem was, the code-names started getting communicated and werent completely ‘internal only’. And once the code-names “slipped out” into public consumption, lo and behold another marketing opportunity was born. Combined with the release name – this was now two for the price of one.
And so it went …
Seriously tho – there really are genuine times when we have a project in its earlier stages and while the major features may be nailed down, the rest of the content isnt, and neither is the exact date (or even month/quarter of its release). If a logical numbering convention is used, you may not yet have enough knowledge about what the final release-name will be.
Some naming conventions take this into consideration, using the first two segments of the name for the hi-level planning and letting the rest be fleshed out later. It can still be sensible and beneficial to use internal code-names at this point. But the code-names werent originally intended to be used in comminications with the customer/end-user.
All that has changed now