Bonjour tout le monde,
Voici un sujet dans lequel j'aimerais que l'on parle de l'organisation de Zeste de Savoir. Ceci peut impliquer des considérations techniques, mais l'origine de ces considérations doit être l'organisation, pas la technique elle-même.
J'envisage toutes les hypothèses très sérieusement. Il en va de la possibilité de faire évoluer Zeste de Savoir quant à son front.
Aussi, tout argument doit être étayé. Pas la peine de hurler et de lancer des généralités du genre "X est meilleur que Y c'est bien connu !" : vous devez argumenter vos dires, sans quoi vos propos seront impitoyablement ignorés pour cause de manque total de pertinence.
L'état actuel du front
Commençons par faire le point sur ce qu'on a et ce que ça implique. Ici nous n'avons que des faits.
Le point de vue fonctionnel
On a un front qui marche pas mal, d'un point de vue utilisateur. On pourrait améliorer certaines chose, mais on peut toujours améliorer, et certaines améliorations sont déjà prévues (refonte de la page d'accueil, etc).
En soit c'est une grosse victoire et une excellente chose, pour laquelle je ne peux que remercier tous ceux qui ont contribué à ce qu'on en arrive là.
L'équipe de développement
Aujourd'hui elle est principalement constituée de Alex-D et Sandhose, ce qui est peu.
Les choix technologiques
Aucun framework n'a été utilisé : tout est 100% custom. Le fait est que ça fonctionne et que ça semble plutôt efficace en terme d'expérience utilisateur, si j'en crois mon peu d'expérience dans le domaine.
Les problèmes en cours et futurs
Si j'en crois les quelques points ci-dessus, tout est plutôt positif : ça marche et ça semble efficace. Sauf que… des problèmes pointent leur nez.
Zeste de Savoir n'est pas un projet intéressant pour son front
C'est un fait : on se contente d'afficher des données. Il y a très peu de dynamisme, et le but ne sera jamais d'en faire une application web. En fait, la seule partie intéressante techniquement qui pourrait se développer à court ou moyen terme c'est les outils de rédaction de tuto ; le reste n'est que design et montage HTML – ce deuxième point n'étant pas une activité transcendante mentalement.
Conséquence : on manque de développeurs front
Sandhose est pris par d'autres occupations et le manque d'intérêt technique ne le motive pas à s'investir plus, ce qui est tout à fait compréhensible.
Alex-D, quant à lui, songe à réduire très fortement sa participation. Bien que ce ne soit pas la première annonce en ce sens, le fait qu'elle soit publique et répétée me fait dire que celle-ci est sérieuse, que ce n'est pas un coup de tête.
On a donc très exactement 0 développeurs front à court terme.
Zeste de Savoir doit donc s'en trouver de nouveaux. Sauf que…
Les pratiques diversifiées du monde du front
Dans le monde du front, on a des pratiques très diversifiées là où le back est souvent plus cadré (PEPs Python, conventions en Java, etc.). Résultat : reprendre un existant, c'est souvent devoir se faire à un style qui n'est pas le sien… ce qui est rarement motivant.
Nous sommes donc prisonniers des choix faits par le développeur principal, qui a utilisé les techniques qui lui seyaient le plus.
C'est d'autant plus vrai qu'ici…
Pas de framework
…on a pas de framework pour assurer une base connue (conventions minimales), mais un code 100% maison. Qu'il faut donc s'approprier de A à Z.
Ceci ne signifie pas que c'est compliqué ; mais la marche reste présente, au moins psychologiquement. C'est d'autant plus vrai que…
La documentation est quasi-vide
… la documentation du front est très loin d'être finie au moment où j'écris ces lignes.
Même si je passe outre les problèmes de placement de cette doc (rangée avec les autres ou non) et que je considère que le menu est complet, j'ai :
- 19 catégories de documentation au total
- 5 sont identifiés comme "complètement finis", soit 26% – dont l'installation qui est déjà détaillée par ailleurs
- 4 sont identifiés comme "en cours de rédaction", soit 21%, et dans des états très variables
- 10 sont identifiés comme "pas commencés", soit 53%
J'ai donc environ 1/3 de la documentation nécessaire pour que le "framework maison" soit utilisable par un tiers sans demander de l'aide ni perdre du temps à comprendre comment il fonctionne par rétro-ingénérie.
Le front a mauvaise réputation
Ce problème est encore accentué par la mauvaise réputation du développement front tel qu'on en a besoin sur Zeste de Savoir : le découpage et l'intégration HTML sont inintéressants. Qui a envie d'occuper son temps libre à gérer des pinaillages de CSS et des bugs JS incompréhensibles sur la version X.Y.Z du navigateur exotique Lambda ? Personne et ça se comprend.
Ce vers quoi devrait tendre Zeste de Savoir
Mon avis à ce point de la réflexion est le suivant :
L'intégration front de Zeste de Savoir se devrait d'être la plus simple possible techniquement, en sacrifiant le moins d'expérience utilisateur qu'il peut se faire.
Ceci passe bien sûr la rationalisation des outils de développement, mais pas seulement. Cela passe aussi par un système d'intégration front souple (dans son utilisation et son évolution) et facile à appréhender, ce qui implique entre autres, mais pas que, une excellente documentation.
Tant que Zeste de Savoir n'aura pas atteint ce but, il restera prisonnier du temps libre et de la bonne volonté des développeurs originels.
Or, ce temps libre et cette volonté ne sont pas extensibles à l'infini !
Des idées de solutions ?
Voici les deux premières idées qui me viennent par la tête.
Garder le non-framework actuel et faire une documentation qui poutre
Avantages :
- C'est pas le plus long à faire
- Aucun risque de régression
Inconvénients :
- Je ne sais pas si le code actuel du front est souple et extensible. Dans quelle mesure va-t-il nous contraindre par la suite ?
- Cela laisse une marche d'apprentissage (ne serait-ce que psychologique) importante, surtout pour le contributeur occasionnel
Tout réécrire en utilisant le Très Connu framework Lambda
Oui, je mets les pieds dans le plat, mais c'est une hypothèse que j'envisage très sérieusement.
Avantages :
- Le framework est connu, ça rassure tout contributeur (surtout l'occasionnel)
- On a toute la doc du framework qui existe
- On a la communauté du framework et tout ce que ça implique
Inconvénients :
- La grande masse de travail pour tout convertir
- J'imagine qu'il faut réussir à ne pas casser le framework, sans quoi il deviendrait un boulet
- Le site sera sans doute un peu plus lourd à charger (quoiqu'avec les fichiers du framework servis par des CDN et cachés dans les navigateurs, ceci reste à mesurer)