-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What is this for? #1
Comments
Good idea! I've been wanting to do something around making it easier for people to get started in OSS and/or contribute to new projects. One misconception I feel we have today is that you can mostly only contribute code. That couldn't be more wrong. Maybe this place could outline various ways to contribute based on different skills. What are your thoughts around this org? |
👍 on contribution don't just need to be code. |
Existing things around this space (and the links that stem out from them):
My big questions are:
As one example, I remember hearing that the MongoDB issue tracker has a label |
One major reason I think the "help wanted" label idea hasn't panned out is just knowing someone wants help is rarely actionable. I've seen this play out in 2 ways
Owner/Collaborators forget they keep a lot of implicit information about a project in their head. For them there are a few obvious paths forward, but to someone new, a "small task" actually looks like this:
Documenting a "project's structure" to help new people sounds like a good idea, but ossifies really quickly as projects naturally change over time. I've been playing with first investigating an issue until I understand a way forward and then listing what I think the smaller stages a successful PR would be: trek/beautiful-open#256, https://github.com/trek/ember-api/issues/15 At this point I understand the problem enough to offer guidance to a new contributor. The instinct I have to fight is the feeling that "well, I can just do it myself now!" Fantastic for short term velocity, but long-term less so. As they say
|
A good resource is the Community Kit I created while I was at MongoDB: https://github.com/FrancescaK/MongoDB_Community_Kit It outlines a number of ways someone can be involved in FOSS. One of the best things people can do is contribute via a 'neweng' label, as Aidan pointed out, but offering support on forums or IRC and contributing to documentation is also equally valuable. It's not all about contributing code. Contributing your skills in any capacity is a very powerful thing in FOSS. |
I support all of these goals and steps. This is something that has been an important challenge to me over the last ten years of open source engagement. Working hands-on with a volunteer is great but isn't always practical. I think the middle ground approach of spiking far enough to be reasonably confident in an approach, yet leaving the proof to the reader can be an effective one. It is much like designing a good exercise or workshop for general teaching. Note that the trade-off is similar: some up-front investment by someone more experienced to illuminate an on-ramp does not solve an immediate problem but gives an opportunity for someone else to step in and solve it and similar problems. This is especially important in community building, where this exchange is not just downstream learning, but social as well. My choice of terms above is not arbitrary. I tend to think of this with the same analogies as I use with specific software problems. If I build a good tool for moving boxes around (a ramp, maybe), it gives me some mechanical advantage. If I build a good script for generating a manifest and compressing files in a package, it gives me leverage on that type of problem. If I build a good on-ramp for extending a software community, it gives me a way to include more people to help solve more problems while giving those people a way to get there without some generational jump in their own expertise. Any of this tool building is a short-term investment with the goal of improving the long-term condition of the project. In a big or interesting enough project, building good, simple tools usually repays the investment pretty quickly. |
Reading is definitely one of the key gaps between beginners and experienced people. I don't think it's quite as extreme as needing to read an entire project, but the sentiment is correct: veterans can read and navigate unfamiliar codebases quickly (often zooming in on the parts that are relevant without having to read the whole thing), so to them the reading is not a big deal. Newbies lack the practice and cultural exposure, so to them it's much harder. If this project actually starts generating commits, it would become a valuable source of practical exercises. Each issue is a problem statement plus a real codebase. Each solved issue also includes an accepted answer. Students can gain practical reading experience just by going through all the solved issues and reading them well enough to understand what's going on. Read enough small successful PRs against a project and pretty soon it stops being magic, you absorb the patterns, and you gain the confidence to submit your own. |
For people relatively new to programming/open source, one thing that has jumped to my mind as super valuable and approachable is making the README work for you. For example:
|
+1 @daguar My idea would be to promote a "Project Starter Kit" for every project containing:
|
I think is great to start a org with good documents about how to get started to contribute to projects. 👍 |
Another resource that has been useful for me as I try to make my project more accessible is OpenHatch: http://campus.openhatch.org/projects.html, which helps guide projects in developing a good onboarding experience for new contributors. |
adding TODO Group can't seem to find peeps behind it, but seems very well aligned with this initiative. |
This org came out of tweet from @trek on the Twitters:
https://twitter.com/trek/status/555385216651776001
What do we want this org to be?
/cc @sindresorhus
The text was updated successfully, but these errors were encountered: