Re: @HildyJ - Free
"And what stops enterprises to approach the developers of an open source project they're interested in and offer them money in exchange for support ?"
The problem is a lot of Open Source developers are not equipped to offer that support..
They may have limited time. They have to spend some time developing the product, as well as time at their job, leisure time and they likely have other responsibilities. Any job they have is likely to take up most of their waking hours.
The community in some open source products is very helpful. I maintain two Mac Deployment systems at work, and an inventory management system. All three using open source software The support I've received from the community in implementing and using the OS and Software deployment systems has been excellent, and I am genuinly sad to be moving on, but the problem I have is that the OS Deployment system has stopped development (they stopped as Apple deprecated the imaging tools the system used), and while the developers could have transitioned the system to using Apple's OS installer, they haven't for whatever reasons (they've said nothing, just stopped updating).
The fact they've done that exposes a major problem with Open Source. With a commercial product (certainly from a big vendor, like Microsoft), if they cancel a product, they generally tell their users about it in advance. They don't do this to be nice. They do this because they may be under a contract, or they don't want to lose customers (they might be able to persuade customers to transition to another product if they've been treated well).
Don't get me wrong. I am an avid supporter of Opern Source, and I prefer to use Open Source if it has equivalent functionality to commercial software. It's just when I am looking for software on behalf of work, I'm not looking for a software that's going to be installed on one machine, and used by me. I'm looking for software that will likely be installed on hundreds, if not thousands of machines, and used by all sorts of users, with education ranging from school qualifications (CSE/GCSE/O level) through to people with PHD (and even some Professors), and with expertise in all sorts of areas (technical and not), That level of support costs money, and can't be provided by a single developer who is supporting their project while working at a job.
When we were looking at replacing our deployment and management systems for our Macs, I did suggest Free and Open Source software that, from a technical point of view, would have fulfilled our needs. Unfortunately, our higher ups dismissed the idea almost immediately, for two reasons. First, using Open Source, what guarantee is there that development won't stop for one (or all) project(s). Not really something I could argue against, considering that a motivator for changing the system was the fact that development had stopped suddenly on our OS deployment system (a previously very active and well supported project).
The second reason given is liability. To put it bluntly, if you buy a product, and that product fails, the law gives you some protection. You have someone who is liable for the failure, and can potentially be sued if their product fails (my employer has done this with suppliers). With Open Source, who is liable. Yes, you can pay for support, but any legal protection you have will be for that support, and any contract you have will likely deny liability for any bugs. When you buy something from a vendor, you have various laws protecting you, and you also have someone who is liable.