Making contributable open-source projects
- 1Some problems(156w~1m)
- 2How people can contribute (it doesn't have to be code only)(32w~1m)
- 3Software business?(2w~1m)
- 4What?(183w~1m)
- 5Maintaining open-source projects(236w~2m)
1Some problems
- Marketing problem: People don't even know the project exists.
- Onboarding problem: People want to contribute to the project, but the project's README doesn't have clear instructions.
The only way to make significant money from open source project is to get hired by a company who wants to pay one to develop that project.1
Donations don't work. People are not assholes, but they are lazy, and donation is too hard. The only time donation works is when people can physically give you the cash from their physical, real, meatspace wallet, like in street busking.
Well-designed systems minimize the assumption that humans behave nicely. Well-designed systems minimize wishful thinking.
How to make money from open source software; scarcity?2
Rbpaservices's comment: "Open Source Devs speak at conferences to make ends meet."3
C.J. Silverio raises some concerns about npm in her video4, which gives me some hope that npm will be gone in a few years and be replaced by entropic5, but is it that simple?
2How people can contribute (it doesn't have to be code only)
- Report issues.
- Help troubleshoot issues.
- Contribute code.
- Write documentation.
- Request features. Find things to do. Write proposals. Discuss proposals.
- Spread the word in online forums.
- Help onboard newcomers.
https://opensource.com/life/16/1/8-ways-contribute-open-source-without-writing-code
3Software business?
https://en.wikipedia.org/wiki/Software_business
https://en.wikipedia.org/wiki/Business_models_for_open-source_software
4What?
- To improve contributability, open source projects should be standardized, and documents should be written to help the user accomplish a task, not to merely describe something.
- Documentation should be task-oriented.
- The non-software part is important too.
- 2000, article, "A Case Study of Open Source Software Development: The Apache Server", pdf
- 2017, article, "Understanding the Impressions, Motivations, and Barriers of One Time Code Contributors to FLOSS Projects: A Survey", pdf
If you want to attract people, you must have a goal/vision/roadmap.
- You will attract people with the same goal.
- If their goal changes, they will leave you, and that's OK.
Your project must have a readme and a contributor guidelines.
- https://help.github.com/articles/setting-guidelines-for-repository-contributors/
- Make it easy for people to contribute.
Maintaining open source projects
- How open source took over the world
- 2010, article, "Sustainability of Free/Libre Open Source Projects: A Longitudinal Study", pdf
The Open Source Definition - Open Source Initiative
- "Open source doesn't just mean access to the source code."
open source development methodology
The bullshits we hear often6
5Maintaining open-source projects
Be a benevolent dictator. Don't be democratic. Be decisive without being offensive. Skip the swearing. Don't put your words in other people's mouths. Avoid statements whose subject is "you", such as "you are …", "you said …", "you want …", "you think …".
When you don't want something, you can just say "No", repeatedly if necessary. You don't have to explain why. You have the final say. Not everything is open to discussion.
Democracy doesn't work in open source. Most people are lazy, polite, selfish, short-term-oriented, impatient, and incompetent.
If you are democratic, you will waste your time convincing people who won't be convinced anyway. People who already understand don't need to be convinced. People who don't understand will never be convinced.
If you are permissive, your codebase will degrade into a pile full of half-done half-assed workarounds.
Tolerate no mediocrity. Tolerate no misspelling. Reject incomprehensible commits. Demand the absolute best. Never lower the bar. It's better to receive no contribution at all than let a shitty contributor in. Working code is not enough. The code should also be correct.
If you receive an almost good contribution, either you fix it, or you reject it.
Reject incompetent people.
Get out of the way of competent people. Don't distract them from doing their job.
If you want to leave the project, appoint a replacement dictator?
Contributors may often have IQ above 130, but IQ doesn't meant competent. Higher IQ only means faster learning; that's all.
https://www.quora.com/How-do-big-open-source-project-maintainers-make-a-living↩
https://journal.dedasys.com/2007/02/03/in-thrall-to-scarcity/↩
The economics of open source by C J Silverio | JSConf EU 2019 https://www.youtube.com/watch?v=MO8hZlgK5zc↩
https://modelviewculture.com/pieces/what-your-open-source-culture-really-says-part-one↩