Friday, August 25, 2006

Fiery Bitter Golden Dragonfly

Five years ago a challenge was issued in my company:

It has been suggested that we adopt code names for the various software releases, which is a great idea. The "3.x.x" or "4.x" etc. names are both boring and confusing (they may change during the development cycle). I have proposed to use bug names (large supply available), and since no one has stopped me (too late now), let us go with this idea.

You are therefore invited to vote for the bugs of your choice, for the 4.0, 5.0, and 6.0 releases.


Spoiler: Today I'm working on 6.1.4, so you know how this is going to turn out.

Here, in its entirety, is my response to this challenge:

4.0 Hornet
5.0 Mantis
6.0 Scorpion

Before anyone protests about that last one, Merriam-Webster says:
Main Entry: 2bug
   Function: noun
   Etymology: origin unknown
   Date: 1622
1 a : an insect or other creeping or crawling invertebrate


So I believe scorpion is acceptable as a 'crawling invertebrate'.

On another note, let me suggest that intermediate releases have some kind of adjective name so that if they get rolled together we can just merge the names. I further think that naming 'releases' is the wrong approach, but naming 'feature sets' is the right approach, for example Decision Tables could be "Cyan", BRTG mk. II could be "Shiny", Deployment Manager can be "Tempting", so that we can later release "Shiny Cyan" or "Tempting Cyan" and know what's in them.

But, if we are stuck with naming "releases", I propose colors for single point releases (3.x) and temperatures/textures/flavors/other adjectives for minor point releases (3.x.x).

For example, we had 3.2.1, 3.2.2, and 3.3, and then 3.2.2 got rolled into 3.3. If the code names for these were Hot, Smooth, and Blue, then when Smooth and Blue were merged we'd have 'Smooth Blue'. Everyone would immediately know that if they were working on Smooth, now they are working on Smooth Blue. If all three of these releases were merged, we'd have "Hot Smooth Blue". Colors can also be merged, for example if 3.3 "Blue" and 3.4 "Green" are merged, you could have "Hot Smooth Blue-Green".

Furthermore, since we use colors for point releases we can merge them onto the corresponding main release name and refer to "Smooth Blue-Green Hornet" or "Funky Cold Magenta Scorpion".

We should avoid having contradictory adjectives in adjacent releases to avoid things like "Cold Hot Luke-Warm Dragonfly", if we plan the names just a little better we could have "Fiery Bitter Golden Dragonfly", for example, which would make a really cool martial arts movie title.

(In case anyone things I'm joking, I'm serious about naming things with adjectives and merging the names when needed. I'm not so serious about particular names like "Icy Purple Sticky Dung Beetle", though.)

-Doug "Hotblack" Simpkinson