Ajouter un commentaire

Par :
Nick Rendall

mar, 12/10/2021 - 16:17

Alors que le développement de logiciels est au cœur d’une concurrence féroce, les entreprises doivent continuer d’évoluer en permanence pour prospérer. Et pour maximiser la capacité d’innovation, s’intéresser à la base du processus est essentiel, à savoir : le cycle de vie du développement logiciel (software development lifecycle, ou SDLC). Améliorer celui-ci permet en effet de livrer un code de meilleure qualité de manière rapide, stable et efficace. Voici cinq mesures qui, lorsqu'elles sont déployées ensemble, peuvent révolutionner cette procédure.

Utilisation des feature flags pour l'intégration continue (CI)

L'intégration continue (CI) est une pratique de développement logiciel dans laquelle chaque ingénieur ajoute son travail dans la mainline partagée au moins une fois par jour. En intégrant plus fréquemment le code, la boucle de rétroaction est raccourcie, ce qui permet de détecter les bogues plus tôt et de réduire la probabilité de conflits de fusion ou de logique.

Cependant, l’intégration continue pose également un problème. Comment intégrer le code lorsqu’une fonctionnalité n’est pas encore terminée, ou lorsqu’une partie de celui-ci ne fonctionne pas encore correctement ? Dans ce cas, les feature flags peuvent s’avérer utiles.

Ces derniers permettent aux ingénieurs d'activer et de désactiver des fonctionnalités dans leurs applications, sans avoir à modifier et à redéployer le code. Si l’un d’eux doit le fusionner avec une tâche à compléter, cela lui permet de cacher cette partie inachevée derrière un feature flag, en le maintenant désactivé par défaut, pour fusionner le code normalement. Ainsi la gestion des interruptions, comme les imprévus urgents ou les bogues critiques, devient plus facile. La possibilité de cacher du code, qu’il soit incomplet ou qu’il ne fonctionne pas correctement, aide les développeurs à changer de contexte de manière plus efficace, sans pour autant prendre des risques avec la qualité de la base de code.

Utilisation des feature flags pour le déploiement continu (CD)

Place à l'autre moitié du célèbre duo CI/CD, le déploiement continu (CD). Cette pratique consiste à automatiser le déploiement des changements pour l'utilisateur final. En agissant sur l'ensemble du pipeline, du premier commit de l'ingénieur jusqu'à ce que le code final parvienne à l'utilisateur, le processus devient reproductible, évolutif et non sujet à l'erreur humaine.

En s’appuyant sur les feature flags, les équipes de développement peuvent réduire considérablement les risques, grâce à la possibilité de déployer des fonctionnalités de manière partielle. Cela forme alors une évolution naturelle de l’approche CI/CD, où les développeurs déploient les fonctionnalités de manière incrémentielle, d'abord auprès d'un public restreint et à faible risque (comme les équipes internes d'assurance qualité), puis auprès des utilisateurs finaux, de manière contrôlée et mesurée. Il s'agit d'un moyen reproductible et automatisé de tester en production, avec le comportement réel et les commentaires des utilisateurs. Comme pour les tests canari et A/B, ou encore le déploiement bleu-vert, l'objectif final reste d'assurer qu'un code de meilleure qualité atteigne rapidement les utilisateurs.

Conception optimale des pipelines pour faciliter les contrôles de sécurité

Les entreprises éprouvent souvent des difficultés lorsqu’elles doivent faire l'objet d'un contrôle, car les informations requises sont dispersées dans un grand nombre de services et d'outils. Pour éviter une recherche d’informations chronophage et inefficace, il convient donc d’être prêt à tout moment. Cela permet non seulement de limiter les risques, mais aussi de rendre l'ensemble du processus moins stressant.

Comment concevoir des pipelines CI/CD en anticipant les contrôles de sécurité ? Pour commencer, l'ensemble de la chaîne d'outils doit être intégré pour éviter les pertes de temps et de ressources liées à la collecte d'informations provenant de sources disparates. Une autre étape essentielle consiste à automatiser chaque phase du SDLC. Ainsi, le risque d'erreur humaine est réduit au minimum et les meilleures pratiques sont appliquées dans le pipeline grâce à l’automatisation.

Mesure de la productivité des développeurs

Parmi tous les indicateurs à suivre, comment cerner ceux qui permettront d’améliorer le SDLC ?

Tout d'abord, suivre sur quelles tâches les équipes passent la plupart de leur temps est crucial. Les ingénieurs apportent de nouvelles fonctionnalités et donc de la valeur aux projets, mais ils doivent aussi s’occuper d’autres activités, comme la correction des bogues, la réparation des builds cassés ou les problèmes de sécurité. Il convient alors de trouver le bon équilibre, et de tirer la sonnette d’alarme s'ils consacrent une quantité disproportionnée de leur temps au deuxième groupe d'activités.

C'est également mauvais signe si les développeurs consacrent une trop grande partie de leur temps à des taches non planifiées. Cela pourrait indiquer qu'ils souffrent de blocages et de distractions qui les empêchent de se concentrer sur les tâches à plus forte valeur. Ou encore, cela peut être le signe d'un manque de communication ou d'une mauvaise planification.

Enfin, la vitesse, la fiabilité et l'efficacité de l'ensemble du processus de développement doivent être suivies et améliorées. En suivant des mesures telles que la durée du cycle, il est possible d’identifier les zones du processus de développement logiciel qui présentent des inefficacités.

Gestion de la chaîne de valeur

Une chaîne de valeur est une séquence d'étapes qui contribue à fournir de la valeur aux clients d’une entreprise, de manière continue. Le « Value Stream Management » consiste ainsi à suivre et à gérer les flux de valeur d'une organisation, depuis l'apparition d’une idée jusqu'à ce que la fonctionnalité correspondante soit livrée à l’utilisateur final.

Le suivi de ces chaînes permet de briser les silos, conduisant à une meilleure visibilité, communication et collaboration entre les différents acteurs, équipes et services. Avec l'aide d'une stratégie et d'un outil de Value Stream Management solides, les entreprises peuvent plus facilement diagnostiquer et résoudre les goulets d'étranglement dans leur SDLC, en s'appuyant sur des mesures de performance en temps réel qui indiquent le véritable état du processus de développement.

Améliorer le SDLC au sein d’une entreprise permet bel et bien de se démarquer et de devancer ses concurrents. Après tout, c'est par le biais du SDLC qu'elle est en mesure non seulement de générer de la valeur pour ses clients, mais aussi de s'assurer que cette valeur se concrétise sous la forme d’applications logicielles innovantes.

A propos de l'auteur

Nick Rendall
CloudBees

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 W     W  K  K  W     W      J  BBBB  
W W K K W W J B B
W W W KK W W W J BBBB
W W W K K W W W J J B B
W W K K W W JJJ BBBB