Greboca  

DLFP - Dépêches  -  Collaboration laborieuse ? Si les symptômes persistent, installez Tracim 2.1 !

 -  23 février - 

Tracim est une solution collaborative libre pour le travail en équipe.

Après la version 2.0 sortie dans un certain anonymat courant novembre, la 2.1 est une avancée majeure — la première réelle version de cette nouvelle lignée.

Tracim, plateforme collaborative libre

Cette dépêche comprend deux grandes parties :

  • dans un premier temps nous parlerons de collaboration, d’information et du positionnement de Tracim par rapport à ces problématiques ;
  • dans un second temps, nous présenterons la multi‐refonte qu’est Tracim 2 dans sa mouture 2.1.

Sommaire

On en parlait sur les réseaux sociaux au moment des fêtes de Noël, le père Noel a déposé au pied du sapin une nouvelle version de Tracim : la 2.1.

Pour être tout à fait honnête, le père Noël a été un peu négligent, il n’avait pas indiqué « version alpha » sur la boîte. Du coup, on a découvert quelques gros bogues… Mais comme Tracim est un logiciel libre, on a pu le corriger nous‐même, faire quelques demandes de fusion Git et obtenir, cette fois‐ci, une vraie version 2.1 ! \o/

Collaboration, information, Tracim et son positionnement

Qu’est‐ce que Tracim ?

Tracim est une solution collaborative pour le travail en équipe. Là où nombre de solutions ciblent la répartition de tâches et la gestion de projet, ou d’autres la donnée brute, Tracim cible l’information, son partage, sa diffusion.

Ce qui compte dans une équipe ou dans une collaboration au sens large, c’est avant tout que l’information circule entre les différents acteurs, que chacun puisse trouver et retrouver l’information, et que les collaborateurs puisse assimiler l’information, l’enrichir, la diffuser.

Cela n’est pas exclusif avec l’organisation de projet, bien au contraire ; il s’agit d’une approche complémentaire : vous vous organisez et vous déléguez à Tracim la gestion de l’information.

Tracim peut être comparé ou être considéré comme une alternative à :

  • Microsoft SharePoint, mais en libre ;
  • un wiki WYSIWYG (What You See Is What You Get — autrement dit, un wiki dont l’éditeur est en texte riche) avec en complément des discussions et une gestion des médias plug’n play (images intégrées en glissé‐déposé, gestion et versionnage de fichiers quelconques) avec prévisualisation native des fichiers bureautiques ;
  • une GED (gestion électronique de documents) simplifiée, grâce à une gestion de version automatique, aux possibilités de commenter et de donner un statut aux documents ;
  • un forum de discussion privé avec notifications et réponses par courriel ;
  • un outil de productivité type basecamp sans la gestion de tâches ;
  • un outil de gestion de données type Owncloud/Nextcloud, mais orienté information et non pas données (voir paragraphe ci‐dessous) ;
  • une liste de diffusion ;
  • etc.

Petite digression entre amis : donnée et information

Qu’est‐ce qu’une information ? Une définition intéressante que nous donne le wiktionnaire est la suivante : « ensemble de connaissances réunies sur un sujet déterminé ».

À l’heure où on parle de cloud, de big data, d’intelligence artificielle à tout va, on a l’impression que ce qui compte, c’est la donnée. C’est vrai dans certains domaines, avec de gros volumes de données. Dans ce cas, on peut faire des statistiques, extraire des tendances, faire du machine learning

Mais dans la collaboration, plus que la donnée, ce qui compte c’est l’information. La collaboration se fait très souvent à travers des équipes de taille petite à moyenne. Il est difficile de collaborer directement à plus d’une dizaine de personne ; au‐delà, l’équipe va se structurer en plusieurs groupes ou équipes. À ce niveau, les outils de traitement automatique de données n’ont pas de valeur ajoutée. En revanche, positionner les données dans leur contexte est extrêmement riche.

Prenons l’exemple d’un cahier des charges. Ce qui importe en premier lieu, c’est de travailler avec la dernière version du document. C’est ce que va permettre Tracim en centralisant l’information. Dans un second temps, il sera intéressant de comprendre « comment on en est arrivé là ». Cela va passer par l’historique du document, les commentaires qui y sont associés, le statut du document… Encore une fois, c’est ce que va permettre Tracim.

