Je ne saurais trop vous conseiller l'
article de Martin Fowler qui détaille les grands principes de l'
intégration continue :
- Maintenir un référentiel unique de source
- Automatiser la construction du projet
- Inclure les tests dans la construction du projet
- Tout le monde doit committer ses changements au moins une fois par jour
- Chaque commit lance la reconstruction du projet sur le serveur d'intégration
- La construction (avec les tests) du projet doit rester rapide
- Jouer les tests dans un environnement identique à celui de production
- N'importe qui doit pouvoir récupérer le dernier exécutable facilement
- Tout le monde doit savoir ce qui se passe
- Automatiser le déploiement du projet
Les avantages de l'intégration continue ne sont pas seulement
techniques, mais aussi
organisationnels. Et en plus vous avez là un nouveau canal de
communication. Voici quelques points dans le désordre.
D'abord, vous devez concevoir un script pour construire votre projet en un clic, ce qui veut dire que tout le monde construit son projet de la même façon. Et comme le projet est construit uniquement à partir des données du référentiel sur une machine séparée, vous êtes sûr d'avoir tous les éléments du projet dans votre référentiel.
Les problèmes d'intégration sont minimes car tout le monde doit committer régulièrement.
Comme les tests sont joués après chaque commit, il est plus facile d'identifier un bug dans le code qui a été modifié.
Le test et le déploiement dans un environnement identique à celui de production minimisent les risques et le temps d'installation du projet dans son environnement final.
Le fait de construire le projet après chaque commit responsabilise les membres de l'équipe, car en cas d'échec on le voit tout de suite et on connait également les dernières personnes à avoir modifier le code... De plus, lorsque l'intégration est en échec, chacun sait qu'il est inutile de mettre à jour son projet en local au risque de se retrouver bloqué.
Autre avantage et non des moindres, vous disposez ainsi d'un version opérationnelle en permanence. Cette version peut servir à des démonstrations, et donc montrer l'avancement du projet directement au travers de l'application.
Enfin, on peut inclure dans la construction du projet des outils d'analyse du code. Ces métriques viennent compléter les rapports de builds et de tests, et peuvent être utilisées pour améliorer la qualité du code.
Toutes ces pratiques peuvent être adoptées progressivement. Elles améliorent incontestablement
la productivité et la qualité d'un projet. Vous n'avez donc aucune excuse pour ne pas vous y mettre !