Méthode Agile, scrum : Exemple de projet JAVA

Scrum, Agile, Agilité … Des mots que je n’ai pas cessé d’entendre durant les 6 derniers mois. Au boulot, c’est la tendance. Les recommandations : Basculer tout les projets vers cette méthodologie.

Le scrum, ou la méthode Agile pour ceux qui ne la connaissent pas selon wikipédia :

Les méthodes Agiles sont des procédures de conception de logiciel qui se veulent plus pragmatiques que les méthodes traditionnelles. En impliquant au maximum le demandeur (client), ces méthodes permettent une grande réactivité à ses demandes, visent la satisfaction réelle du besoin du client, et non des termes du contrat de développement. La notion de méthode agile a été officialisée en 2001 par un document Manifeste Agile (Agile Manifesto) signé par 17 personnalités impliquées dans l’évolution du génie logiciel et généralement auteurs de leur propre méthode.

Son grand défaut alors reste la disponibilité du client ! Peut être il pourrait être présent au début, mais pour un projet de longue durée… Il est difficile de convaincre le client d’être présent et de suivre de près les étapes de réalisation de son projet.

La lourdeur de la mise en place représente un autre facteur de rejet. Les gens refusent généralement qu’on perturbe leur façon de travailler.  Avec ces tableaux visuels, les fiches à remplir et les réunions matinales et hebdomadaires, la méthode Agile bouleverse le quotidien des équipes de développement.

Cependant, il ne faut pas citer que les inconvénients. L’agilité permet une réaction rapide pour répondre aux besoins client.
Elle permet à tout membre de l’équipe (si le projet n’est pas délocalisé dans plusieurs endroits) d’être au courant de l’état du projet, de l’avancement global et des points de blocage.
L’agilité permet également de capitaliser le savoir faire et de le partager avec toute les équipes pour éviter les éviter les problèmes de « Centre de connaissances ». Cette capitalisation s’illustre clairement sur la vélocité de l’équipe : C’est le rythme de travail et la capacité de l’équipe de produire. Au début du projet l’équipe n’a pas forcement l’expérience nécessaire pour avancer rapidement. Après quelques itérations, (une itération est une période définie, 3 à 4 semaines, dans laquelle l’équipe définit les objectifs à atteindre et les livrables à fournir à la fin de la période) la vélocité doit augmenter car les équipe ont acquit de l’expérience.

L’agilité permet, dans le cas d’un contact régulier avec le client, d’avoir un le produit qui colle au besoin du client et de rectifier rapidement le tir en cas de déviation. Elle peut être aussi être un argument de vente : NOUS ON TRAVAILLE DANS LA TRANSPARENCE, VOUS POUVEZ A CHAQUE MOMENT CONNAITRE CE QUI SE PASSE DANS VOTRE PROJET…

Pour assurer cette transparence, il faudra mettre en place des métriques et des moyens accessibles même à distance. Dans le cas des projets JAVA-J2EE, plusieurs systèmes sont disponibles pour assurer ces métriques à condition que le projet lui-même respecte les standards mis en place.

Dans le cas d’agile, Un projet JAVA doit être mavénisé (utilise Maven) pour la gestion des dépendances, des bibliothèques tierces et pour le packaging et la mise en production de l’application. Si le projet est mavénisé, il doit être mis sous un système de gestion de versions (SVN ou CVS par exemple). Le but est de rendre le projet accessible à partir de d’autres plateformes de mesures.

La solution web open source Hudson représente une première solution web de compilation et de test des projets disponibles sous un système de gestions de versions. Hudson compile, et exécute la pile des tests unitaires du projet en question. Il peut être interfacé avec des solutions de mesure de la qualité du codage du projet.

SONAR, est l’une des solutions phare pour les projets JAVA mavanisé. Il permet d’avoir des pourcentages sur la couverture des tests unitaires, sur le respect des règles du codage, sur la complexité des méthodes utilisées, sur le nombre des tests passés avec succès… En quelques mots une vue globale et détaillé de la qualité de projet en terme de codage.

En conclusion, il faut avoir une panoplie d’outils mis en place pour garantir cette transparence, élément clé de la vente et de l’acquisition de nouveaux projets.

La mise en place de la méthode agile reste une tâche lourde à faire mais elle peut induire des gains énormes sur plusieurs niveau, (Qualité de code, Réactivité, Productivité, communication avec client) à condition que l’équipes respectent leurs engagements et que le client soit disponible pour le suivit de son projet.

agile

1 Comment Add Yours

Leave a comment