Open Source is not a verb
I’m always intrigued by developers who use the term “open source” as a verb. As if a switch could magically be thrown, and via a quick mouse click in the Danger Zone, a proprietary or purpose-built project quickly morphs into one that’s “open source”.
Open source is not simply about publishing code. That’d be like saying democracy’s simply about the ability to vote. Sure, you can vote, but if your vote doesn’t matter because the act is solely symbolic, it’s not really democracy. It’s just a ruse. Like publishing code, voting is necessary but not sufficient.
Open source, at its core, is actually not about code, but about connecting people around a shared vision. It’s about community building. It’s about collaboration. It’s about getting a bunch of enthusiastic, like-minded folks in a metaphorical room together, and giving them the resources they need to solve a shared problem and create something of benefit to others, something that none of them would have been able to do alone. It’s about building and sharing, not about publishing.
Put another way, open source is not an alternative workflow or development method. It’s not as if you can choose between waterfall, agile, and open source means of producing software in a workplace. Instead, it’s an overriding philosophy that guides a project. Like forward thinking, simple, interoperable, system oriented, or open standards. It’s how you approach a problem from the start, not what you do after you’ve already solved it.
To say “hey, we’ve got something decent here, let’s take this closed-sourced project and just hit publish” misses the mark. Your motivation can’t be to seek free labor, as in “hey, if developers want to give us their time, great, let’s put this out there and see what happens we have nothing to lose”, or about sporadically seeking to garner good will from a niche community of dedicated fans. Trust me, an open source developer can smell AstroTurf a mile a way, and that’s exactly how far they’ll stay.
What makes an open source project truly open source and not simply “published”
- Shared Vision - Open source developers want to get behind a cause. Think of it as analogous to volunteering for a political campaign. They want to know what the project stands for, and where it is going. If they contribute, what will their code be used for in a six months or a year?
- Clear Goals - What’s the goal of the project? What’s the roadmap look like? Do you trust the community enough to share it? Can they shape that roadmap or is it set in stone?
- Active Development - When’s the last public commit? Are you committing privately, bundling together a release and then blessing the community with your efforts or is development occurring in the open?
- Us/Them Mentality - Is there a class system between paid/unpaid contributors? Are outside contributions handled with equal footing? Are any outside developers delegated authority or given commit access?
- Mechanics - Is it in version control or just a static download? Is the bug tracker public? Can I comment and submit? What about documentation? Is it maintained in a wiki?
- Communication - Can developers communicate directly or must they go through the parent organization? (e.g., announcement verses conversation models)
- Purpose-built Code - Is the code written for open source? Is it sufficiently documented? Is it modular? Is it specific to the initial use case or abstracted out to the underlying logic?
All of the above are underlying principles that drive development from day one, and yet not incompatible with a philosophy that dictates code remains under lock and key until a minimum viable product (MVP) has been reached. They do remain incompatible, however, with a philosophy that says that business as usual can be easily switched mid-stream to a successful open source project by simply not keeping the code secret.
In the end, it’s about developing a community, not about developing software. You’re selling an experience — whether it’s scratching a developer’s personal itch or giving them the opportunity to change the world. Next time you seek to build something useful, unless it’s the recipe for your secret sauce or something so specific as to render it worthless outside the organization’s walls, consider making it open source from the start, and instead seeking to grow a vibrant community around a cause, rather than simply coding a piece of software that happens to not be secret.
If you enjoyed this post, you might also enjoy:
- Towards a More Agile Government
- Twelve tips for growing communities around your open source project
- Why open source
- Five best practices in open source: external engagement
- 19 reasons why technologists don't want to work at your government agency
- Securing the Status Quo
- Five best practices in open source: internal collaboration
- 15 rules for communicating at GitHub
- Why you probably shouldn't add a CLA to your open source project
- Open source, not just software anymore
- Everything an open source maintainer might need to know about open source licensing
Ben Balter is a Staff Technical Program Manager at GitHub, the world’s largest software development network. Previously, as the Senior Product Manager overseeing the platform’s Trust and Safety efforts, Ben shipped more than 500 features in support of community management, privacy, compliance, content moderation, product security, platform health, and open source workflows to ensure the GitHub community and platform remained safe, secure, and welcoming for all software developers. Before joining GitHub’s Product team, Ben served as GitHub’s Government Evangelist, leading the efforts to encourage more than 2,000 government organizations across 75 countries to adopt open source philosophies for code, data, and policy development. More about the author →