Contributors wanted - Increasing diversity in your open source project (@k88hudson)
-
Upload
k88hudson -
Category
Technology
-
view
939 -
download
0
Transcript of Contributors wanted - Increasing diversity in your open source project (@k88hudson)
Contributors wanted
Increasing diversity in your open source project
@k88hudsonWeb engineer at Mozilla foundation
diversity === good
1 What is diversity? !
2 Why is diversity important to open source?
Identity diversity
blue pentagon
red diamond
Cognitive diversity
area = 1.7204774 × s2
convex
108°
4 sides
parallel opposite sides
perimetre = 4s
Diversity trumps ability”
“
Cognitive DiversityDiverse perspectives: ways of representing situations and problems
Diverse interpretations: ways of categorizing or partitioning perspectives
Diverse heuristics: ways of generating solutions to problems
Diverse predictive models: ways of inferring cause and effect
Diverse groups – particularly cognitively diverse groups –
outperform experienced ones
disjunctive tasks !
complex, multi-faceted tasks
git -b !
npm install all the things
Diversity of experience
Part 2 Implementation
Code contributors
Split up your code base into modules, improve docs piece by piece
Diversity is valuable, also
hard.
Consider acode of conduct
Help resolve conflictswhen/if they occur
!
Help people feel safe
github.com/Bantik/contributor_covenant
Let’s broaden our definition of “contributor”
“The only people who matter to making great software are people who
speak English and write code”
!
— no one ever
User research
Does my software do what I think it
does?
Write tests as you implement new features/discover problem areas
DESIGN
HOW DO YOU EXPECT USERS TO BEHAVE?
RE-TEST EXPECTATIONS
(fail)
IMPLEMENT
(pass)
1. User stories/tasksUsers should be able to easily determine which events are free and which need registration
2. ScenariosSay you are trying to create an event for your javascript meet up in Toronto. Where do you go to create an event?
3. ExpectationsWhat will happen when you click on the ‘Register’ button?
What do tests look like?
Example: error states1. Missing authentication
2. Requests time out
3. Missing (but expected) commands
4. Tag does not exist
5. Improper formatting of bower.json
6. Improper dependency resolution
Help contributors choose the right
target audience for tests that will be relevant for your
project.
PRO TIP
You only need around 5 sessions to get a lot out of user testing
PRO TIP
Results may be unexpected.
(in a good way)
Multimedialokalisierung
Localization
Localization
Continuous localization
• Detect Accept-Language header
• Implement routing/UI/user sessions to support custom language settings
• Add gettext() or other implementation to templating system
• Upload strings in JSON files to continuous localization platform
Host: “2014.jsconf.us” Accept-Language:"en-US,en;q=0.5"
GET 2014.jsconf.us
Accept-language
GET /:locale? GET /:locale?/tools
webmaker.org/en-US/tools webmaker.org/tools
Routing
Gettext.filter('gettext', ['localize', function (localize) { return function (input) { return localize.getString(input); }; } ]);
<p>{{ ‘Hello JSConf’ | gettext }}</p>
fr/webmaker.json
Transifex
Libraries can be localized too
1057
Instead of thinking about your core team as mentors, ask contributors to teach you what you don’t know.
Determine your blind spots, make
specific asks
localization accessibility performance copy writing
docs testing user research animated gifs
Remember!1. Diverse groups – particularly cognitively
diverse groups – outperform experienced ones
2. Diversity is most effective for disjunctive and complex problem solving
3. Modularize and help new code contributors feel safe
4. Identify team weaknesses, broaden definition of “contributor”
Making good software is
fucking hard. Cognitive diversity is way too valuable for us not to care.
Thanks!@k88hudson
If you want to find the book I mentioned: Page, Scott. The Difference: How the Power of Diversity
Creates Better Groups, Firms, Schools, and Societies