SPIP Blog

Du logiciel libre et de la tendresse

Accueil > Développement > La Zone, les doublons et le travail collaboratif

La Zone, les doublons et le travail collaboratif

mardi 27 septembre 2011, par RastaPopoulos

Comprendre les manques actuels pour mieux travailler ensemble.

Avertissement :
cet article, publié « en l’état », peut servir comme base collective de réflexion vers une approche des « bonnes manières » à suivre pour un travail communautaire sur spip-zone.

Le sujet revient régulièrement en ce moment, et je trouve donc opportun de mettre les choses au clair sur la manière dont nous travaillons ensemble sur la Zone (ou, plus humblement, d’en faire un état des lieux).

Rappel

SPIP-Zone est un dépôt Subversion et une liste de discussion, qui permettent à la communauté des contributeurs de SPIP de :

  1. partager leur travail publiquement sur un espace mutualisé
  2. collaborer lorsque plusieurs personnes travaillent sur un même sujet

Collaborer ou doublonner

D’après moi, SPIP-Zone ne sert pas à déposer des trucs chacun dans son coin.

Évidemment c’est possible ! Et ça ne contredit pas la charte, a priori, tant que c’est sous licence libre. Mais cela revient alors à n’appliquer que le premier des deux points évoqués.

Si l’on n’applique pas ce point 2, arrive alors le plus gros problème/danger pour les prochains développeurs et pour les utilisateurs en aval : les doublons.

Attention ! Je ne dis pas que refaire une fonctionnalité déjà existante est toujours mal. Il y a plusieurs cas qui se comprennent aisément : lorsque le code est obsolète, lorsque l’on trouve que l’ancienne version est une usine à gaz et qu’on veut repartir sur une base plus propre, etc. Mais j’ai l’impression que les doublons arrivent trop souvent par manque de communication.

Je fais partie de ceux qui pensent qu’une des grandes forces (c’est un bien grand mot) de SPIP-Zone, est d’essayer de limiter au maximum ce phénomène, en poussant de diverses manières les gens à contribuer sur un même plugin, plutôt que d’en développer trois différents.

C’est une différence notable par rapport aux plugins d’autres logiciels comme Wordpress ou Drupal, chez qui l’on trouve un panel incroyable de plugins fortement similaires. Mon sentiment est que beaucoup de ces contributions sont, soit le fait d’une unique entreprise, soit sponsorisées par une ou plusieurs boites, pour qui de ce fait, cess développements sont « le petit bébé » qu’elles veulent mettre en avant et ne pas mélanger aux autres.

Je prie le Grand Polatouche que la Zone n’en n’arrive pas là et que ses utilisateurs aient un autre comportement, tout en permettant les innovations et en gardant la liberté de chacun.

Actuellement il existe quatre moyens pour cela :

  • vérifier SPIP-Contrib pour voir si la fonctionnalité existe déjà
  • vérifier le dossier _plugins_ de la même manière
  • demander sur la liste SPIP-Zone si un projet sur le thème X n’est pas déjà en cours
  • venir discuter sur le salon IRC

Exemples concrets d’échecs

Malgré les outils actuels, nous sommes plusieurs à constater quelques échecs à cette politique de la Zone, et ce, sur une période récente.

Pour l’instant, listons donc sans commentaires.

Géolocalisation

  • Il existait le plugin GIS.
  • b_b a commencé GIS 2 avec une table « objet-id » et l’utilisation d’une librairie externe qui abstrait le fournisseur de carte. Il en a parlé (depuis longtemps) sur IRC et sur la liste SPIP-Zone.
  • xdjuj a posé le plugin Google Map API v3 qui n’est de fait pas juste une API mais bien un plugin similaire avec nouvelle table, etc.
  • Jean-Marc Viglino a partagé le gros plugin Géoportail, qui propose aussi la même chose avec une table de type « objet-id » et qui, depuis peu, propose aussi d’autres fournisseurs de cartes.

Gestion de projets

  • Il existe déjà le plugin Tickets
  • Et autour, Éric, Kent1, Cym et peut-être d’autres, ont déjà discuté d’un plugin pour faire des projets (en le liant à Tickets, puis à d’autres plugins, un pour chaque fonctionnalité)
  • abelass a développe depuis peu un plugin Gestion de projets qui semble-t-il à plus une approche« tout en un ».

