En contribuant, on apprend.

Publié le

par

Crédits Photo Kevin.

En dĂ©tournant le proverbe « en faisant, on apprend », j’ai eu envie de nous rappeler que la contribution Ă  un projet open source en gĂ©nĂ©ral et Ă  WordPress en particulier nĂ©cessite d’abord de faire.

Rassurons-nous : la contribution n’est pas réservée aux élites ou aux stars du développement : tout le monde peut et devrait choisir ce mode d’expression pour régler les difficultés ou les nouveaux challenges d’un projet.

Ça ne se commande pas !

Nous sommes irrésistiblement entraînés vers la satisfaction d’attentes que nous partageons (entièrement ou partiellement) avec le projet. Cette envie de contribuer apparaît généralement lorsque le projet présente une anomalie ou un manque dont la résolution ou le comblement lui (et donc nous) sera bénéfique.

Ça ne se rémunère pas !

Il s’agit bien d’un don, d’un apport personnel au profit du projet qui se gratifie par la reconnaissance, l’apprentissage de nouveaux savoirs, l’acquisition de nouvelles compétences et l’accumulation d’expériences inédites.

Ne vous demandez pas ce que votre pays peut faire pour vous, mais plutĂ´t ce que vous pouvez faire pour votre pays.

John F. Kennedy, 20 janvier 1961.

Je suis fier d’être un contributeur du projet open source WordPress et de constamment me poser cette question en remplaçant “pays” par “WordPress” !

WordPress Core.

Depuis septembre 2014, mon environnement de création d’extensions se base sur le “trunk” (version de développement) de WordPress. Je reste ainsi au plus proche des évolutions introduites pour en profiter très tôt et identifier les éventuelles adaptations à réaliser sur mes extensions pour les maintenir dans le temps. Par ailleurs, je me fais un devoir de participer aux phases “bêta” qui précèdent la publication des versions majeures.

Sur chacune de ces versions, j’ai proposé au moins un patch qui s’est matérialisé par un commit. Ce qui m’a valu de recevoir des “props” et d’être listé dans l’équipe des contributeurs du Core.

BuddyPress Core.

Depuis le 2 janvier 2014, je suis membre de l’équipe de développement de l’extension BuddyPress. J’ai considérablement enrichi mon savoir-faire en contribuant à ce projet et en cotoyant les membres de son équipe.

D’abord j’ai pu me rendre compte de l’importance du respect des standards d’écriture du code de WordPress, de la documentation du code en particulier et de la rédaction de guides d’utilisation / d’extension plus généralement.

J’ai également compris comment les tests unitaires pouvaient nous faire gagner du temps dans la maintenance du code et, surtout, j’ai appris à les mettre en oeuvre pour toute extension WordPress.

J’ai amélioré ma maîtrise de JavaScript en me plongeant dans l’API des media de WordPress pour participer à l’élaboration de celle de BuddyPress. J’ai même profité des connaissances engrangées sur Backbone.js et Underscore.js pour expérimenter de nouvelles interfaces frontales et créer de nouveaux panneaux dans le Customizer afin de simplifier la personnalisation du prochain ensemble de gabarits (Template Packs) de BuddyPress “BP Nouveau”. Cela m’a permis de mesurer l’importance de la Rest API et de ses endpoints pour établir un dialogue beaucoup plus fluide entre l’interface et les données.

J’ai découvert des utilisations de JavaScript « hors du navigateur » grâce à Node.js et certains gestionnaires de tâches, lesquelles (les utilisations) ont dramatiquement accéléré et fiabilisé la génération optimisée de mes packages d’extension.

Ensuite je pratique l’anglais très régulièrement en mettant à profit l’investissement réalisé lors de mes passages au collège et au lycée. Résultat : j’ai développé ma maîtrise écrite et ma compréhension de ce langage.

J’ai également constaté la puissance de l’accueil constructif d’une contribution par rapport à sa critique destructive. Concrètement, on obtient beaucoup plus en remerciant l’effort, en félicitant l’innovation et l’ingéniosité tout en suggérant des adaptations (lorsque c’est nécessaire) plutôt qu’en sanctionnant le contributeur d’une critique.

Enfin, j’ai énormément amélioré mon organisation personnelle et ma capacité à contribuer à de nouveaux projets en me familiarisant avec Git. C’est depuis un bon moment maintenant mon plus fidèle compagnon et je vous recommande vivement son utilisation si toutefois vous n’avez toujours pas mis le nez dedans !

WordCamps.

