In the opensource world variety is usually a richness, during the years multiple project bloomed to get more people involved actively into opensource projects in a structured way.
Those programs normally involve giving people from some rewards and make it fit within the internship model.
Tasks and Projects
The projects to propose must be representative of what the organization does, possibly interesting for the student and useful for the community.
A project must NOT be composed of just chore tasks such as "clean up the whole codebase" or "spellcheck the whole wiki'.
Completing it should give the student at least a modicum of glory.
Increasing difficulty tasks
If the project has an adequante span tasks can be gradually difficult, easier first, such as refactoring the code that will be extended later and harder last, such as writing an encoder once the decoder had been completed.
Students must be motivated, the reward must not be the only reason why they participate to the project, otherwise they will disappear once the project is concluded.
The prospective students must prove themselves before by showing they know the basics, such as using Git or knowing well enough the languages in use.
One of the key part of the process is guide the new prospective members and make them feel part of the community from day 1. Usually some volunteers take this responsability and act as mentor.
Many mentors model
The best model we experienced is to share the mentorship across a number of people, possibly 2. This is in part to split the workload and provide fallbacks, in part to foster more community as whole interaction.
The mentors have to plan in advance the tasks and make sure the student is working correctly so the projects can be concluded within the allotted time window. Most outreach projects last few months and results must be provided.
Using a quasi-agile approach with milestones/checkpoints and quick reports works the best usually. Try to split any project in tasks that could be completed within days or at most a week and make sure every few days everything is going as supposed.
Students are not to be expected to be perfect but they must improve over time. Always give the benefit of doubt once, but never be too lenient.
- It is better to give a strong feedback by dropping out a student that is not respecting the agreed checkpoints midterm, than to let him continue till the end of the project.