Réutiliser, réduire, recycler (code) : tirer parti des logiciels durables
Par Jacob Mathison
Le potentiel et la qualité des composants logiciels réutilisables (RSC) pourraient avoir un impact sur la façon dont nous percevons la durabilité du Web et les produits numériques "verts". Cependant, les RSC sont l'un des aspects les moins visibles du cycle d'innovation d'une entreprise de logiciels ou de technologie et restent souvent au bas du baril de l'entreprise. Le terme "composant réutilisable" est trop technique pour ceux qui ne sont pas impliqués dans les efforts de technologie et d'innovation et trop vague pour les programmeurs (naturellement) qui cherchent à faire leur travail avec un minimum d'effort. Le copier-coller de quelques lignes de code peut avoir un impact sur le développement durable car il suit, volontairement ou non, son axe principal de questionnement : Est-ce efficace ? Est-ce facilement compréhensible ? Est-ce modulable ? Est-ce rentable?
Naturellement, les entreprises s'intéressent à l'impact des trois premières questions sur la quatrième et dernière. Mais, paradoxalement, la plupart ne sont pas disposés à inverser l'ordre dans lequel l'impact sur le résultat net est mesuré. Si plus d'informations et de sensibilisation étaient diffusées sur la réutilisabilité des logiciels, il deviendrait évident que, comme première définition, "[l]a réutilisation de logiciels repose sur la planification préalable de la réutilisation d'un composant logiciel qui répond aux besoins des organisations impliquées dans le développement de logiciels dans de nouveaux contextes." La planification, l'implication et la conception stratégique vont bien au-delà de la conception Web basée sur les composants (composants : pensez à tous les éléments visibles par les utilisateurs lorsqu'ils visitent un site Web ou une application).
L'essor de la modularité dans la conception, des plates-formes sans code et des solutions prêtes à l'emploi avec des piles technologiques populaires telles que Vue.js et Laravel n'est pas seulement un phénomène lié aux logiciels, mais une réponse aux demandes croissantes des consommateurs pour une variété de produits dans un très court laps de temps tout en garantissant la pérennité et la pertinence du produit. En fait, lorsqu'elle est appliquée aux principes généraux de conception, "[l] odularité dans la conception peut donc être définie comme le choix des limites de conception d'un produit et de ses composants (…) afin que les caractéristiques et les tâches de conception soient interdépendantes et indépendantes. à travers les modules."
Dans le domaine de la technologie en particulier, les limites de conception sont souvent déterminées en ayant des équipes dédiées pour le front-end, le back-end, le développement de produits et l'UX/UI, entre autres domaines. Ces limites pourraient prendre de nombreuses variantes ; la plupart du temps, les éditeurs de logiciels choisissent des structures de type pod dans lesquelles des éléments fonctionnels sont développés dans le but d'assurer l'interactivité, à la fois avec l'utilisateur final et entre les éléments de conception eux-mêmes. De nombreuses bibliothèques de code et bibliothèques de styles bien connues, telles que Vuetify ou Bootstrap, visent à conserver intacts les principes de conception (tels que la lisibilité et l'accessibilité).
La mesure de la durabilité des logiciels peut souvent signifier un suivi des coûts/avantages, ainsi que des modèles économiques de réutilisation. Au niveau le plus élémentaire, la durabilité peut être mesurée par le nombre de nouvelles lignes de code écrites (nécessitant non seulement des efforts humains, du temps et des capacités professionnelles, mais aussi des temps de chargement, de rendu et d'utilisation de la bande passante). Même en 1992, ce concept était loin d'être nouveau : par rapport au nombre de nouvelles lignes de code écrites pour un projet, il existe des mesures concrètes pour suivre les avantages nets de la réutilisation par rapport au coût net de la réutilisation. Aujourd'hui, des modèles d'automatisation ont été proposés pour mesurer le cycle de développement maintenance-évolution pour un développement durable dans les logiciels, notamment en utilisant des approches basées sur des modèles, des prédictions algorithmiques ou l'apprentissage automatique. Mais la mise en œuvre de nouvelles solutions peut être coûteuse pour les petites et moyennes entreprises.
En réponse à cette problématique, les chercheurs Maggo et Gupta évoquent cet aspect moins visible du logiciel durable : "il existe un surcoût nécessaire au développement de composants logiciels réutilisables à partir de zéro qui peuvent être utilisés pour construire et renforcer leurs réservoirs logiciels". Pour éviter ce coût supplémentaire, la clé est l'évaluation du processus de cinq facteurs qui peuvent être mis en œuvre sans ressources agrégées.
Complexité: Cela mesure la complexité de l'architecture, de la conception et de la mise en œuvre d'un système logiciel. L'objectif ici est de minimiser la complexité en créant un code modulaire, réutilisable et bien organisé, ce qui permet aux développeurs de comprendre, de maintenir et de développer plus facilement le système existant.
Le Rolling Stone Culture Council est une communauté sur invitation uniquement pour les influenceurs, les innovateurs et les créatifs.Suis-je éligible ?
Coût: La viabilité financière à long terme signifie une personnalisation sans qu'il soit nécessaire de reconcevoir complètement un site Web ou une application (également lié à la possibilité de changement). Un investissement initial dans la conception de logiciels devrait être suffisant pour fournir des rendements à moyen terme, que ce soit dans une structure B2C ou C2C.
La stabilité:La stabilité met l'accent sur l'utilisation de composants fiables et testés et sur le respect des meilleures pratiques en matière d'hébergement et de débogage pour garantir que le système reste stable, sécurisé et résilient si l'application ou le Web doit évoluer vers le haut ou vers le bas.
Changeabilité: Les composants logiciels réutilisables et la conception logicielle durable doivent répondre au changement et proposer des changements rapides en fonction des nouvelles exigences. En concevant des logiciels dans un souci de modularité et de flexibilité, la durabilité favorise un code qui peut être mis à jour ou reconfiguré sans perturber ses fonctionnalités de base.
Opportunité: Il s'agit de la capacité à livrer des produits logiciels dans un délai raisonnable. Cela signifie évaluer les pratiques de développement efficaces, comme la réutilisation du code et la rationalisation des flux de travail, pour accélérer le processus de développement et permettre aux entreprises d'avoir une plus grande réactivité aux tendances du marché ou aux besoins des consommateurs.
Des chercheurs de l'Université de Huddersfield affirment que l'une des clés réside dans l'intégration de l'équipe de conception et de logiciels. L'intégration consiste à "les concevoir pour s'adapter aux changements futurs dans une plus large mesure sans changement significatif de la structure de base du système avec un coût minimal". Ces chercheurs ont montré comment "la connaissance des décisions de conception architecturale d'un système à logiciel intensif se perd facilement, ce qui entraîne une augmentation des coûts de maintenance et d'évolution, et une érosion de la conception (…)".
En d'autres termes, ils suggèrent aux développeurs d'utiliser des systèmes de conception qui résistent à des modifications minimales à faible coût tout en restant fonctionnels. Cela nécessite de respecter les réglementations internes et internationales établies pour les principes de conception, tels que la séparation des préoccupations et l'intégrité conceptuelle. C'est pourquoi les architectures de référence logicielles (c'est-à-dire Bootstrap) qui ont des implémentations réussies peuvent servir d'exemples de ce que les architectures logicielles durables peuvent faire dans des familles de systèmes logiciels ou des domaines d'activité spécifiques. Si elles sont correctement mises en œuvre, les connaissances techniques, lorsqu'elles sont associées à des principes de conception solides, sont réutilisables : mais peuvent-elles résister à l'épreuve du temps technologique ?
Complexité : Suis-je éligible ? Coût : Stabilité : Évolutivité : Ponctualité :