Nous sommes vendredi après-midi. Vous êtes persuadé que, cette fois, vous arriverez à livrer les nouvelles fonctionnalités en temps et en heure. Cependant, après avoir déployé votre application en production, vous vous rendez compte qu'il y a beaucoup de problèmes à résoudre et que reporter la réunion hebdomadaire avec l'équipe produit semble inéluctable.
Travailler en équipe sur un projet de développement d’application mobile n'est pas toujours facile. Bonne nouvelle : l'approche CI/CD a été conçue pour vous faciliter la tâche en réduisant, entre autres, les conflits de fusion et en détectant les bugs rapidement. Résultat : vous améliorez sensiblement la qualité du code et des livrables.
Qu’est-ce que le CI/CD?
Le terme CI/CD, de l'anglais Continuous Integration and Continuous Deployment ou Continuous Delivery, désigne une stratégie de flux de travail qui combine intégration continue (CI) et distribution continue (ou déploiement continu) (CD). En effet, le "CD" de CI/CD peut désigner deux types d'automatisation assez différents l'un de l'autre.
Mais avant de rentrer dans les détails de la distribution continue et du déploiement continu, il faut d'abord comprendre ce qu'est l'intégration continue.
L’Intégration Continue (CI)
Le terme Intégration Continue (CI) est né du processus de développement “Extreme Programming” (XP) de Kent Beck et représente l'une des douze bonnes pratiques mentionnées dans son livre. La pratique consiste à regrouper toutes les versions du code sur un tronc commun plusieurs fois par jour. Ce tronc est destiné à être la base d'un projet sur lequel chacun des développeurs travaille.
“Chaque intégration est vérifiée par un système de compilation automatisé, comprenant un test, afin de détecter les erreurs d'intégration aussi vite que possible.” explique Martin Fowler, expert en CI/CD et co-auteur du livre Planning Extreme Programming.
“J'effectue une compilation automatisée sur ma machine de développement. Cette dernière prend le code source de ma version de travail, le compile, le lie à un exécutable puis effectue les tests automatisés.”
La distribution continue et le déploiement continu (CD)
Une fois l'intégration continue mise en place, nous pouvons passer à l’étape suivante : la distribution continue.
La distribution continue (CD) est une approche d’ingénierie logicielle qui permet de s'assurer que votre code est toujours prêt à être déployé. Il s'agit de réduire au maximum le temps entre l’intégration d'une nouvelle fonctionnalité par l'équipe technique et l'utilisation de cette fonctionnalité en production.
La prochaine étape du processus s'appelle le déploiement continu (CD) et, contrairement à la distribution continue, celui-ci permet d’automatiser les déploiements. En résumé, la première approche comporte une étape manuelle et la seconde est entièrement automatisée.
Quels sont les avantages de l’approche?
La pratique du CI/CD apporte de nombreux avantages. En voici quelques-uns :
- La réduction des conflits de fusion. Évitez le fameux "merge monster", comme il est parfois appelé en anglais, en travaillant en permanence sur le tronc commun.
- La détection rapide des bugs. Les tests réalisés lors de l'intégration continue permettent de détecter et de corriger les bugs rapidement ce qui évite d'accumuler de la dette technique.
- L'agilité. Dans tout type de développement informatique et plus encore dans le développement mobile, il est très fréquent de voir le cahier des charges évoluer significativement au cours de la réalisation du projet. Recevoir du feedback suffisamment tôt dans le processus de développement permet donc de réagir à temps, d'optimiser l'utilisation de vos ressources et de livrer votre application mobile plus rapidement.
- Le déploiement continu. Évitez à vos développeurs de travailler les soirs ou les week-ends. Comme vous le savez, cela reste malheureusement une pratique assez fréquente dans le monde du développement mobile. Avec le CI/CD, votre application est déployée de manière continue, vos développeurs ne seront jamais bloqués et n'auront plus à faire d'heures supplémentaires pour assurer le déploiement de leur incrément. Évidemment, cela se reflétera également dans la motivation de vos développeurs et sur leur capacité à être performant durant toute la durée du projet.
Comment réussir sa transition vers l’approche CI/CD?
Si l'approche CI/CD offre de nombreux avantages, il faut noter toutefois que sa mise en place nécessite une période de transition. Pour intégrer le CI/CD dans votre équipe de développement mobile, il faudra notamment:
Constituer une équipe pluridisciplinaire dédiée au projet
Sans une équipe pluridisciplinaire capable d'intégrer le CI/CD en toute autonomie, le manque de communication entre les différentes parties prenantes peut rendre la transition difficile. Comme vous le savez, les développeurs emploient généralement un langage assez différent de celui des ingénieurs systèmes.
"Pour résoudre ce problème, nous avons décidé d'ajouter un expert qui bénéficie à la fois d’une connaissance approfondie du développement informatique et de l'administration système. Après que ce dernier ait intégré notre équipe, nous avons pu à la fois constater des progrès dans ces domaines (administration système et développement informatique) et réduire les tensions au sein de l'équipe"
- Lianping Chen, expert en ingénierie logicielle chez Huawei Technologies.
Identifier les problématiques
Afin de mettre tout le monde en phase sur l'implémentation du CI/CD dans votre entreprise, assurez-vous de bien avoir cerné les besoins de chacune des parties prenantes.
Votre priorité numéro un est de montrer les bénéfices que peut apporter cette approche à votre équipe de développement mobile car c'est elle qui est chargée de suivre les pratiques du CI/CD. Avant de proposer d'implémenter le CI/CD, demandez à vos développeurs de lister les tâches les plus frustrantes ou celles qui leur prennent le plus de temps afin de mieux cerner leurs problématiques actuelles.
Cette implémentation représente des changements culturels importants, c'est pourquoi ces discussions initiales sont essentielles.
Commencer par les éléments les plus simples à mettre en place
Choisissez d'implémenter en priorité les applications les plus simples à mettre en place et celles qui apporteront une valeur immédiate à votre organisation.
Cela vous permettra de limiter les frictions et de montrer l’importance du CI/CD dès le début du projet. Il est essentiel de convaincre votre équipe et votre direction que le CI/CD présente de nombreux avantages pour votre organisation.
Établir un schéma visuel du pipeline du CI/CD
Une autre de nos recommandations est de donner à chaque équipe un schéma visuel du CI/CD montrant l’ensemble des étapes du pipeline, y compris celles qui ne sont pas encore implémentées.
“Bien que le pipeline ne soit pas complet, il contribue à maintenir une forte motivation au sein de l'équipe pour l'adoption du CI/CD. Sa nature visuelle rend tangible le concept abstrait du CI/CD. Le pipeline établit une vision et un plan d'action clair afin que toutes les parties prenantes puissent suivre l'évolution des améliorations apportées.”
- Lianping Chen, expert en ingénierie logicielle chez Huawei Technologies.
Se faire aider par une agence
Lorsque la migration nécessite un effort important et sur une longue période, il peut être judicieux d’engager une agence experte en intégration de CI/CD dotée d’une solide expérience dans le domaine et qui maîtrise parfaitement le processus d'adoption du CI/CD.
Êtes-vous prêt à intégrer le CI/CD?
Intégrer le CI/CD au sein de votre équipe de développement peut indéniablement apporter de nombreux bénéfices à votre organisation. À condition toutefois, comme nous l’avons vu dans cet article, d'apporter un soin tout particulier à la phase de transition et à la mise en place d'une organisation adéquate.
Chez Kreactive, nous sommes là pour vous aider. Nous avons une vaste expérience dans le domaine du CI/CD, n'hésitez pas à nous contacter ici ou directement nous appeler au 04 26 70 03 51.