Les développeurs peuvent-ils réduire le coût total de possession des logiciels grâce à l’IA ?

L’époque où vous achetiez une cartouche Nintendo sans jamais mettre à jour le logiciel est révolue depuis longtemps. Le monde a changé, les logiciels aussi.

Au lieu de vivre dans sa propre minuscule (impressionnante) boîte grise et noire, le logiciel vit sur des machines interconnectées. Il doit réagir au changement, il doit s’adapter et pour différentes raisons. Qu’il s’agisse d’une mise à jour de sécurité face à une nouvelle attaque ou d’une mise à jour de fonctionnalités pour suivre l’évolution de cet écosystème. Le logiciel doit être mis à jour ; il faut l’entretenir. Le code doit être réécrit, les dépendances doivent être mises à jour, les applications doivent être redéployées.

Ce n’est pas gratuit. Il y a un coût permanent pour le maintenir déployé afin qu’il continue à fournir de la valeur. Et plus vous avez de code à maintenir, plus le coût est élevé, c’est pourquoi le code est souvent supprimé. Maintenant, la question est : pourquoi supprimeriez-vous le code qui a fourni de la valeur ? Où est la valeur dans le code ?

Évolution du code et de l’écosystème de développement

Pour comprendre la valeur du code, nous devons parler d’abstraction. La plupart des développeurs ne codent pas avec 0 et 1, ou même de 0 à f (certains le font encore). Au lieu de cela, les langages de programmation ont évolué pour permettre aux développeurs d’utiliser des mots réels au lieu de 0 et 1. Le matériel a évolué pour résumer en silicium ce que les développeurs auraient dû écrire.

Les langages de programmation ont évolué au fil du temps et continuent d’évoluer vers des niveaux d’abstraction plus élevés pour faciliter la vie des développeurs. Nous sommes passés de langages machine de bas niveau (langage de première génération ou 1GL) à l’assemblage (deuxième génération ou 2GL) à des langages de haut niveau plus abstraits (3GL) comme C ou Java à des langages plus spécifiques à un domaine (4GL) comme R, SQL ou PL/SQL aux langages basés sur des contraintes/logiques (5GL) comme Lisp, OPS5 ou Mercury. Le fait est que chaque génération enlève plus de complexité au développeur. Les 5GL s’appuient sur l’IA pour créer des solveurs basés sur des problèmes et des conditions définis.

Les écosystèmes de développement ont évolué en parallèle avec les langages de programmation. Les développeurs ne partent pas de zéro lorsqu’ils démarrent un nouveau projet. Ils utilisent des bibliothèques, des dépendances, des bases de données, des plateformes de données et pas de code/low code. Ils utilisent et interagissent avec les logiciels existants. Tout ce qui fera abstraction du code, tout ce qui signifie qu’au final, ils continuent à fournir le même niveau de fonctionnalités avec moins de code écrit.

Réduction du TCO et amélioration de la maintenance

Repartir de zéro serait d’un coût prohibitif. Je me souviens toujours de cette histoire de grille-pain. Thomas Thwaites a décidé de créer un grille-pain à partir de zéro, sans aucune de nos abstractions existantes. Il a tout fabriqué lui-même, de l’extraction du minerai à sa fusion, en passant par tout ce que vous devez faire pour construire un grille-pain. En fin de compte, le grille-pain n’a pas fonctionné et a coûté une quantité absurde de temps et d’argent. Il faut toute une civilisation pour construire un grille-pain.

Le logiciel est le même (même si nous n’en sommes peut-être pas encore là). Si vous voulez fournir de la valeur, vous utilisez des abstractions. Moins de code écrit signifie moins de code à maintenir, ce qui entraîne moins d’argent à dépenser pour le maintenir, ce qui signifie un coût total de possession inférieur.

Le travail d’un développeur consiste à écrire du code « hérité ». Si vous avez encore du code hérité quelque part, félicitations, vous avez fourni et continuez à fournir de la valeur. L’une des meilleures façons d’y parvenir est de choisir judicieusement votre écosystème d’outils et de dépendances ou vos abstractions.

L’utilisation d’une plate-forme de données cloud moderne qui prend en charge plusieurs types de charges de travail et continue d’en proposer de nouvelles est un bon pari. Parce que changer de base de données en cours de route coûte cher. Il ne s’agit pas tant de déplacer les données, mais de réécrire le code et de maintenir de nouvelles choses. Et nous savons tous maintenant que plus vous écrivez de code, plus le coût de maintenance est élevé.

L’impact de l’IA sur le développement de logiciels

Quel rapport avec l’IA ? Il y a eu beaucoup d’enthousiasme pour les grands modèles de langage (LLM), et nous avons vu de nouveaux outils apparaître et promettant d’écrire du code pour vous. Bien que cela puisse réduire le coût initial du développement logiciel, est-ce vraiment ce que veulent les développeurs/organisations/équipes ? Quel est le coût d’avoir plus de code écrit qui peut ou non faire exactement ce que nous avons demandé, qui n’a été écrit par personne dans l’équipe ? À quel point cela serait-il difficile à maintenir alors qu’il aurait pu être extrait par le bon outil, la bonne bibliothèque ? Combien coûtera cette chose?

Considérez que l’IA génératrice de code est pour l’instant un générateur de dette technique pour le 3GL. Cela peut changer à l’avenir à mesure qu’il devient plus précis et améliore l’utilisation des abstractions existantes et des écosystèmes environnants. Mais pour l’instant, cela ne génère pas de valeur ajoutée, c’est le contraire.

Vous avez autant de façons d’écrire du code Scala que de développeurs Scala (avec 3GL, vous généreriez beaucoup de code « collant » ou passe-partout – code qui aide à interfacer les abstractions que vous utilisez ou même qui remplace ce qui aurait pu/aurait dû être une autre abstraction, une autre dépendance).

À l’heure actuelle, il est plus intéressant d’examiner la 5GL existante ou d’utiliser l’IA générative pour la 4GL, en particulier celles à contraintes de domaine comme SQL. SQL convient parfaitement à l’IA générative car la syntaxe est plus simple. SQL est SQL. Vous n’avez pas besoin de maintenir le code SQL autant que vous le feriez avec 3GL.

Et lors de la génération de code SQL, la valeur est directement la valeur du domaine, la valeur métier. C’est le plus important. SQL est le juste milieu entre 3GL et 5GL. C’est toujours un langage de programmation comme 3GL. Vous pouvez toujours exprimer ce que vous voulez, au lieu des problèmes et des contraintes que vous avez comme vous le feriez avec 5GL. Il y a une raison pour laquelle chaque magasin de données finit par ramener SQL. Et pourquoi SQL continue d’être mis à jour avec de nouvelles fonctionnalités comme nous le faisons chez Couchbase.

Conclusion

Si vous cherchez à réduire votre TCO, choisissez les bonnes abstractions. Et si vous recherchez une IA générative pour réduire votre TCO en écrivant du code pour vous, réfléchissez-y à deux fois et assurez-vous de l’utiliser avec 4GL.

Pour réduire le TCO et la prolifération des données, de nombreuses entreprises choisissent Couchbase. Essayez Couchbase par vous-même dès aujourd’hui grâce à notre essai gratuit.

Groupe Créé avec Sketch.
www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite