a companion discussion area for blog.codinghorror.com

Alpha, Beta, and Sometimes Gamma


#21

Does the term ‘Gold’ come from before releasing to manufacturing, we used to burn a load of gold (i.e. blank) cds?


#22

I think the reason for versioning an application as gamma and beyond is to apologize for bugs in advance or to make the users believe, that more features are to come somewhen in the future (even though there are no further features being developed yet).


#23

You gotta wonder how many undiagnosed pointer dereference errors are floating around in there.
http://en.wikipedia.org/wiki/Therac-25

OK, that’s one. :slight_smile:

Actually, reading over their litany of causes, its funny how similar it looks to those identified for the Ariane-5 lauch failure - http://en.wikipedia.org/wiki/Ariane_5_Flight_501

It even had the exact same direct code cause: an undetected arithmatic overflow. In the Ariane case they were using Ada, so it should have been detected. However, they manually turned off the checks in that part of the code. Doh!


#24

Where does the CTP fits in? Like in ASP.NET MVC? Is it still at alpha stage?


#25

I once heard the term BETA on a web 2.0 site can save you from trouble. e.g. if you lose you’re user’s passwords you can always say well that’s why we’re still in beta.

I doubt that this makes any difference in front of a judge however…


#26

beta = beta waves = lots of activity = still developing features.
gold = cold dead metal that some people find value in = legacy

Beta also implies that you shouldn’t rely on it, so it’s a liability / perception issue. We all know how people love to moan. Beta also implies maybe someone listens to your feedback (and not just some focus group).

Just remember, never realease anything unless it’s pretty darn good / fast / polished. Perception is everything. If it looks and acts like a steaming pile of crap, people will be lax to come back. Scaling and speed issues seem to be less of an issue, as people seem to expect that you won’t get that right the first time.


#27

If memory serves, the CircleMUD codebase was derived from DikuMUD gamma 1.

When I was making AMXX plugins, I used to number releases using Greek letters where changing the letter meant major feature improvements and incrementing the number was bugfixes only. The furthest I ever got was Theta 4.


#28

Does the term ‘Gold’ come from before releasing to manufacturing, we used to burn a load of gold (i.e. blank) cds?

Sort of the opposite - it’s referring to the single master CD that gets sent to manufacturing. It originally comes from the recording industry – back in 1901, a gold master was used to copy phonograph recordings. It’s interesting that the longest-lasting CDs are also gold; but it appears that the term actually pre-dates CDs by quite a few years.

There’s also a reference from Apple using the term Golden Master back in 1988 (http://developer.apple.com/technotes/tn/tn1132.html) to refer to the final version of a product. It may not be a coincidence that the first Apple CD-ROM shipped the same year.


#29

Simone: CTP would be public beta, usually in the earlier stages. I remember reading about the way Microsoft handles this (no bets but somehow I think it was on Raymond Chen’s blog).


#30

Well, perhaps it wasn’t Raymond, but he did explain Microsoft’s beta/RC policy in TechNet Magazine (online at http://technet.microsoft.com/en-us/magazine/cc194403.aspx for those interested).


#31

At a previous job we used the term Omega Test to indicate the Release Candidate. It had a finality that got tester’s attention better than candidate.


#32

Does the term ‘Gold’ come from before releasing to manufacturing, we used to burn a load of gold (i.e. blank) cds?
I’m quite sure these terms predates CD-R’s, and I’ll guess Gold refers to something polished and valuable.


#33

One of the most experienced software developers I ever worked with
characterized the release candidate development phase thusly:
does this bug kill small children?

This made me cringe - I develop medical software, sometimes used in pediatric settings. Some of my bugs have the potential to do just that…


#34

GMail Beta is no joke, because Google does this with almost all of their products. I’m surprised that Google Search isn’t labeled beta.

Personally, I hate the term Release Candidate. I’ve always preferred versioned betas. Once you fix enough bugs and think it is ready to go then release another beta and repeat this cycle until you go gold.


#35

Microsoft did it:
First came Microsoft Windows 95 a (#8801; #945;),
then Microsoft Windows 95 b (#8801; #946;)
followed by Microsoft Windows 95 c (#8801; #947;)

But they never managed to ship the gold version…


#36

Am I getting beta invitation?


#37

Don’t forget that those divisions are even further sub-divided:

Beta 1
Beta 2
Beta 3

RC 1
RC 2

…and so on. When you start doing things like that, the boundaries between alpha, beta, community technical preview, release candidate, etc., all just sort of break down.

Who’s to say that Beta 3 isn’t really the same thing as a CTP 2 or whatever?

Although I like using the terms (they sound cool!), we really could all save ourselves a bunch of trouble by just using simplified terms:

Internal Release
Preview Release
Final Release

Because, really, that’s all there is. When it’s internal, the labels are irrelevant - as long as the people in your company/organization understand them.

When you release it to the public, but it’s not done yet, you might as well just call it a preview. Because that’s what it is. Use version numbering (0.0.0.0.1 or whatever you want) to keep track of incremental changes while you are letting the public preview it. This covers Betas, community technical previews, release candidates, and the whole lot of almost done labels we seem to have come up with.

Then, when you’re ready to ship the product (and what exactly does ship mean in today’s web 2.0 world, where you never actually ship a physical product, anyway?), just call it the Final release - or just refer to it as 1.0!

That’s my $0.57, anyway.


#38

Funny, I was just thinking about this topic the other day.

It really amazes me how many software places and IT shops I run into that don’t do any versioning at all. They may have some pie-in-the-sky idea like this is version 6.0 - but that version 6.0 actually consists of 20 or so different releases which don’t have any actual version #.

So I always push the idea of Alpha, Beta, then 1.0, 1.1, 1.2, etc. Scary that they don’t understand the concept of a minor version…


#39

does this bug kill small children?

This made me cringe - I develop medical software, sometimes used in
pediatric settings. Some of my bugs have the potential to do just
that…

I got feelers from a company doing that once several years ago. I figured since bugs could kill people and all, they probably be using something like SPARK ( http://www.praxis-his.com/sparkada/ ), or at least using a realtively safe language like Ada or Java. Or perhaps some other low-risk development system I’d never heard of.

Nope. Vanilla C.

Of course I turned them down with prejudice. Let someone else write code that kills people, I’m not doing it. It does not lend confidence whenever I step in front of an X-Ray machine or slide into an MRI chamber though. You gotta wonder how many undiagnosed pointer dereference errors are floating around in there.


#40

What do you call a collection of many versions of a software product bundled together? For instance if I could purchase all the versions of Adobe Acrobat (1,2,3, . . .) in a bundled package. You know, a total collection of all versions of a prodcut, a sort of a sum of all the versions released in a series. Is that a SIGMA RELEASE?!??! HAHA!!! THE SUM OF A SERIES!!! I AM HILARIOUS!!