J’ai fait la connaissance avec ces rencontres communautaires en 2013. J’étais un des orateurs de l’évènement. Bien que je sois loin d’être à l’aise dans cet exercice, j’ai contribué aux contenus de cet évènement, de son édition 2014, du premier WordCamp Lyon, du premier BuddyCamp Brighton, du premier WordCamp Antwerp et j’ai assuré le “back-up” d’un intervenant lors du WordCamp Paris 2016.

À l’occasion de son édition 2016, j’ai rejoint l’équipe d’organisation du WordCamp parisien et ai découvert une expérience à la fois très particulière et très proche du travail d’équipe que je connais avec le projet BuddyPress. Je préciserai cette particularité dans quelques lignes.

Les remarques de clĂ´ture du jour des contributeurs du WCEU 2017

Cette édition fut une réussite et surtout un formidable tremplin pour appuyer la candidature de Paris à l’organisation du WordCamp Europe 2017. Comme vous le savez aujourd’hui, Paris a effectivement été le théâtre de ce WordCamp plus régional (voir continental !). J’ai fait partie de deux équipes : l’équipe locale chargée de faciliter les relations sur place et les aspects logistiques, ainsi que l’équipe communautaire chargée d’organiser deux évènements qui ont précédés le WCEU. Le premier était le sommet communautaire, auquel j’ai par ailleurs eu la chance de participer, et le deuxième était le jour des contributeurs. Je me suis tout particulièrement investi dans ce second évènement et j’ai énormément appris de cette fabuleuse expérience. Mon intérêt pour la contribution au code du projet open source WordPress était un facteur supplémentaire de motivation pour moi et je me suis très vite pris au jeu.

Aussi, lorsqu’on m’a proposé d’allumer la mèche d’une nouvelle bougie du WordCamp Paris, super confiant suite à la réussite de ce jour des contributeurs, je n’ai pas reculé devant ce nouveau défi pour 2018 ! L’expérience du WCEU 2017 et plus particulièrement ma réflexion sur les moteurs qui m’avaient fait m’investir ont guidé et guide toujours mon approche de la coordination d’une équipe d’organisation d’un WordCamp. Il est encore un peu tôt pour tirer un bilan de cette application plus locale, mais j’ai d’ores et déjà pu mesurer qu’on ne conduit pas un tel projet comme j’ai l’habitude de le faire dans ma vie professionnelle. C’est beaucoup plus complexe et exigeant du fait d’une particularité essentielle : il s’agit d’une équipe de contributeurs (bénévoles) et comme je l’ai dit en introduction : la contribution ne se commande pas ! C’est aussi largement plus passionnant et enrichissant que la conduite de projets professionnels, je vous propose d’en reparler à la mi-mars pour un bilan plus précis de cette expérience toujours en cours.

Gutenberg : la route prioritaire pour 2018.

Toute cette argumentation sur les bénéfices communs de nos contributions (à l’aide d’exemples de ce que m’ont apporté les miennes) me permet de vous sensibiliser, une fois encore, sur Gutenberg.

Pour rappel : cette révolution qui s’est mise en marche à la mi-janvier 2017 concerne notre manière de publier des contenus sur nos sites WordPress. Après 12 années d’évolutions lentes et progressives de l’éditeur de texte, une innovation de rupture se présente à lui et nous nous devons de concentrer notre énergie pour l’accompagner du mieux que nous pouvons dans l’intérêt du projet open source WordPress, et donc dans notre propre intérêt.

Des contributions facilitées.

Comme le développement de Gutenberg intervient sur GitHub, cela simplifie énormément les échanges des contributeurs permettant une accélération sensible des cycles de développement et de publication des versions.

En effet, même si des petits pas ont été réalisés par le Core de WordPress et de BuddyPress en mettant à disposition des dépôts Git synchronisés avec les dépôts SVN officiels (en lecture seule), l’organisation de la contribution au code et celle des échanges des contributeurs pour ces deux projets nécessite encore des efforts de simplification (pour rester positif).

L’utilisation des environnements « trac » est relativement fastidieuse. Elle oblige à transmettre des fichiers .diff ou .patch pour montrer nos propositions d’évolution ou de correction. Les discussions qui s’ensuivent nécessitent de faire référence à des numéros de ligne ou noms de fonction, voire à copier/coller en commentaire certaines parties de ces fichiers. C’est relativement lourd.

En choisissant GitHub, le projet Gutenberg s’ouvre encore plus aux nouvelles contributions en profitant des fonctionnalités des « pull requests » (PR), des services d’intégration continue (ex: vérification de l’application des standards de code WordPress, ou encore des tests unitaires pour PHP et React) et de revues de ces PR lesquelles autorisent l’insertion de commentaires directement dans la représentation du code modifié. La praticité ainsi que les gains de temps et d’efficacité sont énormes !

