What is OPW?
According to a 2002 survey of open source communities, only 1.1% of participatants are women. In order to increase diversity in open source, the GNOME Foundation created the FOSS Outreach Program for Women (OPW). The program provides a three-month paid internship, where participants are paired with mentors from one of 19 different open source projects. The Linux kernel is one of those projects.
The GNOME Foundation coordinates the overall program and pays the interns. [https://wiki.gnome.org/KarenSandler Karen Sandler] and [https://wiki.gnome.org/MarinaZhurakhinskaya Marina Zhurakhinskaya] coordinate the overall OPW program. Each separate open source project has a coordinator that communicates with project applicants, interns, and mentors. [wiki:SarahSharp Sarah Sharp] is the coordinator for the Linux Kernel project in OPW.
What's the timeline?
The OPW internships run twice yearly, from June to September and December to March. This allows the internships to happen during the northern and southern hemisphere summers, when college students are likely to have time off.
Before each internship period, there is a one and a half month application period. During this period, applicants pick which project they're interested in, talk to mentors, and contribute to the program. For the Linux kernel project, we have applicants clean up drivers in staging. Applicants must get a contribution/patch accepted into their project in order to be accepted as an intern.
The application period allows mentors to interact with potential mentees through the OPW-kernel mailing list and IRC channel. Mentors will get a clear sense of whether applicants can follow directions, where applicants get stuck and need help, and which applicants are self-starters and move on to using advanced tools like sparse, coccienelle and smatch. Basically, you can easily learn who has clue.
Once the application period is over, mentors get together and decide which applicants to accept. How many applicants we accept is partially set by how much funding we can get. Interns rank projects in the order they're most interested in, but we attempt to make the best project choice based on the intern's skillset and the mentor's preference. If a mentor feels there are no applicants that are suited for their project, they don't have to take an intern.
What is required of mentors?
Kernel developers who want to provide a project for OPW interns to work on can volunteer as mentor. We have also had several people successfully co-mentor one intern on the same project.
Preparing a project
Mentors provide projects for interns to work on during the three-month internship. Ideally, these start out as bite-sized bugs or small tasks that allow the interns to get familiar with your subsystem, and are followed by a larger feature. Tasks should not be critical-path, and should be able to be completed within three months. Remember, interns will likely take 2-10 times longer than you think a project should take, so choose wisely. If you pick a project that doesn't have good documentation, you may have to spend extra time ramping up your intern.
The project can either be focused on the kernel (core, drivers, filesystems), or on tools that help kernel developers (sparse, coccienelle, kernelshark), or a combination of kernel and userspace interface work (KVM, Xen).
Please see the description of [:OPWRound6:Round 6 projects] to get an idea of the scope of successful projects.
Helping out during the application period
During the month-long OPW application period, potential interns will contact you directly to get more information about your project. In order to be accepted as an intern, applicants will have to complete the [:OPWfirstpatch:tutorial] for creating their first kernel patch. The applicants will send their staging driver cleanup patches to a separate mailing list. Mentors are expected to help out with code review and answering questions on the IRC channel.
This stage of the OPW process is seriously like drinking from a firehose. During the Round 6 application process, applicants sent an average of 28 patches per day. All mentors need to participate in patch review in order to spread the work load. Some of the past OPW interns will also be helping out with patch review and answering questions on IRC.
This phase typically takes several hours per day.
Selection of interns
When the application period ends, the OPW mentors review intern applications and code contributions, and decide which interns to take. Applicants to the program are asked to rank Linux kernel projects in the order that most interests them. All mentors and the Linux kernel OPW coordinator (Sarah Sharp) collaborate to match interns to the project that best suits their interests, skills, and background.
The meeting to select interns typically takes a half an hour to an hour.
During the three-month internship period, mentors answer their intern's questions, provide guidance on the direction of the project, review code, and provide encouragement and support on the mailing lists. If an intern is working on a simple project with multiple parts, they may send 20-60 patches during the internship, which will require more patch review. If an intern is working on a complex project, they may send very few patches, but need a lot of extra guidance and one-on-one mentoring.
Mentors and interns typically meet for an hour a week, through a phone call or video conference. They may meet more frequently or longer as necessary. Mentors and interns may not work in the same timezone, so you may have to compromise on when to meet.
Interns work full-time on their OPW projects, so mentoring an intern is as time-consuming as ramping up and mentoring a new employee.
I still want to help out!
Great! Email MailTo(sarah.a.sharp AT intel DOT com, Sarah Sharp) and indicate your interest in participating as a mentor.
Then follow these steps:
1. Start logging in daily to these IRC channels:
- #opw and #opw-admin on irc.gnome.org
- #kernel-opw on irc.oftc.net
2. Create an account on kernelnewbies.org and remember your username.
3. Email Sarah with your kernelnewbies.org username, so she can add you to the editors group. Also tell Sarah which email address you would like to have subscribed to the OPW mailing lists. You will be receiving patches at this email address, so you will need to be able to respond to emails in plain text, and possibly apply the patches. Any email address you would use for Linux kernel mailing lists is fine.
After Sarah emails you back, saying you've been added to the kernelnewbies editor's page, please:
4. Create a user home page that interns will read to learn more about you. At the bare minimum, you need to provide your nick on the #opw and #kernelnewbies channel and your email address. Anything else is optional. Here's [:SarahSharp:an example homepage].
5. Update the [:OPWIntro:OPW introduction page] with your project description, and (optionally) a picture for your project.
Sarah will email Karen and Marina to make sure you are on the following generic OPW mailing lists:
- OPW admin
Sarah will subscribe you to the following mailing lists that are specific to the kernel project within OPW: