This past weekend was Madison Ruby and it was fantastic. After it finished on Saturday, I went to dinner with some super awesome people and we eventually started discussing open source. A couple of the people at the table expressed concerns and fears about contributing to existing open soure projects and the reactions they might receive from maintainers of the project.
This seriously bothered me. The majority of my experience with software development has been in the open source community and I'm not sure I would be who I am, or where I am, if it were not for my experiences there. In my humble opinion, everyone should be able to contribute to any project they would like and should not be afraid of anyone else involved in the project. Unfortunately imposter syndrome runs rampant in our community and working alone can only aggrevate the anxiety that causes.
Lucky for all of us, one of the people at dinner Saturday night was Carina C. Zona. She suggested that people who are this concerned about contributing should really be pairing with more experienced open source contributors so they are more comfortable. This spurred the idea of OSAP on my bus ride home.
What is OSAP?
tl;dr OSAP is an acronym for "Open Source Apprenticeship Project". Experienced members of the open source community sign up to mentor people (apprentices) who are looking to enter the community.
In my ideal world, I'd already have my own website set-up before announcing this project to handle apprentices finding their mentors. Unfortunately, I realized the need for the project and did not have the chance to start building a website. (This is also the curse of brain-storming on twitter.) For immediate results we will be using Google Forms to organize mentors and apprentices.
Each mentor will pair with an apprentice in a way that works best for both. If neither mentor nor apprentice wish to pair program, they can instead choose to work however works best for them. Personally, I will try to set-up something to have apprentices SSH into so we can pair program and use Skype (with or without video) to speak with them. If they're close enough, I will meet them wherever they're most comfortable to work with them in person if they want.
My ideal design would have a list of mentors that is viewable by apprentices and other mentors. The converse, however, would not be true. In other words, no one can view who has joined as an apprentice - apprentices cannot view each other and mentors cannot view apprentices. This implements a concern I realized some apprentices might have. For example, let's say there's an apprentice who has already had a bad experience with an open source maintainer. They should never have to be afraid of that person contacting them outside of the service or using the service. Furthermore, the apprentice picks their mentor and can submit feedback on that mentor and their experience with them.
In general, the whole design is to make the environment safe for the apprentice to make sure they feel comfortable and eventually start contributing to open soure projects. There are great people that we as a community have scared off and who are not making our lives better through their contributions. I want these people in my community and in my life so I will not give up on this project.
If you would like to sign up as a mentor, please fill out the mentorship form.
If you would like to sign up as an apprentice, please fill out the apprenticeship form.