Apple's Mac OS X v.10.4 -- or Tiger, as we affectionately call it -- has been out for a few months now. I've been testing the Hell out of it, and I, like so many others, have found a plethora of bugs and minor issues with the new OS. My attempts to solve these problems often land me on a number of The Usual Websites, not the least of which is Apple's own discussion forums. One of the most frequent complaints I hear on these sites is that Apple's initial release of any given OS is a beta version, and that we in the Mac community are all just beta testers for Apple. So, is this true?
I'd say the short answer is yes. I don't think this is entirely a bad thing, however, but I do have some problems with it.
When the latest, greatest version of just about anything -- a cell phone, a computer, a hard drive, what have you -- comes out, there are bound to be some little problems here and there. Operating systems are certainly no exception. In fact, because new operating systems are expected to do so many things and support such a wide variety of activities, as well as be innovative and better under-the-hood, as it were, they are perhaps the products most prone to these initial glitches. I would argue that the only way to properly test such a product is, ultimately, in the field, i.e. release the software to the general public for final bug testing, compile a list of complaints, and then fix those issues, in order of priority, with point releases. Indeed, this is what Apple does. It's also what Microsoft, Adobe, Macromedia, and everyone else does. There's simply no way for Apple to test the immense array of possible problems that even the most basic user is apt to encounter. The range of hardware and software combinations is simply too great. Sure, these bugs make me cranky from time to time. But I'd say, for the most part, Apple's quality control is pretty decent when it comes to OS releases, and their update system is pretty efficient as well. Overall, I'm fairly happy with the way Apple handles their OS releases.
There is one area in which, however, I feel Apple drops the ball. This is in the realm of the server OS. Since OS X arrived, Apple has been capable of producing simply amazing server operating systems that perform astounding feats and that work beautifully with their client counterparts. Mac OS X Server has made a quantum leap from the AppleShare Server days. Its Open Source UNIX underpinnings have everything to do with this leap. It has been truly amazing to be a part of. Unfortunately, Apple all too often wants to treat the server community the same way they treat the desktop user -- as beta tester. So when they release a new desktop operating system, the server version is released very shortly thereafter, and suffers many of the same -- or at least the same number -- of bugs and glitches. This is so not cool.
A server admin should not be, nor have to be, a beta tester, ever, and for a number of reasons.
First of all, server software is inherently production software. It has to work. If your server breaks, you're dead in the water. Typically, the first three point-versions of Mac OS X Server have problems so big that I can't use them in production. And building a server is a much bigger, much more delicate task than building a desktop machine, so if it's screwy, I'm out a lot more time and effort building a product that's unuseable to me. Because one little problem on a client is no big deal, but one little problem on a server can be a deal breaker. Because of these issues, Apple should test the Hell out of their server software. Permissions problems on a client can be worked around. Permissions problems on a server (documented in Apple's Knowledge Base) are simply unacceptable.
Second of all, quality control testing of server configurations is much easier than testing client configurations: Server software runs on far fewer hardware configurations, and typically has much less software installed. There are only a handful of computers that any reasonable admin would run OS X Server on, and usually no productivity software gets installed on those systems at all. On my server, there are almost no third-party apps installed. So what's so hard about this? Install your own software on your own hardware and test it against your own clients. Done.
Lastly, server software is almost four times more expensive than the client version. Making someone pay $499 for software that just doesn't work and does not include support is unacceptable and I truly resent it. I think it shows a huge level of contempt for the admin/server market. $129? Fine. $499? Fuck that shit.
The problems inherent in desktop OS quality control are almost completely absent from server OS quality control. And servers are difficult to build and maintain, and are mission critical. Yet, from what I can tell, Apple treats them the same: same bugs, same number of problems, same point-version release schedule. Same beta bullshit. Personally, I wouldn't mind waiting a bit longer for server software that worked out of the box. I mean, I always end up having to wait for a useable version anyway. And on the desktop, that's understandable and fine. But on the server level, it's just not.
I really like the Red Hat Linux model for OS distribution. Red Hat releases both free and paid software. Red Hat Linux is the paid version, and it comes in numerous configurations, each available for a different price. Red Hat is always a version or two behind the current build of Linux, though. Know why? Because the previous builds are the stable ones. That's right, Red Hat's paid product is the older, but stable OS. If you want the latest, greatest build, you can get it under the Fedora moniker. It's not guranteed to be stable, and comes with no support, but it's 100% free. And, I believe, all the userland beta testing that's done in Fedora makes it into subsequent Red Hat releases.
This is a great model. Unfortunately, Apple being a corporation with trade secrets and a bottom line, it's one they can't really use. But I think they could borrow one element of the Red Hat scheme: When Apple releases a new server OS, they should make sure it's stable, even if it means making the customer wait a bit longer, or providing a build that's slightly older.