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

Post on 12-Jul-2015

939 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related