SlideShare a Scribd company logo
1 of 33
Download to read offline
Herding Cats with Django:
technical tools &
social incentives
to encourage participation
Slides CC-BY-NC-SA Sage Sharp <sharp@otter.technology>
Cat and cowboy boots CC-BY-NC-SA 2.0 Nicole Hoffmann
Sage Sharp
pronouns:
they/them
A small confession...
CC-BY kellinahandbasket
●
3 month internship
●
Supports diversity in FOSS
●
Remote 1:1 mentorship
●
$5,500 internship stipend
●
$500 conference travel stipend
Outreachy organizer, Outreachy Linux kernel interns, and Outreachy mentor
at Open Source Summit 2017
CC-BY-NC-SA Sage Sharp <sharp@otter.technology>
●
5 Outreachy organizers
●
2 part-time staff
●
20 FOSS communities
●
60 mentors
●
?? applicants ??
Outreachy Mozilla interns at FOSDEM 2017
CC-BY-NC-SA Sage Sharp <sharp@otter.technology>
1,200 applicants??
CC-BY Tracie Hall
●
Complex application process:
– Fill out initial application
– Pick a project
– Interact with mentor
– Make a contribution
– Submit final application
Outreachy Debian intern with Google Summer of Code Debian intern
at Open Source Bridge Conference 2016
CC-BY-NC-SA Sage Sharp <sharp@otter.technology>
How do we get applicants moving
in the right direction?
CC-BY Sayoko Shimoyama
+ social incentives
CC-BY Sayoko Shimoyama
Identify Personas
Identify Purr-sonas
Applicant - Trisha Gupta
Needs:
●
Get an internship
●
Find a job
Emotions:
●
Nervous, Imposter Syndrome
CC-BY Jase Curtis
Identify Purr-sonas
Mentor - Harry Williams
Needs:
●
Support diversity in FOSS
●
Connect with enthusiastic intern
Emotions:
●
Excitement, sense of purpose
CC-BY Zeev Barkan
Identify Purr-sonas
Organizer - Sage Sharp
Needs:
●
Prevent mentor burnout
●
Keep everyone on track
Emotions:
●
Overwhelmed
CC-BY
Jessica Fiess-Hill
Scale of Purr-ticipants
CC-BY Jase Curtis CC-BY Zeev Barkan
CC-BY
Jessica Fiess-Hill
Conversion Funnel
Step 1: Understand
applicant's needs
●
Many worries about
picking a project
●
"Do you have Python
projects?"
CC-BY Stefano Mortellaro
Step 1: Understand
applicant's needs
●
Many worries about
picking a project
●
"Do you have Python
projects?"
●
"Do I need to be an
expert in Python?"
CC-BY Stefano Mortellaro
Step 2: Understand
applicant's pain points
●
Project listings on
20 different wikis
●
Different formats
●
No skills listed
●
Required vs optional?
●
Imposter syndrome
CC-0 Pete
Step 3: Look for the helpers
●
Mentors know what
skills are required
vs optional
●
Some mentors can
teach applicants skills
●
Mentors know how much
experience applicants need
CC-BY Stephen Wheeler
Step 4: Identify social incentives
for mentors to meet those needs
●
Mentors want to
find enthusiastic interns
●
We need them to
list project skills
●
Can't select an intern
until you add your project
CC-BY peardg
Step 5: Create tools to meet needs
Model: class ProjectSkill
skill = models.CharField(
max_length=SENTENCE_LENGTH,
verbose_name="Skill description",
help_text="What is one skill an the applicant needs
to have in order to contribute to this internship
project, or what skill will they need to be willing to
learn?")
Model: class ProjectSkill
REQUIRED_CHOICES = (
(BONUS, "It would be nice if applicants had
this skill, but it will not impact intern selection"),
(OPTIONAL, "Mentors will prefer applicants
who have this skill"),
(STRONG, "Mentors will only accept
applicants who have this skill as an intern"))
Model: class ProjectSkill
required = models.CharField(
verbose_name="Skill impact on intern selection",
help_text="Is this skill a hard requirement, a
preference, or an optional bonus? Choose this carefully!
Many Outreachy applicants choose not to apply for an
internship project unless they meet 100% of the project skill
criteria.",
choices=REQUIRED_CHOICES, ... )
Model: class ProjectSkill
EXPERIENCE_CHOICES = (
(TEACH_YOU, 'Mentors are willing to teach this skill to applicants with
no experience at all'),
(CONCEPTS, 'Applicants should have read about the skill'),
(EXPERIMENTATION, 'Applicants should have used this skill in class or
personal projects'),
(FAMILIAR, 'Applicants should be able to expand on their skills with the
help of mentors'),
(CHALLENGE, 'Applicants who are experienced in this skill will have
the chance to expand it further'), )
Template: Mentor Project Entry
view.py - class-based view
class
ProjectSkillsEditPage(BaseProjectEditPage):
template_name_suffix = '_skills_form'
form_class = inlineformset_factory(Project,
ProjectSkill, fields='__all__') ...
Inline formset
urls.py
url(r'^communities/cfp/
(?P<community_slug>[^/]+)/project/
(?P<project_slug>[^/]+)/skills/$',
views.ProjectSkillsEditPage.as_view(),
name='project-skills-edit'),
view.py: checking permissions
class BaseProjectEditPage(LoginRequiredMixin, ComradeRequiredMixin,
UpdateView):
def get_object(self):
participating_round = RoundPage.objects.latest('internstarts')
project = get_object_or_404(Project, slug=self.kwargs['project_slug'],
project_round__community__slug=self.kwargs['community_slug'],
project_round__participating_round=participating_round)
if not project.is_submitter(self.request.user):
raise PermissionDenied("You are not an approved mentor for this
project")
return project
Tool Creation Pitfalls
●
Pull to "problem fix" first
●
Misidentify root problem
●
Don't meet people's needs
●
Add even more work
●
Disincentivise participation
CC-BY Jonas Löwgren
Empathy + incentives + Tools = Win!
●
Understand needs
●
Understand pain points
●
Look for the helpers
●
Create social incentive
●
Build tools to motivate
CC-BY Tiomax80
Help Outreachy out!
●
https://github.com/sagesharp/outreachy/
– Translate the Outreachy tweets and posters
●
https://github.com/sagesharp/outreachy-django-wagtail/
– labels: "help wanted" or "newcomers welcome"
– Need CSS and template help!
– Mentors declare languages they speak (without having 2MB
list of all languages in HTML)
Thanks!
Sage Sharp @_sagesharp_
Cats that webchick is herding
CC-BY KathleenMurtagh

More Related Content

Similar to Herding cats with django

Graduation project 63232
Graduation project 63232Graduation project 63232
Graduation project 63232
techprojects
 
SharePointIQ - SharePoint 2013 Developer Corporate Training v2
SharePointIQ - SharePoint 2013 Developer  Corporate Training v2SharePointIQ - SharePoint 2013 Developer  Corporate Training v2
SharePointIQ - SharePoint 2013 Developer Corporate Training v2
SharePoint Training in Noida
 
MANAGEMENT SCIENCE DEPARTMENTMIS440 MANAGEMENT SUPPO.docx
MANAGEMENT SCIENCE DEPARTMENTMIS440 MANAGEMENT SUPPO.docxMANAGEMENT SCIENCE DEPARTMENTMIS440 MANAGEMENT SUPPO.docx
MANAGEMENT SCIENCE DEPARTMENTMIS440 MANAGEMENT SUPPO.docx
infantsuk
 
2013 online communications_blog_11_ict
2013 online communications_blog_11_ict2013 online communications_blog_11_ict
2013 online communications_blog_11_ict
hccit
 

Similar to Herding cats with django (20)

BeMyApp - Incubator presentation
BeMyApp - Incubator presentation BeMyApp - Incubator presentation
BeMyApp - Incubator presentation
 
Finding the Perfect Fit - How to Hire Top Python Developers for Your Company.pdf
Finding the Perfect Fit - How to Hire Top Python Developers for Your Company.pdfFinding the Perfect Fit - How to Hire Top Python Developers for Your Company.pdf
Finding the Perfect Fit - How to Hire Top Python Developers for Your Company.pdf
 
Data-X-v3.1
Data-X-v3.1Data-X-v3.1
Data-X-v3.1
 
Cooperation Menu for Universities and Researchers in Latvia | Accenture
Cooperation Menu for Universities and Researchers in Latvia | AccentureCooperation Menu for Universities and Researchers in Latvia | Accenture
Cooperation Menu for Universities and Researchers in Latvia | Accenture
 
Nlp workshop-share
Nlp workshop-shareNlp workshop-share
Nlp workshop-share
 
Resume
ResumeResume
Resume
 
Resume
ResumeResume
Resume
 
Graduation project 63232
Graduation project 63232Graduation project 63232
Graduation project 63232
 
MoodleMoot Masterclass - Networked Capacity Building #mootau13
MoodleMoot Masterclass - Networked Capacity Building #mootau13MoodleMoot Masterclass - Networked Capacity Building #mootau13
MoodleMoot Masterclass - Networked Capacity Building #mootau13
 
SharePointIQ - SharePoint 2013 Developer Corporate Training v2
SharePointIQ - SharePoint 2013 Developer  Corporate Training v2SharePointIQ - SharePoint 2013 Developer  Corporate Training v2
SharePointIQ - SharePoint 2013 Developer Corporate Training v2
 
Educational App Development
Educational App DevelopmentEducational App Development
Educational App Development
 
Keeping up with Tech
Keeping up with Tech Keeping up with Tech
Keeping up with Tech
 
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
 
MANAGEMENT SCIENCE DEPARTMENTMIS440 MANAGEMENT SUPPO.docx
MANAGEMENT SCIENCE DEPARTMENTMIS440 MANAGEMENT SUPPO.docxMANAGEMENT SCIENCE DEPARTMENTMIS440 MANAGEMENT SUPPO.docx
MANAGEMENT SCIENCE DEPARTMENTMIS440 MANAGEMENT SUPPO.docx
 
2013 online communications_blog_11_ict
2013 online communications_blog_11_ict2013 online communications_blog_11_ict
2013 online communications_blog_11_ict
 
QC Bytes event: GHC20 Participation Tips
QC Bytes event: GHC20 Participation TipsQC Bytes event: GHC20 Participation Tips
QC Bytes event: GHC20 Participation Tips
 
Project competitions for students
Project competitions for studentsProject competitions for students
Project competitions for students
 
Sap abap course
Sap abap course Sap abap course
Sap abap course
 
Winter Projects GDSC IITK
Winter Projects GDSC IITKWinter Projects GDSC IITK
Winter Projects GDSC IITK
 
Layer Hack Launch Event
Layer Hack Launch EventLayer Hack Launch Event
Layer Hack Launch Event
 

More from Sage Sharp

Countering impostor syndrome culture
Countering impostor syndrome cultureCountering impostor syndrome culture
Countering impostor syndrome culture
Sage Sharp
 
Vampire Mice: How USB PM Impacts You
Vampire Mice: How USB PM Impacts YouVampire Mice: How USB PM Impacts You
Vampire Mice: How USB PM Impacts You
Sage Sharp
 

More from Sage Sharp (8)

Countering impostor syndrome culture
Countering impostor syndrome cultureCountering impostor syndrome culture
Countering impostor syndrome culture
 
Countering impostor syndrome culture
Countering impostor syndrome cultureCountering impostor syndrome culture
Countering impostor syndrome culture
 
Open source 101 for students
Open source 101 for studentsOpen source 101 for students
Open source 101 for students
 
Small, smaller, smallest: A Tour of the Embedded World
Small, smaller, smallest: A Tour of the Embedded WorldSmall, smaller, smallest: A Tour of the Embedded World
Small, smaller, smallest: A Tour of the Embedded World
 
Linux Kernel Introduction
Linux Kernel IntroductionLinux Kernel Introduction
Linux Kernel Introduction
 
Breaking into Open Source and Linux: A USB 3.0 Success Story
Breaking into Open Source and Linux: A USB 3.0 Success StoryBreaking into Open Source and Linux: A USB 3.0 Success Story
Breaking into Open Source and Linux: A USB 3.0 Success Story
 
Vampire Mice: How USB PM Impacts You
Vampire Mice: How USB PM Impacts YouVampire Mice: How USB PM Impacts You
Vampire Mice: How USB PM Impacts You
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 

Herding cats with django

  • 1. Herding Cats with Django: technical tools & social incentives to encourage participation Slides CC-BY-NC-SA Sage Sharp <sharp@otter.technology> Cat and cowboy boots CC-BY-NC-SA 2.0 Nicole Hoffmann Sage Sharp pronouns: they/them
  • 2. A small confession... CC-BY kellinahandbasket
  • 3. ● 3 month internship ● Supports diversity in FOSS ● Remote 1:1 mentorship ● $5,500 internship stipend ● $500 conference travel stipend Outreachy organizer, Outreachy Linux kernel interns, and Outreachy mentor at Open Source Summit 2017 CC-BY-NC-SA Sage Sharp <sharp@otter.technology>
  • 4. ● 5 Outreachy organizers ● 2 part-time staff ● 20 FOSS communities ● 60 mentors ● ?? applicants ?? Outreachy Mozilla interns at FOSDEM 2017 CC-BY-NC-SA Sage Sharp <sharp@otter.technology>
  • 6. ● Complex application process: – Fill out initial application – Pick a project – Interact with mentor – Make a contribution – Submit final application Outreachy Debian intern with Google Summer of Code Debian intern at Open Source Bridge Conference 2016 CC-BY-NC-SA Sage Sharp <sharp@otter.technology>
  • 7. How do we get applicants moving in the right direction? CC-BY Sayoko Shimoyama
  • 8. + social incentives CC-BY Sayoko Shimoyama
  • 10. Identify Purr-sonas Applicant - Trisha Gupta Needs: ● Get an internship ● Find a job Emotions: ● Nervous, Imposter Syndrome CC-BY Jase Curtis
  • 11. Identify Purr-sonas Mentor - Harry Williams Needs: ● Support diversity in FOSS ● Connect with enthusiastic intern Emotions: ● Excitement, sense of purpose CC-BY Zeev Barkan
  • 12. Identify Purr-sonas Organizer - Sage Sharp Needs: ● Prevent mentor burnout ● Keep everyone on track Emotions: ● Overwhelmed CC-BY Jessica Fiess-Hill
  • 13. Scale of Purr-ticipants CC-BY Jase Curtis CC-BY Zeev Barkan CC-BY Jessica Fiess-Hill
  • 15. Step 1: Understand applicant's needs ● Many worries about picking a project ● "Do you have Python projects?" CC-BY Stefano Mortellaro
  • 16. Step 1: Understand applicant's needs ● Many worries about picking a project ● "Do you have Python projects?" ● "Do I need to be an expert in Python?" CC-BY Stefano Mortellaro
  • 17. Step 2: Understand applicant's pain points ● Project listings on 20 different wikis ● Different formats ● No skills listed ● Required vs optional? ● Imposter syndrome CC-0 Pete
  • 18. Step 3: Look for the helpers ● Mentors know what skills are required vs optional ● Some mentors can teach applicants skills ● Mentors know how much experience applicants need CC-BY Stephen Wheeler
  • 19. Step 4: Identify social incentives for mentors to meet those needs ● Mentors want to find enthusiastic interns ● We need them to list project skills ● Can't select an intern until you add your project CC-BY peardg
  • 20. Step 5: Create tools to meet needs
  • 21. Model: class ProjectSkill skill = models.CharField( max_length=SENTENCE_LENGTH, verbose_name="Skill description", help_text="What is one skill an the applicant needs to have in order to contribute to this internship project, or what skill will they need to be willing to learn?")
  • 22. Model: class ProjectSkill REQUIRED_CHOICES = ( (BONUS, "It would be nice if applicants had this skill, but it will not impact intern selection"), (OPTIONAL, "Mentors will prefer applicants who have this skill"), (STRONG, "Mentors will only accept applicants who have this skill as an intern"))
  • 23. Model: class ProjectSkill required = models.CharField( verbose_name="Skill impact on intern selection", help_text="Is this skill a hard requirement, a preference, or an optional bonus? Choose this carefully! Many Outreachy applicants choose not to apply for an internship project unless they meet 100% of the project skill criteria.", choices=REQUIRED_CHOICES, ... )
  • 24. Model: class ProjectSkill EXPERIENCE_CHOICES = ( (TEACH_YOU, 'Mentors are willing to teach this skill to applicants with no experience at all'), (CONCEPTS, 'Applicants should have read about the skill'), (EXPERIMENTATION, 'Applicants should have used this skill in class or personal projects'), (FAMILIAR, 'Applicants should be able to expand on their skills with the help of mentors'), (CHALLENGE, 'Applicants who are experienced in this skill will have the chance to expand it further'), )
  • 26. view.py - class-based view class ProjectSkillsEditPage(BaseProjectEditPage): template_name_suffix = '_skills_form' form_class = inlineformset_factory(Project, ProjectSkill, fields='__all__') ...
  • 29. view.py: checking permissions class BaseProjectEditPage(LoginRequiredMixin, ComradeRequiredMixin, UpdateView): def get_object(self): participating_round = RoundPage.objects.latest('internstarts') project = get_object_or_404(Project, slug=self.kwargs['project_slug'], project_round__community__slug=self.kwargs['community_slug'], project_round__participating_round=participating_round) if not project.is_submitter(self.request.user): raise PermissionDenied("You are not an approved mentor for this project") return project
  • 30. Tool Creation Pitfalls ● Pull to "problem fix" first ● Misidentify root problem ● Don't meet people's needs ● Add even more work ● Disincentivise participation CC-BY Jonas Löwgren
  • 31. Empathy + incentives + Tools = Win! ● Understand needs ● Understand pain points ● Look for the helpers ● Create social incentive ● Build tools to motivate CC-BY Tiomax80
  • 32. Help Outreachy out! ● https://github.com/sagesharp/outreachy/ – Translate the Outreachy tweets and posters ● https://github.com/sagesharp/outreachy-django-wagtail/ – labels: "help wanted" or "newcomers welcome" – Need CSS and template help! – Mentors declare languages they speak (without having 2MB list of all languages in HTML)
  • 33. Thanks! Sage Sharp @_sagesharp_ Cats that webchick is herding CC-BY KathleenMurtagh