IA et développement : des résultats encourageants, mais le métier doit évoluer
D’après l’ESN HN SERVICES, le développement logiciel augmenté offre des perspectives intéressantes pour la qualité et la sécurité du code. À la condition de faire un travail de préparation en amont et d’évoluer vers des analystes.
Aujourd’hui, la rapidité de mise sur le marché des applications est un facteur clé de réussite. Elle pousse les entreprises à innover rapidement et en continu, tout en étant capable d’assurer la qualité et la sécurité du code, des critères tout aussi essentiels pour les clients.
L’émergence rapide des technologies d’intelligence artificielle soulève la question que tout le monde se pose dans l’industrie du développement logiciel : l’IA a-t-elle les capacités de remplacer les développeurs ?
L’IA va-t-elle remplacer les développeurs ?
Il est certain que l’IA génératrice de code peut soutenir les équipes dans leurs projets.
Mais au lieu de percevoir l’IA comme une menace, elle doit plutôt être appréhendée comme un assistant, voire un accélérateur notamment dans l’automatisation de tâches techniques répétitives.
En effet, elle ne pourra pas remplacer la créativité, l’intuition et les compétences des développeurs humains dans la résolution de problèmes. L’IA va plutôt simplifier les processus de développement, en accélérant les tests, la détection de bugs et la génération de code.
Ses algorithmes peuvent également repérer et anticiper les vulnérabilités de sécurité, tout en optimisant l’utilisation des ressources dans les applications pour améliorer les performances et réduire la consommation d’énergie. Un point crucial, surtout pour les applications mobiles.
Des premiers résultats prometteurs
Différentes solutions telles que GitHub Copilot, Tabnine, Open AI et Mistral, peuvent être utilisées par les équipes de développement.
Chez HN Services, nous avons mis en place un périmètre des tests pour comparer le développement avec ou sans outils IA sur :
- la création de tests unitaires,
- la correction de tests existants non fonctionnels,
- la création de nouvelles fonctionnalités,
- la correction de bugs dans les fonctionnalités et les tests existants,
- ainsi que l’optimisation et la qualité du code.
D’après nos résultats, les tests unitaires ont été 50 % plus rapides avec l’IA, bien que dans certains cas le développement sans IA ait été plus véloce en raison de difficultés de compréhension du contexte par l’intelligence artificielle.
La création de nouvelles fonctionnalités était de 15 % à 20 % plus rapide avec l’IA, mais les résultats étaient mitigés pour les fonctionnalités complexes en raison, encore une fois, de leur nature contextuelle.
Vincent NovasHN SERVICES
En ce qui concerne la qualité et l’optimisation du code, l’IA s’est avérée supérieure et a même été utilisée par les développeurs sans IA pour générer un code plus propre et conforme aux normes de codage.
Certaines IA ont même permis d’obtenir des explications détaillées du code source qui ont ouvert la voie à une rétrodocumentation efficace des anciens codes sources non documentés.
Il est cependant important de noter que ces résultats prometteurs nécessitent une préparation, une réflexion approfondie et un travail en amont, car l’IA n’est pas une solution plug-and-play. Les développeurs doivent acquérir une expertise technique et une compréhension des concepts de l’IA pour choisir les technologies, les cadres et les modèles les plus adaptés à leurs besoins.
De l’importance du contexte
Pour optimiser les interactions avec l’IA et obtenir des résultats optimums, il est essentiel pour les équipes de bien comprendre le contexte, les différents paramètres, si les projets sont en mode « BUILD » ou « RUN », et d’autres technologies et architectures nécessaires pour que l’IA puisse apprendre de manière efficace, etc.
En négligeant ce contexte dès le départ, les performances des différentes IA testées peuvent varier grandement. De plus, certains algorithmes d’IA peuvent être très gourmands en ressources de calcul, ce qui entraîne des ralentissements et des problèmes potentiels de performance.
Vincent NovasHN SERVICES
Il est donc crucial de trouver un équilibre entre les capacités de l’IA et les exigences applicatives.
Longtemps centrés sur la productivité et le Delivery, les développeurs doivent aujourd’hui avoir une véritable réflexion sur les optimisations du code, revoir les requêtes et les temps de traitement tout en faisant attention au refactoring.
Ils devront donc jouer un rôle de validation par rapport au travail de l’IA, en analysant le code généré avec un regard critique. Les développeurs juniors, quant à eux, renforceront leur autonomie et leur productivité en livrant un code plus propre et sécurisé.
Conclusion : vers des analystes-développeurs
L’intelligence artificielle ne remplacera pas les développeurs, mais les aidera à retrouver leur côté analytique. Ils deviendront des analystes-développeurs, mettant l’IA au service de la sécurité et de la qualité du code. Une bonne configuration en amont permettra à l’IA de soutenir efficacement le développement de code de haute qualité.