Dans le monde de développement informatique, il existe plusieurs approches d'ingénierie logicielle telles que le "Déploiement Continu" et la "Livraison Continue" qui font parties aussi des clés et étapes indispensables dans la mise en place d’un processus de développement agile réussi.
Parmi les confusions majeures qui existent et persistent chez plusieurs équipes de développement agiles, c'est celle qui existe entre le déploiement et la livraisons continus. Alors du premier coup on peut dire que c'est la même chose et même principe, ou qu'il n'existe pas de différences entre les deux approches, mais à vrai dire la distinction n'est pas à ignorer quand même.
Le "Déploiement continu" consiste à livrer fréquemment les fonctionnalités réalisées par les développeurs d'une manière et façon automatique dans l'environnement de production sans aucune intervention humain une fois le code réalisé est validé et les tests automatisés sont bien passés et validés.
Cette pratique est très recommandée dans le développement des logiciels en mode agile, mais en contrepartie on doit s'assurer bien quand même que l'équipe de développement est bien consciente de la qualité des livrables attendue, et qu'elle respecte et applique bien les bonnes pratiques du développement, ainsi que les règles du codage (Standard du code) car tout ce va être développé va être envoyé au production quelle que soit la qualité du code derrière, sans oublier la nécessité d'avoir une procédure de test très rigoureuse et complète.
La "Livraison Continue" est une approche similaire à celle du déploiement continu, mais dans ce cas de figure les fonctionnalités et demandes traitées sont déployées dans un environnement de test en attendant une mise en production manuelle.
Cette pratique et approche est généralement appliquée pour livrer les fonctionnalités réalisée régulièrement dans un environnement similaire à celui de la production (Pré-Prod par exemple), comme ça on fera des tests finaux sur cet environnement avant d'effectuer la mise en production.
Par conséquent, on remarque que l'approche de déploiement continu ne nécessite aucune intervention ou vérification que ça soit au niveau du code, ou de test, car les tests automatisés sont bien lancés et exécutés trop tôt dans cette chaîne de développement des logiciel continu.
Les deux approches citées ci-dessus présentent plusieurs avantages dans le développement des logiciels en mode agile, en occurrence :
Réduire le temps du "Time To Market".
Éliminer le gaspillage du temps (Lean).
Construire d'une manière incrémentale le produit avec la meilleure qualité.
Engager collaborativement les développeurs et testeurs avec l'équipe de déploiement (DevOps).
Récolter rapidement les Feedbacks client.
Satisfaire le client par un produit de qualité.
Conclusion :
Les deux approches traitées dans cet articles sont souvent recommandées dans le développement en agile, mais parfois c'est difficile de les mettre en pratiques vu les exigences demandées en terme d'outillage et infrastructure qui sont coûteuses pour certaines entreprises.
L'approche de déploiement continu est surtout recommandée pour les applications Light et Web, et pas dans le cas de "Client Lourd" surtout lorsque qu'il s'agit d'une fréquence importante de livraison en production par jour pouvant diminuer et dégrader la qualité et les performances du système.
La confiance, la maturité, la communication, et l'engagement collaboratif sont bien les clés de réussite de ces approches pour assurer un travail de qualité qui est le fruit de la collaboration de plusieurs équipes et individus.
Comments