PhpCollab est un outil de groupware permettant la gestion de projets en développement Web en équipe. Il inclus non seulement un module de suivi de projets mais aussi une partie dédiée au suivi du client. La fonctionnalité innovante du produit se trouve dans l'accès client associé aux projets : un « mini-site » est publié et les éléments désirés sont rendus visibles.
L'installation de PHPCollab 2.4 requière les éléments suivants :
Les sources peuvent être téléchargée directement sur sourceforge.net :
sourceforge.net/project/showfiles.php?group_id=46510
Voici les étapes de l'installation :
Il est dés lors possible de se logger avec l'utilisateur admin et le mot de passe saisi lors de la configuration. L'installation est donc simple et rapide (environ 5 minutes). L'avantage majeur à ce niveau est la portabilité de l'application : aucune contrainte liée au système d'exploitation ni au serveur Web et une grande majorité des serveurs SQL sont supportés.
PHPCollab est un outils entièrement Web qui peut être divisé en trois grandes sections :
Cette section n'est accessible que par l'administrateur de PHPCollab. Elle permet de :
La section des utilisateurs va permettre aux différents intervenants (développeurs, graphistes, chefs de projets...) de mettre à jour l'avancement du projet. Nous visualiserons cette partie en tant que chef de projet.
Lors de la création d'un projet, il est possible d'intégrer des phases. Il existe 2 type de phases : WebSite et CD. CD intègre quatre grandes phases (Planning, Design, Production et Testing) et s'oriente donc vers la réalisation d'un logiciel sur CD. WebSite intègre une cinquième phase (Sign-off) et comme son nom l'indique, s'oriente vers la réalisation d'un site Web. Ces phases ne sont pas dépendantes et leur ordre peut être arrangé. Dans cette logique, il est possible de définir plusieurs phases actives en même temps. A noter que des type de phase (Website, CD...) peuvent être ajoutées aisément dans le fichier customvalues.php.
Pour chacune de ces phases, des tâches devront être définis. Cette répartition n'est utile qu'en terme d'organisation des tâches : les phases n'apparaissent pas sur le planning. Cette fonctionnalité n'est pas tout à fait au point (dû à certains bugs) mais surtout n'est pas encore assez exploitée. Il serait intéressant de réaliser des plannings/rapports globaux regroupant l'avancement des différentes phases.
Une tache peut être affectée à une seule personne. Si celle-ci nécessite l'intervention de plusieurs personnes, il est possible de définir des sous-tâches. Celles-ci n'apparaissent ni sur le planning ni sur les rapports. Le principal problème de la planification des tâche avec ce logiciel est qu'il n'existe aucune dépendance entre celles-ci : il n'y a aucune notion de prédécesseurs. Par conséquent, si une tache se trouve rallongée par la suite impliquant un décalage du planning, chacune des tâches sensées être dépendantes devra être décalée manuellement.
Un forum de discussion est ajouté automatique à un projet. Chaque utilisateur (ayant le droit d'accéder au projet) a la possibilité d'ajouter des commentaires ainsi que des sujets de conversation. Aucune administration de ce forum n'est nécessaire puisqu'il dépend du projet.
L'ajout de membres dans l'équipe de projet se fait par simple sélection des utilisateurs. Chaque utilisateur a une unique fonction saisie lors de sa création. Il n'est donc pas possible de modifier la fonction d'un utilisateur pour un projet puisque la modification aura pour effet de changer sa fonction pour tous les autres projets.
Ci-dessous, un aperçu du planning d'un projet. Ce planning étant issu du logiciel customisé durant mon stage, certains éléments comme l'affichage du retard d'une tâche par une barre rouge apparaît (cliquez pour agrandir) :

PHPCollab met à disposition un formulaire pour générer des rapports. Les rapports vont permettre d'afficher un planning (ainsi qu'un tableau récapitulatif) des tâches à l'aide des paramètres suivants :
Les paramètres des rapports générés peuvent être sauvegardés afin d'être consultés antérieurement.
Malgré un paramétrage complet, la présentation de ces rapports est donc très limitée. Aucune statistique ne peut être réalisée, la représentation se limite toujours un planning.
Le calendrier va permettre d'avoir une vision mensuelle des tâches à réaliser. Il génère automatique un planning correspondant à ces tâches.
Plusieurs inconvénients sont à noter. Premièrement, seules les dates de début et de fin d'une tâche apparaissent sur le calendrier. Les tâches du jour à accomplir ne sont donc pas clairement identifiées. Le second problème est lié aux tâches non terminées. Si une tâche n'est pas terminée alors qu'elle aurait dû l'être le mois précédent, celle-ci n'apparaît pas sur le planning et risque donc d'être oubliée.
La section client correspond au « site projet ». Pour chaque projet créé, il est possible de créer un site projet en cliquant simplement sur le bouton approprié. Ceci a pour effet de mettre à disposition du client une interface web où celui-ci pourra suivre l'évolution du projet et réaliser des demandes d'assistance.

Pour que le client puisse visualiser les informations relatives au projet, il faut que celles-ci soient publiées. Voici les informations publiables :
Chacune de ces données peut donc être masquée, comme par exemple le membre d'une équipe.
Lorsqu'un projet se termine, il est utile, voir obligatoire d'avoir un outil de suivi de bug. Hors PHPCollab ne gère pas du tout cette notion. Pour pallier à ce problème, un module permet d'intégrer Mantis.
Mantis est donc un outil de bug tracking. Tout comme PHPCollab, il est écrit en PHP, basé sur une interface Web et gratuit sous licence GPL.
L'intégration a pour effet de synchroniser les projets et utilisateurs des deux logiciels. Pour que cela fonctionne, les bases de données de ces deux programmes doivent être vierge. Si des projets et utilisateurs ont déjà été créés, il faut abandonner l'idée d'intégration ou recréer ces projets (et utilisateurs) une fois que les modifications sont terminées.
La fusion est donc assez délicate. Le code des deux programmes doit être modifié pour synchroniser les bases de données. De plus, la procédure d'intégration est très mal documentée, celle-ci devrait théoriquement être mise à jour à chaque changement de version de PHPCollab et de Mantis. Hors la documentation fournie avec le logiciel est totalement obsolète, datant de 2002. Un forum sur sourceforge http://phpcollab.sourceforge.net/ permet de récupérer des patches de certaines versions. Sans ces patches, les modifications sont relativement longues : une quarantaine de fichiers sont à modifier.
Il faut noter aussi que Mantis n'est compatible qu'avec MySQL. La base de donnée de PHPCollab devra donc être installée sur un serveur MySQL.
Nous ne détaillerons pas ici toutes les fonctionnalité de Mantis. Il offre tout ce qu'un bug tracker a besoin : notification par mail, de nombreux rapports et synthèses graphiques ou en tableaux, upload de fichiers, mini forum, possibilité de rendre public ou privé un projet.
On peut s'apercevoir que PHPCollab n'offre pas toutes les fonctionnalités que peut proposer Project. Mais contrairement à Project, une solution de suivi de bug peut être mise en place.
De plus c'est un logiciel libre. Il est donc possible de le customiser à volonté en y ajoutant des fonctionnalités comme par exemple l'affichage dynamique du retard des taches sur le planning en encore le listing des tâches journalières sur le calendrier.