Cem Kaner has written an excellent manifesto outlining a software bill of rights. I can’t get over how good an idea this is, and I’m surprised I haven’t seen anything like this before.
I don’t know that I would want this legislated (we have plenty of laws on the books as it is, thank you very much) but a consumer led group could force the hand of software vendors. I could imagine a strike team descending on CompUSA and putting stickers on the shrinkwrap boxes explaining which rights the software infringed on.
1. Let the customer see the contract before the sale.
A software license is a contract, and I’m constantly amazed that that companies ask people to agree to licenses that they’ve never seen. “By opening this package, you agree to the terms you haven’t read, and may very well conflict with your local, state or national laws; your personal ethics and or your religion. Enjoy our software!” These contracts are hardly negotiated in good faith, so I suspect that most of it is unenforceable. Unfortunately few have the money to become an EULA test case, which is why EULAs continue to prescribe totalitarian terms.
2. Disclose known defects.
Ford and Firestone showed just how important defect disclosure is. With software literally meaning the difference between life and death, how can we not require companies to be honest with their customers?
3. The product (or information service) must live up to the manufacturer’s and seller’s claims.
I would assume false-advertising laws would cover this, although I can’t remember ever hearing someone prosecuted for this in any industry.
4. User has right to see and approve all transfers of information from her computer.
I love the idea of having an easy-to-read (i.e. not a tcpdump log) list of just what information my computer sent over the network. This could be terribly complex to do right though – would the OS provide a centralized logging service? What level of information would you provide? I don’t want to have to see every HTTP transaction my web browser does, and I certainly don’t want my credit card information sitting around on my hard drive. On the other hand, companies like Gator thrive by obfuscation and abstraction and would be able to adapt to this fairly easily while still being spyware scum.
5. A software vendor may not block customer from accessing his own data without court approval.
Damn straight. I would take this one further and say that a software vendor must provide the file format for any file they create that holds customer information. If a company is doing something terribly innovative in their file format that they need to keep it secret, they should be getting a patent. The reason most companies don’t share is to keep their customers from using competitor’s products.
6. A software vendor may not prematurely terminate a license without court approval.
If an EULA is a contract for a license to use software, doesn’t that contract force the software vendor to allow you to use your software for the period of time that it’s valid? Of course that would assume a fair contract instead of a one sided CYA license.
7. Mass-market customers may criticize products, publish benchmark study results, and make fair use of a product.
This should seem like common sense, but many licenses have terms that require the publisher to authorize any review of the software. I wish I could require people to ask my permission to talk shit about me.
8. The user may reverse engineer the software.
The analogy I always liked was “would you buy a car that had the hood welded shut?” This is especially poignant if you own a metaphorical taxi company.
9. Mass-market software should be transferrable.
The right of first sale is long documented tradition with copyrighted materials of all media, why should software be different? When I’m done using a piece of software, why shouldn’t I be able to sell it on eBay?
10. When software is embedded in a product, the law governing the product should govern the software.
I’ve heard talk Cisco trying to limit the 2nd hand market of their routers by claiming that IOS isn’t transferrable. If the hardware is resellable, why shouldn’t the software?
These mostly seem like common sense, but it’s nice to see them all gathered together. So what’s the next step? Write your congress-critter? Organize protests? Make sure that your open source program conforms (especially of note are 2 and 4)? Pontificate online about it until something shiny steals your attention?