Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Mozilla The Internet

What constitutes an Alpha-version? 121

jacobm writes "An article went up on mozillazine.org yesterday in which the Mozilla team asks the community: what will it mean for Mozilla to be alpha? Probably a good question for everyone to think about, especially those of us who develop (or will develop) software for fun or profit. " Interesting question, especially when it comes to Mozilla. With M12 coming up, they are getting close to that stage, and have setup a criteria they think works. Do you agree?
This discussion has been archived. No new comments can be posted.

What constitutes an Alpha-version?

Comments Filter:
  • this is the way I see it...

    PreAlpha : Very first code written, this is where initial loaders, etc. are designed and tested as well as the other basic parts of the code. (typicaly Stability ~ 0)

    Alpha : The thing at least runs now though crashed are expected. :-) the feature set is not yet complete, this is where the project begins to take place as interface issues are addressed and features take shape

    Beta : Feature freeze, Most features are intact, though there are normally still a few that are still being ironed out this is normally where testing really begins to pick up, to squish all those bugs.

    Release : The bugs have been all but ironed out now, though there really is no such thing as bug free code, so a few are hiding somewhere, but it's good enough for everyday use.

    (By this, Mozilla probably sits around Alpha)

    Chris


  • Was there not a big war about .png support here a little while ago. Is .png complete? If so Mozilla should definatly support the full standard.

    Think about it from this future perspective...

    "Why should I download Mozilla to replace IE?"

    "Because...

    It's 8 megs instead of eighty, making it small enough to zip across 7 floppies.

    It is rock solid.

    It is fully HTML 4.0 compliant

    has complete .png support"

    Users will want it, Developers will need it.

    Could you picture a world ruled by IE, IIS, and front page?

    The totaly befuddled web developer replies to you, "I don't understand. What do you mean you want to view the source?"

  • Yes, but we aren't speeking Greek, we are speaking English. Importing plurals along with loan words is a stupid anomaly.
  • I work in the machine tool industry, where MTBF is measured in thousands of hours.

    Consider what's acceptable, given the target market for the product. A Web browser doesn't need thousands of hours of uptime, or even tens of hours -- for one thing, Windows will crash sooner than the browser will, anyway. :)

    Unlike a piece of machining hardware, a Web browser is not something that people will use all day, and depend on to get their work done. As applications move from the desktop to the Web, ....

    Errr, wait a minute...I just realized something...

  • There's a visual similarity between river deltas, and code forks with too many deltas.
  • I've always heard the term "Alpha" be described as "active product development" meaning new features are being added, and "Beta" was post-freeze, meaning no new features unless application security is involved, and bug fixes only.

    Are these not the real definitions?


    "Dee herr, dee dur hurr, m0rt! m0rt! m0rt!"
    -The Swedish Shef
  • In the webshell/embed/gtk/ directory of the Mozilla source tree, there's a widget that lets you embed the Mozilla layout engine in GTk+ software. There are also some examples in webshell/embed/xlib/ for GTk+, Qt, Motif, and Xt, but I don't know if they're still maintained or not.
  • I've seen many products for UNIX, Web, and MS environments that do not meet my definition of alpha shipping as products. I define this as being able to successfully install it and get it to work on your machine, however the product will have issues concerning functionality or implementation of features. However, the basic application framework and interface code is there. The only issues should be with stability.
    The nastiest ones I have seen so far are the web application servers for UNIX. They must all be pre-alpha when released, especially the Sun NetDynamics server, which apparently likes to take a dive on whatever OS it is running on a regular basis, IN RELEASE AND AFTER SERVICE PACKS. No wonder they cluster them. Or they give you instructions as to what machine directives or functions to AVOID using. Silverstream, Bluestone, and the Java web server aren't too much better. And they are in general release! The scary part is that this is another product of the Sun/Netscape alliance that we had some Ex-Sun guy talking about like it was better than sex. Having to reboot HPUX, IRIX, AIX, or Solaris boxes because of memory leaks is a BAD thing.
    Microsoft - Let's not even go there. We know. Why beat a dead horse.
    However the point is that it's no longer standard practice to release working code, apparently. Testing is not being done (and I've seen quite enough supposedly final applications to prove it).

    Open source is a different story though. It gets released as alpha or pre-alpha code, and it eventually works because the code is out there to fix it. Also, people are more willing to submit bug reports because they know they'll get fixed.
    Try that with Sun or MS. It gets dumped into a bit bucket unless it gets posted to BUGTRAQ or NTBUGTRAQ as being a security flaw.
    Still, we have companies out there who are trying to meet release schedules set by the Stef Murkys of the world who release code without testing it as well as they should have.
    In my opinion then, the only good product out there in the alpha stage is Linux, which always is in one because it's a continual work in progress. That is not a bad thing. There are stable versions of Linux that are in release, however Linux as a project will always be, which is good :). Windows is an alpha product, as is Office. Same goes for MacOS. Heck, 50% of all products I think are in alpha. Games are different because they are apparently tested a lot better than the home apps, which is bad.
  • Although devel/stable tree model is well understood in the Linux community, the concept might be a bit baffling for users on other platforms. The alpha/beta dance would be more readily grasped by those in the MS.Win or Mac worlds.
  • Well, it's kind of hard to compare data here. When you say "days at a time", what kind of days are they? Hour upon hour of frantic link-clicking through all kinds of weird-ass CSS2/HTML4/JavaScript whatever sites, or just reloading Slashdot every 30 minutes?

    They're using FullCircle info from their milestone builds, so I guess their metric is one hour of "average use" -- that is, the average use by people who like to run pre-alpha browsers. I would guess that means more stressful use than normal.

    Steve 'Nephtes' Freeland | Okay, so maybe I'm a tiny itty

  • Im using windows 2000 RC3 and it works fine.. well.. it works .. well.. it runs.. actually it "loads" and 14% of the time shows something.. Anyways I cant get java to work, and its slower than death...
    Stan "Myconid" Brinkerhoff
  • The main diffrence there is, that when a tool fails, you need to buy a new one, when an app dies, you just need to restart it. Its really just an annoyance in somthing like a web browser. You loose your place, but you'll probably be able to get back to where you were in just a bit.

    I doubt the MTBF of those machinese you're using would be so high if they didn't cost anything to replace (in cost or time lost)
    --
    "Subtle mind control? Why do all these HTML buttons say 'Submit' ?"
  • My mother (bless her heart) would fall under the the "all kinds of frantic link-clicking through all kinds of weird-ass CSS2/HTML4/JavaScript" simply because she has no idea what the pages' content contains untill the link is done loading. Look around, "view source" on the top 20 sites around the net. View Source on some personal homepages . . this 'weird-ass frantic' content is pretty normal, and (thankfully) has been part of the smoke test in the Milestone builds.
  • OK, does anyone else feel that sometimes open source developers get to obsessive compulsive about things? I mean seriously, why have a discusssion on what determines an "alpha" label, when all it is is a label. Every software project is different. These days, even when a product is finished, it's still always undergoing change anyway. In the case of Mozilla, it could be released as an alpha, a theta, chi, or tau, who cares, all who use it know just what state the project is in. Just my $.02
  • Personally, I claim that my own software is alpha when it is feature-incomplete, meaning it lacks features I plan for the final release. By that metric, MS Win2k would not move from alpha to beta until RC3, which is when they plan to be feature-complete.

    Beta software is feature-complete, but lacks the testing and refinement that needs to go into gold releases. By gold I mean a program that has met whatever metrics that were set out at the beginning for stability and compatibility.

    Note that these definitions require a structured development plan, which I think many software pieces (mostly on the Windows platform) lack.

    As for stability metrics, I think the 1 hour MTBF for Mozilla is a little low, but then, the developers in charge consider that alpha software.
  • > Hey, if it worked for an hour straight, Microsoft would release it! ;-P

    Actually, if it worked for an hour straight, Micro$oft would try to add some new bugs...
  • Well. I think that basically mozilla should be aiming for a MTBF of days with the first real release. Considering it isn't a finished product costing hundreds of thousands of dollars, the one hour MTBF is actually pretty good.
  • One of the key design goals for mozilla was to make it extremely modular. This will allow you to embed the rednering engine in any app. Each mozilla binary release comes with a small program called 'viewer' (I think you need to run mozilla-viewer.sh to get it going). It basically looks like a gtk shell around the rendering engine. It has the back and forward buttons, and the URL field.

    Everything is explained at mozilla.org

    narbey
  • I was under the impression that these milestone builds of Mozilla were, in fact, alpha.
    My idea of the definition of alpha was something like "it runs on my computer, and if you're lucky it'll run on yours too".

    More generally, it would be a piece of software that should be a usable product, but may be lacking some features, experience crashes, or not work at all, but you knew that when you got it.

    Obviously I'm wrong, since (a) Netscape feels the need to call Mozilla "pre-alpha", and (b) my definition would include all versions of Windows.
    --
  • I think that the real question is: what do you want to achieve by labelling your software in some way? When you label your free software project as being in alpha, when mozilla.org labels Mozilla as being in alpha, what do they want to happen? Once you, or they, know that they can set the various code goals.

  • by Neph ( 5010 ) on Friday November 26, 1999 @07:08AM (#1502944) Homepage
    No, I'd say an hour is fairly acceptable for an alpha version. That would already be an improvement over Netscape 4.x.

    You see, this, as everything, is a question of compromise. Do you want to wait another few years until they can get it absolutely perfect without any outside help, or do you want a pre-release that will be widely circulated so that they can see how the code in its current state stands up to real-world use and abuse, potentially accelerating the bugfixing by several orders of magnitude?

    Your comparison with machine shop equipment is bogus. Downtime on such gear is extremely expensive and nearly intolerable. If your browser crashes, you sigh and kick it back up. Nevertheless, I will agree that an hour MTBF is completely unacceptable for a true release. Fortunately, thanks to open source development, it doesn't have to be.

    And please, it's "horribly inadequate". Isn't it embarrassing to put glaring spelling mistakes in bold?

    Steve 'Nephtes' Freeland | Okay, so maybe I'm a tiny itty

  • Alpha: Ready for internal testing

    Beta: Ready for external testing (i.e., outside the lab)

    Release candidate: Feature complete, and if no serious bugs come up after a certain amount of time, the software is released.

    "Gold" has also turned up in recent years, which means released to manufacturing.

  • Ok, a couple things.
    • 1. XUL is good. Trust me.

      2. You can use the engine.. for your own browser.It will be done.

      3. Mozilla does not memory leak that badly, and it's getting better.

      4. Now is unreasonable. However alpha will lead to more uptake and as a result, more bug reports / fixes.

    And as someone else said: you want tommorow's browser today!
  • Traditionally, an Alpha version was like a Beta version, but only for internal use. i.e. It's (basically) complete, but too buggy even to release to beta testers. It's then released as a Beta when most of the known bugs have been fixed.

    But it doesn't seem like this is how the article is using these terms.
  • by Money__ ( 87045 ) on Friday November 26, 1999 @07:12AM (#1502948)
    I realize that my posted comparison (machine tools costing hundreds of thousands of dollars) is not a very valid comparison, but shirly:) there must be some middle ground on the MTBF issue.

    I believe that if this number is moved up NOW,in the alpha phase, it will become even better in future releases. If that number is left where it is, I garantee you that the MS FUD machine will pound that point hard and often. Let's not give them that stick.

    Stability (User:it just works) is a shining downfall of IE and and the micros~1 platform. We should aim to be better than that. It's this focus on stability that has gotten PERL, Linux and Apache to where they are today, and I think the Mozilla team should use the same idea.

    I'm not asking for 'four nines' in an alpha version, but there must be some middle ground somewhere.

  • by sjames ( 1099 ) on Friday November 26, 1999 @07:13AM (#1502949) Homepage Journal

    pre-alpha means programmers only (and just for bug testing).

    Alpha means it goes to internal testers. That can either be professional testers, or other engineers who have not been involved in the project before. This is where you find 'brown paper bag' bugs that seem to only be findable by people who DON'T know the internals of the software.

    Beta means the testers aren't hitting bugs anymore during test use. Now you put it into actual use, but don't bet your life on it. More experianced users may be included here.

    In general, each stage should repeat each time bugs are found. So, you release a first beta, and bug reports come back. The bug fixes go in, and are tested by the programmers, and then must pass through 2nd alpha. Once it can pass 2nd alpha, you have the second Beta release. That release can either become gold (1.0), or go through the loop again, depending on the type and severity of the bugs (only small ones!). Note that a 1.0 might still have mis-features, and missing features (that were not planned, there are features whose need was not anticipated by the designers) but shouldn't have bugs (it will since there's no such thing as 100% assurance, but that's the goal anyway).

    mis-feature = 1.it does what it's supposed to do, even if it's not what the user expected.

    The terms are a little harder to define for Free Software than for commercial, since many beta and gold users will mis-identify themselves as alpha testers. There is a much blurrier line between the phases since you can't define it by who writes the user's paycheck/ what department does the user work in.

    Many of you will note that the standards described above would mean that a great many version 4.01743619746 commercial products out there are actually more like 4th beta.

  • by Ungrounded Lightning ( 62228 ) on Friday November 26, 1999 @07:16AM (#1502950) Journal
    Originally, Alpha meant not feature complete, but most features are there, while beta meant feature complete, but still too buggy.

    I'm not disagreeing. But as I've seen it used currently the distinction is:

    Alpha means the feature set may change before release.

    Beta means the feature set is frozen.

    That's very slight distinction from the above definition - features may also be eliminated.

    Of course, alpha is also earlier and expected to be more buggy than beta.

    Alpha is to get it into people's hands when major chunks are known not to be working - both to debug the things that are there and to debug the choice of features and the interface to them.

    Alpha isn't just a matter of missing features. Sometimes a feature turns out to be a "misfeature": confusing, counter-productive, or actively hazardous. Sometimes a feature is redundant with another, and may be dropped in favor of one that is easier to use, or more powerful and general. (And sometimes a redundant feature will be added as a simplified shortcut for the more general feature.)

    Between alpha releases the user interface may be significantly thrashed or even totally replaced. Even underlying communication protocols and file formats may be modified or replaced.

    At Beta the choice of features is frozen. The interface may change slightly (be "tuned"), but this will normally be minor tweaking rather than a significant change in appearance. Protocols and file formats have assumed their final count and basic form, and may even remain compatable between releases.

    But don't count on it. During Beta the hope is that everything is there, frozen, but probably needs bug fixes. But if there's a really serious problem with something, there might be a thaw.

    Essentially, the difference between Alpha and Beta is management intent: In Alpha, design suggestions might be considered for V1. In Beta, they will generally be ignored - but might be considered for V2.

  • And please, it's "horribly inadequate". Isn't it embarrassing to put glaring spelling mistakes in bold? Thank you for correcting my spilling:) and pointing out some very insightfull points.
  • Adobe Photoshop?
  • I think failure means that the software will need to be restarted, not necessarily reinstalled. In the machine tool industry I would guess that failure means the tool would need to be replace, or at least substantially overhauled. For a beta I would expect that there would be few enough bugs that the software could run for days or weeks if the user specifically avoided the bugs. For an alpha that is probably too high an expectation.
  • Quake 3

    Bad Command Or File Name
  • When you start community-building, what you need to be able to present is a plausible promise. Your program doesn't have to work particularly well. It can be crude, buggy, incomplete, and poorly documented. What it must not fail to do is (a) run, and (b) convince potential co-developers that it can be evolved into something really neat in the foreseeable future.
    This brings up some thoughts on the whole "Mozilla as a failure of Open Source development" threads that have been kicked around in past months.
    1. For a project on the scale of Mozilla, can we realistically expect non-core developers to be useful in "early" stages?
    2. Is the previous question just a fancy way of asking: What does "plausible promise" really mean in context of various projects?
    3. How many open source developers really have the skill sets required to participate in Mozilla (a large OO design and implementation project) in the early stages?
    4. ... which in turn begs another important question: what are the "skill and competence" demographics of open source developers?
    5. What are all of the project characteristics (stage of development, project scale, community perception of project, community perception of core developer(s), PR, licensing, etc.) that affect the success of drawing in qualified developers to the project?

    -- John

    P.S. Your homework is to find all of the Ph.D.'s you can in the above, and convince competent grads in the appropriate fields to write them. 8-)

  • After W2k beta release there was RC1 and RC2, just another name for Gamma1 and Gamma2, right?

    After RC1 and RC2 we should have Win2k, which is another name for Delta, right again?

    And after you have the final release, calle dSP something by MS.

    The biggest difference between the different alpha/beta/gamma/delta releases is the price of the beta (or gamma, or whatever).
  • That's what happens when you speak to ignoramis... ahem, to ignorant people.
    Hee. We should start a movement to conjugate that word as the verb it originally was. "You are such an ignoras. I am no ignoro, you know. We are such a bunch of ignoramus. You guys are such ignoratis."

    Once we've done that, we start adding in mood. "If only he weren't so ignoraretur!" :-)

  • This is a browser. And they say that for it to be called ALPHA it has to last an hour.

    Alpha being the key term. The reason the MTBF isn't thousands of hours yet is because it's Alpha Software. One hour mean uptime is good enough to honestly run it through real world tests and find the bugs.

    The criteria is not 'inadeqate' as the case may be. It's not release software. I'd complain if the MTBF was an hour and it was being called Beta. But it's not. So yes, you are off base =)

  • > That logo is awful. Reminiscent of Soviet Russia or Red China. It's gotta go. It's scaring people away. It's hurtin' the mozilla project.

    I don't really know if it is scaring people away - I think its a brilliant pastiche - a combination of Russian mid-century art styles, bad Japanese sci-fi movies, and modern computer technology. If people are so incredibly dogmatic that they are frightened by a simple logo, maybe they should stand up and say so. The logo is wonderful satire, if you ask me. Satire is often lost on the dogmatic or narrow minded. Just think of what Mozilla really IS, not what the logo reminds you of. If you don't get the joke, its really too bad :-)

    Cheers
    Eric Geyer

  • Bah, I always think of something to add to my own posts right after writing them..

    I pointed out it was a Browser, so it has to munge through reams of horrible markup code, that may or may not conform to spec. It may or may not contain extensions. Browsers are hell to write because they're expected to make a webpage out of pure garbage code. GIGO (Garbage in, Garbage Out) isn't allowed to apply.

  • Ceterum censeo conjugationem non esse ignorandam. (Cato, revised)
  • Don't forget the dual. Greek had a dual, too, besides the singular and the plural. And you can get people really staring at you when you start speaking of ``one criterion, two criterio, three criteria''. (Apologies — I mean, speaking OF ``one criteriou, two criterioin, three criterion''.) That's what happens when you speak to ignoramis... ahem, to ignorant people.

    Oh, and for some of the other posters, the plural of ``alpha'' is... ``alpha'' (and so is the dual, and so in every case).

    ``Græcum est, non legitur'' as they used to say (it is Greek, we don't read it).

  • Thank you for that datum.
  • I sum, I agree with the above definition completely.
    I develop multimedia CBT. Our testing is internal and with SME's (Subject Matter Experts) throughout development.
    At alpha, the product is realively 'ready' and undergoes overall usability and tech testing for a week with internal folks not assigned to the particular project, and with SME's as well at the location of their choice.
    At beta, the program is ready to go 'live' in our opinion, so we give it to a sample of the target audience. We allow 1 week for their review, then 2 weeks to implement changes/fixes they find/suggest (SME's being pretty much the last say on that, unless it's out of scope for the project).
    Once those changes are made, SME reviews final and signs-off, and product is 'gold'
  • You're comparing you anecdotal experience to a statistic calculated from actual observations reported back to Mozilla? Have you no concept of stastics?


  • The desirable MTBF is a function of the cost of the failure relative to the marginal cost of further improvements in reliability. For machine tools, a single failue is very costly involving damage to persons and/or other tools plus downtime for the line. MTBF rates in machine tools could probably be extended further by the use of exotic materials, but wold they be worth the additional costs?

    In end user software, the costs of a single failure are much lower -- the user restarts the software (or in the case of Windows, reboots the PC). An excessive failure rate will cause irritation in the users, so your failure rate has to be low enough so that users don't want to switch to other products. Average MTBF rates in the tens of hours may be acceptable for some end user software (but not for OSes).
  • Yikes! does that mean they're all female, as in "alumnae"?

    hawk, who learned to be careful about greek & latin endings when taking classes from Jesuits who were fluent in both
  • I figured that one deserved at least one funny point . . . er, pointum, no, pointon, awe, nuts. . .
  • An Alpha version should IMNSHO be something similair to a feature freeze. Only when some
    serious functionality seems to be lacking should
    it be added at this state before the software
    goes to Beta stage. Beta is for bugtesting and
    stability testing.

    PvdS.
  • (Where's the grit boy when you need it?)
    Originally, Alpha meant not feature complete, but most features are there, while beta meant feature complete, but still too buggy. And then 1.0 means "There's no bug I swear, really, honestly, it's fucking stable! And BTW ... no liability etc ..."

    --

  • by DarkClown ( 7673 ) on Friday November 26, 1999 @06:22AM (#1502976) Homepage

    1. Quality: Mean Time Between Failures should be at least 1 hour. The MTBF for the M11 release was 1.09 hours according to talkback reports (the "fullcircle" in (LINK) means that build reports crash events via a "talkback" component).

    That seems reasonable and have achieved this with certain builds.

    2. Architecture: Alpha should be "almost architecturally complete". "Almost" is a recognition that there will be some exceptions; it's not an excuse for large design holes.
    "Architecturally complete" means that all public XPIDL interfaces have been reviewed for correctness, completeness and aesthetics; and have then been blessed by mozilla.org.

    Well yeah sure. I wish their interface defaulted to a less color oriented theme. Wish that fonts were more happening and consistent with the other browsers as well.

    3. Acceptance: There's a consensus in the Mozilla community that M12 is usable. Ideally, a majority of M12 users will try to live in Mozilla as their primary browser and mail program, ane restart it when it crashes. We don't want to set an unrealistic goal just yet, but we will measure and poll after M12 is out, in order to decide whether it was in fact "usable".

    Sure.

    Call it alpha! Pitch in, people, the lizard is getting close!
  • It's easy enough to gauge. If you sit someone that's not installed it before in front of a terminal, and if he can get it up & running in five minutes....and keep it running in "average" use for an hour. Then the install script works, the READMEs are there to get it running, and it doesn't crash if you fart at it. That's Alpha.
  • I always assumed Alpha to be your development versions, and the last couple of versions before release are Beta.

    Beta is the stage where you have stopped adding features and are just working on clobbering bugs.
  • by DrCode ( 95839 )
    Typically, an "Alpha" version is feature-complete (as far as the developers know), and is ready to be used in non-critical ways within the company where it was developed. Features can still be added during Alpha testing, but only if several of the testers and developers agree that they are really necessary. It's okay if there are bugs and crashes, as long as the product is mostly useable.

    I'd say the last Mozilla release was pretty much there.
  • by / ( 33804 ) on Friday November 26, 1999 @06:24AM (#1502980)
    It'll have developed large areas of silver hair on its back, amass several females in a personal harem, and keep the others in line with displays of violence and aggression, sometimes ritual and sometimes real.

    Oh, I'm sorry. I thought the question was about what happens when Mozilla becomes an alpha male [expectation.com].
  • Bugs....lots of bugs....and bugs that aren't bugs because their features. And no documention, and any documention is written by a coder and not a writer so it's hard to understand, and no ease of use...alpha is alpha, alpha = larva...


    I'll get flammed for this..but....does that mean Linux is an alpha ;-) ( IT'S A JOKE FOR CHRISSAKES!!!! )


  • This is the way my shop does alpha/beta conditions.

    First, you have pre alpha state of software. Pre alpha testing include basic system stability, individual feature testing, and system testing, where each feature, as well as the whole system, are put through basic tests that would be considered "normal operating conditions".

    After this testing is passed, alpha state is declared.

    Then beta testing involves major tests that test the limits of the system; a lot of non-standard situations that the software should not have to encounter (but will, for any number of reasons).

    If beta level is reached, then we released the software to our clients; and the rest of the bugs that slipped through the cracks are patched.

    This clear?
  • Alpha: al'fa adjetive 1.The state of a product that is good enough to serve it's intended purpose, but still has enough defects that it would not be considered production quality.

    --I think M12 would fit under this if they worked out enough bugs to make it preform at almost a production level. A.K.A. it can't crash very often for simple tasks, and the user interface has to be acceptable. If you build it they will come.
  • Well yeah sure. I wish their interface defaulted to a less color oriented theme. Wish that fonts were more happening and consistent with the other browsers as well.
    It's important to note that the XPIDL interfaces to which Brendan refers are programming interfaces, not the user interface.
  • There's a difference here. MTBF for machine tools (and hard drives and so forth) means mean time before crash and burn failure. That is, the tool dies (pun intended :-), often taking a lot of other equipment and possibly even some people with it. A software MTBF means the time before you have to restart it. Not a big deal.

    That said, I think we're becoming much too accustomed to improperly debugged and unstable software.
  • From the Mozillazine article: [mozillazine.org] 1. Quality: Mean Time Between Failures should be at least 1 hour. The MTBF for the M11 release was 1.09 hours according to talkback reports (the "fullcircle" in (LINK) means that build reports crash events via a "talkback" component).

    Wha?!?!?! an hour?! . .

    Now please allow me to preface my comments with where my point of view comes from. I work in the machine tool industry, where MTBF is measured in thousands of hours.

    Am I just off base? or is this criteria horibly inatiquit. Even for an Alpha.

  • Comment removed based on user account deletion
  • Yes, but we aren't speeking [sic] Greek, we are speaking English.
    You're completely correct. Were it otherwise, one would have had to consider proper case inflections as well. Fortunately, English doesn't do that for nouns (genitives aside). :-)
    Importing plurals along with loan words is a stupid anomaly.
    Indeed, but that observation doesn't change how it works. You don't see that happening much in other widely-spoken European languages, where the normal approach is to convert to local conventions. But in English, this varies depending on the degree of assimilation. Occasionally competing forms even co-exist side by side, sometimes having different meanings, as in indexes of books but indices of an array.

    That criterion and phenomenon, or bacterium and millennium, shall someday undergo more complete assimilation is far more likely a question of "when" than it is of "whether". As this occurs, strange corruptions like double plurals sometimes arise and occasionally persist, such as the "these bacteriae" example I read and recoiled from the other day. What's next, "millennias"? :-(

    All you really have to go on is your ear, but checking the OED never hurt anybody. :-) And at this time, "criteria is" seems just jolting an error in numeric concordance as "pathos are". Yes, Greek sucks in its complexity. And English is annoying in its unpredictable assimilation strategies. But you really aren't going to change either. That's just how it is.

    To make this posting useful and geek-relevant, you might check out Perl's Lingua::EN::In flect [cpan.org] module. It's filled with boatloads of examples of these.

    ObFunny: How many Germen [sic] does it take to change a language? :-)

  • Alpha = feature freeze. All planned features are in and working as advertised for typical use.

    Beta = code freeze. All planned features are working for typical and atypical use, as far as testing can determine. Testing has run coverage tests, and can't find any crashes or surprises. A cautious release could be made, with a "we think it's good, but what do we know about you crazy people" label firmly attached.

    Release = No show stopper bug reports have come in in several days or weeks. All other bugs are trivial or border cases, though if time and market permits, you'd like to nail them too.

    Stable = It's been in production use for 2 times the typical use time* and no one has complained.

    *Typical use time varies as the the product. For a game like Quake, I'd say this is at least two nights of serious muliplayer gaming, plus a couple of weeks for people to do a full feature discovery. For something like Linux kernel, it's several months of production use. For a CAD/CAM program, it's a few real projects from start to completion.
  • no...i don't think documentation is vital to an alpha release, i think as long as the program is in place AND of course "doesn't crash if you fart at it" that constitutes a good Alpha product

  • As such, Mozilla is Alpha Level software right now. I think that Mozilla should STAY at the Alpha level as long as possible because that is where the software develops rapidly like a baby in the womb. After the features freeze, so to speak, then the final testing phase (Beta) should begin. Iron out all the little bugs and make it stable as can be. Then release it to a grateful world.

    The worst thing that could be done is to release a premature and buggy product - that would kill it surer than if Microsoft bought AOL.
  • and why should they not release deltas? (or is it that by the time you reach delta, you should just be releasing a newer version? which, in one sense, would be delta.)

    this is a silly post, so moderate it down if you feel the urge.

    thanks
  • The reason they shouldn't release deltas is that it's the next letter after gamma, which comes after beta, which comes after alpha. By the time you hit delta, users of begging for production releases. They call you up and say "WHERE IS OUR SOFTWARE?" I don't think they like hearing that you're within epsilon of shipping, either. :-)
    1. For a project on the scale of Mozilla, can we realistically expect non-core developers to be useful in "early" stages?
    2. Is the previous question just a fancy way of asking: What does "plausible promise" really mean in context of various projects?
    3. How many open source developers really have the skill sets required to participate in Mozilla (a large OO design and implementation project) in the early stages? ... which in turn begs another important question:
    4. what are the "skill and competence" demographics of open source developers?
    5. What are all of the project characteristics (stage of development, project scale, community perception of project, community perception of core developer(s), PR, licensing, etc.) that affect the success of drawing in qualified developers to the project?
    Dude, a bit sleepy to reply to each point above, but... OK, I never could resist a test:
    1. Only in the terms of requirements gathering and suggestions for code style (see yourself as the customer *and* sustaining-developer).
    2. Yes, although IMHO, bugginess and plausible promise are semantically divergent enough to be considered two criteria.
    3. see next
    4. Either I am utterly idealistic here, or just seeing things differently. I think that we experience a network effect in OSS for both debugging and distribution of workload. The critical key in any OSS project is the synergy brought on to the team, which is entirely key on the project management. Thus the implicit independency from godlike coders, and a premium on communications skills like feedback, comments, etc.
    5. Need more data...[this questions sounds very much like MBA material]
    P.S. Your homework is to find all of the Ph.D.'s you can in the above, and convince competent grads in the appropriate fields to write them. 8-) Neved did homework. Just aced the tests and set the curve for the finals.
  • personally, i think that 1 hour is not enough.

    Netscape 4.x works for an hour at least on my box normally... and most of the time only crashes when i close one of the windows.

    I'd like to see at least 3 or 4 hours uptime before a crash - even in an alpha. For me, stability is a pretty big thing. I think that 2 hours should be minimum for an alpha. 2 for an alpha, 10 for a beta, and at least 24 for a release. That makes sense to me. The final release should be able to take the longest period of use that any geek can throw at it, which is probably about 24 hours. hehe. Personally, I'd like to see it as stable as the kernel with an uptime of 400 days... but am I being fair?

    Another feature that'd be neat to see from a netscape kinda product is fault tollerance. IE will display even garbled HTML fairly right... whereas netscape will half the time decide not to display it at all (esp with frames) I know its nice to have the browser tell u where u screwed up, so maybe it should be a fault tollerance level switch or something? Some kinda syntax checker dialog? That'd be good for developers and for users. A user doesnt want to care if someone didnt type his html right, so fault tollerance would be good for them :)
  • Speaking of Greek, traditionally "alpha" was the designation applied to something that's little past the prototype stage, and sometimes, is nothing more than that. It doesn't refer to the propensity for bugginess, but rather to whether the interface is decided or not. And in the case of alpha, it's not. The interface can change completely in later stages. Parts may be missing. Parts may be added.

    From TNHD:

    More formally, to beta-test is to test a pre-release (potentially unreliable) version of a piece of software by making it available to selected (or self-selected) customers and users. This term derives from early 1960s terminology
    for product cycle checkpoints, first used at IBM but later standard throughout the industry. `Alpha Test' was the unit, module, or component test phase; `Beta Test' was initial system test. These themselves came from earlier A- and B-tests for
    hardware. The A-test was a feasibility and manufacturability evaluation done before any commitment to design and development. The B-test was a demonstration that the engineering model functioned as specified. The C-test (corresponding to today's beta) was the B-test performed on early samples of the production design, and the D test was the C test repeated after the model had been
    in production a while.


    Personally, even before I read this, I went with the definition described by the B-Test. For me, this means the first version of the software that functions according to the original specifications...or the first version that is basically functional. Its hard to say where to draw the line with the Bazaar-style of development, since this line could be drawn at many points in the development process.

    In my experience, where this line is drawn is often more political than technical, especially if money is involved.

  • I'd say it still applies for each step of the process -- alpha and beta are just ways of describing the evolution of each release of the product, development tree or stable tree.

    Alpha: The developers think it's done, more or less.

    Beta: The testers think it's done, more or less..

    1.0: The users think it's done... more or less..

    1.8.3g: It's done. Time to start on the 2.0 release. :).

  • It seems that Alpha/Beta/release notation means the same thing as the stable/unstable as in the linux kernel.

    It's just a different way of labeling them, perhaps simpler than the odd/even number that sometimes confuses newbies.
  • No way!
    I tested mozilla for a while and in the later versions (before and after M11) I could break it within 30 minutes. (Sometimes it segfaulted in less than 10)

  • > 1.For a project on the scale of Mozilla, can we realistically expect non-core developers to be useful in "early" stages?

    The problem, IMHO, is not so much the size itself... it's rather modularity of the system. Most OSS project are either small-scale or have been designed from the beginning to be very modular, with *very* small module scale and limited module interaction. This means plugin/component architecture from the very start, and constrained interface complexity (i.e. it's predecided that components use VERY simple protocols to talk to each other).

    Mozilla, currently, seems to have moved in this direction - it uses XPCOM and has IDL interfaces to all its internals. Unfortunately, it wasn't this way all the time, and the original monolythic Netscape sources were not merely daunting, as Mozilla's are, but nearly unworkable for the outsiders.

    After the rewrite of the entire system, things cleared up a lot - Mozilla's internals are pretty close to Mnemonic's (the OSS browser designed for modularity). Unfortunately at this point (early 1999) the browser fell long behind schedule and so rumors of its early demise became prominent. Lately, however, there's been a noticable influx of the external developers to the effort - precisely because it's beginning to look managable.

    --
  • Alpha means FAST, STABLE, and *HOT*. (oops, wrong Alpha)

    The definition of Alpha varies largely based on the problems facing the project. Some projects are very stable (even in development), but have large architectural holes. They may do an Alpha release that has some pieces missing and request ideas for additions.

    Mozilla is quite the opposite. While some functionality has yet to be implemented, my opinion is that the focus has been too much on features and too little on stability. You *won't* get all the bugs out of a program if you wait until the last minute to pack them out. That said, I think Mozilla really needs to do a two milestone FEATURE FREEZE, work out hoardes of bugs as quickly as possible, and then release an Alpha version. Sure, there'll be some elements missing - fix those while people are poking at the first Alpha. Then release a second Alpha integrating the stability fixes and the final features.

    Finally use the data out of that to move on to beta...

    I think the Mozilla project has a long arduous bug war ahead of them that has been sub-consciensly avoided for far too long (though M12 is a *step* in the right direction - esp for Windows and Mac).

    LOSE THE NON-GTK MENUS ALREADY - THEY SLOW THE UNIX VERSION DOWN AND MAKE IT CRASH!

    -nullity-
  • Firstly, alpha and beta are just arbitrary labels for stages in the dev cycle, and can only be labelled with some confidence after the project is complete, when their purpose (as a measure of how close you are to your goal) is no longer necessary.

    In commercial software dev, you only have 3 variables to play with - time, quality and money - and changing any one of them changes the other 2, meaning that the feature-set of the final software is often fluid until shortly before shipping. And so, as well as being arbitrary the labels cover a blurry time/feature-set.

    Which means that the alpha and beta definitions should be defined in a way that is useful to your project and set of circumstances. In my projects I use the entirely arbitrary, blurry, grey defintion that an alpha is one quarter of what I think will be the final product (chiefly driven by amount of time that the money variable can sustain) and a beta is three quarters.

    Typically I'll declare something alpha when it is still feature incomplete but the main elements of UI are there, the key features have some (incomplete) implementation. But the implementation as it stands is reasonably stable - i.e it can be used, but don't trust it.

    By the time I declare beta 1 I expect to be three quarters through development time, I expect the UI to be near-complete, functionality to be at least three quarters finished (but typically I expect it to be 95%). (Remember that time and functionality definitions are fluid though, because of the 3 variables.)

    I expect usually to go to a beta 2 and sometimes beta 3. Beta 1 is usually for internal use. Beta 2 can go to trusted customers. Beta 2 has a frozen UI. Beta 3 is for general preview - often used as a marketing tool.

    I know I have reached ship-stage when the software contains no known bugs that cause data loss. It will contain some known low-priority bugs.

  • A release candidate is when all the code is finished and all known bugs are gone. It's another round in the testing cycle to catch a few minor bugs that probably appear on only a few configurations. A release candidate may become the finished product if no fixable bugs are found (which is why it's called a release candidate).

    But for Microsoft products, release candidate == pre-alpha. :-)
  • I've long noticed people have not had a clear deffinition of alpha/beta/gama testing...
    It's all based on what you call a beta. Alpha is "the stage before" beta.

    Microsoft has no alpha they go directly into beta.. at least from what I have seen. They break down the beta into stages but they call it all beta posably for market reasons. It dosn't mean they don't do critical stages of testing mearly they call all the stages "beta". In some ways Microsoft earns some ridicule for saying "it's only a beta" when a Microsoft beta dose something a beta shouldn't do.

    But what IS a beta?
    One online game defines a beta as a basicly stable product that needs some premarket testing to get at the hidden bugs.
    A gama test is a "specal" quality test that is really not needed but when done insures a higher quality not usually found in powerful software products.
    A gama is a test of a "production" or "releace" quality product just to find those really annoying hidden bugs.

    I like that deffinition...
    This leaves Alpha as the first stage tests. Unstable and posably unusuable but the hope is a product enters an alpha test phase as a stable usable product. The Alpha isn't just a proving test like Gama it's to hunt down why it isn't all it is in the lab.
    Alpha is also a test to see what is missing. It's great on Linux FVWM but Linux KDE has web browser enhancement features it could take advanatge of.. thats the kind of thing that can show up in a gama test as well but Alphas a good place to bring that out.

    Thats how I define a beta but I know others don't and I live with that.....
  • Well, their phrasing is wrong even if you discount their error in forming plurals. Since they have a set of criteria, not just one criterion, "a criteria" is incorrect any way you look at it. "A criterion," while grammatically correct, would still be wrong, unless they really only have one criterion. Correct ways of phrasing it would include "some criteria" or "a set of criteria."
  • hmm, well i don't speak ancient Greek, but modern Greek has no dual number for verbs. There's just a singular and a plural number.
  • I know. The dual was already slowly disappearing during the classical period. Its use was never compulsory. In even older languages, such as classical sanskrit (which is closer to the fabled ``proto-indo-european''), use of the dual is required, and the plural starts at three.
  • I've always taken it to mean that an Alpha is the first version that does 95% of what it has to do and is stable enough to send to an internal tester without a programmer standing behind them telling them not to click on certain things.

    And a beta would be when it's stable enough to send out for user comments, not be necessarily stable enough for them to consider using regularly.

    I'd call Mozilla a late Alpha, or early Beta now.

    The terms have gotten twisted in the last few years, mainly in my opinion, by Microsoft. MS has had OSes at a nearly-ready stage for years, and uses Beta to mean, it's done, but if it crashes, that's cause it was a Beta.

    To me, a beta is something you don't run on anything mission critical. I wouldn't use a truly Beta OS on even my PC.

    So, I think Mozilla is in Beta now, or would be if the terms hadn't changed to justify clumsy bloatware.
  • The first thing everyone really want, IS A STABLE WEB BROWSER... NOW. News, mail, instant messenger can wait. And why that's stupid chrome (theme) thing, a pure gtk+ web browser, without theme will be enough. Gtk+ include a perfect theme engine. Communicator consume so much memory, and with all its memory leak, sometimes, for me, it eat more than 100mb of ram, learn from your errors. A lite, pure gtk+, stable web browser please! After that, more developper will be interested to contribute and add mail, news, irc, etc.
  • Here's my view on the various development phases:

    • Pre-alpha: Partial features. Still under serious development.
    • Alpha: All major features work most of the time. May be missing some chunks, and/or may not work under some circumstances. May not cooperate nicely with other programs. Beware memory leaks, non-standard configurations, etc.
    • Beta: All major and most minor features work. Some bugs under particular configurations. Some "we don't know why" bugs still being ironed out. Developers are looking for configurations / situations where stuff blows up.
    • Release: All features work, except perhaps in uncommon configurations. Bugs (hopefully) are minor.

    This, of course, is in an ideal world :-)


    ==================================
    neophase

  • by Tom Christiansen ( 54829 ) <tchrist@perl.com> on Friday November 26, 1999 @06:31AM (#1503019) Homepage
    With M12 coming up, they are getting close to that stage, and have setup a criteria they think works. I don't know what "a criteria" might mean. I imagine that's either "one criterion" or "several criteria". Greek is funny that way.

    Speaking of Greek, traditionally "alpha" was the designation applied to something that's little past the prototype stage, and sometimes, is nothing more than that. It doesn't refer to the propensity for bugginess, but rather to whether the interface is decided or not. And in the case of alpha, it's not. The interface can change completely in later stages. Parts may be missing. Parts may be added.

    In beta, on the other hand, we're done with that. Beta is the stage after which functional changes are forbidden. You can't change the interface in the jump to production. Everything must behave as documented to behave. All you can do is fix bugs. No new features. No change in calling conventions.

    I have actually seen "gamma" releases, too. This seems to mean "We hope to God this is production calibre."

    After beta--or rarely, after gamma--comes production. Never issue deltas, except in the form of a patch. :-)

  • I always assumed Alpha to be your development versions, and the last couple of versions before release are Beta. Beta is the stage where you have stopped adding features and are just working on clobbering bugs.

    Alpha version is something that will crash, Beta version is something that may crash, Release version is something that shouldn't crash.

    Al.
    --
  • Alpha=Fully Featured with few critical bugs
  • > Now please allow me to preface my comments with where my point of view comes from. I work in the machine tool industry, where MTBF is measured in thousands of hours.

    > Am I just off base? or is this criteria horibly inatiquit. Even for an Alpha.


    Hey, if it worked for an hour straight, Microsoft would release it! ;-P

  • I was just rereading ESR's "The Cathedral and the Bazaar" [tuxedo.org] the other day, and after seeing this, one of the phrases in his article came to mind:

    When you start community-building, what you need to be able to present is a plausible promise. Your program doesn't have to work particularly well. It can be crude, buggy, incomplete, and poorly documented. What it must not fail to do is (a) run, and (b) convince potential co-developers that it can be evolved into something really neat in the foreseeable future.

    Question: Does this mean that projects going open-source should be Alpha stage before recruitment begins? If not, then what stage would you call it when your project is ready for open-source?

    Disclaimer: I am a /. newbie, so point me in the right direction if this question has already been asked...

  • Sounds like a culture clash. Remember, these are the people who brought us Netscape 4.0. They're probably quite impressed with themselves for being able to go a whole hour without failing...

    =)
  • Alpha:
    - all requested features implemented
    - there are known bugs preventing operation in 10% of cases

    Beta:
    - no known bugs
    - code not rock-solid
    - should operate in 99% of cases

    Release:
    - Rock solid, bugs apear only in special cases not though of during development
  • .. something that compiles :)

    beta = something which is somewhat functional and can be used fi you dont mind the odd crash or misfeature..

    smash
  • Can you elaborate a little on how I will be able to "use the engine" for my own browser. Is this something like an API or libraries that I can call from a c program? I'm just a little fuzzy here.
  • I'm already getting 3-4 hours of uptime at a stretch with the Win32 version. That's about as well as MSIE5 does on the same systems (Win95 and WinNT) -- maybe better.

    Zontar The Mindless,

  • Stay in alpha as long as possible?

    I'm afraid that you'll have to justify that claim to me a bit. As I see it, early releases grab attention, buggy or not.

    This may be the psychological irony: tiny frustrations and aggravations, coupled with the promises of better things to come, *engage* the consumer with the product in a way that promotes it. A seamless, flawless experience is - dare I say it? - forgetable. If you make it look too easy, people will think that it is.

    Aside from the obvious example (Microsoft), I can think of a couple other products that fit this pattern, including Gnome.

    Now, I definitely don't think this is a good thing (I don't believe that humans are essentially rational, and the people who act on that basis - i.e., the advertising and marketing industries - seem to be thriving quite nicely), and I would like to be proven wrong. Can you name any historical product releases that showed how patient attention to detail is rewarded in the mass market?
  • > No, I'd say an hour is fairly acceptable for an alpha version. That would already be an improvement over Netscape 4.x.

    Actually, I run Netscape 4.x on Linux for literaly days at a time. Mem footprint grows and grows, so I restart it if it sucks up too many resources. But it doesn't often crash and burn.

    4.x is 'fairly adequate'. :)

    ebw
  • Yea, an hour is pretty acceptable for an alpha version, its better than some other final versions of software. However i dont think that the MTBF is such a fairly good way to decide between alpha, beta, and final. Mozilla is still HORRIBLY slow, even slower than IE. I dont use IE because its too slow and it crashes too much, but how can we expect to beable to release a product to the world when its slower than molasses (sp?)? I think that instead of concentrating on interplatform operability and standards compliance (both good things, dont get me wrong) we should be focusing on making a lean, slick, fast open source browser that will spit dust in the face of the competition. When we reach that state *then* focus more on standards compliance.

    Just my two cents.

  • ... such as the "these bacteriae" example I read and recoiled from the other day.

    Well, sure. Bacteriae are multiple groups of single-celled organisms. And bacteriaes are when you have more than one of these collections of groups.

    :)

  • Actually it is not necessary for *all* bugs to be fixed for Release. IF there are some bugs that will not affect 99.9% of users and they are really hard to fix (i.e. major modifications)they might just be left alone. You can never fix all bugs
  • Cmon. This is criterea for an alpha version.. lighten up. It'll get more stable later. sheesh.
  • On the issue of punk-ass posers trying to act like Alpha males [albore2000.com] ,I thought ya'll might like to see this photo I made for AlBore2000.com [albore2000.com]
  • Isn't the whole alpha/beta/gamma thing kind of irrelevant when you're talking about open source software, anyhow? Open source software, by its nature, is always under development, and is always in the cycle of feature addition/bug fixing/etc.

    Seems to me that the Linux model of devel tree and stable tree is much more appropriate. When Mozilla is ready to start a stable branch (and it's getting fairly close), then I think that's what they should do.

    Leave the "alphas" and "betas" to the Netscape Communicator crew.


    Interested in XFMail? New XFMail home page [slappy.org].

Genius is ten percent inspiration and fifty percent capital gains.

Working...