scikit learn: développement communautaire

23
Scikit Learn eveloppement communautaire Ga¨ el Varoquaux

Upload: gaelvaroquaux

Post on 21-Jun-2015

1.649 views

Category:

Technology


3 download

DESCRIPTION

In French: Talk given in French at the Loops network of scientific computing development and at the pyconfr conference. Subject: rules of thumb for community-driven development

TRANSCRIPT

Page 1: Scikit Learn: Développement communautaire

Scikit LearnDeveloppement communautaire

Gael Varoquaux —

Page 2: Scikit Learn: Développement communautaire

John Hunter 1968–2012 matplotlibhttp://numfocus.org/johnhunter

Page 3: Scikit Learn: Développement communautaire

Scikit LearnDeveloppement communautaire

Gael Varoquaux —

Page 4: Scikit Learn: Développement communautaire

Mon gros succes logiciel libre – 1er essai

Package XXX2007: inclut dans Debian2008: .1% des utilisateurs l’installent2012: .5% des utilisateurs (scilab = 1.2%)

Nombre de commits

“““Hey Gael, I take it you’re too busy. That’s okay, Ispent a day trying to install XXX and I think I’ll suc-ceed myself. Next time though please don’t ignoremy emails, I really don’t like it. You can say, ‘sorry,I have no time to help you.’ Just don’t ignore.”””

Page 5: Scikit Learn: Développement communautaire

Mon gros succes logiciel libre – 1er essai

Package XXX2007: inclut dans Debian2008: .1% des utilisateurs l’installent2012: .5% des utilisateurs (scilab = 1.2%)

Nombre de commits

“““Hey Gael, I take it you’re too busy. That’s okay, Ispent a day trying to install XXX and I think I’ll suc-ceed myself. Next time though please don’t ignoremy emails, I really don’t like it. You can say, ‘sorry,I have no time to help you.’ Just don’t ignore.”””

Page 6: Scikit Learn: Développement communautaire

Mon gros succes logiciel libre – 1er essai

Package XXX2007: inclut dans Debian2008: .1% des utilisateurs l’installent2012: .5% des utilisateurs (scilab = 1.2%)

Nombre de commits

“““Hey Gael, I take it you’re too busy. That’s okay, Ispent a day trying to install XXX and I think I’ll suc-ceed myself. Next time though please don’t ignoremy emails, I really don’t like it. You can say, ‘sorry,I have no time to help you.’ Just don’t ignore.”””

Page 7: Scikit Learn: Développement communautaire

La tragedie des logiciels libres

Source: Fernando Perez

Page 8: Scikit Learn: Développement communautaire

Mon gros succes logiciel libre – 2eme essai

Scikit-learn2006-2009: cree par D. Cournapeau, deperit2010: reprise, release 0.12012, mars: release 0.11 avec 31 contributeurs2012, aout: release 0.12 avec 48 contributeurs

Nombre de commits

130 email/semaine sur la mailing list31 000 lignes de code Python ( 1/3 Django)320 forks et 744 followers sur github26 000 lignes de documentation6 000 visiteurs uniques/mois sur la page web

Page 9: Scikit Learn: Développement communautaire

Notre gros succes logiciel libre

Scikit-learn2006-2009: cree par D. Cournapeau, deperit2010: reprise, release 0.12012, mars: release 0.11 avec 31 contributeurs2012, aout: release 0.12 avec 48 contributeurs

Nombre de commits

130 email/semaine sur la mailing list31 000 lignes de code Python ( 1/3 Django)320 forks et 744 followers sur github26 000 lignes de documentation6 000 visiteurs uniques/mois sur la page web

Page 10: Scikit Learn: Développement communautaire

Notre gros succes logiciel libre

Scikit-learn2006-2009: cree par D. Cournapeau, deperit2010: reprise, release 0.12012, mars: release 0.11 avec 31 contributeurs2012, aout: release 0.12 avec 48 contributeurs

Nombre de commits

130 email/semaine sur la mailing list31 000 lignes de code Python ( 1/3 Django)320 forks et 744 followers sur github26 000 lignes de documentation6 000 visiteurs uniques/mois sur la page web

Page 11: Scikit Learn: Développement communautaire

Notre gros succes logiciel libre

Scikit-learn2006-2009: cree par D. Cournapeau, deperit2010: reprise, release 0.12012, mars: release 0.11 avec 31 contributeurs2012, aout: release 0.12 avec 48 contributeurs

Nombre de commits

130 email/semaine sur la mailing list31 000 lignes de code Python ( 1/3 Django)320 forks et 744 followers sur github26 000 lignes de documentation6 000 visiteurs uniques/mois sur la page web

Page 12: Scikit Learn: Développement communautaire

10 lecons durementapprises

Page 13: Scikit Learn: Développement communautaire

1 Connaıtre son marche

A marche niche, petit projet

Ne pas viser de public qui ne peutse transformer en contributeur

Connaıtre ses concurrents

Savoir ne pas creer de projetPourra-t-on avoir un impact?

Page 14: Scikit Learn: Développement communautaire

2 Utiliser Github

Github = outil a la mode

Mener toutes les discussions en ligne

Le systeme de fork/pullrequest met tous lemonde a egalite

Critique de code sur les‘pull requests’

Page 15: Scikit Learn: Développement communautaire

3 Ne pas s’approprier l’identite du projet

Ne pas mettre son nom trop en avant

Ne pas mettre son employeur trop en avant(attention a l’utilisation des forges)

Pousser d’autres personnes a communiquer au nomdu groupe (conferences)

Page 16: Scikit Learn: Développement communautaire

4 Cibler la qualite

Apporter une valeur ajoutee par rapport au code perso

Documentation, exemples

Efficacite / generalite du code

Tests: base de code modifiable en toute confiance

Conventions de style de code

Theorie de la fenetre brisee:le bon code amene du bon code

Page 17: Scikit Learn: Développement communautaire

5 Release regulieres

Les contributeurs donnent leur code pour qu’il arrivechez les utilisateurs

Effet d’adrenaline de la release (rendre sa copie)

Creer du buzz

Page 18: Scikit Learn: Développement communautaire

6 Controler la technicite

Choisir les competences: la population des expertsen C++ et en optimisation convex est petite

Important pour cibler les contours du projet

Demarche d’ingenieur:equilibrer complexiteavec gain en fonctionnalite

Page 19: Scikit Learn: Développement communautaire

7 Entretenir une bonne culture de projet

Attitude positive

Pragmatisme et impartialite dans la prise de decisionPrendre une solution autre que la sienne peut etrebenefique socialement

Valoriser les autres- Attribuer toujours tous les fichiers- Confier des responsabilites (release manager)- Donner les droits de commit

Page 20: Scikit Learn: Développement communautaire

8 Organiser des sprints

Lignes de code produites

Page 21: Scikit Learn: Développement communautaire

9 Investir dans le recrutement

Cibler sa population

Aider les contributeurs motives

Stages / Google summer of code,mais encadre

Page 22: Scikit Learn: Développement communautaire

10 Communiquer

Blog, twitter

Conference et articleen etant inclusif

Page 23: Scikit Learn: Développement communautaire

1 Connaıtre son marche2 Utiliser Github3 Ne pas s’approprier l’identite du projet4 Cibler la qualite5 Release regulieres6 Controler la technicite7 Entretenir une bonne culture de projet8 Organiser des sprints9 Investir dans le recrutement

10 Communiquer

@GaelVaroquaux