Compte Rendu de l'OCTO Talks Assistants de développements

Les IA s’invitent au chevet des développeurs : rêve ou cauchemar ?

Le 12/12 avait lieu l'OCTO Talks Assistants de développement , une matinée complète pour parler des opportunités et défis face à l’arrivée de l’IA dans le monde du développement.

Alain Fauré a présenté l’état de la technologie, comment tirer le meilleur parti de ces outils et les mettre en œuvre à l’échelle d’une entreprise.

Ensuite Alexandre Jeambrun a présenté les challenges que cela représente pour le métier du développeur

Alexandre
Alain
Alexandre Jeambrun
alexandre.jeambrun@octo.com
Alain Fauré
alain.faure@octo.com

Etat de la technologie des assistants de développement

L’intégration d'outils d'IA dans les environnements de développement intégrés (IDE) marque un tournant majeur. Des produits phares tels que AWS whisperer, Gitlab Copilot et TabNine, basés sur les technologies des modèles de langage de grande envergure (LLMs), révolutionnent la manière dont les développeurs écrivent du code.

Le domaine évolue et de nouvelles solutions émergent par exemple IntelliJ a ouvert son assistant la semaine dernière. Des solutions open source sont aussi disponibles.

Ces outils offrent des suggestions lors de l’écriture du code et permettent des interactions plus sophistiquées via le chat. Alain a présenté ces deux modes d’intéraction sur l’exemple d’une API REST ‘TO DO LIST’

Alain nous a ensuite montré que l’on était loin de la capacité à générer une application complète, mais que ces technologies fonctionnent bien au niveau de classes ou de méthodes. Ces outils sont aussi pertinents pour rechercher de l’information sans sortir de l’IDE et y intégrer du code. Il est aussi possible de générer des descriptions, readme ou explications.

Finalement Alain nous donne 4 conseils pour bien utiliser ces assistants

  1. Utiliser des Cas d'Utilisation Éprouvés : Concentrez-vous sur des tâches où l'IA a montré une efficacité avérée, comme l'écriture de tests unitaires.
  2. Fournir des Informations Précises : Plus les directives fournies à l'IA sont détaillées, plus les résultats seront pertinents.
  3. Générer des sections de code pas trop grandes pour avoir une meilleur pertinence
  4. Garder la maitrise de l’IA : il faut absolument relire ATTENTIVEMENT tout le code en gardant en tête que la “logique” de l’IA est différente de celle d’un développeur.

Talk

Mise en oeuvre dans une entreprise

Alain nous présente une approche pour mettre en place ces technologies au sein des équipes de développement d’une entreprise en détaillant les points d’attention de chaque étape:

  1. Définir sa stratégie vis à vis des risques technologiques et de mise en oeuvre
  2. Identifier une/des équipes pour faire un pilote
  3. Choisir le produit
  4. Evaluer l’expérimentation
  5. Ajuster et déployer plus largement

Du métier de développeur

Alexandre nous partage ses réflexions ainsi que celles de ténors de l’IT sur le métier du développement.

Alberto Brandolini.

Alexandre s’interroge sur l’évolution du processus de réflexion et de compréhension du problème qui est effectué actuellement lors de l’écriture effective de code.

Par ailleurs Alexandre développe toutes les activités des développeurs en dehors de la production de code.

Finalement Alexandre explore l’impact qu’il y aurait à supprimer le langage intermédiaire (le code).

Conclusions et perspectives

Les assistants de développement sont maintenant des outils matures qu’il faut savoir utiliser pour en tirer le meilleur parti. On n’est pas encore dans une révolution, mais plutôt dans l’utilisation d’un outillage qui est d’autant plus efficace que les pratiques de développements sont maîtrisées.

Le métier du développeur va évoluer de la position de “codeur” à celle d’un “instructeur” qui indique quoi coder à son assistant. L’assistant étant d’ailleurs capable de suggérer ou challenger les instructions données !

Ces produits vont encore progresser pour couvrir plus de “‘use case” de codage ou des “use case” liés au développement, que ce soit au niveau de la compréhension du besoin ou de la validation du produit réalisé.