Computerworld tracks through a range of reasons for why people pay for commercially-supported open-source software. Enterprises pay for perceived and actual value, of course, which can come in the form of support, proprietary extensions, etc. No one pays out of charity to ensure the vendor will still be around a year from now, though that is probably the top reason that enterprises should pay.
Gautam Guliani, the executive director of software architecture at Kaplan Test Prep and Admissions (Disclosure: Kaplan is an Alfresco customer), gives a few reasons why open source makes so much sense:
What open-source vendors offer to his business, he said, is lower costs for support, deepening maturity, code flexibility, "a much deeper level of transparency into the software products," and a higher rate of innovation.
Indeed. What's interesting, however, is just how many enterprises run open-source software without paying a dime for it, even in mission-critical applications.
This is possible because. Like the vendors from which they buy, they are increasingly spending money on people rather than software. I know a wide range of enterprises that have adopted MySQL, Spring, etc. and modify these to suit their needs. They often don't pay for support contracts because they have the developers in-house to support themselves.
Is this a good thing? Well, from the standpoint of the vendor selling support, it's not. No support equals no payroll.
But it's also a kick-in-the-pants to open-source vendors to sell more than support. Most enterprises are going to pay for support if they're running your software in a mission-critical application. If your application isn't mission-critical, however, you're going to have to deliver ancillary value to compel customers to want to pay.
This is why open-source companies seem to all either offer proprietary extensions or customer-only networks (Red Hat Network, JBoss Operations Network, MySQL Advisory Service, etc.). While I like the lower sales and marketing costs associated with the latter option (networks), it's clear why commercial open-source projects seek to add something beyond the core code.
They don't really want to be someone's free lunch. Can you blame them?