Le pair programming, une bonne pratique du développement vouée à se transformer sous l'influence de l'IA ?

Le pair programming, méthode agile de développement, est une pratique encore sporadique. Sous l'influence de l'IA, elle pourrait permettre de concilier performance économique et qualité de code.

Le pair programming, méthode agile de développement qui consiste à associer deux développeurs, est une pratique encore sporadique. Si elle a fait ses preuves lors de l’onboarding, sa mise en œuvre régulière est remise en cause d’un point de vue économique. La montée en puissance de l’IA pourrait permettre de concilier performance économique et optimisation de la qualité du code, dans le cadre de projets au long cours.

Une pratique freinée par les impératifs économiques

Reconnue comme l’une des bonnes pratiques du développement, la programmation en binôme est souvent limitée à l’onboarding. Le frein majeur à son déploiement à plus grande échelle : le coût en temps homme que représente l’association de deux développeurs sur les mêmes lignes de code.

Cette perception ne prend cependant pas en compte l’impact de cette collaboration sur la qualité du travail réalisé, qui permet de générer des économies à moyen et long termes. Les développeurs interviennent majoritairement dans le cadre de missions courtes, en étant soumis à des contraintes budgétaires. La mobilisation de deux professionnels, quand un seul peut, d’un point de vue technique, mener à terme le projet, représente ainsi un coût difficile à absorber et justifier.

Pourtant, leurs projets doivent vivre dans le temps. Ainsi, selon le rapport “The State of IoT Software Development” (2024 - Memfault), plus de 20% des entreprises mettent plus d’une semaine à identifier la cause d’un dysfonctionnement logiciel et 40% mettent plus d’une semaine à corriger ces défauts.

Une dette technique qui affecte la rentabilité d’un logiciel et qui aurait pu être limitée lors des de l’étape de développement : plus tôt les défauts sont détectés, plus le code est qualitatif et plus le projet gagne en efficacité. Le pair programming permet ainsi d’assurer une qualité de code maximale et d’adresser des problématiques complexes.

L’IA, une technologie neutre qui pourrait être mise au service de la qualité du code

La grande majorité des professionnels de l’IT ont d’ores et déjà adopté l’IA et ses outils : selon l’étude “Docker AI Trends Report” (2024), deux tiers des développeurs l’ont d’ores et déjà intégrée dans leur activité. 33% l’utilisent ainsi dans l’écriture de code et 21% pour la correction de bugs.La mobilisation d’un assistant virtuel n’a cependant rien de révolutionnaire dans le domaine du développement : la pratique du test-driven development a déjà redéfini notre manière de programmer. Grâce à une boucle « Test-Code-Refactor (Red-Green-Refactor) » qui drive le développement par test, elle permet de changer la nature d’un algorithme en temps réel, à travers un refactor et des itérations continues.

A noter qu’aujourd’hui, tous les éditeurs de code, à l’instar de Visual Studio Code de Microsoft, intègrent des brics d’IA au sein de leurs logiciels, à travers des fonctionnalités telles que les échanges avec un assistant pour mieux comprendre, compléter et corriger une ligne de code.

L’IA n’est cependant pas vouée à remplacer le développeur ou à réfléchir à sa place ; c’est une technologie neutre. Par exemple, ChatGPT, basé sur le Large Language Model (LLM) qui permet d’analyser des milliards de points de données, apporte des réponses liées à des probabilités. Charge à son utilisateur d’en vérifier la pertinence. D’autant plus que ces propositions peuvent être basées sur des « hallucinations » générées pas des données initiales erronées. Les entreprises doivent ainsi « fine-tuner » (spécialiser l’IA sur des tâches spécifiques) afin d’affiner et d’optimiser les modèles IA qu’elles utilisent.

Elle peut, malgré tout, constituer un soutien précieux pour le développeur afin d'optimiser la qualité du code ; à condition que cet objectif soit privilégié par rapport aux enjeux de rapidité.

On peut ainsi imaginer la création d’une IA basée sur les normes, les conventions et les modèles du pair programming. Cet assistant reproduirait les comportements d’un co-développeur pour réagir et conseiller son binôme humain, créant ainsi une nouvelle méthode hybride de développement.