Gérez l'équipe agile avec XPlanner

Portée, conception, construction, test, livraison, excuses. Ce sont les étapes souvent foulées d'une méthodologie d'ingénierie traditionnelle appliquée au monde mercuriel des projets logiciels. En tant que développeur de logiciels, vous connaissez probablement bien cette exigence "finale" du système qui semble esquiver et se tisser comme un combattant de prix. Peut-être avez-vous travaillé dur sur un projet de développement pour émerger des mois (ou des années) plus tard pour faire face à un client qui semble profondément déçu que ses besoins réels n'aient pas été satisfaits. Peut-être que vos pairs en sont au point où un plan de développement méticuleux à long terme placé devant eux instille un sentiment de malheur imminent. Conclusion: votre équipe est prête à entreprendre un développement agile, mais votre outil de gestion d'équipe traditionnel a-t-il été programmé pour la gestion d'équipe traditionnelle?

Les méthodologies agiles peuvent être légères, mais elles sont très disciplinées. Tout outil qui vous aide à planifier et à suivre les livraisons rapides avec une collaboration étroite avec les clients peut constituer un ajout précieux à votre arsenal. La bonne nouvelle est que plusieurs de ces outils sont désormais disponibles pour l'équipe agile. Cet article détaille une expérience concrète dans la gestion d'une équipe de développement agile en utilisant l'un de ces nouveaux outils, le XPlanner open source.

XPlanner est une application Web Java conçue pour prendre en charge la gestion d'équipe selon la méthodologie de programmation extrême (XP). Cependant, nous avons trouvé cet outil suffisamment flexible pour fournir un soutien précieux pour d'autres approches agiles traditionnelles (par exemple, Scrum) dans le feu de la livraison de projet. Bien que peu sophistiqué, XPlanner fournit un outil pratique pour soutenir votre équipe, que vous soyez expérimenté ou que vous vous lanciez dans le monde gratifiant du développement logiciel agile.

Outils de gestion d'équipe traditionnels ou agiles

Les outils de gestion d'équipe traditionnels (tels que Microsoft's Project) sont basés sur des structures de répartition du travail qui regardent loin dans l'avenir d'un projet. L'allocation planifiée des ressources et un œil attentif sur les écarts par rapport au niveau de référence sont utilisés pour gérer le «chemin critique» jusqu'à la livraison finale. L'application de ces outils implique des efforts de planification initiaux substantiels, des dépendances rigides des tâches et une base d'exigences stable. Des modifications importantes de la portée ou des exigences nécessiteront probablement des révisions importantes du modèle. Ainsi, ces outils traditionnels sont les plus appropriés lors de la planification d'un voyage de A à B, en supposant peu de variation de cap. En revanche, les projets agiles sont conçus pour s'attendre au changement, sans supposer que B soit même la destination finale.

Pour comprendre la culture du projet agile, il est utile de prendre en compte les principes du développement agile tels qu'adoptés par les auteurs du Manifeste Agile:

  • "Individus et interactions sur processus et outils
  • Logiciel de travail sur une documentation complète
  • Collaboration client plutôt que négociation de contrat
  • Répondre au changement au sujet d'un plan"

    (Kent Beck et al., 2001)

Ainsi, les projets agiles abandonnent explicitement la planification à long terme au profit d'un engagement intime des parties prenantes, d'une concentration claire sur les fonctionnalités de grande valeur et de la publication précoce et fréquente de logiciels utilisables. L'objectif sous-jacent est de fournir simplement et efficacement de la valeur face au changement constant. Pour qu'un outil de planification et de suivi soit utile dans ce contexte, il doit être conforme à ces valeurs.

Planification et suivi de projet avec XPlanner

XPlanner est un logiciel de gestion de projet agile disponible sous la Licence Publique Générale Limitée GNU (le rendant «gratuit, comme dans la bière», dans le jargon open source). Le package se déploie en tant qu'application Web, ce qui permet aux membres de votre équipe et aux parties prenantes du projet de participer en utilisant leurs navigateurs Web préférés. Une fois configuré, vous pourrez planifier et suivre divers aspects de la livraison de votre projet agile via une interface Web simple.

De manière cruciale, du point de vue agile, les participants au projet sont en mesure de collaborer directement en apportant leurs informations dans le référentiel commun du projet. Cette collaboration peut impliquer des clients décrivant les exigences du projet sous la forme de user stories, que les développeurs utilisent ensuite pour détailler et suivre les tâches nécessaires pour faire de ces histoires une réalité.

En plus de prendre en charge ce niveau de collaboration client, XPlanner fournit d'autres fonctionnalités pratiques qui prennent en charge l'approche agile. Celles-ci incluent des fonctionnalités telles qu'un mécanisme simple pour définir les itérations de projet; une interface intuitive pour les individus estimant et suivant l'effort; et des graphiques pour la publication de métriques d'équipe. XPlanner est discuté ici car il a été déployé pour soutenir la livraison d'un système de commerce électronique et de flux de travail composé de plusieurs groupes de parties prenantes et d'une équipe de sept développeurs.

