Redmine, un remplaçant de Flyspray et une alternative à Jira

J’ai récemment cherché un nouvel Bug Killer pour remplacer notre Flyspray vieillissant. Quel outil choisir ? Jira ? Trac? Redmine? J’avais rapidement essayé Jira il y a quelques temps et j’avais été attiré par certaines de ces fonctionnalités (Agilité, Documentation, Intégration continue).  Il existe également d’autres outils disponibles en ligne , mais j’ai recherché avant tout une solution à installer localement. J’ai donc essayé de trouver une alternative open-source et gratuite.

Voici donc la liste des fonctionnalités que je recherchais pour le nouvel outil:

  • Bug Tracker
  • Multi-projet
  • Un tableau de bord permettant de visualiser le backlog de l’application et la répartition To Do /Doing /Done connue des fidèles de Scrum
  • Lier un ticket avec le code modifié dans le gestionnaire de dépôt (SVN, GIT)
  • Une gestion de la documentation du projet
  • Une intégration avec l’outil d’intégration continue Jenkins (Anciennement Hudson)
J’ai rapidement écarté Trac qui ne permet pas de gérer simplement le multi-projet et me suis tourné vers Redmine présenté (à tord?) comme son petit frère. Je vais donc vous présenter les fonctionnalités de Redmine qui m’ont fait choisir cet outil.

Fonctionnalités principales

Cet outil est développé en Ruby on Rails et propose les fonctionnalités suivantes (liste traduite depuis le site du projet) :
  • Gestion multi-projet
  • Gestion avancé des droits et rôles
  • Système de workflow pour les statuts
  • Diagramme Gantt et calendrier
  • Gestion d’annonces, de documents et fichiers
  • Syndication et Notifications e-mails
  • Wiki par projet (Wiki multi-projets en préparation pour les futures versions)
  • Forum par projet
  • Gestion et suivi du temps
  • Gestion personnalisé des champs (Ticket/Suivi du Temps/Projets/Utilisateurs)
  • Intégration avec des gestionnaires de sources SCM (SVN, CVS, Git, Mercurial, Bazaar and Darcs)
  • Création directe par email
  • Gestion de l’authentification LDAP
  • Gestion de l’enregistrement des utilisateurs
  • Gestion du multilingue
  • Gestion de plusieurs base de données (Mysql, PostgreSQL,etc)
  • Système modulable de plugins

Voici une présentation en français un peu plus détaillée sur les fonctionnalités principales de Redmine.

Vous l’aurez compris, Redmine propose de nombreuses fonctionnalités, et il me semblait donc intéressant de l’installer et de le tester.

Sur Ubuntu, il faut résoudre dans un premier temps quelques problèmes de compatibilité de version que ce soit pour Rails, Rake ou Gem. Il faut parfois désinstaller la version installée par défaut sur Ubuntu pour installer des versions plus anciennes (gem uninstall rake -v=<VERSION_DEFAULT_UBUNTU>). Les messages d’erreurs ne sont pas toujours explicites et n’indique pas toujours qu’il s’agit d’un problème de version.

Une fois résolu, l’installation est finalement simple et permet d’avoir rapidement une version clé en main Multi-projet contrairement à Trac qui nécessite une nouvelle installation à chaque projet.

Interface

L’interface est assez sympa et très facile à prendre en main.

Accueil

Listes des tickets

Un des avantages non négligeable est la possibilité de modifier plusieurs tickets en même temps à l’aide d’un menu qui apparaît au clic droit.

Menu déroulant Clic Droit

L’interface de création et d’édition d’un ticket est très bien faite, et on y retrouve la plupart des champs classiques d’un gestionnaire de bugs. Il est toutefois possible d’y ajouter des champs personnalisés à remplir.

Création d’un ticket

Les bonus

L’outil Redmine est modulable et permet d’activer ou non les modules pour chacun des projets. Il est également possible d’en ajouter ou pourquoi pas de créer vos propres modules selon vos besoins.

Voici les petits + qui m’ont particulièrement intéressé :

  • Le wiki et le forum par projet permettent de proposer en une solution unique une documentation à vos projets et une interaction complète avec les tickets. Il est donc possible de créer des liens entre les tickets, les page wiki et les conversations du forum
  • L’intégration avec les gestionnaires de sources. Redmine se connecte automatiquement à vos dépôts (SVN, Git) pour récupérer les différentes révisions commités et les intégrer aux tickets. Redmine est capable de détecter les références (#203) aux tickets dans les commentaire des commit. Dans Redmine, il est ensuite possible à partir d’un ticket de visualiser le code source qui a été modifié.
  • Pour ceux qui le souhaite, la gestion des échéances et du temps passé, ainsi que l’ordonnancement des tâches permet à l’aide du module Gantt ou du Calendrier de planifier son travail sans devoir passer par des outils annexes.
  • L’intégration avec Hudson/Jenkins
  • Pour les amateurs des méthodes comme Agile ou Scrum, il est possible d’installer le plugin Scrumdashboard qui permet d’avoir un tableau de bord des tâches (To/Do/Done). Sans aller jusqu’à proposer des fonctionnalités aussi évoluées que Jira, cette solution permet de visualiser l’état d’avancement des tâches et de les déplacer sur le tableau de bord.

Redmine ScrumDashboard Plugin

Pour conclure

Redmine est un bon outil open-source pour gérer et suivre des projets. Parmi les autres solutions proposées, on entend beaucoup parler de l’outil Jira qui est vraiment un outil très complet notamment grâce à son intégration avec de nombreux autres produits du même éditeur: GreenHopper pour l’agilité, Confluence pour la documentation, Bamboo pour l’intégration continue.

Malheureusement, cette solution complète est payante. Il me semble que Jira était gratuit pour les projets open-source mais je ne retrouve plus cette offre sur leur site.

Pour ma part, Redmine a répondu à la plupart de mes besoins actuels et évoqués dans cet article (Je ne suis pas très difficile ;-)). La communauté est assez dynamique et regroupée sur le site Redmine. Les utilisateurs participent, que ce soit dans les tickets eux-mêmes ou sur le forum. On regrettera toutefois le manque de visibilité sur les futures versions et leurs échéances.

Pour info, il existe aussi un fork à Redmine appelé ChiliProject, mais il ne semble pas encore faire l’unanimité pour le moment.

Quelques liens :