contributors wanted - increasing diversity in your open source project (@k88hudson)

58
Contributors wanted Increasing diversity in your open source project

Upload: k88hudson

Post on 12-Jul-2015

939 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Contributors wanted

Increasing diversity in your open source project

Page 2: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

@k88hudsonWeb engineer at Mozilla foundation

Page 3: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

diversity === good

Page 4: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

1 What is diversity? !

2 Why is diversity important to open source?

Page 5: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Identity diversity

Page 6: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

blue pentagon

red diamond

Page 7: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Cognitive diversity

Page 8: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

area = 1.7204774 × s2

convex

108°

4 sides

parallel opposite sides

perimetre = 4s

Page 9: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Diversity trumps ability”

Page 10: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

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

Page 11: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Diverse groups – particularly cognitively diverse groups –

outperform experienced ones

Page 12: Contributors wanted - Increasing diversity in your open source project (@k88hudson)
Page 13: Contributors wanted - Increasing diversity in your open source project (@k88hudson)
Page 14: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

disjunctive tasks !

complex, multi-faceted tasks

Page 15: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

git -b !

npm install all the things

Page 16: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Diversity of experience

Page 17: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Part 2 Implementation

Page 18: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Code contributors

Page 19: Contributors wanted - Increasing diversity in your open source project (@k88hudson)
Page 20: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Split up your code base into modules, improve docs piece by piece

Page 21: Contributors wanted - Increasing diversity in your open source project (@k88hudson)
Page 22: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Diversity is valuable, also

hard.

Page 23: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Consider acode of conduct

Page 24: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Help resolve conflictswhen/if they occur

!

Help people feel safe

Page 25: Contributors wanted - Increasing diversity in your open source project (@k88hudson)
Page 26: Contributors wanted - Increasing diversity in your open source project (@k88hudson)
Page 27: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

github.com/Bantik/contributor_covenant

Page 28: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Let’s broaden our definition of “contributor”

Page 29: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

“The only people who matter to making great software are people who

speak English and write code”

!

— no one ever

Page 30: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

User research

Page 31: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Does my software do what I think it

does?

Page 32: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Write tests as you implement new features/discover problem areas

Page 33: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

DESIGN

HOW DO YOU EXPECT USERS TO BEHAVE?

RE-TEST EXPECTATIONS

(fail)

IMPLEMENT

(pass)

Page 34: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

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?

Page 35: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

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

Page 36: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Help contributors choose the right

target audience for tests that will be relevant for your

project.

PRO TIP

Page 37: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

You only need around 5 sessions to get a lot out of user testing

PRO TIP

Page 38: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Results may be unexpected.

(in a good way)

Page 39: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Multimedialokalisierung

Page 40: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Localization

Page 41: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Localization

Page 42: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

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

Page 43: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Host: “2014.jsconf.us” Accept-Language:"en-US,en;q=0.5"

GET 2014.jsconf.us

Accept-language

Page 44: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

GET /:locale? GET /:locale?/tools

webmaker.org/en-US/tools webmaker.org/tools

Routing

Page 45: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Gettext.filter('gettext', ['localize', function (localize) { return function (input) { return localize.getString(input); }; } ]);

<p>{{ ‘Hello JSConf’ | gettext }}</p>

Page 46: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

fr/webmaker.json

Page 47: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Transifex

Page 48: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Libraries can be localized too

Page 49: Contributors wanted - Increasing diversity in your open source project (@k88hudson)
Page 50: Contributors wanted - Increasing diversity in your open source project (@k88hudson)
Page 51: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

1057

Page 52: Contributors wanted - Increasing diversity in your open source project (@k88hudson)
Page 53: Contributors wanted - Increasing diversity in your open source project (@k88hudson)
Page 54: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Instead of thinking about your core team as mentors, ask contributors to teach you what you don’t know.

Page 55: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Determine your blind spots, make

specific asks

localization accessibility performance copy writing

docs testing user research animated gifs

Page 56: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

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”

Page 57: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

Making good software is

fucking hard. Cognitive diversity is way too valuable for us not to care.

Page 58: Contributors wanted - Increasing diversity in your open source project (@k88hudson)

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