Aller au contenu principal

Plane deviendra t'il une alternative sérieuse à JIRA ?

· 9 minutes de lecture
Stéphane ROBERT
Consultant DevOps

Jira, développé par Atlassian, est depuis longtemps le leader incontesté dans le domaine de la gestion de projet agile. Jira permet aux équipes de suivre avec précision le progrès des projets, de gérer les sprints et de hiérarchiser les tâches efficacement. Cependant, chaque outil a ses limites et l'évolution constante des besoins en matière de développement logiciel suscite un intérêt croissant pour des alternatives innovantes.

Plane se présente comme une alternative viable, notamment pour ceux qui recherchent une solution plus agile, plus flexible et surtout plus intuitive que Jira.

Le projet Plane

Petit tour sur le projet hébergé sur GitHub. Le projet possède 18100 stars, une centaine de contributeurs. Il tourne sous licence AGPL 3.0. 220 branches et 241 issues, donc plutôt actif.

Les notions importantes de plane

Les équipes de Plane ont décidé de redéfinir en partie les termes que nous avons l'habitude d'entendre. Ici, nous parlerons de "workspace", de "projects", de "cycles", de "modules", d'"issues" et de "pages".

Voyons chacun d'entre eux.

Les workspaces

Les espaces de travail sont présentés dans Plane comme une organisation sur Slack, où vous pouvez réunir toute votre équipe pour travailler.

Chaque utilisateur d'un workspace est associé à un rôle spécifique, qui détermine les actions qu'il est autorisé d'effectuer dans le workspace. Cela permet de garantir que les utilisateurs ont uniquement accès aux ressources et aux fonctions dont ils ont besoin pour accomplir leur travail.

Ces rôles peuvent être configurés lors de l'invitation d'un utilisateur dans un workspace à partir de la page d'invitation de le workspace, ou ultérieurement à partir de la page des paramètres de le workspace. Notez que lorsque vous invitez un utilisateur pendant le processus d'intégration, le rôle par défaut de « Viewer » lui sera attribué.

Rôles disponibles

  1. Propriétaire : Le propriétaire de le workspace est l'administrateur suprême et dispose de toutes les autorisations définies true dans le workspace.
  2. Administrateurs : les administrateurs de le workspace disposent de privilèges similaires à ceux du propriétaire, mais ils ne peuvent pas supprimer le workspace.
  3. Membres : Les membres de le workspace sont essentiellement des membres de l'équipe au sein de l'organisation et ils ont la possibilité de lire, écrire, modifier et supprimer des entités dans les projets, cycles et modules de le workspace. Il est important de noter que les membres de l'espace de travail ne peuvent pas créer de nouveaux projets, cycles ou modules.
  4. Invité : Les membres externes des organisations peuvent être invités en tant qu'invités, ce qui leur permet de visualiser tout le contenu auquel ils ont été invités. Cependant, ils ne disposent pas des autorisations nécessaires pour écrire, mettre à jour ou supprimer des entités dans le workspace.

Les projects

Les projets vous permettent de gérer des équipes et des issues au sein de votre workspace. Après avoir créé votre workspace, vous devrez créer un nouveau projet.

Si vous souhaitez inviter d'autres membres à un projet, vous devrez d'abord les ajouter au workspace et leur donner accès en les ajoutant dans les paramètres du projet.

Les cycles

En bref, les Cycles de plane sont en faite ce que nous avons l'habitude d'appeler des Sprints dans le monde AGILE.

Les cycles sont une période de temps personnalisée au cours de laquelle une équipe travaille pour terminer les éléments de son carnet de commandes. À la fin du sprint, l’équipe aura généralement fini de construire et de mettre en œuvre une nouvelle version de son projet ou produit.

Un seul cycle peut être en cours à la fois pour suivre les principes d'AGILE. Cependant, vous pouvez avoir vos prochains numéros ou brouillons de numéros déjà créés pour les prochains cycles.

Les Issues

Dans Plane, une issue est une tâche. Cela peut être petit, comme Mettre à jour la couleur primaire en bleu, ou grand, comme Construire l'intégration de GitHub sur le plan. Tout dépend de la manière dont vous et votre équipe décidez de diviser votre travail en issues.

Les issues sont identifiées par un numéro unique et spécifique au projet et ils doivent posséder un titre et un état. Toutes les autres propriétés et relations sont facultatives.

Les modules

En bref, les Modules de plane sont en faite ce que nous avons l'habitude d'appeler des Epics dans le monde AGILE.

Les modules sont des projets plus petits et ciblés qui vous aident à regrouper et à organiser les issues dans un laps de temps spécifique. Ils vous permettent de diviser votre travail en sous parties gérables et de suivre les progrès vers des buts ou des objectifs spécifiques.

Vous pouvez créer autant de modules que nécessaire dans votre espace de travail et personnaliser chacun d'entre eux avec son propre ensemble d'issues, de jalons et de membres de l'équipe.

Les modules vous permettent d'y ajouter des documents et des liens, offrant ainsi un moyen pratique de partager des ressources avec d'autres personnes au sein du module.

Les pages

