Intégration continue
L'intégration continue (CI) consiste à produire une version propre du système plusieurs fois par jour.
Table des Matières
L'intégration continue (CI) consiste à générer une version propre du système plusieurs fois par jour, généralement à l'aide d'un outil comme CruiseControl, qui utilise Ant et divers systèmes de gestion de versions. Les équipes agiles configurent généralement la CI pour inclure la compilation automatisée, l'exécution des tests unitaires et l'intégration au système de gestion de versions. La CI inclut parfois également l'exécution automatique des tests d'acceptation automatisés, tels que ceux développés avec FitNesse. En pratique, la CI garantit que la version compilée est quasiment toujours propre.
Techniques, outils et politiques d'intégration continue
Il semble que l'intelligence collective (IC) nécessite plusieurs pratiques spécifiques pour bien fonctionner. Sur son siteMartin Fowler fournit une description longue et détaillée de ce qu'est l'intégration continue et de la manière de la mettre en œuvre.
Une règle courante d'intégration continue stipule que les programmeurs ne doivent jamais laisser un élément non intégré en fin de journée. La compilation ne doit jamais passer la nuit dans un état défectueux. Cela impose une certaine discipline de planification des tâches aux équipes de développement. De plus, si la règle de l'équipe est que celui qui casse la compilation lors d'un commit doit la réparer, cela incite naturellement à effectuer des commits fréquents pendant la journée.
Avantages de l'intégration continue
Lorsque l'intégration continue fonctionne correctement, elle contribue à maintenir la robustesse du code, permettant ainsi aux clients et autres parties prenantes de le tester à leur guise. Cela accélère le flux de développement global ; comme le souligne Fowler, l'expérience utilisateur s'en trouve profondément modifiée. Elle favorise également les échanges entre développeurs et clients, ce qui permet à l'équipe de corriger les problèmes avant les échéances des itérations. À l'instar du refactoring, l'intégration continue est particulièrement efficace si vous disposez d'une suite complète de tests unitaires automatisés garantissant l'absence de code bogué.
Une intégration continue efficace garantit une intégration sans accroc, car votre travail ne présente que de légères divergences par rapport au code source. Si l'équipe doit gérer régulièrement des divergences mineures, elle n'aura jamais à affronter de problèmes majeurs. Elle a également l'opportunité de discuter des différentes approches de conception le jour même où elles apparaissent, car l'intégration de ce jour-là les met à la disposition de toute l'équipe.