Comment accroître le nombre de contributions externes ?
Objectifs Freins à la contribution Stratégies de management Métriques
+ 70% contributions acceptées sur PrestaShop Objectif + 70% contributions acceptées sur PrestaShop
Freins à la contribution Comment augmenter le nombre de contributions ? Comment augmenter le nombre de contributions acceptées ?
Freins à la contribution - process Comment une contribution est-elle traitée ? 1 2 Un utilisateur fait une copie du projet sur Github Il réalise les modifications voulues: corrections ou nouvelle fonctionnalité Il effectue un ou plusieurs commits (modifications liées à un message) 3 La contribution est disponible dans la prochaine version publique La contribution est acceptée et intégrée dans le code de PrestaShop Un membre de PS vérifie si c'est acceptable: - la contribution respecte-t-elle les standards définis ? - la contribution a-t-elle un intérêt ? 5 4
Freins à la contribution - process Comment une contribution est-elle traitée ? 1 2 Un utilisateur fait une copie du projet sur Github Il réalise les modifications voulues: corrections ou nouvelle fonctionnalité Il effectue un ou plusieurs commits (modifications liées à un message) 3 La contribution est disponible dans la prochaine version publique La contribution est acceptée et intégrée dans le code de PrestaShop Un membre de PS vérifie si c'est acceptable: - la contribution respecte-t-elle les standards définis ? - la contribution a-t-elle un intérêt ? 5 4
Contribution à PrestaShop - "Forker" 5 étapes Forker* le projet sur Github Récupérer le projet Faire/rappatrier les modifications Effectuer 1 commit Effectuer 1 demande d'ajout * Récupérer une copie versionnée par Github sur son propre compte
Contribution à PrestaShop - "Récupérer" En ligne de commande: "git clone https://github.com/{user}/PrestaShop" En utilisant l'application Github Desktop Windows/Mac
Freins à la contribution - process Comment une contribution est-elle traitée ? 1 2 Un utilisateur fait une copie du projet sur Github Il réalise les modifications voulues: corrections ou nouvelle fonctionnalité Il effectue un ou plusieurs commits (modifications liées à un message) 3 La contribution est disponible dans la prochaine version publique La contribution est acceptée et intégrée dans le code de PrestaShop Un membre de PS vérifie si c'est acceptable: - la contribution respecte-t-elle les standards définis ? - la contribution a-t-elle un intérêt ? 5 4
Contribution à PrestaShop - "La contrib" Si c'est une correction de bug, il faut sélectionner la bonne branche de maintenance: - 1.6.1.x => legacy - 1.7.0.x => version à venir Si c'est une nouvelle fonctionnalité, il faut sélectionner la branche "develop" (*) * La maintenance des modules fonctionne différemment.
Et ensuite ? L'utilisateur contribue. Il code un correctif Il code une nouvelle fonctionnalité Il code une amélioration de fonctionnalité
Freins à la contribution - process Comment une contribution est-elle traitée ? 1 2 Un utilisateur fait une copie du projet sur Github Il réalise les modifications voulues: corrections ou nouvelle fonctionnalité Il effectue un ou plusieurs commits (modifications liées à un message) 3 La contribution est disponible dans la prochaine version publique La contribution est acceptée et intégrée dans le code de PrestaShop Un membre de PS vérifie si c'est acceptable: - la contribution respecte-t-elle les standards définis ? - la contribution a-t-elle un intérêt ? 5 4
Contribution à PrestaShop - "Commiter" Une convention de nommage* et de versionnement "Fixed bug" => "[-] BO: fixed undefined product value" Version majeure, mineure, de maintenance 1.7 . 0 . 0 * http://doc.prestashop.com/display/PS16/How+to+write+a+commit+message
Contribution à PrestaShop - "Pusher" Choisir la branche concernée côté utilisateur Choisir la branche concernée côté PS Ecrire un message pertinent
Contribution à PrestaShop - "Pusher" Titre de "pull request" clair Une description complète Passe les tests, est "acceptable" (Fais une seule chose) Respecte la convention de nommage des commits
Freins à la contribution - process Comment une contribution est-elle traitée ? 1 2 Un utilisateur fait une copie du projet sur Github Il réalise les modifications voulues: corrections ou nouvelle fonctionnalité Il effectue un ou plusieurs commits (modifications liées à un message) 3 La contribution est disponible dans la prochaine version publique La contribution est acceptée et intégrée dans le code de PrestaShop Un membre de PS vérifie si c'est acceptable: - la contribution respecte-t-elle les standards définis ? - la contribution a-t-elle un intérêt ? 5 4
Freins à la contribution - "Pusher" Titre de "pull request" clair Une description complète Passe les tests, est "acceptable" (Fais une seule chose) Respecte la convention de nommage des commits
Freins à la contribution - "Pusher" Valider une contribution prend énormément de temps. Il peut se passer des jours, des semaines, des mois avant qu'une contribution soit traitée. Jusqu'à la sortie de la beta, plus aucune contribution ne sera mergée.
Freins à la contribution - process Comment une contribution est-elle traitée ? 1 2 Un utilisateur fait une copie du projet sur Github Il réalise les modifications voulues: corrections ou nouvelle fonctionnalité Il effectue un ou plusieurs commits (modifications liées à un message) 3 La contribution est disponible dans la prochaine version publique La contribution est acceptée et intégrée dans le code de PrestaShop Un membre de PS vérifie si c'est acceptable: - la contribution respecte-t-elle les standards définis ? - la contribution a-t-elle un intérêt ? 5 4
Freins à la contribution - "Merge Party" Les contributions validées sont ajoutées au code de PrestaShop (*); Le code est accessible sur Github mais pas sur le site en téléchargement; La communauté doit attendre que l'équipe met à disposition une nouvelle release; * La maintenance des modules fonctionne différemment.
Freins à la contribution - process Comment une contribution est-elle traitée ? 1 2 Un utilisateur fait une copie du projet sur Github Il réalise les modifications voulues: corrections ou nouvelle fonctionnalité Il effectue un ou plusieurs commits (modifications liées à un message) 3 La contribution est disponible dans la prochaine version publique La contribution est acceptée et intégrée dans le code de PrestaShop Un membre de PS vérifie si c'est acceptable: - la contribution respecte-t-elle les standards définis ? - la contribution a-t-elle un intérêt ? 5 4
Freins à la contribution - "Mise à jour " Les contributions sont enfin disponibles Peu d'e-commerçants mettent à jour leur site Les mises à jour peuvent être difficiles à effectuer
Stratégies de management "Automatiser le maximum, déléguer ce qui n'est pas essentiel"
Stratégies de management - Hook Github Automatiser certains contrôles -> Commit de message pertinent -> Informer selon le contenu d'une issue reportée Automatiser certaines réponses, aider l'utilisateur -> Éviter aux devs des tâches laborieuses et répétitives -> Donner les commandes exactes à executer quand c'est possible, toujours donner le lien vers la doc -> Si réponse au bot, informer l'équipe /!\
Stratégies de management - Hook Github Automatiser certains contrôles -> Informer que personne ne passera tant que ce n'est pas acceptable (cf règles de validation précédentes) -> Avoir accès à un panel pour trier au mieux les issues (les plus anciennes et mergeables d'abord, définir une/des priorités) Automatiser certaines réponses, aider l'utilisateur -> Remercier pour chaque contribution apportée
Stratégies de management - Hook Github Automatiser certains contrôles (modules) -> Améliorer le validateur déjà à disposition et en faire un validateur/hook "Github" -> Améliorer la gestion des modules pour qu'il ne soit plus possible de rendre la boutique indisponible en cas de bug sur un module Automatiser certaines réponses, aider l'utilisateur -> Informer des règles de contribution en cas d'erreur (mauvaise branche, non respect des conventions, des standards) -> Donner automatiquement des commandes à faire passer, et/ou des liens vers la documentation
Stratégies de management - Hook Github
Stratégies de management - Modules Rendre impossible l'inaccessibilité de la boutique en cas de bug d'un module Rendre les partenaires responsables de la maintenance de leurs modules (~150 modules) Améliorer le validateur de modules et les contrôles Github, outiller et mieux former les partenaires
Stratégies de management - Merge party Remettre en place le principe "malgré les deadlines" C'est la Communauté qui rend unique PrestaShop S'engager sur une release toutes les 2 semaines (contribution est acceptée = disponible au plus tard dans les 2 semaines)