Si l’on veut faire une analogie dans le domaine du développement logiciel, un ticket de bogue valorisé sera un ticket ayant une description précise, une série de commentaires sur les problèmes rencontrés, des liens vers les pages Web qui ont donné des pistes de résolution, un statut clos, résolu, non résolu, etc. Tracim propose de faire la même chose sur des pages type wiki, des documents et fichiers quelconques, des discussions.

Dans Tracim, tous les contenus sont automatiquement historisés, les collaborateurs peuvent commenter, mettre à jour le statut, etc. Sur un écran unique, vous pourrez retrouver la vie de votre fichier, de votre page de documentation, de vos discussion. Et Tracim stimule la gestion naturelle de contexte. Au même endroit vous serez en mesure de retrouver des pages de documentation, des fichiers, des discussions… Inutile d’aller chercher chaque type d’information dans chaque application dédiée : tout est au même endroit.

À qui s’adresse Tracim ?

Bien qu’utilisable par tout un chacun, Tracim cible quelques typologies d’utilisateurs clairement identifiés. Leurs points communs ? Un besoin fort de collaborer en équipe ou entre équipes, principalement en différé, à proximité ou à distance, avec une volonté de capitaliser sur la connaissance, de centraliser, de pérenniser.

Aux associations et à leurs membres

Tracim permet aux membres du bureau d’une association de centraliser l’information, qu’il s’agisse de fichiers, de procédures, de discussions, de comptes‐rendus d’AG…

Tracim permettra également de diffuser des informations, documents et fichiers auprès des membres (ou par les membres). Par exemple, suite à un évènement, chaque membre pourra partager l’ensemble de ses photos avec les autres membres et récupérer lui‐même l’ensemble des photos. Cela pourra avantageusement se faire par un simple copier‐coller en utilisant l’interface WebDAV.

N. B. : Tracim ne permet pas directement de partager publiquement des informations (c’est faisable via un contournement et une configuration adaptée, contactez‐nous si vous êtes concernés).

Aux collectivités et équipes municipales

Tracim permet à l’équipe municipale de diffuser les documents et notes de fonctionnement, ainsi que les comptes‐rendus de réunions ou d’évènements.

Tracim permet également de lancer et suivre des sujets de discussion, de les partager et les rédiger entre tous. Dans ce contexte, la collaboration est bien souvent en décalé et passe soit par des outils propriétaires (Google Docs et Dropbox, par exemple), soit des outils moins adaptés (je pense notamment au courriel).

Tracim peut également être le moyen de communication et d’échange avec les associations de la commune. Encore une fois, l’aspect central, aux couleurs (et adresse URL) de la collectivité permet de collaborer de manière pérenne.

Aux équipes de professionnels et à la collaboration inter-équipes

Quelle équipe de professionnels n’utilise pas un wiki ou un dossier partagé, ainsi que nombre de fils de discussion par courriel ? Tracim propose de centraliser ces informations au sein d’un outil unique, historisé et dont la gestion des droits d’accès est simplifiée. Mieux : Tracim permettra de collaborer entre équipes en « matérialisant » le lieu de ces échanges, là où jusqu’à présent, aucun outil n’adressait sérieusement le besoin (à part le courriel, avec les défauts — et qualités — que chacun lui connaît).

Cet outil aura également l’avantage d’être accessible localement et à distance, voire en mobilité à travers l’utilisation d’un téléphone mobile ou d’une tablette.

Exemples d’utilisation :

  • vous êtes chef de chantier et vous partagez des photos techniques (machines, chantiers, installation au sens général), et discutez avec les équipe d’ingénierie autour de ces photos ;
  • vous travaillez dans une équipe R & D pluridisciplinaire, et des discussions techniques stratégiques se déroulent par courriel, ne permettant pas aux collaborateurs de monter en connaissance ou compétence sur les sujets dont vous discutez ;
  • vous êtes dans une équipe marketing internationale et vous souhaitez commenter, annoter et partager les nouveaux supports produit.

Quelques cas de collaboration où Tracim gagne à être utilisé : équipes de techniciens en mobilité, équipe marketing et réseau de distributeurs, gestion de communauté B2B avec ses clients et utilisateurs, équipes en télétravail…

Tracim 2.1, nouvelle mouture

