Evolutions des technologies, pourquoi faire évoluer vos logiciels ?

NS_evolution-technologies

23 Mai Evolutions des technologies, pourquoi faire évoluer vos logiciels ?

Depuis son invention au début des années 1990, le web n’a cessé d’évoluer. Ce qui n’était au départ qu’un outil parmi d’autres pour créer des sites personnels, s’est aujourd’hui imposé comme étant une technologie de choix pour développer des applications complexes (réseaux sociaux, sites de vente en ligne, intranets, extranets, etc.). Générant plusieurs billions (millions de millions) de dollars de chiffre d’affaires chaque année, le web offre aujourd’hui une flexibilité fondamentale à la création d’outils permettant d’améliorer la productivité de ses utilisateurs.

Mais dans un monde de technologies en constante évolution, comment s’assurer que notre site ou application rempli toujours ses objectifs en termes de productivité et de performances ? Au travers de ce billet, l’équipe de Némésis Studio vous partage son expertise afin de vous aider à y voir plus clair sur l’évolution des technologies et de vos logiciels.

Des langages évolutifs pour de nouvelles applications

Tout comme les langues vivantes évoluent au fil des décennies, l’ensemble des langages utilisés pour développer sites et applications web se renouvellent par itérations plus ou moins espacées. PHP, par exemple, utilisé par plus de 80% des sites web, se fixe pour objectif de sortir une nouvelle version de son langage chaque année.

Des technologies en constante évolution

Dans une même logique, les frameworks (ensembles cohérents de composants logiciels servant à créer les fondations et à accélérer le développement de sites et d’applications web métiers) et CMS (systèmes de gestion de contenus) utilisés dans l’écrasante majorité des projets web, se mettent à jour en suivant, d’une part, l’évolution des langages sur lesquels ils reposent (nouvelles fonctionnalités, bonnes pratiques, suppression de l’appel des fonctions dépréciées) et d’autre part, les dernières tendances en termes de méthodologie de développement. Ces évolutions sont régulières : par exemple, Symfony, Framework écrit en langage PHP et dominant le marché actuel, sort une nouvelle version tous les six mois. Quant à WordPress, CMS représentant près de 60% de part de marché, trois versions majeures sortent en moyenne chaque année.

Pourquoi ces évolutions ?

Ces évolutions cherchent à atteindre divers objectifs, parmi lesquels :

  • Implémenter de nouveaux outils pour le développeur. Cela permet de simplifier le code et d’améliorer les temps de traitements pour gagner en performance et rester en phase avec les bonnes pratiques les plus récentes.
  • Supprimer d’anciens outils nouvellement considérés comme obsolètes, mauvaise pratique ou doublons. Cela permet de garder une base saine, plus simple à maintenir et potentiellement plus sécurisée. Cependant, cela pose pour inconvénient de rendre certains développements obsolètes, nécessitant un redéveloppement partiel afin d’être utilisables dans l’avenir.
  • Améliorer les performances de l’existant, afin d’améliorer les temps de réponse des applications développées sans avoir à faire évoluer le code de ces dernières.
  • Corriger des failles de sécurité présentes au cœur de l’outil. Cela permet de diminuer la surface d’attaque exploitable, pouvant conduire au piratage de l’application et au vol de données (aujourd’hui très sévèrement sanctionnées par le règlement européen sur la protection des données personnelles (RGPD)).

Mais si les fondations de vos sites et applications évoluent régulièrement, en est-il autant de votre code métier ?

Le code métier se doit également d’évoluer

Prenons pour exemple une voiture : entretenue régulièrement, avec quelques réparations mineures réparties sur l’année, celle-ci peut sans trop de difficulté atteindre les quinze ans et 250 000 km sans vous faire défaut. De même, les frais de maintenance sont étalés sur l’année et les opérations prévisibles. Vous pouvez ainsi choisir sereinement quand et comment apporter les réparations et entretiens nécessaires.

À l’inverse, une voiture peu ou mal entretenue risque, à long terme, de vous créer de mauvaises surprises. Plusieurs défaillances, parfois invisibles apparaissent et, s’accumulant, une réparation urgente, longue et coûteuse s’impose. Parfois-même, il devient plus simple de changer de véhicule que de faire réparer l’actuel.

