Mike Olson and I shared the stage at OSCON recently, talking about whether all software should be open source. I was planning to post about this, since I didn't feel that I had explained my position well on stage (having both Mike and Tim against me didn't help.) But Mike apparently also felt that he had more to say, and has blogged it here.
Unfortunately, reading Mike's clarifications (posted in response to some apparently rude e-mails sent to him after the fact, which is not appropriate) makes me think that I disagree with him more than I thought I did. Mike is a wonderful person and a great addition to the software community. But his perspective is wrong on the value of source code. Here's why.
Mike argues that we in the open-source community unnecessarily fixate on source code, when the primary benefits of/lessons to be learned from open source lie elsewhere. He summarizes:
Low-friction distribution, community, participation and collaboration will be good techniques most of the time. Publishing source code will be a good technique some of the time.
What Mike misses (including in his example of VMware as a proprietary company that has realized the benefits of open distribution without resorting to open-source licensing, much as Adobe has, I'd add) is that source code is the guarantor of each of these benefits he describes. Source code is not ancillary to them. It is foundational to them. Access to source code is the fundamental benefit of open source, whether you exercise the right to view, modify, and redistribute, or not.
It's not a question of whether one can devise a quasi-open-source approach that gives vendors lots of benefits. They can, and Mike points these out. Rather, the real question is how customers--paid or unpaid--benefit from these things. Because this is a customer business, or should be.
Mike's argument works very well until you consider the customer. Then it rapidly falls apart. So long as the customer depends on the good graces of the vendor to provide easy distribution, community, etc., that customer is always dependent on the vendor. This is not a bad thing, until the vendor decides--unilaterally though not without community pressure--to do otherwise. Maybe the vendor has a bad quarter and needs to drive more sales. Maybe the vendor changes management and the new team thinks the old model was rubbish.
In each case, the benefits of openness are completely controlled by the vendor. This requires that the customer trust the vendor, which introduces a layer of inefficiency (building that trust and guaranteeing that trust).
Open source offers a shortcut: source code. Once that source code is licensed and distributed under an OSI-approved open-source license, the customer is in control. Forever. Irrespective of bad quarters, management changes, stock markets, or whatever. The customer reigns.
This is a bad thing if you are a vendor that hasn't learned to drive value to customers--value that they are happy to pay for. It's a very bad thing if your relationship with customers is somewhat adversarial, forcing the vendor to lock them in.
This is why I like the GPL. No one can manage freedom out of that license. It gives the customer an absolute relationship with the code. The vendor then has to earn the right to serve the customer around/through that code.
This might seem like insanity to a vendor. Why would you ever put yourself in a position to have to work doubly hard to earn a customer's business? In fact, you don't. By releasing the source code you let it speak for itself and earn admirers. The company then has a base into which it can sell its value. It actually proves to be a much more efficient way to discover and serve customers.
Here's an example. Alfresco went from zero to 8,000-plus active users of its Web content management system in three months. Try that with proprietary software. Importantly, we've now been earning the business of many of these WCM evaluators, companies you know and whose services you use on a daily basis.
Open source offers a superior way to serve customers. Trust with a customer that money/marketing can't buy. It's not just about easy downloads and community. It's about laying the proper foundation for those to happen. And that, Mike, is all about source code.
Photo source: Iomoeye.