Quoi de neuf dans Tracim 2.1 ?

Tracim 2.1 est la première version vraiment exploitable de la branche 2.x. Il s’agit d’une refonte profonde sur les plans ergonomique, esthétique et technique.

En mars dernier, nous sortions la dernière version de Tracim 1, que l’on pourrait qualifier de prototype « prêt pour la production » : un ensemble de fonctionnalités, un gros travail de stabilisation du logiciel et, au final, un outil qui répond aux fonctionnalités « brutes ».

Mais Tracim v1 avait trois gros défauts : une esthétique un peu dépassée, une ergonomie moyenne (en particulier au niveau de l’intuitivité), une certaine dette technique et architecturale freinant l’évolutivité. Alors nous avons remis l’ouvrage sur le métier :

  • nous avons travaillé avec deux webdesigners pour faire une refonte visuelle de Tracim ;
  • nous avons travaillé avec nos clients et utilisateurs pour refondre l’ergonomie ;
  • nous avons travaillé en R & D pour repartir sur une architecture technique moderne, extensible et évolutive.

Refonte visuelle

L’esthétique comme objectif

En travaillant sur le positionnement du produit, le sujet de l’esthétique est rapidement arrivé sur la table. Un produit qui marche est souvent esthétique. Ce n’est pas toujours le cas pour des produits très spécialisés ou très techniques, mais dès lors qu’on cible un public large, que l’on cible la simplicité, le public s’attend également à un produit agréable, et cela passe aussi par l’esthétique.

Tracim v1 était basé sur le cadriciel CSS Bootstrap. Comme certains aspects visuels n’étaient pas adressés par Bootstrap, il a fallu faire du CSS nous‐même. Mais n’étant pas graphistes, nos composants n’étaient pas « du même style », ce qui donnait une interface moyennement cohérente.

Une stratégie « atomic design » comme moyen

Depuis Tracim v2, nous travaillons dans la mesure du possible avec une approche atomic design, qui facilite le travail de cohérence entre écrans. Ce n’est pas encore parfait, mais c’est nettement mieux.

Ayant travaillé avec des webdesigners, nous avons pu atteindre un meilleur niveau esthétique, adapté à l’outil.

La simplicité en ligne de mire, même dans la personnalisation des couleurs de l’interface

Enfin, conscients que « les goûts et les couleurs… », nous avons une interface qui peut se colorer en configurant un fichier JSON. Nous avions déjà un éditeur de thème sur Tracim v1, mais la « thémabilité » (capacité à supporter des thèmes) n’était pas au cœur de l’outil, aussi l’éditeur donnait difficilement un rendu esthétique. Il fallait avoir un minimum d’œil esthétique et de patience pour arriver à un résultat intéressant.

Aujourd’hui, il suffit de saisir le code couleur de votre couleur principale dans un fichier JSON et de redémarrer le serveur pour que l’intégralité de l’interface de Tracim se décline dans votre couleur.

Les couleurs associées aux différents types de contenu ont été choisies de manière à être instinctivement identifiables. C’est une problématique d’ergonomie. Certains n’aiment pas ces couleurs. Nous avons aussi pensé à eux : une couleur à redéfinir par type de contenu (toujours dans le fichier JSON) et c’est toute l’interface qui s’affiche selon vos goûts et vos couleurs. Nul besoin d’être graphiste pour trouver l’harmonie des couleurs : un éditeur de texte, un redémarrage et Tracim est totalement à vos couleurs. Si vous trouvez ça moche, nous ne sommes désormais (presque) plus responsables. ;)

Refonte ergonomique

D’un produit « simplement fonctionnel »…

Le second défaut que nous avions identifié depuis quelque temps — et le défaut majeur : l’ergonomie de l’outil. Nous sommes des ingénieurs, nous avons travaillé dans une stratégie d’ajout rapide de fonctionnalités, ce qui passe tôt ou tard par des raccourcis en termes d’ergonomie et d’expérience utilisateur, ne serait‐ce que parce que « si on fait comme ça, on économise x jours de développement ».

Cette approche a l’avantage de permettre de tester rapidement, la contrepartie est que son résultat est un produit médiocre, voire mauvais, en termes d’expérience utilisateur.

À un moment donné, il faut procéder à une refonte.

