Towards Better Mentorship: The Small Group Approach
One of the more well-known challenges in the Django community is the desire for more mentorship. We can see it across our community:
- People post to the forum asking for help finding a mentor.
- There’s a forum category dedicated to mentorship
- DjangoCon offers speaker mentorship for DjangoCon Africa, Europe, and US.
- Djangonaut Space, a contributor onboarding program, was created.
- We’ve had several talks on needing help to contribute to Django.
- There’s even a Django Chat podcast episode on the topic.
Inexperienced people want to find support from more experienced people, and more experienced people want to have more help with their work.
This feels like it should be an easy problem to solve. We have both sides of the problem reaching out to the other, asking for help. It feels like we could easily raise a bridge between the two. However, the challenges of open source get in our way.
- Open-source contributions are volunteer efforts.
- There’s no guarantee that a person will stick around.
- Each inexperienced person has their own baseline level of knowledge and requires specialized help.
- There are numerous people seeking mentorship.
- Experienced people likely have allocated all of their time to existing OSS work.
On the mentor’s side, we’re overextended and now asking for more. On the mentee’s side, there’s an absolute onslaught of people asking for guidance.
This is a hard problem.
But that doesn’t mean we shouldn’t try to solve it.
Mentoring through small group meetups
This isn’t something we can solve all at once. It’s going to require a cultural change in how the Django community does mentorship and governance across the ecosystem. That sounds daunting, but it’s something we can do. One option available to us is to create more niche meetups in our community.
Existing examples in our community
The accessibility team meets monthly. The Django Debug Toolbar maintainers have been meeting every six months for the past few years. In the last meeting, we had five people attend. Djangonaut Space was created with small group meetups at its core. Jeff Triplett has been hosting office hours, in which the discussion is quite often Django-centric. I’ve been there when prospective contributors are asking for help and advice. As a part of Djangonaut Space, I’ve been holding Cosmic Contributor round-table discussions for the past month. It exists solely to provide support and accountability to those who want to contribute to Django.
Why to use small group meetups
These are low-effort1, high-impact ways to provide coaching and accountability to people who are interested in it. Over time, these connections form the basis of mentorship as sponsorship begins to occur2. The next generation of contributors who go through this form of mentorship will now know what it exactly means to be a mentor in our community. They’ll have a clearer idea of what to do and how to do it. This is how mentorship can help us cultivate a more sustainable environment.
The small act of blocking off time to speak with others and spending the effort preparing some initial conversation topics can be incredibly powerful. Many people feel self-conscious or experience imposter syndrome in our industry. This can be due to a variety of reasons. Maybe they don’t feel well-educated. Or they don’t see people who look like them. Or maybe they aren’t comfortable with English. Or maybe they’ve just been doing this for fun and are wondering why anyone would take them seriously when they can’t even be paid for their work.
Blocking off time to ask people to share their experiences and solicit their active participation helps show them they are welcome. That they have something valuable to provide. That we want them to exist in our community.
I fully acknowledge this is hard, but it’s probably worth it to you. Please consider the following questions:
- Do you need help on your project?
- Do you appreciate opportunities for personal growth?
- Do you find your involvements bring more satisfaction when it’s with people you have an emotional attachment to?
- Have you learned something significant without feeling uncomfortable?
- Would it be helpful to you to be better able to communicate and influence others?
Who should start mentoring
I believe you’re capable of mentoring others and want you to start. You don’t need to know the most to lead. You don’t need to know everything to mentor. If you are comfortable working on an OSS project, you can start mentoring! If you’re new to OSS and want to help, please start by becoming a regular contributor3.
For the folks who have a full OSS plate, this doesn’t mean I’m asking you to find more time to spend on mentoring. That’s not sustainable. What I’d like to see is people scale back their existing OSS technical involvements for this. Or simply understand that these mentorship actions are indeed technical contributions. Whatever mental gymnastics we need to do to shift some of our time spent on 1’s and 0’s to instead be spent on supporting humans.
To spend time on mentorship, we will have to do less in other places. This will mean existing processes will slow. I believe that’s an acceptable trade-off to grow our contributor base.
How you can start mentoring
This is going to depend on your experience, personality, and position. I’ll categorize them into two buckets: project maintainers and regular contributors.
For Project Maintainers
If you’re an OSS project maintainer, a straightforward place is hosting biannual meetings for contributors for an OSS project.
- Schedule a meeting at least a few weeks out.
- Email, DM, or mention repeat contributors from the past year, letting them know.
- If you’re open to the public, post about it on the forum, disc, and social media with the #Django hashtag.
For Regular Contributors
If you’re a regular contributor4 to a project and there isn’t a regular meeting, reach out to the maintainer(s) and ask if they would be alright with you starting one. If you’re not a regular contributor, start there by becoming one.
While you’re contributing, pick a regular time to host meetings. It should be at least monthly, with a week’s notice. Announce it on the forum, Discord, and social media with the #Django hashtag. Then be consistent with both your contributions and hosting meetings.
Running an Effective Meeting
Before any of these meetings start, you should be ready to greet each person who joins. Ask what they’re joining for; this is meant to be a productive meeting, after all. You should have two or three questions ready to go as conversation starters. You can base these around what you’re working on specifically or make it more strategic.
As discussions flow, keep track of what things people say they should do or want to do. When the meeting gets closer to wrapping up, go over those things with who said them. You can call them action items, but maybe be playful about it. Nothing is being promised, and we don’t want people feeling guilty. We want them to feel empowered and encouraged to participate.
Whom to mentor
One of the challenges with offering something as valuable as coaching for free is that many people want it. Plus, because there is no cost, people are not personally invested and may not properly value your mentorship. Communities can structure themselves in a way that improves the likelihood of supporting people who will be able to stick around.
Invite-only communities
Some communities will be invite-only. The Django Debug Toolbar biannual meeting is such a community. People who have been contributing significantly to the project are asked if they want to join. They have already proven they are a good investment.
Application communities
Other organizations may have an application and/or interview process. Djangonaut Space and Google Summer of Code use this pattern. Prospective mentees must complete an application of sorts, and those applications are then reviewed by community members. A final cohort of people are selected for the program. This works well for structured, rigorous mentorship. They are also better at supporting people who don’t know how to contribute, which prevents them from contributing, which means they can never prove they are deserving of support.
Seeding with known contributors
Another way to find people to mentor is to select from existing groups of contributors. Djangonaut Space Stars5 have spent eight weeks on an open-source project. There are currently 50 of them. They have shown they want to contribute to open source and have gotten intense exposure to our positive, people-focused community. The community could continue to invest in them by making them aware of opportunities.
If a larger group of people is desired, there’s also the DSF individual membership. These are people who have contributed significantly to the Django community or have been contributing over a long time. Each person’s nomination was reviewed and approved by the DSF Board.
Open to the public communities
If none of those are appealing, and you would prefer to open up your mentorship to the public, that’s great! But please put some boundaries on your time and involvement before starting. Consider limiting your event to one or two hours. Be prepared for how to handle people who want to dominate the conversation. Consider adding limits to how much someone can speak; that way it’s not you limiting the person, but the rules. Another possibility is to set the ground rules at the beginning of the meeting. With this, it’s clear what is acceptable and what people can expect. If this is something you’d like help with, please reach out to me! Alternatively, researching how unconference sessions are managed should help.
Where we can go with mentoring
Creating time for mentorship could be one of the keys to solving Django’s current problems. If we practice consistent and intentional mentorship, we can develop a more diverse contributor base. We can improve our understanding of our existing code bases. We would have more people to review PRs and triage tickets. Furthermore, we’d have more people to organize conferences and staff working groups. And perhaps best of all, it would start spinning the flywheel of supporting and mentoring new contributors.
If you have thoughts, comments or questions, please let me know! You can find me on the Fediverse, Django Discord server or via email.
-
Low effort in comparison to organizing a conference, with perhaps the exception of organizing Djangonaut Space. ↩
-
Sponsorship here means recommending someone for an impactful role or duty, aligning both mentee and mentor to the success of the effort. ↩
-
I get that this is a bit of a chicken-and-egg problem, but you may need to be the change you want to see in the world. ↩
-
Regular contributor, meaning you contribute consistently enough that the maintainers know who you are. This will vary, but if you’re contributing periodically throughout the year, you’re likely a regular contributor. ↩
-
Stars are those who have completed the program. ↩