Accéder au contenu
Développement d'applications

Comment l'IA générative s'intègre dans l'ensemble du cycle de développement logiciel

26 janvier 2024
https://storage.googleapis.com/gweb-cloudblog-publish/images/org_chart.max-2500x2500.jpg
Shrestha Basu Mallick

Group Product Manager, Google Labs

Marcos Grappeggia

Senior Product Manager, Google Cloud

Contactez-nous

Si vous êtes une entreprise et que vous souhaitez vous développer, découvrez comment gagner en productivité avec Google Cloud ou contactez notre équipe commerciale.

Commencer ici

Il ne suffit pas d’écrire et déployer du code pour créer des services de qualité. Les séances de brainstorming autour d’un tableau blanc, les conversations dans les couloirs et les échanges d’emails contribuent tout autant au processus. C’est là que se décide le plus souvent ce qu’il faut concevoir et comment y parvenir. Bien sûr, une fois le service lancé, il faut aussi s’assurer qu’il est résilient, sécurisé et qu’il a un impact significatif sur le client.

L’année 2023 a été riche en rebondissements pour l'IA générative. Avec autant de solutions qui arrivent sur le marché, vous vous demandez peut-être en quoi ces nouveaux outils peuvent réellement être utiles dans la vie réelle. Après tout, ce sont les humains - et non les machines - qui sont au cœur des bons logiciels.

Pour illustrer en quoi ces outils peuvent réellement changer la donne tout au long du cycle de développement, nous vous proposons de partager le parcours d’un développeur chez Google Cloud qui utilise l’aide de Google AI pour passer de l'idée à la production.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/2-sdlc.gif

Imaginons que je sois ingénieur logiciel chez Cymbal Superstore, société spécialisée dans le commerce de détail alimentaire.

https://storage.googleapis.com/gweb-cloudblog-publish/images/3-superstore-app.max-2200x2200.png

Notre site est hébergé chez Google Cloud et on m’a demandé d’ajouter une nouvelle page mettant en avant nos tout derniers produits de type « snacks ». On est lundi, il est 9 heures du matin et j'ai pris mon café. Allez, y a plus qu’à….

Concevoir ensemble

Cette demande d’ajout d’une nouvelle page est arrivée dans ma boite mail. J'utilise donc la fonction d'aide à la rédaction de Gmail pour y répondre rapidement.

https://storage.googleapis.com/gweb-cloudblog-publish/images/4-gmail.max-2200x2200.png

Je me rends ensuite dans une salle de réunion avec mon binôme et nous commençons à réfléchir à la mise en œuvre sur un tableau blanc.

https://storage.googleapis.com/gweb-cloudblog-publish/images/5-whiteboard.max-2200x2200.png

De retour à mon bureau, je transforme notre magnifique gribouillage (sur le tableau blanc) en superbe diagramme avec Google Cloud Architecture Diagram Tool.

https://storage.googleapis.com/gweb-cloudblog-publish/images/6-arch-diagram-tool.max-2200x2200.png

Voilà ! Maintenant, je suis paré pour rédiger le cahier des charges technique. Mon binôme doit se rendre à une réunion mais je dois encore régler quelques questions d’architecture. Je télécharge mon diagramme dans Google Lens afin que Bard puisse lire mon diagramme d’architecture, puis j’approfondis la question des risques potentiels induits par mon implémentation en interrogeant l’IA conversationnelle.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/7-bard.gif

J’exporte ensuite mon échange avec Bard dans Google Docs pour commencer à rédiger le cahier des charges. J’utilise alors la fonction Google Docs Help me write pour générer automatiquement un plan. Très pratique, cette fonction me fait gagner du temps et je peux ainsi me concentrer sur des questions de conception plus délicates, comme la manière dont nous pourrions mettre en cache les requêtes Firestore dans le backend.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/8-docs.gif

Aux alentours de midi, j’envoie le cahier des charges à mon équipe pour qu’elle l’examine. En parallèle, l’équipe UX a travaillé sur une maquette de l’interface pour la page « Nouveau produits ».

https://storage.googleapis.com/gweb-cloudblog-publish/images/9-figma.max-2000x2000.png

Résultat, lorsque mon cahier des charges est approuvé, je dispose d’une page prête à être testée. Je peux donc commencer à coder…

Coder (avec un peu d’aide)

Le code relève souvent d’une activité pratiquée en solitaire. Et bien que je sois un ingénieur TypeScript chevronné, je suis relativement nouveau dans Google Cloud. Résultat, je me retrouve rapidement avec cinquante onglets ouverts - documentation, StackOverflow, musique apaisante, etc. - juste pour écrire 10 lignes de code ! Voyons comment Duet AI pour Google Cloud peut m'aider.

Je lance mon environnement de développement à partir de Google Cloud Workstations et j'ouvre un éditeur de code. Tout d'abord, j'utilise Duet AI dans Apigee pour générer automatiquement une spécification OpenAPI pour le nouveau point de terminaison de l'API REST. Ensuite, j'utilise un générateur swagger pour créer automatiquement un code TypeScript à partir de cette spécification.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/10-apigee.gif

