I came to remember my thoughts on Open-Source software while talking to a friend after lunch today. The idea is that even though reuse of third-party software is something that a lot of companies want to encourage, we don’t really know the total cost of third party software.
The problem as I see it is that under almost any circumstance, an organization delivering a composite product is always responsible for the totality of the product. Buying third-party software might make this responsibility even harder to manage. A lot of my hardest problems have been with overly complex or simple third party components.
Even though “you can sue your subcontractor if they don’t do their job right”, I have never heard of any legal action being taken against faulty third-party component vendors. It might be theoretically possible, but if it doesn’t happen, what good does it do? Involving more organizations increases the bureaucracy and cost.
So in the end you are always responsible for the quality of third party components. And this is where open-source comes in: First, with open source, you have to recognize this responsibity up-front, so you can plan and budget for it. Second, the open nature of open-source makes you able to enact your responsibility.
(As I see it: The only disadvantage of open-source is where it doesn’t exist, or where the license is too strict for your needs)