Open source software is great. You don’t have to worry about the owner deciding to discontinue it, because someone else can always take over. If there’s a bug that really annoys you—or a feature you really want—you can add it. If you’re concerned about what the software might be doing, you can open it up and take a look. And even if you don’t have the skills or inclination to do all these things, other people will.
While I’ve always known open source software is great, I’m increasingly starting to appreciate that open source developers are also great. Many people in open source not only have a tremendous amount of experience with software, but also community management. They’ve seen a lot of the same problems arise many times, and so they have a good idea on how to get code, and people, to work together productively.
One thing that we see, again and again, in both software and the community, is that giving people agency and discretion is fundamental in having a highly successful project. Wikis lowered the barrier to contribution immensely when it came to collating knowledge, Wikipedia wouldn’t exist if it wasn’t so easy to edit. Many of the most successful software projects have been extremely generous with their commit bits, and with distributed version control, the barriers to contribution have been lowered even further.
The reason this is so essential for success is simple. The vast majority of intelligent, motivated people want to make the world a better place; putting barriers in their way simply means they’ll go elsewhere. Every permission form that needs to be filled in, every registration process that needs to be jumped through, every legal framework that encumbers creation, every strict power hierarchy that needs to be worked through, they all run the risk of taking someone who may done something great instead deciding it was “too hard”.
That’s not to say that we won’t need a way to deal with mishaps; even if nobody is malevolent, some people will still be learning, and everyone will make mistakes. Wikis and distributed version control strike a good balance here, they’re designed around the ability to undo changes, or revert to previous revisions if need be. Much of the software that lower the barriers to contribution also lower the risks associated with it.
And that’s the key here. If you can give people a way of doing something, and that process comes with low or negligible risks, then let them do it. Even if you think nobody will care, even if you think it’s a terrible idea, let them. Many great ideas start as terrible ones that are refined over time, and you may be surprised at just how popular some ideas can be.
But this doesn’t just apply to your software, or your documentation; this applies to the your culture, and the society in which you live.
Encourage others to be bold. Be generous in what you accept.
Do not stifle innovation. Do not get in the way of people being great.
And I know that sometimes it can feel like two steps forward, and one step back; but please, please, don’t stop contributing.
This site is ad-free, and all text, style, and code may be re-used under a Creative Commons Attribution 3.0 license. If like what I do, please consider supporting me on Patreon, or donating via Bitcoin (1P9iGHMiQwRrnZuA6USp5PNSuJrEcH411f).