Paiements bancaires

  • Il existe plusieurs tentatives de plugin de e-commerce.
  • Il y a peu Arnaud Pachot et Emmanuel Nurit ont mis un plugin de transactions bancaires extensibles, en utilisant du code de Thélia, mais uniquement pour payer avec le plugin Formidable (de ce que j’ai compris).
  • Cédric a développé une API bancaire indépendante, utilisable ensuite pour n’importe quel besoin, et il en a parlé régulièrement sur IRC, mais ce n’est pas encore sur la zone.

Il y a sûrement d’autres exemples, mais, pour la discussion, ceux-là ont l’avantage d’être récents.

Ne blâmer personne !

En aucune façon ce n’est le propos de cette intervention. C’est peut-être bête de le préciser, mais ça ne coûte rien...

Il était important de lister et de nommer, non pas pour stigmatiser les développeurs, mais pour relever et comprendre les blocages, incompréhensions ou manques qu’il y a pu avoir. Et ainsi tenter de résoudre ce qui cloche.

Voici donc ce que j’ai pu recenser comme causes possibles, en essayant de les ordonner :

  • le développeur n’a pas vu qu’un plugin existait déjà
  • un projet similaire existe déjà mais il n’est pas sur la zone, et pour le savoir il faudrait fouiller les archives de la liste, ou IRC, ou demander...
  • le développeur a vu un plugin, mais considère que le code est nul et qu’il vaut mieux tout refaire
  • le développeur n’a pas le temps durant son projet de contribuer à l’existant, il veut juste publier son truc en GPL

Que faire avec l’existant ?

Pour l’instant, l’effort revient essentiellement au nouveau venu :

  • c’est à lui de bien fouiller
  • c’est à lui de bien penser à demander si un projet similaire existe déjà, sur la liste de discussion ou sur IRC

De nouvelles solutions

à trouver...
...ensemble

Messages

  • Je me demande si ce n’est pas une question de formation personnelle, cette façon de toujours réinventer la roue. Personnellement, je suis de formation universitaire en Philo et Lettres, et ce que l’on y apprend dès le début c’est qu’avant de publier quoi que ce soit, il faut passer pas mal d’heures en bibliothèque afin de se documenter sur le sujet sur lequel on souhaite publier quelque chose et si possible d’établir une bibliographie exhaustive sur le-dit sujet.

    Depuis que je crée des sites web, généralement je passe également pas mal de temps à consulter ce qui s’est fait ailleurs et avant moi, que ce soit en php, html ou css, ce qui généralement m’épargne pas mal d’heures de programmation et de débogage. Après ça, je peux prendre plus sereinement une décision concernant mon apport personnel à un projet donné.

  • Il y a peut être aussi autre chose qui peut faire qu’un développeur préfère amener un nouveau plugin : si l’ancien ne fait pas ce qu’il souhaite, ce qui arrive très souvent, il faudrait qu’il adapte cet ancien pour son besoin à satisfaire. Mais au risque de créer des incompatibilités avec les personnes qui utilisent déjà cet ancien plugin, même peut-être sans sans rendre compte (l’ingéniosité des utilisateurs de plugins à détourner par-ci par-là certaines de leurs fonctions fait que le risque est grand de ne pas prévoir tous les cas de mises à jour).

    Quand on part d’un nouveau plugin, on est certain de ne pas avoir à gérer ces mises à jour, vu que par défaut, personne n’utilise encore ce plugin, et par conséquent, on n’a pas à subir la responsabilité d’éventuelles erreurs ou incompatibilités apportées si l’on modifie un plugin existant.
    Enfin, partir de rien est souvent plus facile : car un plugin existant peut avoir un code difficile à lire et à comprendre selon les fonctionnalités qu’il propose, selon la version de SPIP qu’il utilise...

    Ceci dit, en créant un nouveau plugin, on se prive en partie de l’expérience et de la disponibilité des mainteneurs de l’ancien plugin ; on doit créer une nouvelle documentation, se refaire un réseau de testeurs (ou pas !) . Enfin, maintenir son plugin au fil des évolutions de SPIP et plus facile à plusieurs (et d’autant plus si le plugin est simple et clair).

    Il n’est peut être pas juste de trop blâmer les doublons. Mais une fois qu’un doublon est arrivé, il est d’autant plus difficile de le fusionner. Je suis donc aussi partisan de les éviter au maximum également. Mais... rien n’est simple... © :)

  • Autre exemple de doublons : les plugins d’insertion de vidéos ;)

Un message, un commentaire ?

Qui êtes-vous ?
Se connecter
Votre message

Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.