Very fortunate. I feel very fortunate to have started into software development when I did (around 1996/97), because it was then that two things were happening:
- The World Wide Web was coming into its own and going mainstream.
- The open-source software movement was about to get started.
At that point in my life (and career), I didn't have the experience or perspective necessary to understand or appreciate the massive importance of both of those developments - not just for my future self, but for the world at-large. Twenty-plus years and a career later, I can now see clearly what was fuzzy to me then.
My career as a software developer, all of the success I had doing it, all of the riches I gained in execution of it, was/were thanks in large part to the quirk of timing that got me started alongside the web and open-source. With the web came easily-accessed information and knowledge - from which I learned. With open-source came a trove of codebases and projects - with which I built.
Take, Take, Take
The web (getting access to it) never came freely. I first hopped-on in college (definitely not free). Post-college, I paid Comcast and Verizon at alternating points over the years for internet access.
Conversely, open-source software always came freely. A seemingly unending volunteer army of authors gave of themselves - their time and effort - with no compensation asked for in return. And I, like millions of others, happily accepted.
With that software, I built many solutions for many clients. I made good money billing for that building. And my clients made good money from the results of that building. But, the people who built that software never realized any of those profits. Mind you, I did make efforts here and there to give back. In fact, the earliest iteration of this blog was all about contributing back... with knowledge.
Reflecting back, for a downstream developer/user such as myself, aside from making commits to the actual codebases, knowledge-sharing was the only avenue for giving back. A downstream developer/user giving money to open-source just wasn't a thing back then, at least not as far as I recall. (I say this as the only person I ever knew who freely chose to actually purchase a license for WinZip. I paid $29.00 on Jan 1st, 2001. Yes, I still have the receipt - in my email.)
Fast-forward a couple decades and times have changed. With the rise of companies/initiatives such as Open Collective, Patreon, and GitHub Sponsors, freely giving money to open-source projects and their authors is now a real thing. However, that shift has coincided with my transition into (early) retirement. For me, the open-source-powered gravy train is no longer rolling. It's now been years since I made any money on the back of open-source software.
Arguments Against Paying
But, I don't like the idea of using my retirement as an excuse to absolve myself of my debts to open-source. With that being said, if I dig a little deeper, there are a number of other, less personal reasons to hold back my dollars:
- Open-source creators/maintainers (may) benefit plenty from their efforts - in terms of fame, prestige, power, job prospects, and self-satisfaction. As such, is adding in money as another benefit necessary?
- Injecting money into the open-source ecosystem may negatively impact the forward trajectory of open-source. It could become a corrosively motivating influence. For example, authors may gravitate toward high-visibility projects and away from (lower-level) low-visibility projects. Also, maintainers may prioritize bug reports and feature requests based on votes from financial sponsors rather than based on intrinsic merit.
- Open-source software is akin to a gift. You don't pay people for giving you gifts.
- I (and other sponsors) may develop a feeling of entitlement to have my priorities addressed sooner, relative to the amount of money I have given.
- Open-source has gotten along fine until now without such in-your-face solicitation for money and there is no need to change that.
- The users/entities that should really be doing the sponsoring are the corporations which derive an immeasurable amount of profit from their use of open-source software in their systems.
- It frequently takes a significant investment (in terms of time and effort) for a downstream developer/user to understand and make use of any one piece of open-source software. Putting in that labor and, as a byproduct, increasing the mindshare of the relevant open-source project(s), is "payment" enough.
- Paying for open-source software may discourage high-level projects from using low-level projects as dependencies, as those dependencies could come looking for their share of payments collected.
- Software developers are, in general, well-paid as it is. Financially, they don't need to make money from open-source efforts they pursue in their free time.
- There are causes and needs in the world that are more worthy of donations than open-source software.
- Open-source projects, especially large ones, already tend to suffer from internal politics. Adding money into the mix will just worsen those sorts of headaches.
Arguments For Paying
On the flip-side, there are several arguments in favor of paying for open-source software:
- Sponsorship may help ensure that open-source dependencies are not abandoned. While downloads, usage, and popularity are/is great, money is frequently a more concrete and helpful form of appreciation.
- "Pumping money into the system might help underrepresented groups participate in open source, which in turn means we'll get software that is better tuned to the needs of everyone and not just the privileged." ~ Bob Nystrom
- With enough build-up, sponsorships could allow developers to focus full-time on open-source, instead of only in their spare time. This could/should lead to higher-quality software.
- If large-enough numbers of downstream developers/users such as myself pay, open-source funding will become democratized. This would help prevent one deep-pocketed organization from being able to dictate the forward direction of a project.
After considering and weighing the arguments for and against, I've decided to pay "my share", for two core reasons:
- Given that paying for open-source is such a rare practice, and given that it requires a tangible and quantifiable sacrifice, paying serves as a very strong sign of respect for an author and sincere appreciation for their efforts.
- I want to encourage the relevant author(s) to continue applying their talents for the betterment of both myself and the world at large. I'm not paying for something I requested of them, nor am I telling them what to build going forward. Think of it this way: if I knew a person who spent some of their free time helping relieve homelessness in some way, I'd be inclined to sponsor them in a similar fashion.
In short, good deeds should be rewarded.
It took ~20 years, but financially sponsoring open-source software has now become a real thing, with multiple options available for doing so. After weighing the pros and cons of doing so, myself, I've decided to start paying for the open-source software that I use. If anyone sees any holes in my logic or has any thoughts, I'd love to hear them.
In a future article, I'll explain how I've gone about actually paying for open-source software. I've found that it's a bit involved.