Pour gérer un projet, on a plusieurs solutions: On peut le faire à la-rache sans utiliser de logiciels, en partageant le code source via une clef USB, en notant les demandes utilisateurs dans un coin de la tête du chef de projet, et les bugs bloquants sur une feuille volante. On peut aussi le faire à l’ancienne, avec Visual Source Safe, Microsoft Project et un outil de gestion de bugs fait maison. On peut également se la jouer grosse boite qui a de l’argent en utilisant ClearQuest pour gérer les bugs et les demandes d’évolution et Primavera pour gérer les plannings. Indépendamment de leurs qualités intrinsèques, ces logiciels ont tous un point commun: ils ne correspondent pas à ce dont à besoin une équipe qui utilise une méthodologie de développement agile.
De quoi à besoin une équipe de développement agile ?
- Un logiciel de gestion des sources qui ne verrouille pas les fichiers (plusieurs développeurs doivent pouvoir travailler en même temps sur le même fichier) et qui gère les branches. Subversion me semble indiscutablement le choix qui s’impose, mais CVS – son ancêtre – marche également. Enfin Perforce est également une solution pour les plus fortuné d’entre vous.
- Un logiciel de build et d’intégration continue. Son rôle est de compiler le projet, d’exécuter les tests unitaires et de générer le distribuable, ceci de manière régulière. Pour un projet Java ou Flex, on utilisera typiquement Ant ou Maven pour la build. Pour l’intégration continue CruiseControl, Continuum et Hudson sont des candidats de choix. Pour un projet .NET, on passera par MsBuild et Team System si on arrive à négocier les licences avec son supérieur, ou bien Nant et CruiseControl.NET.
- Un logiciel de tests unitaires. Pas la peine d’aller chercher bien loin, JUnit et ses différents portages (NUnit pour .NET et AsUnit pour ActionScript) feront parfaitement l’affaire. Pour .NET on regardera également du coté de Team System si on a le budget.
- Un logiciel de rapport de couverture des tests unitaires. Du coté .NET, Team System fait ça très bien, sinon on peut essayer NCover (payant, contrairement à ce que son nom laisse présager). Pour Java on utilisera Cobertura si on veut du gratuit, ou le très bon Clover si on est prêt à payer pour avoir mieux (le plug-in Eclipse est très pratique). Pour ActionScript, il n’existe malheureusement pas encore d’outil à ce jour, il faut attendre encore un peu.
- Un logiciel de gestion de projets (gestion de taches, bugs, spécifications, etc.). C’est le logiciel sur lequel il ne faut pas hésiter à investir, et à passer du temps à trouver celui qui vous convient le mieux. Néanmoins je vous recommanderais, dans l’ordre du plus simple au plus complet : FogBugz, Gemini, JIRA et AtTask. Ils sont tous payant (sauf JIRA si vous développez un projet open source) mais la qualité est à ce prix. S’il ne fallait en retenir qu’un seul, je dirais JIRA avec le plug-in GreenHopper. Jetez également un œil sur Basecamp et Unfuddle qui sont des solutions en ligne. Unfuddle allant jusqu’à héberger vos sources sur leur serveur SVN.
Et vous, utilisez-vous des logiciels plus complet ou performant que ceux-ci ?