Intégration continue

L'intégration continue (CI) consiste à produire une version propre du système plusieurs fois par jour.

L'intégration continue (CI) consiste à produire une version propre du système plusieurs fois par jour, généralement avec un outil comme CruiseControl, qui utilise Ant et divers systèmes de contrôle de source. Les équipes agiles configurent généralement CI pour inclure la compilation automatisée, l'exécution de tests unitaires et l'intégration du contrôle de code source. Parfois, CI inclut également l'exécution automatique de tests d'acceptation automatisés tels que ceux développés à l'aide de FitNesse. En effet, CI signifie que la construction est presque toujours propre.

Technique, outils et politique d'intégration continue

Il existe plusieurs pratiques spécifiques dont CI semble avoir besoin pour bien fonctionner. Sur son site, Martin Fowler fournit une description longue et détaillée de ce qu'est l'intégration continue et de la manière de la faire fonctionner.

Une règle CI populaire stipule que les programmeurs ne laissent jamais rien de non intégré à la fin de la journée. La construction ne doit jamais passer la nuit dans un état cassé. Cela impose une certaine discipline de planification des tâches aux équipes de programmation. De plus, si la règle de l'équipe est que quiconque casse la construction à l'enregistrement doit la réparer à nouveau, il y a une incitation naturelle à vérifier fréquemment le code pendant la journée.

Avantages de l'intégration continue

Lorsque CI fonctionne bien, cela aide le code à rester suffisamment robuste pour que les clients et les autres parties prenantes puissent jouer avec le code quand ils le souhaitent. Cela accélère le flux de travail de développement dans son ensemble ; comme le souligne Fowler, cela a une sensation très différente. Cela encourage également davantage de commentaires entre les programmeurs et les clients, ce qui aide l'équipe à bien faire les choses avant les délais d'itération. Comme la refactorisation, l'intégration continue fonctionne bien si vous disposez d'une suite exhaustive de tests unitaires automatisés qui garantissent que vous ne commettez pas de code bogué.

Une CI habile signifie que l'intégration n'est jamais un casse-tête, car votre travail ne reflète qu'une légère divergence par rapport à la base de code. Si l'équipe doit régulièrement faire face à des divergences à petite échelle, elle n'a jamais à faire face à des divergences vraiment effrayantes. Ils ont également la possibilité de discuter des différentes approches de conception le jour où elles se présentent, car l'intégration ce jour-là les attire à l'attention de toute l'équipe.