I view open source mostly from an economic perspective. From this point of view, some of the words people use are curious. For example, people like to talk about “giving back” to the community or “donating a project” to the public. These idioms have community building power, like insider speak among those who speak it, but to non-insiders, they are mostly confusing.
I feel pretty certain that these idioms slowed down the growth and adoption of open source. So let me use the two I just picked as an example and translate them.
If someone says, they (their employer) are giving back to a project they are typically submitting some code for inclusion in that project.. There are many reasons, why they might do so, but an altruistic giving back to a community is not among them. Most often, they want to reduce their maintenance burden. If the submitted code fixes a bug, and that bug fix is not part of the project, the company has to reapply its bug fix over and over again each time they catch-up with a new version. In more general terms, companies contribute to projects to manage their dependency on that project.
If someone says, they (their employer) is donating a project to the public, they are open sourcing a project. Again, there are many reasons for why they might do so. The most common one is that the company determined that the code in question is not competitively differentiating in any way, but a pure cost factor. Hence, it would be beneficial to reduce some of that cost by getting others to help with development. There are other reasons, like quality, innovation, reputation, and strategic gains, but most often it is about reducing mid to long-term costs.
There is little to no altruism here, but rather (enlightened) economic self-interest. The sooner a company understand this and acts accordingly, the better off the company and the open source world at the same time.