Skip to main content
Ungathered Thoughts

Responsible consumption of Open Source Software

Consuming OSS components is a digital value transfer from community to the entity using the component.

With digital goods, reproduction costs are much lower compared to physical artifacts, but production and maintenance costs can be high to the provider of the good. As we account for the full cost of ownership, we discover the cost of maintenance is much higher than it might have seemed, especially when we factor in the ongoing cost of maintenance.

This has an analogy in extracting resources from the environment in early times when business doesn't account for the long term impact, and then later we start to appreciate a more full accounting of the impact of our work.

It's incumbent on users of open soruce to recognise and nurture the communities that provide the software they depend upon.

We should also appreciate the special power of open source, that we are able to contribute directly to projects. There are lots of ways to contribute - organising, coding, reviewing, testing, funding, directing, and more I'm sure. When we contribute we enable ourselves to engage in direct advocacy and have agency over the functionality and future of the project.

When building on OSS components, it can help to have ways of modifying them which support upstreaming our changes. Patching or forking workflows which are in public support and encourage visibility and sharing. (There's more to communicating than just forking in public, of course.) Visibility of working in public also asks us to code securely, to not commit sensitive data to a codebase, and to think carefully about how our code is structured for general usage - all valuable practices to work securely and with confidence.

Developing an active presence in the community helps us work with the software better through familiarity in both directions. By becoming familiar with community approaches, we expend less effort trying to configure systems in ways which don't work in alignment with the project's intended use, and don't rabbithole ourselves inventing novel solutions to solved problems. Presence in the community also gives others familiarity with our work, which supports us when there's reason to propose a change to the way things work. Both are beneficial outcomes to working visibly.

We use a lot of software and can't be expected to actively engage in every single component or community we make use of. For those of special significance to our business or process, and especially those we actively develop with, there are lots of opportunities for companies to contribute in ways that benefit the provider and consumer mutually.