Pour preuve, vous pouvez vous amuser à parcourir mes discussions avec deux membres de l’équipe du projet au sein de cette PR qui a été intégrée au code de Gutenberg (comme illustré ci-dessus).

Le défi communautaire.

D’abord, je trouve que l’équipe du projet Gutenberg a fait d’énormes efforts d’explication et de documentation comparativement à ce qui se fait généralement pour le Core de WordPress.

Si le calendrier d’intégration de Gutenberg au Core de WordPress peut paraître ambitieux (c’est prévu pour la prochaine version majeure), je pense qu’il demeure raisonnable pour la partie technique. Je suis convaincu que le nombre de contributeurs au code de Gutenberg va augmenter exponentiellement au fur et à mesure que les éditeurs d’extensions populaires investiront le sujet.

S’agissant de l’accompagnement du changement pour les utilisateurs, il reste vraisemblablement des efforts à faire en matière de sensibilisation. J’y vois personnellement un fabuleux challenge pour la communauté des contributeurs WordPress dont nous faisons tous partie.

Nous pouvons être un accélérateur efficace dans ce domaine :

  • grâce aux groupes meetup existants en France il est possible d’organiser des tests d’utilisation ou des ateliers de manipulation.
  • Lors des WordCamps, les confĂ©rences et les ateliers dĂ©diĂ©s au sujet ainsi que leur relai vidĂ©o sur WordPress TV apporterons des Ă©clairages et des partages d’expĂ©rience prĂ©cieux.
  • Le site fr.WordPress.org peut concourir Ă  une meilleure appropriation des avancĂ©es introduites par Gutenberg en poursuivant l’effort de traduction des ressources documentaires initiĂ© dernièrement.
  • Les blogs ou sites spĂ©cialisĂ©s sur WordPress, en particulier ceux dont les flux apparaĂ®ssent dans le widget des tableaux de bord de nos sites WordPress, doivent aborder le sujet objectivement et enfin proposer des tutoriels ou astuces d’utilisation.

De mon côté, j’ai déjà totalement basculé sur Gutenberg : ce site l’utilise et j’ai mis à jour mon environnement de développement pour l’y intégrer également. En l’utilisant, non seulement je profite de toutes les avancées et des gains de temps qu’il introduit par rapport à l’éditeur classique, mais en plus j’identifie plus facilement les contributions possibles (j’en ai même déjà soumis quelques unes !) ainsi que les adaptations qu’il me reste à faire pour certaines de mes extensions.

On se retrouve l’annĂ©e prochaine, pour de nouvelles contributions ! Excellentes fĂŞtes de fin d’annĂ©e Ă  toutes et tous 🥂

2 rĂ©ponses Ă  “En contribuant, on apprend.”

  1. Avatar de Florian TIAR

    Retour d’expĂ©rience très intĂ©ressant, ça motive Ă  contribuer de nouveau.

    La seule chose que je trouve frustrante actuellement c’est lorsqu’on propose un patch d’amĂ©lioration au cĹ“ur de WordPress : Il arrive souvent que les patchs ne soient jamais revus/discutĂ©, ils sont considĂ©rĂ©s comme non prioritaire, alors que ce sont parfois des changements simples et positifs. J’ai l’impression que certains components n’ont pas assez de contributeurs, d’oĂą des tickets avec patch n’ayant aucune rĂ©ponse pendant plus d’un an, c’est dĂ©courageant.

    Je te rejoins totalement sur l’utilisation de Github, je pense que ça faciliterait la vie Ă  beaucoup de contributeurs, il faut que WordPress change les choses Ă  ce niveau lĂ , on a l’impression de vivre un peu en autarcie en dehors de Github.

    1. Avatar de imath

      Merci pour ton commentaire Florian.

      Je reconnais que la situation que tu dĂ©cris est assez frustrante effectivement, d’autant plus que le code continue d’Ă©voluer et que les patchs en question nĂ©cessiteront un rafraĂ®chissement. Il y a peut-ĂŞtre un moyen de mettre en lumière ces correctifs/changements simples et positifs : la communautĂ© italienne fait des Ă©vènements dĂ©diĂ©s Ă  la contribution. Ce type de rencontre « hackaton » qu’elle soit organisĂ©e IRL, Ă  distance (en l’associant avec une chaĂ®ne Slack par exemple) ou un mix des deux doit pouvoir faire bouger les choses, Ă  mon avis.