Vous pouvez considérer les Pages comme des bloc-notes alimentés par l’IA (ChatGPT). Vous pouvez utiliser Pages pour noter rapidement des issues lorsque vous êtes en réunion ou que vous commencez une journée. Plus tard, vous pourrez les transférer directement vers les projets respectifs pour les convertir en ticket.

Installation de Plane

Plane est disponible en tant que service en ligne, mais il est possible de le faire tourner sur Docker.

Je fais le choix de l'installer sur mon poste de travail.

Il suffit de cloner le projet :

git clone --depth 1 -b master https://github.com/makeplane/plane.git && cd plane

Et de lancer la commande docker compose en spécifiant le nom du fichier :

docker compose -f docker-compose-hub.yml up

Au bout de quelques instants votre instance Plane est disponible ! Il suffit de se rendre dans votre navigateur et rentrer l'adresse http://localhost.

Et vous obtenez un mire de connexion. Le user par défaut est : captain@plane.so et le mot de passe : captain@plane.so.

Lors de la première connexion, il vous sera demandé des informations sur vos informations personnelles, puis la création de votre premier workspace.

Dans la documentation, qui est plutôt pauvre pour le moment, il est indiqué qu'une grande partie des paramètres peuvent être modifiée via quatre fichiers de variables :

  • web/.env
  • spaces/.env
  • apiserver/.env
  • ./env

Par exemple dans le fichier apiserver/.env il est possible de modifier l'adresse mail et le mot de passe de l'utilisateur admin :

# Default Creds
DEFAULT_EMAIL="captain@plane.so"
DEFAULT_PASSWORD="password123"

En regardant le contenu, certains paramètres me posent questions. Comme les paramètres AWS S3. Pour de la sauvegarde, j'imagine.

Utilisation de Plane

Bon, je n'ai pas de projet sous la main, quoique ce site en constitue un. Mais je vais juste tester les différentes parties pour voir si le produit est facile à prendre en main et pourrait être utilisé sur de vrais projets.

Création des utilisateurs

Avant de commencer, il faut créer des users et leur affecter des rôles parmi les 4 cités plus haut : admin, member, viewer et guest.

Pour créer des membres à un workspace, il faut :

  1. se rendre dans les settings du workspace
  2. cliquer sur Members.il faut ajouter une adresse email pour lui envoyer une invitation.

Passons à la création d'un projet

Création de projets

J'ai donc créé un projet que j'ai nommé First-Project et automatiquement plane à assigner un identifiant FIRST, mais qui peut être modifié. Cet identifiant doit être unique !

Ajout des utilisateurs aux projets

Il suffit de se rendre dans les paramètres du projet. Assez simple à mettre en oeuvre.

Création d'issues

Je crée une issue que je mets tout de suite dans la backlog. J'imagine qu'un membre de mon équipe va ensuite se l’attribuer pour travailler dessus, dans le cadre d'un cycle.

En regardant les valeurs que peut prendre le state d'une issue, nous trouvons cinq valeurs possibles :

  • Backlog
  • ToDo
  • In Progress
  • Done
  • Canceled

Il est possible d'en ajouter. J'aimerais avec un status Pending. Il faut se rendre dans les paramètres du projet. On les doit les créer comme des sous-ensembles aux states existants. J'accroche Pendind au state In Progress. Je n'ai pas saisi le pourquoi ?

Pour que la planification fonctionne, il faut que toutes les taches possèdent une durée, donc une date d'échéance.

On peut ajouter des labels aux issues pour les organiser et des relations de type parent avec d'autres issues.

Création de cycles

Toujours dans le projet, on peut créer des cycles. Il suffit de définir une date de début et une date de fin.

On peut ensuite y mettre des issues, rien de plus classique.

Gestion des views

Enfin, j'ai créé quelques vues qui utilisent des filtres. Ce qui permet à toutes les parties prenantes du projet de juger ensemble de l'avancement des tâches. On peut tout filtrer et cela fonctionne à priori.

Une fois créé, on peut les afficher en cliquant dessus. On se retrouve devant un écran permettant d'afficher le cycle sous forme de liste, de kanban, de Gantt, de calendrier ...

Création de modules

Je n'ai rien compris. Je compléterai quand j'aurai trouvé comment cela s'intègre dans un cycle.

Création de pages

Les fameux bloc-notes qui peuvent être alimenté par Chat-GPT. A Tester donc.

Autres fonctionnalités

L'import d'issues

Il est à priori possible d'importer les issues depuis Github ou JIRA. Je ne l'ai pas testé pour le moment, mais c'est un bon point pour une future migration. Reste à vérifier que pour Github cela puisse être plus de la synchronisation que de l'import.

L'analyse

Dans le workspace, en plus du dashboard, il y a une partie analytique. On y trouve des stats sur les issues ouvertes, closes, qui en traite le plus...

Conclusion

Je suis agréablement surpris par Plane. L'interface est très simple à prendre en main.

Il pourrait à priori déjà fonctionnelle pour des petits projets, il manque juste la synchronisation des issues depuis des projets hébergés sur Gitlab ou Github.

Il faudrait aussi pouvoir le connecter à un serveur LDAP/AD pour récupérer les utilisateurs. Dans la doc, il n'est pas indiqué comment passer plane en https, mais en analysant le fichier Docker Compose cela doit être facile à réaliser vu que c'est nginx aux manettes.

À suivre donc !