Dans le cadre d’un site ou d’une application web, la même problématique se pose. En effet, divers événements ponctuent la vie de ces produits.

Éviter l’obsolescence et la dépréciation

Prenons l’exemple des dépréciations (anciennes fonctionnalités proposées par le langage de programmation ou le framework, et aujourd’hui considérées comme obsolètes, amenées à disparaître dans un avenir proche). Comme pour une voiture, il est important d’intervenir régulièrement sur le code source de votre outil web. Une maintenance régulière va permettre de remplacer les quelques lignes dépréciées qu’exploitait l’ancienne fonctionnalité par leurs équivalent plus modernes. Ainsi, vous maintenez la qualité, la durabilité et la sécurité de votre site, logiciel ou application. Si le délai de dépréciation est long (quelques années entre l’annonce de la dépréciation et la suppression de la fonction dans le langage), connaître, analyser et maintenir régulièrement le code source est primordial afin de prévenir les risques et maîtriser les coûts.

Prévenir les risques techniques et de sécurité

Trop souvent, les entreprises contournent cette problématique en ne mettant pas à jour le logiciel chargé de traduire le code source en langage machine (appelé, en fonction de la technologie, compilateur ou interpréteur). Cette solution est toutefois dangereuse, puisque ne pas mettre à jour son compilateur/interpréteur revient à se priver d’avertissements critiques (dépréciations, mauvaises pratiques détectées, etc.). Sans ces avertissement, difficile, par exemple, d’identifier et de corriger des failles de sécurité parfois très graves qui peuvent conduire à la paralysie totale de votre application ou site web, ainsi qu’au vol de données sensibles (données internes à votre activité, données bancaires, données personnelles de vos clients/utilisateurs), vous exposant par la même occasion à des risques légaux.

Rester en conformité

En effet, chaque année paraissent de nouvelles normes (technologiques, législatives) de réalisation qui viennent s’ajouter aux processus de développement. L’exemple le plus marquant de ces dernières années est sans aucun doute le Règlement Général sur la Protection des Données (RGPD) . Depuis 2018, ce dernier pose les règles du traitement et de la sécurité des données personnelles des ressortissants européens, exposant toute entreprise contrevenante (qu’elle le fasse de manière volontaire, ou que les données fuitent suite à un piratage par exemple) jusqu’à 20 millions d’euros d’amende ou 4% du CA mondial de l’entreprise.

Ce scénario catastrophe s’est produit récemment à l’échelle mondiale. Les entreprises utilisant PHP (80% de part de marché sur le web) ont en 2018 dû se confronter à deux événements majeurs : l’application du RGPD au mois de mai et l’abandon du support de PHP 5 en décembre (au profit de la version 7, sortie en 2016).

Deux cas de figures se sont alors présentés : les entreprises réalisant une veille technologique et maintenant régulièrement leurs sources n’ont eu aucun mal à passer ces étapes. Il a suffi aux équipes techniques d’appliquer les différentes préconisations techniques et législatives au fur et à mesure que celles-ci sortaient. Quant aux entreprises ayant appliqué la politique de « l’autruche technologique », il en a été tout autre. Face à l’urgence de faire évoluer un socle n’ayant pas été touché depuis plusieurs années, ces dernières se sont trouvées obligées de dépenser d’importantes sommes. Pour certaines d’entre elles, les seules solutions viables pécuniairement ont été de rester sur une infrastructure obsolète ou de se couper du marché européen, pour éviter les conséquences d’une infraction prévue par le RGPD.

L’expertise Némésis studio

Chers lecteurs, ne prenez pas peur à la lecture de cet article. Le but n’est en aucun cas d’être alarmiste. Gardez à l’esprit qu’il est primordial de s’entourer d’une entreprise à l’écoute humainement et technologiquement. Elle doit vous accompagner tout au long du cycle de vie de vos produits numériques et vous proposer les évolutions techniques vous permettant d’avoir une longueur d’avance. Si vous souhaitez être accompagnés pour ne pas vous tromper ou pour en savoir plus, nous vous invitons à contacter les experts en évolution des technologies de Némésis studio.