I’m curious to hear people’s thoughts on what principles open source projects should adhere to in order to promote transparency, inclusiveness, and effective development. Are there any specific projects you feel do a great job following certain principles in how they operate? I’m interested in how projects organize decision making, manage donations, incorporate community feedback, communicate updates, and more. Please share projects you appreciate for how they approach open source development!
The absolute baseline: Open-source projects should be developed by a community. If the whole copyright and knowledge is exclusively in one company which just dumps the code as open-source, that open-source license is effectively worthless.
A couple things that I think are crucial:
Firstly: have a clear code of conduct for forum members, developers, contributors, etc. If the project as a whole tolerates a raging transphobe who terrorizes and mistreats other contributors just because he’s contributed 10,000 lines of code, then the project deserves to fail. Software doesn’t exist in a vacuum. Code isn’t value neutral. And the people who are part of the community are more important than whether or not certain others will continue developing X feature. FreeBSD is one example of this that I really like. They made it clear that intolerant asshats weren’t welcome. It created a shitstorm of chuds throwing tantrums, but it made FreeBSD better for it.
Secondly: don’t accept just any PR/MR that comes in. There has to be a design, architectural, and philosophical vision guiding a software project, and contributions need to adhere to those. Otherwise you end up with UI/UX nightmares that make a great application miserable to use. Have a clear vision, and be open and transparent about what that vision is.
For somewhat larger projects, I think the OS Haiku is a perfect example. It isn’t a benevolent dictatorship, there is no single leader — there are just long-time contributors. If you send in contributions substantive or regular enough, there’s a good chance you’ll get push access. Patches generally are accepted with open arms, and devs with push access give constructive criticism on patches kindly. The OS is better for it!
Tests, Documentation, License, Maintainance and clear inheritance processes.
Project: Joplin joplinapp.org [email protected]
What it does right: Focus on user experience by aligning aims of product with aim of users.
Everything it does is foss, however its main revenue achieving product (cloud sync target) is focused on convenience rather than vendor lock-in. So it incentivizes the project to cater to its users.
What’s so unique about it: due to lack of monetary incentive a lot of oss projects simply forget about the user and serve mostly to themselves. They fail to listen to feedback because listening to feedback means loss of resources rather than gaining them. As a result many critical bugs are unfixed for decades and UI is so dated no new users want to use the product.
TLDR: don’t forget to create revenue generating module along with the main foss product
Transition from GPL to LGPL or CC. IMHO choosing GPL is pointless in many cases and were chosen rather randomly.