SpaceFox a soulevé un problème tout à l'heure, et il semble important d'en discuter. Ce n'est pas un problème technique, du coup j'en parle ici, n'en débattez pas là-bas.
c'est un gros problème de Zeste de Savoir qui doit être corrigé : trop souvent, quelqu'un (ici toi, mais ça peut être n'importe qui) se réveille après la bataille alors que les discussions sont publiques et ouvertes depuis longtemps. C'est une perte de temps colossale et totalement démotivant pour ceux qui se sont bougés à faire un développement sur une base qui a déjà pris des mois de discussions en général assez stériles.
Là où nous sommes d'accord, c'est que c'est un gros problème et qu'il doit être corrigé. Certains connaissent mon point de vue sur la question mais on n'en a jamais vraiment débattu il me semble, ce sujet est là pour ça.
A mon avis, une ZEP est avant tout une décision produit. Elle concerne une (un semble de) fonctionnalités/modifications à apporter à ZdS. Le forum et le sujet de la ZEP sont là pour discuter de l'idée, pour en valider la nécessité et les détails produit. A mon sens, et c'est à contre-courant de ce qui se fait ici depuis le début, les discussions techniques et les détails d'implémentation n'ont pas leur place dans ces sujets.
Le problème évoqué par SpaceFox peut être vu de différentes manières. Fondamentalement, le problème est que les devs ne lisent pas suffisamment les ZEPs. Mais comme le dit SpaceFox, un sujet de ZEP consiste généralement en des mois de discussions en général assez stériles. Pour ma part, ces discussions ne m'intéressent généralement pas trop. J'ai rarement lu un sujet de ZEP en entier, et je suis parfois arrivé comme un cheveux sur la soupe, après la bataille, faire remarquer que ceci ou cela n'était pas top. Donc pour moi, quand on dev remarque sur le tard qu'une ZEP propose une implémentation pas top d'une feature cool, c'est pas la faute du dev qui n'a pas passé assez de temps à contribuer/lire le sujet de la ZEP, c'est la faute du système de ZEP qui engendre des discussions stériles qui n'intéressent pas un dev qui passe déjà énormément de temps à réparer des bugs, développer des fonctionnalités, améliorer la codebase, triager des tickets, etc. Je me sens pas de backlogger tous les topics de ZEP pour voir si l'implémentation proposée est ok ou pas, tout ça pour pouvoir donner un avis technique sur GitHub.
Dans mon rôle de dev pour ZdS, je fais confiance à la communauté dont je fais partie pour leurs décisions concernant le produit ZdS. Les fonctionnalités du site, etc. Et je trouve très inefficace de mélanger ces discussions produit avec des discussions techniques dans ces sujets. Je suis prêt à participer à la discussion d'une ZEP, ou à la discussion de l'implémentation d'une ZEP. Je suis pas prêt à participer à un brouhaha que certains qualifient de "stérile".
Je ne suis pas certain d'avoir la solution à ce problème, mais je suis partisan de séparer les discussions techniques et les discussions produit. Ainsi, discuter de comment implémenter une ZEP pourra suggérer des modifications à la ZEP : si on ajoute ça ici, ajoutons-le aussi là ? Et ça c'est pas trop faisable pour les raisons suivantes. Ça demandera un peu plus de discipline, mais je pense qu'on serait gagnant. On établirait donc un cahier des charges produit soumis à la validation de la communauté et un cahier des charges technique soumis à la validation des devs, en lieu et place du joyeux mélange actuel.
Pour revenir à l'exemple de la ZEP 11, firm1 a fait un travail formidable et parcourir quelques pages du sujet initial montre que les discussions étaient généralement productives. Par contre lire la "spécification" n'est pas assez compréhensible, ni en terme de fonctionnalités ni en terme technique. On y comprend vaguement que seul l'auteur aura accès à ses propres statistiques, mais on ne parle pas de ces restrictions dans l'API ? Le schéma d'architecture parle de stocker ça en NoSQL puis on parle de SQL ? Le sondage sur les infos à récolter ne correspond pas à l'implémentation ?
Je crois vraiment qu'on serait gagnant, avec cette ZEP pour exemple, à avoir d'abord une discussion : "Est-ce qu'on veut des stats ? Qui y auront accès ? Quelles infos pourra-t-on y trouver ? Etc", et une discussion séparée "Comment on fait ça ? On parse les logs en batch ou on fait ça en live ? Si on fait ça en live, sync on async ? Etc"
Vos avis et propositions sont les bienvenus, merci d'avance !