There's been exciting news floating around the blogosphere today of a "working" beta of CyanogenMod 7 for the Galaxy Tab being released. Just one caveat - it isn't really CyanogenMod 7.
Before I go onward with this rant, I want to make it crystal clear that I have nothing personally against the developer who ported CyanogenMod 7 to the Galaxy Tab, people like him (or her, of course) are part of the reason I love Android. But they're also part of the reason I have become increasingly frustrated with the custom ROM community's professionalism and ethical standards at large. Let me explain.
Identity Crisis
In the beginning, there was Android - an open source, easily accessible operating system available to the masses. Then, there were inevitably community-sourced custom builds of Android. From this genesis, CyanogenMod, Fresh (well, from Sense, too), and other wonderful ROMs emerged. Well-known mods like these are run by teams of developers and programmers who take pride in their software as a representation of their hard work and professional reputation.
So what happens when someone decides to take that software and repurpose it for a device it wasn't intended to run on? Bugs. Missing features. Crashes. Bricks. Not always, of course - some off-label versions of CM7 in the wild work mostly fine (as one of our own writers can attest to), but more often than not, these ports can be a bumpy ride.
When you call something "CyanogenMod 7 Beta for Galaxy Tab," I immediately have one question: Did the CM team actually do this port? No? Then it's not CyanogenMod 7 for anything - it's repurposed open source software put out without the support of the original developers. I don't care how it looks, what the build number is, or who the kernel author might be - it's not CyanogenMod 7.
I won't put words in the CM team's mouth, and I don't know their official positions on these very unofficial ports - but I can't imagine they jump for joy when a clearly unfinished and buggy ROM with their name attached to it lands on the XDA forums. Considering the extreme stability of the "pre-Alpha" nightly CM7 builds I use on my Nexus One, this Galaxy Tab port's arbitrary use of the word "Beta" is irresponsible and misleading. If anything, it's a beta of an alpha.
Unsupported Means Unsupported
What happens when an inexperienced user downloads this and ends up bricking his $600 tablet because he flashed the ROM incorrectly? You think he's ever going to use a piece of CyanogenMod software again? Probably not, even though the CM team is clearly not at fault. When he asks on their support forums for help only to find he's one of fifty people aside from the developer actually using this ROM, do you think he's going to get quick and easy answers? I don't mean to sound patronizing with the rhetorical questions, but these are legitimate concerns.
The first-blush response of many supporters of ROMs like this is "So what? You don't want it, don't use it." For those of us that know our way around XDA and Android's recovery menus, this is true. It's the people who aren't familiar with these things that get the short end of the stick. When some Galaxy Tab owner ends up bricking his device because he didn't follow the instructions explicitly, the community's helpful (though maybe futile) responses will be intermingled with pop-shots from the peanut gallery of "learn to read." The ROM community expects a level of expertise and knowledge that far exceeds that of the average user, even if they are usually quite helpful.
Better yet, if this person can't even find a place to get support after downloading the ROM from some blog's hyperlink, or attempts to fix the device simply fail, who does he fall back on? Manufacturer support? Do you think Samsung's going to send back that re-flashed Tab before it gets a credit card number? How do you think this makes Samsung feel about the custom ROM community? There's a reason manufacturers are concerned about locking down bootloaders and recovery images - nobody wants an angry customer, even if that anger is misdirected.
Reputations Aren't Open Source
This is of course the worst-case scenario. But think about it from even the standpoint of missing features and bugs. If you designed and built an engine for a particular group of cars, you'd probably take pride in that creation. Let's say you're generous and decide to make the basic schematics public, even though you specifically alter the design for those models of cars you mean it to go in. You want people to take an interest in your work, and you want to work with other professionals to make it better and broaden its applications.
Someone downloads your schematic and builds your engine and sticks it in a huge truck, mounted at an odd angle so it'll fit. The truck now has so much horsepower that the wheels always spin from a stop, the gas mileage is abysmal, it's even more nose-heavy, the A/C doesn't work, and the brakes don't stop it as quickly. You're OK with this - until you see this guy has put your name all over it, with maybe a passing implication that you didn't build it, and is distributing it on the pretext that it's your design.
When someone calls you up and tells you your engines are terrible and ruined their truck, only to find out you didn't actually build the engine in question or approve it for that purpose, are you going to be very happy with the guy that built it? How do you think your reputation would be affected? Should the guy who built have thought twice before making his version of it available to the public without extensive testing?
For many, these are questions of personal philosophy, ethics, and experience. Some may say it's just part of open source, and that bad software doesn't get used and dies off, while experimentation benefits everyone because good changes find their way into the project's source code.
That's great in theory, but the average person couldn't care less about experimentation or the larger scheme of things - they want something that works, and often it's the reputation behind the name on the ROM that they're looking at. The average user doesn't know or want to know about the difference between alpha, beta, or nightly - when they read "CyanogenMod for X," all they're concerned with is finding the link to the ZIP file and the instructions.
Regardless of the "flash at your own risk" disclaimers, when someone sees CyanogenMod attached to a ROM's title, they expect the stability and polish that CyanogenMod is known for to come with that software - not someone's incomplete, homebrewed technical exercise. I'm not saying don't make them, I'm saying stop calling them something they aren't, and community members, maybe take note: ROM developers like Geek For Me and Cyanogen don't publicly release any compiled build until it's suitable for everyday use.