Je peux passer à l’implémentation de la logique métier. Pour ce faire, j’utilise la génération de code par Duet AI en y saisissant l’invite (le prompt) expliquant, en langage naturel, la requête Firestore que je souhaite obtenir. J'appuie sur la touche tab pour accepter les suggestions de code de Duet AI.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/11-duet-code-completion.gif

Je teste ensuite le code localement. Oula…je constate une erreur.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/12-error.gif

Je ne suis pas sûr de la signification de l'erreur, alors j'ouvre l’interface Duet AI chat depuis mon IDE. Duet AI a été entraîné sur la documentation et les exemples de code de Google Cloud. L’IA peut donc m'aider à comprendre la signification de l'erreur, mais aussi la manière de la corriger. Dès lors, je ne suis plus obligé de chercher dans tous les sens sur Google pour arriver au même résultat.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/13-debug.gif

Une fois l'erreur corrigée, je peux poursuivre mes échanges avec Duet AI - sans changer de fil de discussion - pour m'aider à rédiger un scénario de test pour ce code. Duet AI peut adapter sa réponse en utilisant le contenu de mon fichier de test ouvert afin de générer un test qui utilise les mêmes frameworks et formats que mes autres tests.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/14-test.gif

Avec l'aide de Duet AI, j’obtiens ainsi un prototype fonctionnel plus rapidement, car j’ai moins besoin de sortir de l’IDE et de changer d’interface et de contexte pour faire aboutir mon projet.

Opérer en toute confiance

Je soumets mon code au référentiel de code source, puis je procède à un examen du code avec mon binôme. J’intègre la nouvelle fonctionnalité et la page « Nouveaux produits » est déployée en production. Super ! Mais le cycle de vie du développement logiciel ne s'arrête pas là.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/15-feature-goes-live.gif

En tant que développeur DevOps, je suis responsable de ce service en production. Dès lors, la première chose dont j’ai besoin, ce sont les journaux du service (service logs). J'utilise la console de chat de Duet AI pour m'aider à naviguer dans la console de Cloud Run.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/16-findlogs.gif

Ensuite, je travaille avec l'équipe SRE pour déterminer des objectifs de niveau de service pour le service d'inventaire. Dans Cloud Monitoring, j’utilise la fonction « help me modify » de Duet AI pour créer des requêtes complexes sur l'état de mes services. En tant que non-expert du langage de requête PromQL (Prometheus), cette fonctionnalité me permet de gagner un temps considérable en m’évitant de chercher la bonne syntaxe.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/17-metrics.gif

N'oublions pas la sécurité ! Partons du principe que la semaine dernière, lors d'une session de débogage, j'ai accordé à mon binôme un rôle IAM temporaire et permissif dans mon projet Google Cloud. Le Security Command Center peut s’en apercevoir. Grâce aux résumés générés par l'IA Duet AI, je peux rapidement comprendre le problème et travailler avec l'équipe de sécurité pour y remédier.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/18-security-summaries.gif

Partager l'impact

Une semaine plus tard, le chef de produit me demande de présenter quelques diapositives sur le projet lors de la prochaine réunion de tous les collaborateurs. Je me prépare avec mon collègue business analyste. Nous essayons de comprendre l'impact de la création d'une vitrine pour les nouveaux produits - ces nouveaux produits se sont-ils mieux vendus après avoir été présentés sur leur propre page dédiée ?

Nous commençons par créer une liste de tâches dans Google Sheets, en utilisant la fonction « help me organize ».

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/19-sheets.gif

Nous utilisons ensuite la fonction de complétion de code de Duet AI dans Spanner afin d’accéder aux données de vente en interrogeant les données brutes des transactions réalisées sur les dernières semaines.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/20-spanner.gif

Nous collectons davantage de données à partir des tables de ventes dans BigQuery. Alors que l'analyste business écrit des requêtes SQL avec une facilité d'expert, j'utilise la fonction d'explication de code de Duet AI pour mieux comprendre les données que nous recueillons.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/21-bigquery.gif

Je bascule ensuite dans Google Slides et j'utilise l'outil "Help me visualize" de Duet AI pour générer des visuels et illustrations qui donneront plus d’impact à mon rapport.

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/22-slides.gif

La réunion se passe bien et j'ai de nouvelles idées sur la manière d'améliorer les performances de la fonction. Tout cela en l’équivalent d’une journée de travail (assistée par l'IA).

Pour résumer, à travers cet exemple, nous avons utilisé les fonctions d'assistance de Google en matière d'IA - de Duet AI dans Google Workspace et dans Google Cloud à Bard - pour donner vie à une idée. Les outils d'IA générative nous ont aidés à collaborer, à déboguer lorsque nous étions bloqués et à automatiser des tâches pour libérer notre esprit et nous permettre de nous attaquer aux tâches les plus ardues. Cette histoire ne fait pourtant qu'effleurer la surface de ce que Duet AI peut faire. Son potentiel est tellement plus étendu ! Il y a encore tant à découvrir.

Google Cloud France organise le 22 février prochain une demi-journée dans ses locaux à Paris à destination des développeurs pour une prise en main de Duet AI. Inscrivez-vous rapidement via ce lien.

Publié dans