inessential by Brent Simmons

On My Funny Ideas About What Beta Means

John Gruber has mentioned, on The Talk Show, that I’ve got some weird ideas about what beta means.

Here are my definitions:

development (d): everything is in progress and the app might be completely unusable.

alpha (a): the app is feature-complete and has no known bugs — but, importantly, it’s had very little testing.

beta (b): the app is feature-complete, has no known bugs, and has been tested — but further testing is still warranted. Every beta is a release candidate.

These are defined in a NetNewsWire Technote. It’s important to have definitions that everybody working on or testing the app understands.

But why these rather strict definitions?

It’s part of our commitment to quality. What matters is the end result — the shipping app — and these definitions make sure we don’t get to beta, or even alpha, with the app up on the table with wires sticking out and pieces missing.

This gives us a big space between development and shipping, and that space is all about making sure the bugs are all fixed.

This is a matter of ethics and pride in our work. Absolutely.

But it’s also pragmatic. This is an open source app, written by volunteers in their spare time, and having this rhythm baked-in to the process helps make sure we can uphold our standards even without full-time developers, managers, and testers.

* * *

And… it bugs me how little real attention our industry pays to quality these days. In some cases the consequences are disastrous; in other cases they’re merely expensive. It doesn’t have to be this way.

If it seems like I’m going too far with my definitions, well, I’m trying to bend the stick here.