Si c’était à refaire, nous referions pareil. La démarche nous a permis d’identifier des fonctionnalités et des problématiques rapidement. Il faut simplement reconnaître le moment venu que « bon, maintenant ça va, arrêtons d’ajouter des fonctionnalités et rationalisons l’expérience utilisateur ».

… À une approche mobile first « UX first »

Dans Tracim v2, l’expérience est bien meilleure. Sûrement pas parfaite — ce serait présomptueux —, mais bien meilleure. Nous avons échangé avec nos clients et utilisateurs, nous avons échangé avec notre entourage et, en particulier, avec des personnes non techniques pour identifier les points qui n’étaient pas évidents.

Nous avons également fait le choix de proposer une interface réellement adaptative, avec un périmètre fonctionnel réduit. Nous ne suivons pas une approche « mobile first », comme les règles de l’art le suggèrent, mais en connaissance de cause : nos utilisateurs sont principalement sur PC. Les fonctionnalités à venir seront pour certaines développées en « mobile first », mais cela ne nous semble pas une stratégie à appliquer systématiquement.

Refonte technique

Dette technique, refonte architecturale

Le troisième défaut qui était sous‐jacent à la stratégie évoquée ci‐dessus (développement rapide de fonctionnalités), est la dette technique (au sens code/développement) et la dette d’architecture technique (au sens architecture logicielle).

La dette technique est inhérente à tout projet logiciel. Ce qui importe n’est pas de résorber la dette technique à tout prix, mais de la maîtriser.

En revanche, l’architecture technique peut être bloquante pour l’évolutivité du logiciel ; de mauvais choix ou des choix qui ne sont plus d’actualité peuvent allonger les futurs cycles de développement, voire verrouiller certaines évolutions… Ce qui rend l’intégration de l’outil dans un système d’information plus difficile voire impossible

Concrètement, le noyau de Tracim v1 est toujours là dans Tracim v2. Ce noyau est bon, il n’avait aucune raison de changer. L’architecture technique en revanche a bien évolué.

Application « single page » et API REST

Tracim v2 est « full API ». Dit autrement, le « back‐end » publie des API REST/JSON documentées et le frontal est une application sous la forme d’une unique page Web « single page app » écrite en JavaScript, HTML et CSS.

Ceci apporte plusieurs bénéfices :

  • l’évolutivité est simplifiée car interface et fonctionnalités techniques sont découplés ;
  • l’intégration dans tout système d’information est possible car l’intégralité des fonctionnalités de Tracim est disponible via les API (donc programmable à distance) ;
  • les fonctionnalités techniques de Tracim peuvent être exploitées dans des contextes et cas d’utilisation non envisagés par l’équipe de développement de Tracim.

Architecture basée sur des « applications » (ou greffons)

Pour rendre Tracim évolutif, nous sommes partis sur une architecture à base greffons. Dans Tracim, on appelle cela des applications. Ce travail permettrait par exemple d’implémenter une galerie de photos en s’appuyant sur les API déjà existantes — donc un développement purement « frontal ».

Ce travail de modularité n’est pas encore terminé, car nous le faisons avec une stratégie de cohérence entre outils. L’idée n’est pas d’agréger des applications les unes à côté des autres, mais bien de leur permettre d’interagir et de conserver la cohérence de l’interface et de l’expérience utilisateur.

Ce travail est encore en chantier côté back‐end.

Tests automatiques, intégration continue

Le processus d’intégration continue a été amélioré. Des outils (scripts) permettent de configurer (« transpiler ») les environnement frontal et back‐end, des jeux de tests automatiques (unitaires, API, fonctionnels) sont exécutés à chaque demande d’intégration Git (pull request), des images Docker sont générées automatiquement à chaque fusion ou étiquetage Git, et sont disponibles sur le hub Docker. Enfin, un environnement de test latest est disponible pour valider ou invalider les nouveaux développements.

Configuration de complexité progressive

La configuration de Tracim a été rationalisée. Ce chantier est en cours, mais d’ores et déjà la configuration de Tracim peut se faire à partir de quelques paramètres mis en évidence en début de fichier de configuration, tandis que la suite du fichier propose les options de configuration avancée.

La configuration est simple pour des cas d’utilisation simples ; des paramètres avancés permettent de traiter les cas particuliers.

Intégration modérée des services annexes

