logo

Méthode AGILE


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.

Ces valeurs fondamentales :
  • L'équipe : elle est bien plus importante que les moyens matériels ou les procédures.
    Il est préférable d'avoir une équipe soudée et qui communique composée de développeurs moyens plutôt qu'une équipe composée d'individualistes, même brillants. La communication est une notion fondamentale.
  • L'application : il est vital que l'application fonctionne.
    Le reste, et notamment la documentation technique est secondaire, même si une documentation succincte et précise est utile comme moyen de communication.
    La documentation représente une charge de travail importante, mais peut pourtant être néfaste si elle n'est pas à jour.
    Il est préférable de commenter abondamment le code lui-même, et surtout de transférer les compétences au sein de l'équipe.
  • La collaboration : le client doit être impliqué dans le développement.
    On ne peut se contenter de négocier un contrat au début du projet, puis de négliger les demandes du client.
    Le client doit collaborer avec l'équipe et fournir un feed-back continu sur l'adaptation du logiciel à ses attentes.
  • L'acceptation du changement: La planification initiale et la structure du logiciel doivent être flexibles afin de permettre l'évolution de la demande du client tout au long du projet.
    Les premières releases du logiciel vont souvent provoquer des demandes d'évolution.
Quelques méthodes agiles
  • L'eXtreme Programming (XP).
    Cette méthode met l'accent sur l'application stricte, voir à l'extrème d'un petit ensemble de règles tout au long de la réalisation du projet et en retour offre les bénéfices suivants :
    • Réalisation d'un produit fonctionnel, conforme aux besoins changeants du client.
    • Ecriture d'un code de qualité facilitant les futures maintenances. Les règles les plus connues étant: refactoring, test unitaire, programmation en binôme, communication continue avec le client, intégration continue...
  • Scrum. C'est une approche itérative qui pose un cadre de travail minimaliste : des sprints, des réunions en début et fin de sprint, 2 backlogs, 3 rôles et tout est dit. Son but ? Aider à produire le maximum de fonctionnalités dans des délais de développement raisonnables.
Quelques outils

L'approche utilisée peut être renforcée dés le démarrage du projet par l'utilisation d'outils appropriés :

  • Visual Studio, comme éditeur du code source,
  • NUnit, comme framework de test unitaire,
  • SubVersion, comme système de contrôles des sources,
  • Trac, comme outil web permettant le suivi quotidien des tâches en cours
  • CruiseControl.NET pour l'intégration continue