Téléchargement et installation

XPlanner est une application Java pure qui peut être déployée dans n'importe quel environnement de développement J2SE 1.4 équipé d'Apache Ant et d'un moteur de servlet approprié. Nous avons choisi Apache Tomcat comme moteur de servlet; cependant, tout moteur compatible avec Servlet 2.3 (ou une version plus récente) devrait faire l'affaire. XPlanner est livré sous forme d'archive de fichiers (zip ou tar.gz) que vous devez décompresser et compiler avant de déployer et d'utiliser l'outil.

Une étape de configuration obligatoire est impliquée car vous devez configurer votre base de données préférée à utiliser comme référentiel pour les informations du projet. Comme XPlanner utilise l'objet Hibernate / couche de persistance relationnelle pour l'interaction avec la base de données, vous avez la possibilité d'utiliser n'importe quelle base de données prise en charge par Hibernate pour le référentiel de votre projet. L'option fournie est la base de données Java légère Hypersonic (maintenant appelée HSQLDB); cependant, nous avons utilisé Oracle 9i comme base de données de référentiel. Pour configurer cette base de données, nous avons dû éditer le fichier xplanner.propertiesen décommentant les propriétés Oracle déjà définies. Nous avons également dû modifier le build.xmlfichier pour incorporer le pilote de base de données légère Oracle. Une fois configuré, vous pouvez créer votre déploiement XPlanner. Cela implique d'exécuter Ant pour produire une archive Web déployable (WAR) comme suit:

ant install.db.schema ant build.war 

Déployez le fichier d'archive Web résultant ( xplanner.war) sur le moteur de servlet de votre choix, puis accédez à l'URL // votre-serveur: votre-port / xplanner / (en utilisant l'utilisateur par défaut "sysadmin" et le mot de passe "admin") pour inspecter les résultats!

S'intégrer à votre écosystème

La plupart des environnements de développement contiennent déjà un système de suivi des bogues, des forums de collaboration, des systèmes de sécurité, des référentiels de normes, etc. Bien qu'utile en tant qu'outil autonome, la valeur de XPlanner peut être améliorée grâce à ses fonctionnalités d'intégration simples et puissantes. XPlanner inclut, par exemple, la possibilité de prendre en charge le rendu du discours du développeur dans un champ de description, tel que bug: 1001 en tant que lien vers //mybugzilla/show_bug.cgi?uid=1001. Cela peut être fait en ajoutant simplement twiki.scheme.bug=//mybugzilla/show_bug.cgi?id=au xplanner.propertiesfichier. Cette même technique peut être utilisée pour d'autres outils Web tels que viewcvs (xplanner.propertiesmontre quelques autres exemples). XPlanner dispose également d'un formateur de wiki avancé (non utilisé sur notre projet) qui permet un lien automatique vers les entrées de wiki. Plus d'informations sur les extensions XPlanner peuvent être trouvées dans les ressources.

Dans la plupart des organisations, invariablement, une forme de serveur d'annuaire compatible LDAP (protocole d'accès à l'annuaire léger) fournit un référentiel centralisé des comptes de sécurité des utilisateurs. Par exemple, au sein de l'organisation qui sponsorise notre projet, un serveur LDAP désuet mais fonctionnel a rempli cet objectif (Active Directory de Microsoft prend également en charge largement le protocole LDAP). C'était rafraîchissant de constater que XPlanner était simple et XPlannerLoginModulefacile à intégrer à LDAP. Cela impliquait la mise xplanner.propertiesà jour comme suit:

-> Comment out default security #xplanner.security.login.module=com.technoetic.xplanner.security.XPlannerLoginModule

-> Uncomment and edit the LDAP entries from... xplanner.security.login.module=com.technoetic.xplanner.security.jndi.JNDILoginModule

-> ...to: xplanner.security.login.option.roleSearch=(uniqueMember={0})

-> Add user search entries xplanner.security.login.option.userBase=ou=people,o=person

-> And blank out values for xplanner.security.login.option.userPattern= xplanner.security.login.option.userPassword=

Avec une reconstruction et un déploiement rapides, la sécurité d'authentification XPlanner a été entièrement intégrée. Le seul inconvénient était que les noms d'utilisateurs devaient encore être explicitement ajoutés dans XPlanner, mais au moins les problèmes de mot de passe et d'appartenance à un groupe sont devenus le problème du service d'assistance de l'entreprise.

Équipe, rencontrez XPlanner

