Découvrez AWS BugBust
AWS BugBust est une compétition mondiale pour les développeurs Java et Python dont l’objectif est de corriger 1 million de bugs. Annoncé le 24 juin dernier, AWS BugBust est actuellement disponible dans quelques régions des États-Unis et d’autres régions s’y ajouteront prochainement.
Commencez avec BugBust
Ce concours consiste donc à corriger des bugs, mais vous vous demandez peut-être d’où ils viennent ? Ils sont tout simplement extraits de deux outils AWS :
- CodeGuru, un outil de revue de code basé sur l’apprentissage automatique qui identifie les bugs, les problèmes AWS et les meilleures pratiques de sécurité dans le code, et qui est également capable de suggérer des corrections. Il peut être considéré comme un linter.
- CodeGuru Profiler, qui inspecte en permanence votre application en production et identifie les parties de code coûteuses en performance, et aide à réduire la consommation de CPU ou de mémoire.
BugBust vous invite à créer des événements, où vous êtes libre d’inviter des développeurs et développeuses (des joueurs), et de fixer les prix et récompenses. Seuls les joueurs invités par les administrateurs de l’événement seront autorisés à participer à l’événement. Vous devez avoir configuré CodeGuru dans votre compte AWS afin qu’au moins un dépôt soit analysé pour la détection des bogues.
Notez que votre dépôt doit être soit GitHub, GitHub Enterprise, Bitbucket ou AWS CodeCommit.
Une fois prêt, les développeurs du monde entier peuvent participer au défi.
L’ensemble du processus est résumé dans cette image :
Let’s play
Une fois qu’un administrateur a mis des bugs à la disposition des joueurs, chaque joueur peut s’attribuer jusqu’à 3 bugs à la fois pour essayer de les corriger. Si le bug n’a pas été corrigé dans les 2 heures, d’autres joueurs pourront se les attribuer.
Pour corriger les bugs, les joueurs peuvent créer des Pull Request avec leur changement de code, et si CodeGuru ne détecte plus le bug, il est considéré comme corrigé et des points sont attribués. La catégorie du bug déterminera le score (nombre de points à récompenser). Par exemple, les bugs de type “expressions régulières” valent 1 point alors que les problèmes de “sécurité” récompensent les joueurs avec 5 points.
AWS gamifie clairement le processus de résolution des bugs et les défis sont collaboratifs. Les développeurs gagnent des points avec leur équipe et peuvent franchir des paliers. La gamification sera un facteur clé pour atteindre le million de bugs visé. AWS propose d’ailleurs des prix en fonction du niveau de points gagnés, allant d’un T-shirt à un voyage payé à la conférence re:Invent2021.
100 M$ de dette technique économisée ?
Cette affirmation peut sembler être un effet d’annonce mais cet objectif d’un million de bugs vise économiser 100 millions de dollars. En effet, ce concours va aider les organisations à améliorer la qualité du code et à réduire la dette technique. Il s’agit bien sûr d’une estimation. Comme nous l’avons dit précédemment, chaque bug est associé à une valeur en points. Un équivalent en dollars, allant de 769 $ à 10 000 $, est attribué en fonction de la valeur du point. D’après cet extrait de la FAQ :
“Les économies estimées en dollars sont calculées en convertissant les points attribués pour la correction d’un bug en un équivalent en dollars, sur la base des conclusions du Systems Science Institute d’IBM selon lesquelles il peut coûter jusqu’à 100 fois plus cher de corriger un bug, selon le stade de développement du cycle de vie du logiciel où le bug est identifié, que pendant la phase de conception initiale *(International Journal Of Engineering And Computer Science, Study of Software Quality and Risk Estimation and Quality Cost Analysis using Empirical Study, July 2015)”.
Nous pouvons supposer que le point le plus élevé pour un bug, qui est 13, peut récompenser jusqu’à 10 000$ mais c’est le pire des cas. Le meilleur cas pourrait être de 100$. Multipliez par 1 million de bugs et vous obtiendrez le bon chiffre. Encore une fois, il s’agit d’une hypothèse, ne prenez pas cela pour acquis.
L’IA, avenir du développement logiciel ?
Ces dernières années, de plus en plus de projets basés sur l’Intelligence Artificielle ont développé des outils destinés à aider les développeurs et testeurs de logiciels dans leur travail quotidien. Nous pouvons citer Aifex, un outil open-source pour les tests exploratoires impliquant Xavier Blanc, co-fondateur de Promyze. On peut également citer Sourcery, un outil de refactoring pour Python.
AWS BugBust affirme d’ailleurs que grâce à CodeGuru, “les développeurs passent moins de temps sur les processus complexes d’inspection du code, et plus de temps à prendre du plaisir à innover et à construire ensemble avec leur équipe”.
Demain, si l’IA identifie tous les problèmes de code, les développeurs auront-ils encore besoin d’apprendre les bonnes pratiques de développement, les principes du Clean code, ou les modèles d’architecture comme le domain-driven design ? De notre point de vue, les développeurs auront toujours besoin de contrôler et de maîtriser leur code, et de discuter et d’améliorer en permanence leurs bonnes pratiques, par le biais d’un cadre tel que les Ateliers Craft par exemple. La programmatin est un travail d’équipe, et la communication est la clé de la réussite des projets.
AWS BugBust peut être un moyen pour CodeGuru de consolider son apprentissage grâce à l’analyse des corrections de bugs. Nul doute que 1 000 000 de données d’entrée lui seront utiles.