samedi 29 janvier 2011

Démarrage d'un nouveau projet. Retour d'expérience

Récemment j’ai participé au démarrage d’un projet en Java. Nous avions la chance de prendre les décisions sur la création de l’usine de logiciel pour assurer la qualité du produit pour le client.

Je ne vais pas décrire toutes les étapes et tous les concepts que nous avons mis en place. Mais, je vais me limiter de présenter les outils que je n’ai jamais utilisés avant.

Wiki

Tout d’abord c’est – Redmine – un wiki d’entreprise. C’est un outil dont j’ai entendu parler depuis longtemps et j’ai l’utilisé un tout petit peu sur un projet sur lequel j’étais tout seul. Dès le démarrage du projet nous avons commencé à utiliser Redmine et nous avons réussi à motiver les développeurs de l’utiliser au quotidien. D’après ce que j’ai vu, les gens qui ont fait leur première page sur le Wiki y reviennent et l’utilisent plus régulièrement que ceux qui n’ont jamais écrit là-dedans. Je pense que cela s’explique par le fait d’être un auteur. Un auteur cherche en permanence d’améliorer son œuvre : ajouter une description d’un truc technique complexe, jouer avec la mis en page (surligner les informations importantes). Nous avons commencé par le plus simple. La page principale de notre wiki centralise et met à porter de main les informations sur l’infrastructure du projet :

  1. Le chemin vers le repository SVN
  2. URL, login et mdp pour les serveurs Hudson et Sonar.
  3. IP, login et mdp pour les bases MySql de test
  4. Le raccourci vers le répertoire du projet sur un serveur de fichier
  5. URL , login et mdp vers le serveur Nexus
  6. IP d’une passerelle SMTP utilisée
  7. Les HowTo’s sur la configuration d’Eclipse, Maven, Tomcat, etc.

Ces informations sont nécessaires tout au long du projet et sont utilisées par tous les membres de l’équipe. Désormais, je n’entends plus dans l’openspace les questions du genre : « C’est quoi le IP et le mot de passe du serveur MySQL ?» ou « Comment t’as fait pointer ton Maven en local vers le serveur Nexus ?». Toutes les réponses sont dans le Wiki. J’ai l’impression que les développeurs deviennent plus autonomes et par conséquent plus productif, ils savent où il faut chercher l’info.

L'intégration du Mylyn dans Redmine permet créer un boucle complet de la gestion technique du projet: Eclipse -SVN - BugTracker - Suivie du projet. Cette fonctionnalité n'est pas encore adaptée par notre projet, car cela nécessite la forte discipline et la rigueur des développeurs.

Un petit plugin textile de Redmine pour colorer le code source dans les pages wiki :


Vous remplacez le nom de la classe (xml, java, C#, python, etc) et les mots clés presents dans le texte seront coloré comme dans un IDE. Très pratique et très joli.

Tomcat 6.0 manager sous Ubuntu ne marche pas

Dans l'objectif d'automatiser le déploiement du war sur le serveur Tomcat 6.0, nous avons utilisé le plugin tomcat du maven. Voilà comment j'ai réussi:

  1. Installer l'application manager : sudo aptitude install tomcat6-admin
  2. Modifier le fichier $VOTRE_TOMCAT_INSTALL/conf/tomcat-users.xml comme suit, faites attention qu'il faut bien le rôle "manager"
  3. Redémarrer le serveur: sudo /etc/init.d/tomcat6 restart
  4. Mon erreur c'étais que je n'ai pas précisé le rôle admin. Et j'avais tout le temps l'erreur HTTP 403.