XPlanner affiche un projet en fonction des itérations, des user stories et des tâches. Comme prescrit par le paradigme Agile, tout projet géré par XPlanner est planifié et suivi selon une série successive d'itérations. Chaque itération se compose d'une date de début, d'une date de fin et d'une collection de user stories à concevoir de l'histoire à la réalité au cours de cette période.

Une user story est le principal outil conceptuel utilisé dans le développement agile pour communiquer les besoins des clients aux développeurs de logiciels. Une fois qu'une user story est affectée à une itération actuelle (dans le cadre de la planification de la publication via XPlanner), le développeur recherche plus de détails pour chaque histoire en collaborant avec l'utilisateur (espérons-le en face à face). Le résultat de cette étape est une série détaillée de tâches de développement, chacune desquelles le développeur enregistre dans XPlanner par rapport à la user story pertinente.

Nous avons choisi notre projet de flux de travail e-commerce pour fonctionner avec des itérations mensuelles, chacune composée d'environ 10 histoires, avec 10 à 15 tâches assignées à chaque histoire.

Récolter les user stories

Chaque user story pour une itération de projet doit être une description courte et axée sur les résultats d'une expérience utilisateur telle qu'elle est racontée à la première personne (par exemple, "Je recherche ensuite en fonction de la couleur ..."). Cette expérience est écrite par un utilisateur qui envisage le futur produit idéal en action, vous pourriez donc penser à une user story comme une visualisation positive pour un logiciel! Le but de chaque visualisation est de fournir suffisamment d'informations pour qu'un développeur de logiciel estime l'effort requis pour faire de cette histoire une réalité.

XPlanner répertorie la collection de user stories de votre projet, tout en enregistrant une estimation de client, de suivi, de priorité et d'effort pour chacun d'eux. La principale difficulté que nous rencontrons souvent est la récolte de user stories de haute qualité dans l'esprit des utilisateurs du système. C'était certainement le cas pour notre projet, car il s'agissait d'un changement de paradigme significatif par rapport aux exigences rigides de sections / sous-sections auxquelles les utilisateurs étaient habitués. Cependant, la possibilité d'utiliser XPlanner pour gérer les histoires de manière à ce qu'elles puissent être facilement vues et mises à jour par les parties prenantes, et être rapidement échangées dans et hors d'une itération donnée, a certainement aidé. Une caractéristique intéressante, sinon fonctionnelle, de XPlanner est la sensation authentique qu'il donne à une user story, affichant chacune à l'écran comme une carte d'index 3 par 5 ressemblant, comme le montre la figure 1.

Estimer et enregistrer l'effort

Le développement agile exige que les développeurs entreprennent leur propre définition d'objectifs, ce qui implique l'analyse d'une user story et la définition des tâches techniques requises pour réaliser cette histoire. Un développeur doit être libre d'ajouter des tâches supplémentaires ou de modifier des tâches existantes à mesure que d'autres détails de l'histoire deviennent disponibles. XPlanner prend en charge cette flexibilité en fournissant aux développeurs un accès complet pour définir et modifier une tâche. Chaque tâche peut se voir attribuer un type, tel que dette, caractéristique ou défaut, pour caractériser le type de travail effectué (la dette, par exemple, est une tâche de nettoyage de la «crasse» technique laissée dans le système lors d'une itération précédente). Les tâches sont également spécifiées avec une disposition (planifiée ou non), le développeur acceptant, une description de travail et une estimation du nombre d'heures idéales nécessaires pour réaliser cette tâche.

XPlanner permet à un développeur d'enregistrer facilement la quantité de travail investie dans une tâche donnée ou de mettre à jour l'estimation d'effort d'origine (l'original est toujours stocké). Notez que les estimations d'effort, comme mentionné, doivent être spécifiées en heures idéales . Une heure idéale est une heure au cours de laquelle le développeur ne subit aucune interruption.

Les développeurs doivent également enregistrer le nombre d'heures idéales qu'ils consacrent à une tâche donnée. Si vous encouragez vos développeurs à enregistrer honnêtement les heures idéales (en n'exigeant pas de savoir où va le temps), vous pourrez extraire des métriques utiles de XPlanner (voir ci-dessous). Nous avons constaté, par exemple, que sur notre projet, une heure idéale prenait environ 1,4 heure écoulée. Ces informations peuvent ensuite être utilisées pour fournir une estimation affinée pour les itérations ultérieures, ce qui permet de tenir les promesses de l'équipe et les attentes du client dans le même sens.

Métriques et planification de la prochaine itération

Vous êtes à mi-chemin d'une itération et le patron veut savoir «à quoi nous ressemblons». Une réponse bien utilisée à cette question est «Nous sommes à environ 80% du chemin». Bien sûr, ces derniers 20 pour cent semblent toujours prendre beaucoup plus de temps qu'il ne le devrait - les 20 derniers pour cent étant l'équivalent logiciel des légumes ternes au dîner que vous laissiez jusqu'à la fin.