Anyway, try getting hold of Microsoft for tech support help these
days. You're stuck with online docs and help, just like with open
source. Except you have to pay for it, of course.
Besides, the Open Source Trap referred to by Bill G is not the
documentation. It is the license.
Open source code often comes with different license terms than many
companies are used to. Once they understand them, they can use them
quite well, but it takes a bit of thought.
For example, open source and free software is not public domain. You do
not get to fold it into your program and charge for it, in most
circumstances. This is different than taking an algorithm from Cormen,
implementing it in Java, and then selling the result.
Most free software has a viral license that requires you to put any work
using the free software under the same license. Certain licenses allow
exclusions if you only link to, rather than compiling or embedding, the
code. They may also require you to release any changes you make to
their code, and if you have embedded that code in your app, the line can
be hard to draw.
Most open source software has similar terms, such as requiring you to
ship the source with your product.
Cisco/Linksys got caught by that - they had to release the firmware for
one of their routers because they had used Linux to run it. On the
other hand, without a very well debugged operating system without a
runtime cost, I suspect they would have had a hard time making a profit
on a $90 router. Having to release the source seems a small price to
pay for that.
That said, you can save a lot of money and time with open source. We
use MySql databases extensively, and because we do not embed, we do not
pay license fees until we have a need. I expect several of our clients
will decide to do so, based on their support needs or to encourage
development of needed features, but they have been able to do a lot of
work without that - enough to prove that MySql can meet their needs,
resulting in a happier customer.
Similarly, the requirement to release the source can be a benefit. We
have a product that would have taken months of work to completely
generalize. By releasing the source (as several of our licenses
required), we give our customers the ability to customize beyond what we
would have been able to do.
Scott