PDA

View Full Version : Alpha, Beta and Stable - a Definition?



Lunx
March 31st, 2009, 07:58 AM
Installed 9.04 last night and been having a good play around with it today, seems to all be working and working well (actually better than 8.10 from my experience so far). This got me thinking about the question as to how software apps go through the various development stages, and when software is considered to be at a particular stage. I guess it must obviously depend on having minimal bugs and known fixes, but is there a "standard" for this, or is it really just the whim of the devs as to how well the app works and how they class it? I was thinking about this release of Jaunty, less than a month now before it is no longer beta. This seems sweet for this release, as most people seem to be reporting that it's running well and seemingly very stable. But what happens with (for a pure hypothetical example) Karmic Koala? From my limited understanding of Linux and Ubuntu, this release will be trying out some new stuff that could well prove problematic at first, so what happens if there are still lots of unresolved issues when October comes around? Do they devs hold back on the release (and not hold firm to the six month ideal), or would they release it as stable whilst in actuality it is still really only in beta?

I know I could go and seek many of these answers myself, just interested to see what thoughts and definitions others have for the various stages of development. I also thought of posting this in the Development forum, but I figured it probably better suited here as I'm more interested in getting a feel for the thoughts and general consensus of the community, rather than a hard and fast, cut and dried definition.

SunnyRabbiera
March 31st, 2009, 08:21 AM
To make you understand how this works I will use the comparison of building a house for you:
The Alpha phase is the initial development phase, sort of like drawing up the plans of the house.
This phase is the experimental phase too, to try out new ideas and concepts.
The Beta Phase is when the actual building plans officially begin, the foundation was made in the alpha phase and now we work on the actual construction.
The RC phase is where the house is almost ready to be used, the framework of the house has know been built and the walls, windows and ceilings have all been put in.
Barring any major construction flaws the RC's are usually when our house is just about ready to live in.
Then comes the final (gold) release, the house is ready!
and further versions of Ubuntu, such as 8.04.2 are additions to the house.

kernelhaxor
March 31st, 2009, 08:49 AM
To make you understand how this works I will use the comparison of building a house for you:
The Alpha phase is the initial development phase, sort of like drawing up the plans of the house.
This phase is the experimental phase too, to try out new ideas and concepts.
The Beta Phase is when the actual building plans officially begin, the foundation was made in the alpha phase and now we work on the actual construction.
The RC phase is where the house is almost ready to be used, the framework of the house has know been built and the walls, windows and ceilings have all been put in.
Barring any major construction flaws the RC's are usually when our house is just about ready to live in.
Then comes the final (gold) release, the house is ready!
and further versions of Ubuntu, such as 8.04.2 are additions to the house.

No offence but IMO that is a bad analogy ...
Alpha is not like drawing the plans of the house, most of the design and plan is done before the alpha phase .. Alpha is in fact the first phase of testing, a version on which you can get the nightly builds and test regularly .. Beta is not when the actual building plans officially begin .. Beta is when the product is almost ready but needs lot of testing and polishing; the only things that get built during this phase are small feature modifications, bug fixes and work arounds .. RC is when you are almost all ready to release unless fatal bugs emerge ..

SunnyRabbiera
March 31st, 2009, 08:53 AM
Well with some software it is, Ubuntu has the advantage of having the planning and thinking done beforehand.
There is some software out there that go out there with little planning, of course this software turns out to be crap...
I think Windows has that issue for sure :D

megamania
March 31st, 2009, 08:57 AM
Alpha is not like drawing the plans of the house, most of the design and plan is done before the alpha phase ..
I agree.

Alpha: the developers keep throwing in new stuff all the time. That's why one day it works perfectly, and the next it is broken.

Beta: many changes are frozen, and focus is on stability. Still lots of updates/changes, but the "infrastructure" is defined.

It may be interesting for the OP to check the ubuntu wikipedia for xxxReleaseSchedule, where xxx is the release name (for example, JauntyReleaseSchedule).

SunnyRabbiera
March 31st, 2009, 09:04 AM
Still like I said some software doesn't seem to have any real plans behind it, often times its a "hey lets make that" or "lets see what this can do".
I encountered a lot of software like this over the years.
Maybe a more expanded comparison later will more more suitable, I was just trying to list the basics of how the process goes, not every last little detail.

ghindo
March 31st, 2009, 09:04 AM
These terms are all really subjective, and depends on the developer. I mean, Google's had much of its software in "beta" for years, but is still much more stable than a lot of comparable software.

SunnyRabbiera
March 31st, 2009, 09:07 AM
These terms are all really subjective, and depends on the developer. I mean, Google's had much of its software in "beta" for years, but is still much more stable than a lot of comparable software.

Indeed, most use the term as a safety net though.

Lunx
March 31st, 2009, 09:14 AM
I
It may be interesting for the OP to check the ubuntu wikipedia for xxxReleaseSchedule, where xxx is the release name (for example, JauntyReleaseSchedule).

Thanks, I now recall reading that when I first discovered Ubuntu but will re-read for more enlightenment and to see what I may have missed. I guess my post was more asking a question as to if/should there be a "standard" to which all devs should be striving for before deciding whether a particular app is at a particular stage. If we forget alpha for a moment, what are the defining factors that separate a beta from a stable (gold) version, afterall, even the best of apps can still have the odd bug and do things they shouldn't. So is there any sort of a yardstick for measuring this (ie. ten known bugs means it is still beta, whilst eight bugs is acceptable for a stable release. No idea on these figures either, just snatched them from the air as an example) Apologies if this sounds a little obtuse, I have very little knowledge (read none) of programming and creating software.

mister_pink
March 31st, 2009, 01:21 PM
They have once before delayed a release (I think 6.04 became 6.06) but its not usual. They'll only do this if they discover its not up to standards when theyre really low on time. I think the fact that that was a long term support release meant they were keen not to release it full of bugs. Essentially with the timetable, things are done when its released.

To try and prevent too many bugs getting into the final release they have a strict timetable for feature freezes to try and make sure they have time to find any bugs before its released.