Sommaire
Les développeurs passent beaucoup de temps sur des tâches ennuyeuses et répétitives
Selon une enquête réalisée par Stack Overflow en 2022, 63% des répondants ont déclaré consacrer plus de 30 minutes par jour à la recherche de réponses ou de solutions à des problèmes, ce qui représente entre 333 et 651 heures de temps perdu par semaine pour une équipe de 50 développeurs. Un sondage distinct de Propeller Insights et Rollbar a révélé qu’un tiers des développeurs consacrent environ un quart de leur temps à la correction de bugs, dont plus d’un quart (26%) consacrent jusqu’à la moitié de leur temps à la correction de bugs.
La solution pour automatiser les tâches de développement
Cette tendance a frustré William Zeng et Kevin Lu. C’est pourquoi, plus tôt cette année, ils ont créé une plateforme appelée Sweep pour gérer de manière autonome des tâches de développement telles que le débogage de haut niveau.
« Nous avons lancé Sweep après avoir travaillé ensemble chez Roblox et avoir constamment été confrontés à des tâches logicielles que nous savions pouvoir automatiser grâce à l’IA », a déclaré Zeng, PDG de Sweep, dans une interview par e-mail accordée à Toukiela. « Sweep est comme un développeur junior alimenté par l’IA pour les équipes de développement de logiciels. »
Les fonctionnalités de Sweep
Sweep permet aux développeurs de décrire une demande en langage naturel, par exemple « ajouter des journaux de débogage à mon pipeline de données », en dehors d’un environnement de développement intégré (IDE) et de générer le code correspondant. La plateforme peut ensuite pousser ce code vers la base de code appropriée via une requête pull et traiter les commentaires formulés sur la requête pull, que ce soit par les mainteneurs ou les propriétaires du code, un peu comme GitHub Copilot, mais de manière plus autonome.
« Sweep permet aux ingénieurs de livrer plus rapidement », explique Zeng. « Nous nous occupons de la dette technique accumulée à chaque modification de code, telle que l’amélioration des journaux d’erreurs et l’ajout de tests unitaires, en plus de la refactorisation du code inefficace. »
Les modèles d’IA utilisés par Sweep
Sweep, qui se spécialise dans l’écriture de code Python, exploite une combinaison de modèles d’IA pour la génération de code. Ils incluent GPT-4 d’OpenAI, mais aussi un « moteur de recherche de code » personnalisé, qui n’est pas entraîné sur les données des clients de Sweep, selon Zeng. Ce moteur de recherche aide à planifier et à exécuter des modifications de code « à l’échelle du référentiel ».
« Nous avons construit notre propre moteur de recherche de code pour Python, qui utilise des techniques de recherche lexicale et vectorielle », ajoute Zeng. La recherche lexicale recherche des correspondances littérales ou des variations légères de portions de code, tandis que la recherche vectorielle peut trouver du code plus éloigné mais partageant certaines caractéristiques. « Nous avons l’une des meilleures capacités de génération de tests unitaires disponibles et nous exécutons et exécutons les tests en temps réel », poursuit-il.
Les défis liés à l’utilisation de l’IA dans les outils de développement
Cependant, étant donné la propension de l’IA à commettre des erreurs, je suis un peu sceptique quant à la fiabilité de Sweep à long terme. Une équipe de recherche affiliée à Stanford a constaté que les ingénieurs qui utilisent des outils d’IA sont plus susceptibles de causer des vulnérabilités de sécurité dans leurs applications, car ces outils génèrent souvent du code qui semble superficiellement correct mais pose des problèmes de sécurité.
Il y a aussi la question des droits d’auteur. Certains modèles de génération de code, pas nécessairement StarCoder ou ceux de Sweep, mais d’autres, sont entraînés sur du code protégé par des droits d’auteur ou soumis à une licence restrictive, et ces modèles peuvent régurgiter ce code lorsqu’ils sont sollicités d’une certaine manière. Des experts juridiques ont soutenu que ces outils pourraient mettre les entreprises en danger si elles incorporaient involontairement des suggestions protégées par des droits d’auteur provenant des outils dans leurs logiciels de production.
La solution de Sweep consiste à demander aux utilisateurs de passer en revue et de modifier eux-mêmes tout code généré avant de pousser les modifications vers la base de code principale.
« Les principaux défis liés aux outils de développement IA concernent la fiabilité et la gestion des grandes bases de code », déclare Zeng. « Nous utilisons nos connaissances sur les méthodes anciennes et nouvelles pour rendre Sweep robuste. »
La tarification de Sweep et ses prévisions d’avenir
Sweep facture ses services à un prix élevé – 480 dollars par siège par mois. Cependant, cela n’a apparemment pas dissuadé les clients. Zeng affirme que Sweep, avec une modeste réserve de 2,8 millions de dollars, dispose de suffisamment de capitaux provenant de la clientèle pour « faire durer l’entreprise pendant plusieurs années ».
« Les nouveaux fonds serviront à élargir notre équipe l’année prochaine, passant de deux employés à cinq », poursuit-il. « Nous allons continuer à nous concentrer sur Python et à nous améliorer dans tous les domaines de la dette technique, des tests unitaires, de la refonte et de la gestion des tâches restantes dans le code. »