Compte rendu de test de flyspray
Merci à Philippe Midol pour ce travail.
Vue d'ensemble[modifier]
Ce chapitre présente Flyspray dans son ensemble d'après les informations trouvées sur le site de officiel (flyspray.org). Il s'agit d'impression forcément subjectives.
Site WEB[modifier]
Le site flyspray.org est de type mediawiki.
Les fonctionalités mises en avant:
- Web-based, platform-independent
- Multiple database support, currently MySQL and PGSQL
- Easy installation
- Easy to use
- Multiple projects
- 'Watching' tasks, with notification of changes (email or Jabber)
- Comprehensive task history
- File attachments
- CSS themes
- Advanced search features (though easy to use)
- Atom/RSS feeds
- Two syntax options for task descriptions and more (Dokuwiki / plain text)
- Voting for tasks
- Dependency graphs
La dernière version date de Mai 2009, mais un petit tour dans le gestionnaire de configuration montre qu'il y a peu de commit depuis début 2008.
La mailing-list, elle aussi, ne montre pas une activité débordante.
Licence[modifier]
LGPL
Documentation[modifier]
D'après le site elle n'est pas a jour, j'ajoute incomplète. Parfois pas forcément bien structurée. Exemple pour l'installation d'un serveur (sans distinction du système):
In the php.ini file, make sure that the extension php_mysql.dll is uncommented.
Installation[modifier]
Étant fainéant par nature, je cherche rapidement et sans succès un paquet pour Debian (Ubuntu en fait). La méthode de « rapide » ayant échouée, je me rabas sur la méthode manuelle qui a souvent fait ses preuves.
Il n'y a pas de versions Apache ou php préconisées: installation des dernières a grand coup de gestionnaire de package.
Après téléchargement du zip sdepuis le site officiel me voilà prêt pour l'installation. Ce zip ne contient pas de répertoire global cela fait déjà quelques temps que je ne me fait plus avoir avec ces petits défauts, mais cela reste pénible. Il faut donc le dézipper uniquement dans un répertoire vide créé pour l'occasion.
La doc précise de supprimer le fichier flyspray.conf.php sans préciser ou. Un petit find m'en trouve 4...je les supprime tous. Pourquoi livrer un fichier qu'il faut obligatoirement supprimer? Cela laisse un petit goût d'inachevé.
La configuration s'effectue sans problème majeur avec une page d'aide classique. Après la configuration une méthode rustique mais efficace permet d'éviter de supprimer la conf: effacer le répertoire contenant les fichiers d'assistance à la configuration!
Il est ensuite nécessaire d'installer les éventuels plugins disponibles.
L'installation est donc simple mais un peu rustique.
Utilisation[modifier]
L'écran principale affiche immédiatement un projet par défaut et les taches associées. Plusieurs groupes de fonctionnalités sont disponibles. Par atavisme, je fonce sur l'administration.
Administration[modifier]
Lécran d'administration propose plusieurs catégories:
- les préférences;
- les utilisateurs;
- les types de taches;
- le statut des taches
- les raisons de clôtures;
- les systèmes d'exploitation;
- les versions;
- les projets.
Il est intéressant d'étudier ces catégories car c'est à partir d'elle que l'on peut paramétrer l'outil pour le faire correspondre à nos besoins.
Une chose importante a noter en passant par ce menu, les élément que l'on ajoute, modifie ou supprime concernent tous les projets. Nous verrons plus loin que certaines de ces informations peuvent être définies par projet.
Les préférences[modifier]
Elles permettent de gérer des éléments assez classiques Ce qui peux nous intéresser plus particulièrement:
- la langue: le français est disponible, mais j'ai constaté qu'une page c'est d'abord affichée en anglais avant de choisir le français après un aller retour sur une autre page;
- le type de notification: jaber, email;
- la liste des éléments affichés pour les taches.
Utilisateurs et groupes[modifier]
Que du classique pour le utilisateurs.
Pour les groupes, il est possible d'affecter à chaque groupe une liste d'actions autorisée.
Par contre chaque utilisateur ne peut appartenir qu'à un seul groupe. Cela peut rendre plus compliqué la participation à plusieurs projets sur un seul serveur. (A vérifier)
Types de taches[modifier]
Il est possible de définir de nouveaux types de tâche, ce qui correspond tout a fait aux besoins exprimés.
Ces taches possèdent un numéro d'ordre mais qui, apriori, n'a pas d'utilité fonctionnelle.
Statuts des tâches[modifier]
Chaque tâche est associées à un statuts (ex: Assigned). La aussi il est possible d'en ajouter pour nos besoins. Comme pour les type de taches un numéro d'ordre doit être précisé pour chaque statut.
Raisons de clôture[modifier]
C'est le troisième élément associé à une tâche et permet d'indiquer pourquoi la tache est close. C'est un subtile différence avec le statut qui ne saute pas au yeux.
Catégories[modifier]
Les catégories sont encore une caractéristique des tâches, mais cette fois, il n'y a plus de numéro d'ordre. Par contre elles sont beaucoup plus intéressantes car il est possible de créer une véritable arborescence de catégorie en créant des sous-catégories. Cette caractéristique semble donc beaucoup plus complète et permet certainement de s'adapter à un grand nombre de cas.
A chaque catégorie peut être associée un responsable auquel est envoyé une notification lors de la création d'une tâche.
Système d'exploitation[modifier]
Cette notion n'a aucun intérêt dans le cadre de notre utilisation potentielle.
Version[modifier]
La aussi cette notion n'est pas passionnante pour nous, mais elle permet de définir une roadmap.
Nouveau projet[modifier]
Tout est dans le titre, le seul élément notable est la possibilité de donner la visibilité a tous le monde ou non.
Gestion des projets[modifier]
Nous avons vu plus haut qu'il était possible de créer des nouveau projets. Certains utilisateurs ont des droits d'administration de ces projets. La fonction de gestion des projet est très proche de l'administration générale du site vu ci-dessus.
Les différence sont les suivantes:
- les préférences sont spécialisées pour le projet (titre, description...);
- les différents type d'attribut (catégories, types, statuts, raison de clôture) sont propres au projet;
- Des groupes d'utilisateurs peuvent propre au projet.
Attention les utilisateurs sont communs à tous les projets.
Gestion des taches[modifier]
Pour gérer les tâches, quatre grandes fonctions:
- visualiser les taches;
- ajouter une nouvelle tâche;
- éditer des rapports;
- visualiser une feuille de route.
Visualiser les taches[modifier]
C'est la fenêtre par défaut, la lite des tâches du projet sélectionné est affichée. Il est possible d'en sélectionner une pour afficher les détails et la modifier.
Hormis les attributs listés ci-dessus, une tache possède d'autres caractéristiques:
un nom; une description;
- la liste des utilisateurs à qui elle est assignée;
- la sévérité, assez peu utile pour l'utilisation pressentie;
- la priorité;
- la version de base (même remarque que pour la sévérité);
- la version finale;
- la date d'échéance;
- le pourcentage d'avancement;
- liste des attributs;
- ajouter une nouvelle taches;
- la liste des taches dont elle dépend.
Il est aussi possible d'ajouter des commentaires, des fichiers joints.
La notion de dépendance entre tache permet d'établir un graphe de dépendance. Pour effectuer un mini-gestion de projet.
Il est à noter qu'il n'est pas possible de décomposer une tâche en sous-tâches. Pour cela il faudrait certainement utiliser une catégorie ou un type et des dépendances entre les tâches.
Ajouter une nouvelle tache[modifier]
Après avoir décrit le contenu d'une tache, il est assez simple de décrire l'ajout d'une nouvelle tache. Il s'agit d'une fenêtre permettant de saisir tous les éléments cités ci dessus.
Petit oubli: il est possible de joindre un document à la description.
Rapport[modifier]
Ce petit utilitaire permet d'effectuer des recherche dans la liste des tâches selon les évènements liés à la vie de la tâche (création, modification...). La liste affichée permet ensuite de visualiser/éditer la tache sélectionnée.
Adéquation aux besoins[modifier]
A partir des différents documents décrivant les besoins, je vais essayer d'effectuer une correspondance avec les fonctionnalités de flyspray. Pour cela j'aurai aimé établir une liste exhaustive de ces besoins, mais le temps me manque. Voici donc un petit résumé.
Accessible via le web | OK |
En français | OK |
Permettre à tout un chacun de prendre une tâche | Possible si les utilisateurs ont suffisamment de droits |
Permettre à une catégorie restreinte de personnes (responsables de groupes, CA, permanents) d'ouvrir des tâches | OK |
Au moins deux niveaux : projet / tâche (pour garder une vision globale malgré le découpage en microtâches) | OK |
Pouvoir associer des tags ou catégories aux tâches | Oui et même plus |
Pouvoir indiquer une durée et une échéance pour chaque tâche | OK |
Générer différents types d'affichage (selon les tags, ouvert/fermé, mes tâches, etc) | ?? Non |
Recevoir des notifications par mail (pour les ouvertures / fermetures de tâches associées à un projet ou catégorie) | OK |
Création automatique de tâches à partir des courriels entrants | Non |
Associé à l'outil de bénévolat valorisé | Non |
Générer des statistiques sur le nombre de tâches ouvertes/fermées/en cours par projet et/ou catégorie | Non |
Pour les « non », il est toujours possible de faire des développement complémentaires.
Pour mon impression personnelle: L'architecture permet une certaine scalabilité;
- Je n'ai pas vu réellement de workflow;
- il n'y a pas de notion de sous tache, uniquement des dépendances entre les taches;
- il manque a mon sens un module de gestion de projet;
- il est très orienté gestion de bug et peux donc dérouter les non geeks;
- l'activité sur le projet est limité (nombre de commit, listes de diffusions...), mais il n'est pas mort;
En dehors de Flyspray, il me semble qu'un outil de gestion de bug pour gérer des taches de bénévoles ne sera jamais parfaitement adapté. En effet, il faut aussi: gérer les bénévoles, gérer le projet, un workflow... Les besoins ne sont peut être pas suffisamment décrit?
Il existe d'autre type d'outils comme les gestionnaires de projets: taskjuggler par exemple. Il existe aussi gPM, un outil permettant d'implémenter un workflow en se basant sur des fiches (mais il faut définir un workflow).