Contrairement à Tracim v1, les services annexes (wsgidav pour WebDAV, Radicale pour les calendriers — fonctionnalités à retrouver dans Tracim 2.2) sont modérément intégrés dans Tracim, ce qui signifie que leur mise à jour sera simplifiée (permettant de rester proche du projet amont).

Il en sera de même pour l’intégration de LibreOffice online et de Jitsi — fonctionnalités qui reviendront dans les prochaines versions.

Authentifications multiples

Dans Tracim v1, l’authentification était possible via les mécanismes internes ou via LDAP. Ayant changé de pile technique, nous avons dû redévelopper la prise en charge de LDAP, ce qui a été fait par un gentil contributeur croisé au détour des RMLL et recroisé au détour de PyConFr à Lille en octobre dernier.

Nous avons également intégré la gestion de l’authentification déléguée via en‐tête HTTP, donc compatible avec Apache et tous les mécanismes d’authentification que le serveur Web prend en charge.

Les différentes authentifications peuvent être chaînées.

Quelques captures d’écran

Liste des contenus

Liste de contenus

Liste des membres d’un espace partagé

Liste des membres d’un espace partagé

Exemple de document texte avec historique : révisions, changements de statut, commentaires

Document texte avec historique : révisions, changements de statut, commentaires

Partage de fichiers avec prévisualisation en ligne

Partage de fichiers avec prévisualisation en ligne

Grâce au module Python preview-generator que nous avons développé, environ cent‐cinquante types de fichiers peuvent être prévisualisés (images, documents bureautique, fichiers Inkscape, etc.)

Comment tester Tracim 2.1 ?

Le mieux pour se faire une idée d’un logiciel est de le tester.

Nous avons prévu le coup : le plus simple pour tester Tracim est de jeter un coup d’œil à la démonstration en ligne. Cette démonstration est publique, il faut donc éviter d’y déposer des documents confidentiels. Cette démo est réinitialisée deux fois par jour. Les fonctionnalités liées aux interactions par courriel sont désactivées.

Pour tester Tracim dans un contexte plus privé et profiter de l’intégralité des fonctionnalités, la seconde solution est d’installer un Tracim local à partir de l’image Docker.

Les plus motivés, quant à eux, pourront installer Tracim à partir des sources — la documentation sur le dépôt GitHub est là pour les y aider.

Pour résumer : démo en ligne pour un premier test, Docker pour un test privé rapide et installation manuelle pour une maîtrise totale.

Pour aller plus loin

Vous pouvez aussi nous retrouver sur les évènements du Libre. En 2018, nous étions présents aux JDLL, aux RMLL, à PyConFr, au Capitole du Libre. En 2019, nous étions à FLOSSCon, nous serons aux JDLL et nous devrions être présents sur les autres évènements, et probablement également au POSS ainsi qu’au FOSDEM.

En attendant, vous pouvez aussi commenter cette dépêche et nous contacter. :)

Commentaires : voir le flux atom ouvrir dans le navigateur

par LeBouquetin, palm123, Nils Ratusznik, Davy Defaud, Pierre Jarillon

DLFP - Dépêches

LinuxFr.org

Gestion de volumes RAID avec LVM

 -  24 mai - 

Vous connaissez déjà LVM, le gestionnaire de volumes logiques qui permet d’agréger et de subdiviser librement vos périphériques de stockage. Eh bien, (...)


Firefox 67 introduit l’acte II du projet Quantum

 -  23 mai - 

La version 67 de Firefox a été publiée le 21 mai 2019. Les principales nouveautés portent sur la version bureau et concernent le lancement officiel (...)


Ikki Boot 9.1

 -  18 mai - 

Ikki Boot, le CD autonome (live CD) de secours à amorçage multiple, vient de sortir ce 18 mai 2019 en version 9.1. Cette version apporte notamment (...)


Sortie de GNU Compiler Collection 9.1

 -  8 mai - 

La nouvelle version de la collection de compilateurs GNU est sortie le 3 mai 2019. Plus qu’à son habitude, elle apporte de très nombreuses (...)


Pijul, contrôle de version et théorie des patchs, version 0.12

 -  29 avril - 

Pijul est un système de contrôle de version distribué (DVCS) développé en Rust et publié sous licence GPL v2. Il est basé sur une théorie des patches. (...)