Developers Don’t Work For You

I have a feeling that I am going to be writing a lot on this topic in general for the foreseeable future, but the philosophical and existential crisis currently confronting the Bitcoin space over what constitutes “spam” is starting to have massive second order effects and consequences in all of the different Bitcoin communities.

I want to specifically focus on the reaction to this debate spilling over into what charitably can be construed as debating with Core developers, but in reality in most cases has taken the form of what can only be called harassment. This can be a very nuanced and subtle aspect of how Bitcoin works, as the relationship between “customers” that actually utilize Bitcoin and the developers that work to maintain, improve, and optimize the protocol and tools built on top of it is not a clear cut category separation. Many people who use Bitcoin are developers, and many developers are users of Bitcoin. There is no hard line distinguishing between the two, and someone who is one or the other can over time become both. In the same regard people who fall into both categories could cease to do so, and simply become solely a developer or solely a user. That is the first thing to understand, the line between users and developers is totally arbitrary, with constant overlap and the potential for that overlap to grow and shrink at any time.

That said, what about the users who are not developers? What is their relationship with the people actually writing and maintaining the software? There is no real black and white clear answer, but I can tell you what the relationship is not: an employer/employee relationship.

Developers do not work for us. Full stop. They are not our employees. We do not pay their bills, we do not fund their work, they do not have any contractual or legal obligations to us whatsoever. We are not product managers, we do not provide them with a project roadmap and dictate what pieces they work on, how they work on them, in what order, or what those pieces should even be or how they should function.

Disabuse yourself of any notion that this ecosystem functions in any way remotely like that. It does not. Developers freely choose to contribute their time to an open source protocol completely on their own terms. They decide how much time to spend, what to spend it on, and the way they actually implement what they chose to work on. Full stop. They have complete and unfettered autonomy in every way regarding how they interact with Bitcoin as a project.

Now turn that around to look at users. Users of Bitcoin are under no obligation whatsoever to adopt a change or tool that developers produce. Nothing is forcing users to change the software they run, or adopt a new tool developers build on top of Bitcoin. Having a Netflix subscription does not obligate you to watch a single piece of content they produce, it does not obligate you to consume any specific volume of content. You can watch as much or as little as you choose to, you can even cancel your subscription if you want. Netflix has literally no control over how you interact with it whatsoever except purely through the power of voluntary persuasion.

This is how Bitcoin works. Harassing developers on GitHub will not change that. It will not magically turn your relationship with developers into one of an employee/employer. Not only will crying on GitHub accomplish nothing whatsoever to create or bring about that power dynamic that many Bitcoiners seem to want to bring into existence, but it accomplishes nothing productive whatsoever. I say that as someone who has personally debated numerous issues with developers over the years, asserted numerous times that developers are incorrect about some issue or plan of action they think is the most appropriate one to take.

GitHub is not the place for arguing what the existential purpose or reason for Bitcoin existing is. It’s a place for narrow concept and implementation debate and criticism, for the express purpose of improving whatever technical proposal is being made. Whether that leads to a proposal being incorporated into Bitcoin, or rejected from Bitcoin, should be entirely up to the outcome of purely rational and logical discussion.

Even in the case where you do have a truly rational argument or piece of input, are you going to actually stick around and contribute or participate in the development process consistently? Or are you just essentially doing a drive by review or input on a specific issue to bikeshed it? Yes? Then even with a rational argument in hand, GitHub is not the appropriate place for those discussions. We have Twitter, we have Reddit, we have Spaces, we have numerous other places to debate and work towards consensus on things without actively interjecting nonsense and philosophical debates about semantics into the development process.

And I reiterate that I am a person who has spent a massive amount of time in this space making arguments about why a specific direction of development is or isn’t a good idea, bolstering those arguments with actual reasoning and logical rationale. I probably never will in any meaningful and consistent way contribute to the development of Bitcoin, so I do not attempt to inject my arguments, opinions, and ideas directly into that development process itself.

I make those arguments to the wider community, or when making them to developers, in other forums or mediums besides GitHub or platforms whose specific purpose and function is for developers to coordinate the development process. If my arguments actually hold merit, they will convince users. They will convince developers out of band from places like GitHub. Eventually, an argument with merit will grow and create consensus around it to the point that it presents a meaningful public signal that developers can choose, if they want, to incorporate into their own reasoning around Bitcoin and what they choose to spend their time and efforts doing to improve it.

Ultimately it doesn’t matter whether you look at these issues and this dynamic from the lens of developers or the lens of users: you have no power or influence whatsoever except the power of persuasion.

If developers produce something that the overwhelming majority of users do not want or find no value in, they can simply ignore it. If developers find an overwhelming majority of users demanding something that is completely irrational in terms of incentive alignment, engineering realities, or anything of that nature, they can simply ignore them.

Bitcoin is a self regulating system. Bad tools produced by developers will not be adopted. Users demanding incoherent or damaging things cannot make developers build that for them, but they can step up and build it themselves if they really want that thing. No one works for anyone else here in this dynamic, it is a completely voluntary process regulated by market forces. So either step up and actually try to be persuasive, do it yourself, or cry harder. You are not going to succeed in trying to force anyone to do something they don’t want to do. 

You can find the fork button in the top right corner right here