Amaury.net
Accueil Liste articles Forum Ma liste de cadeaux Contact

Outils de travail coopératif

01 juillet 2007

Je regarde de près les outils de travail collaboratif, ce qu'on entend habituellement sous le terme de "groupware". Le but de ces outils est de faciliter le travail en équipe, ce qui prend tout son sens en entreprise aussi bien que pour faire avancer un projet open-source.

La plate-forme de groupware la plus connue est Microsoft Exchange. Je l'ai utilisé pendant 3 mois chez Mediabilis, et il faut bien reconnaître que c'est très pratique à utiliser. Pour commencer, la gestion des emails est efficacement centralisée : on pouvait les lire aussi bien sur nos postes avec Outlook qu'à travers une interface Web particulièrement performante. La rédaction de messages internes à l'entreprise était facilité par l'utilisation d'un carnet d'adresse interne : les fiches de tous les employés étaient immédiatement disponibles. Enfin, la gestion d'emploi du temps était faite par Exchange elle aussi ; il était facile de savoir si une personne était disponible ou si elle était en réunion ou en déplacement à l'extérieur, et tout aussi simple d'organiser des réunions.

Bref. La plupart du temps il n'est pas question de se baser sur une telle plate-forme, à cause de tout ce qu'elle implique (licences Windows Server et Exchange à acheter, configuration des Active Directories, incompatibilité avec les postes Linux). Il faut donc trouver d'autres logiciels pour remplir les mêmes fonctions, voire quelques unes de plus. Après avoir étudié rapidement les solutions de groupware "tout intégrées", comme par exemple OBM, OpenGroupware, SOGo, PHPGroupware, eGroupWare, Mioga2, Hula, PHProjekt, Zimbra, Citadel, je n'ai été satisfait par aucun d'entre eux. Ils me semblent tous inadéquats (interface Web uniquement) ou peu ergonomiques (pas possible de modifier l'interface), ou encore monstrueux (plein de fonctionnalités inutiles alors qu'il peut en manquer de fondamentales) voire compatibles uniquement avec eux-mêmes.

Listons les fonctionnalités nécessaires pour le travail collaboratif, et voyons les solutions envisageables simplement.

  • Le courrier électronique : C'est la fonctions de base sans laquelle on ne peut plus envisager de travailler, aussi bien pour la communication à l'intérieur qu'à l'extérieur de l'entreprise. Personnellement, l'installation d'un serveur SMTP tel que Exim se fait les doigts dans le nez. Ajoutons-y un serveur IMAP, et tout ira bien. C'est open source, standard, et supporté aussi bien par Outlook que par Thunderbird.
  • La messagerie Web : Le fait de pouvoir lire ses emails à distance, à travers une interface Web, est absolument nécessaire. Conjugué au serveur IMAP, cela permet de retrouver l'intégralité de ses messages de n'importe où. Je viens de découvrir le logiciel RoundCube, qui est le premier webmail open-source utilisant l'AJAX et l'HTML dynamique avec du "drag-and-drop".
  • La base de connaissance : Une gestion centralisée des connaissances d'une entreprise est importante. De nos jours, un des meilleurs moyens pour cela est d'utiliser un Wiki. En l'occurence, j'utilise MediaWiki.
  • La gestion de documents : Le travail de groupe implique le besoin de partager des documents. Un simple serveur de fichiers peut suffire à partir du moment où les différents intervenants s'accordent sur une nomenclature de nommage des fichiers et des répertoires. Dans ce cas, l'installation d'un serveur Samba, ou mieux WebDAV (car utile pour la publication de calendriers, voir plus bas), offre une compatibilité totale sous Windows aussi bien que sous Linux.
  • Un blog d'entreprise : Oui, je trouve ce mode de communication bien pratique. Et le projet français DotClear rempli très bien ce rôle.
  • Un forum de discussion : Pour organiser des échanges plus élaborés qu'avec un blog, les forums de discussion peuvent être très utiles. Je pense que ça reste à manier avec précaution en entreprise, car cela peut vite se transformer en système de ''chat''. Mais quitte à en installer un, j'utiliserais PHPBB ; il n'est pas parfait, mais j'ai l'habitude de le modifier.
  • La gestion de tickets : Qu'il s'agisse de remontées de bugs ou de demandes d'évolutions fonctionnelles, un bon système de gestion de tickets doit faciliter grandement le travail et aider à planifier les tâches. Le projet Flyspray est là pour ça, que je préfère au presque aussi bon Bugzilla.
  • La messagerie instantanée : Cette méthode de communication remplace avantageusement les emails et le téléphone lorsqu'il s'agit de brefs échanges textuels. Mais l'utilisation de réseaux propriétaires externes (MSN Messenger, ICQ, AIM, Y!IM) peut faire craindre quant à la confidentialité des échanges. Alors autant installer un serveur Jabber interne. Pour pouvoir l'utiliser simplement de n'importe où, il semblerait que l'interface Web JWChat soit efficace.

Ca c'était les fonctionnalités pour lesquelles je connais des solutions évidentes. Vous aurez remarqué qu'il manque les plus importantes (après le courrier électronique) : la gestion de contacts et d'emploi du temps, et dans une moindre mesure la gestion de projets.

Commençons avec la gestion de projets. Je n'ai pas encore trouvé de projets open-source proposant une qualité et une ergonomie satisfaisantes. En tout cas, rien qui ne me fasse sauter le pas... Même en cherchant une solution "standard", j'ai juste trouvé quelques infos sur le format PMXML (Project Management XML) ; mais aucun outil qui utilise ce format (qui date pourtant de 2002)...

Occupons-nous de la gestion des contacts. C'est un sujet assez complexe contrairement aux apparences. Idéalement, il faudrait un système qui permette de gérer 2 types de contacts : les personnels (qu'on ne veut pas partager avec tous le monde) et les professionnels (dont il faudrait faire bénéficier toute l'entreprise). Le problème, c'est qu'il n'existe à ma connaissance aucun moyen de partager des fiches de carnets d'adresses. La seule chose qui existe, ce sont les annuaires d'entreprise ; de la même manière que ce que j'expliquais concernant l'utilisation d'Exchange à Mediabilis, l'installation d'un serveur LDAP permettrait de remplir ce rôle (en plus de quelques autres, comme l'unification de l'authentification globale). Mais encore une fois, cela rempli un besoin un peu "old-school", tourné sur l'entreprise dans une vision nombriliste.

Donc, dans la plupart des cas, on peut se dire que le plus simple est de laisser chacun se gérer son propre carnet d'adresses. Les fiches vCard des contacts internes et externes peuvent toutefois êtres partagées et téléchargeables. La seule chose ennuyeuse, c'est de ne pas pouvoir synchroniser les contacts enregistrés en local (dans Outlook ou Thunderbird) avec le webmail. RoundCube gère sa propre base de contacts, peut-être faudrait-il contribuer à ce projet en lui donnant la capacité de se connecter à un serveur Kolab ou GroupDAV ?

Venons-en à la gestion de calendrier. Il s'agit d'un point très important dans les grandes organisations, mais qu'il ne faut toutefois pas négliger même dans une structure légère. De quoi s'agit-il exactement ? A la base, c'est la gestion individuelle de l'emploi du temps : lister les choses à faire, planifier les réunions, organiser les rendez-vous. Ensuite, il faudrait pouvoir gérer tout cela à partir d'un poste client (avec Outlook, Thunderbird + Lightning, ...) aussi bien que par interface Web. Et enfin, il faudrait trouver un moyen de publier automatiquement les emplois du temps de tout le monde, afin que chacun puisse prendre connaissance des disponibilités des autres.

Après avoir regardé du côté de Kolab, GroupDAV et CalDAV, j'en suis arrivé à la conclusion que le moyen le plus pratique est d'utiliser des calendriers au format iCalendar. Il s'agit du format utilisé par le logiciel iCal d'Apple (voir cette page d'explication), avec lequel Sunbird est compatible, et qui est aussi utilisé par Google Calendar. Utilisé coinjointement avec un serveur WebDAV, il devient possible de publier ses différents calendriers, et de s'abonner à d'autres calendriers. Pour visualiser les calendriers sur le web (il n'est malheureusement pas possible de les modifier), j'utilise le logiciel PHP iCalendar. C'est dommage qu'il n'existe pas encore de logiciel libre équivalent à Google Calendar, qui est une interface Web très pratique à utiliser pour visualiser et éditer des calendriers, à grands renforts d'AJAX et d'HTML dynamique.
Les seules choses qui s'en rapprochent, mais avec une interface simple (voire simpliste) tout en restant fonctionnelle, sont phpEventCalendar et PHP-Calendar.