L'Art de Ne Pas Savoir : Comment Nous Construisons un Coach IA de Zéro
Apprentissages et conseils tirés de nos expériences de création d'une application web IA et de deux applications mobiles sans aucune expérience préalable.
On n'avait pas prévu ça. Pas vraiment.
Notre curseur survole le bouton "Soumettre pour révision" de nos applications AI Agile Coach que nous développons depuis 4 semaines. On ne savait pas vraiment comment créer des apps il y a 4 semaines. On l'a fait quand même.
"Qu'est-ce qui pourrait arriver de pire ?"
"Ils pourraient la rejeter."
"Appuie sur le bouton."
Alerte spoiler : Les deux apps ont été acceptées en quelques jours.
Comment on en est arrivés là ?
On est en 2023, et l'IA est partout. ChatGPT est le nouveau jouet à la mode. "Regardez, il peut écrire un poème sur les Scrum Masters !" a posté quelqu'un sur notre Slack. "Je viens de lui faire écrire mon email, c'est magique," a écrit un autre. On commence à utiliser l'IA pour des petites choses—générer des idées, gérer des tâches banales—et juste s'amuser.
Mais c'était plus qu'un gadget, et on le savait tous. On était bluffés, et peut-être un peu en retard sur la tendance. C'était nouveau, énorme, et ça évoluait vite, et nous, on essayait de rattraper le train.
C'est là que ça nous a frappés : ce n'était pas juste quelque chose à observer de loin. On pouvait construire quelque chose avec ça.
Voici ce qu'on a fait, ce qu'on a appris, et quelques coulisses du projet.
1. Se lancer : Pas d'idée parfaite, juste commencer
On n'avait pas de grand plan ni d'idée précise de ce qu'on allait créer. Mais on savait qu'on est là pour apprendre et partager des connaissances de façon mémorable.
Et maintenant, l'IA était cet outil immense et brillant qu'on pouvait utiliser d'une nouvelle façon. Mais qu'est-ce qu'on allait construire exactement ? Et comment allait-on s'y prendre ?
Au lieu d'attendre l'idée parfaite, on a juste commencé à bidouiller. Pas de roadmaps élaborées, pas de longs débats—juste nous, une poignée d'idées, et l'envie de voir ce qu'on pouvait créer.
Ce qu'on a appris :
N'attends pas l'idée parfaite. Commence petit, expérimente avec la technologie, et laisse la direction émerger de ce que tu apprends. Avec une tech qui évolue si vite, attendre trop longtemps pourrait te faire rater le coche.
2. Établir une Vision : Au-delà d'un Simple Chatbot
Dès le départ, nous ne voulions pas construire un simple chatbot de plus. ChatGPT existait déjà et nous savions que nous ne pouvions pas (et ne voulions pas) rivaliser avec son envergure. Mais ce que ChatGPT offrait en termes d'échelle, il lui manquait en qualité sur les sujets de niche, là où les détails comptent.
Et si notre Coach Agile IA pouvait exploiter notre expertise pour fournir des conseils fiables et stimulants, au-delà de simples réponses génériques ?
La qualité, la confiance et une touche humaine sont devenues les piliers de notre vision. Nous voulions contrer les problèmes courants de l'IA—être générique, impersonnelle et peu fiable—en transformant ces points en forces.
Apprentissage :
Commence par une vision et travaille à rebours. Tu n'as pas besoin de tous les détails dès le départ ; de nouvelles idées émergeront naturellement au fur et à mesure de ta progression.
3. Former une Équipe et un Processus Lean : Garder les Choses Simples
Une fois la décision prise de construire le coach IA, une petite équipe s'est formée—un designer, deux développeurs, et le reste de l'équipe en arrière-plan pour les retours et les idées.
Sans trop planifier, nous avons adopté un processus lean : des synchronisations quotidiennes rapides, des conversations informelles style rétro pour ajuster les outils, et des démos hebdomadaires pour partager les progrès. Il ne s'agissait pas de suivre un cadre agile strict ; il s'agissait de garder les choses simples et réactives.
Apprentissage :
Laisse ton processus évoluer naturellement. Des points quotidiens, des retours réguliers et des démos simples peuvent te garder aligné. Ne te prends pas trop la tête—parfois, la meilleure approche est celle qui correspond au rythme de ton équipe.
4. L'Art du Prompting : Essais et Erreurs
Nous savions que des prompts innovants (les instructions que tu donnes au modèle de langage) allaient être essentiels pour notre application. Le prompting semble facile jusqu'à ce que tu essaies de bien le faire. Nous avons expérimenté différents prompts—ajustant les mots, réécrivant les phrases, testant jusqu'à ce que ça sonne juste.
Notre prompt actuel fait plus de 5 000 caractères, rempli de détails qui font que notre IA nous ressemble. C'est comme écrire une recette secrète, et il a fallu beaucoup de dégustations pour y arriver, et nous continuons à l'ajuster régulièrement.
Apprentissage :
Expérimente avec les prompts. Teste différentes variations pour voir ce qui fonctionne, et ajuste-les fréquemment. De bons prompts sont cruciaux pour la performance de l'IA.
5. Livrer Tôt et Souvent : Abandonner la Perfection
Nous n'avons pas attendu la perfection. Dès que notre première version était assez bonne, nous l'avons livrée. Était-elle parfaite ? Incluait-elle les innombrables idées et fonctionnalités auxquelles nous avions pensé ? Certainement pas. Mais ça n'avait pas de sens de continuer sans retours de vraies personnes.
Avec l'IA, tu ne peux pas prédire chaque résultat, et chaque interaction utilisateur est différente. La seule façon de savoir ce qui fonctionne est de le mettre en ligne, voir comment les gens l'utilisent, et s'adapter en fonction de ce que tu apprends.
Apprentissage :
Ne vise pas la perfection avant le lancement. Sors un produit minimum viable rapidement, et apprends des retours utilisateurs pour des améliorations rapides. Ce n'est pas une idée nouvelle, mais dans le paysage IA en évolution rapide, c'est plus important que jamais.
6. Sur les épaules des géants
Il s'avère que tu n'as pas besoin de tout construire toi-même. Nous nous sommes appuyés sur des frameworks et des boilerplates comme Gravity, qui gère toutes les tâches fastidieuses mais nécessaires comme la gestion des utilisateurs, l'authentification et les emails, pour que nous puissions nous concentrer sur l'essentiel. Nous avons beaucoup utilisé des outils comme LangChain et bien sûr l'API OpenAI, qui faisaient le gros du travail en coulisses.
Apprentissage :
Tire parti des outils existants pour accélérer le développement. Ne construis pas tout de zéro quand quelqu'un d'autre a déjà résolu le problème. Les bons outils peuvent faire gagner beaucoup de temps.
7. Apprendre des experts (comme le vrai Henrik)
Nous devons beaucoup à Henrik Kniberg, qui nous a guidés à travers certaines des étapes les plus critiques du processus de développement. Il a lancé les choses avec un atelier qui a donné le ton et la direction de notre travail. En tant que mentor de l'équipe et éponyme de notre produit, Henrik nous a poussés dans de nouvelles directions et nous a aidés à façonner l'AI Agile Coach tel qu'il est aujourd'hui. Son influence a été inestimable, et nous lui sommes reconnaissants pour son soutien tout au long du chemin.
Apprentissage :
N'hésite pas à solliciter et à apprendre des experts. Une perspective nouvelle de quelqu'un d'expérimenté peut ouvrir des voies auxquelles tu n'avais pas pensé.
8. Le Défi du Contenu : Que Donnons-Nous à Manger à l'IA ?
Nous avons passé des années à créer et sélectionner du contenu auquel nous croyons, et maintenant nous devions trouver comment en faire la base de notre coach IA. Il ne s'agissait pas simplement de déverser nos contenus dans le système. Nous voulions que notre IA soit fiable, engageante et réellement utile. Nous avons donc passé des heures à sélectionner et affiner les bons éléments de connaissance, et à nous assurer que l'IA pouvait les comprendre et les utiliser efficacement.
Apprentissage :
Investis du temps dans la curation de ton contenu. Assure-toi qu'il est précis et reflète le ton et la voix de ton IA. Un meilleur contenu conduit à une IA plus digne de confiance.
9. Itérer l'Implémentation LLM : S'Adapter, S'Adapter, S'Adapter
Améliorer le coach IA a nécessité de nombreuses itérations, chacune nous apprenant ce qui fonctionnait et ce qui ne fonctionnait pas :
1. Utilisation de GPT Personnalisé dans ChatGPT :
Nous avons commencé avec des GPTs personnalisés dans ChatGPT. C'était facile — pas de code nécessaire. Cependant, nous avons rapidement atteint des limites en termes de contrôle et de qualité des résultats. Nous savions aussi que nous voulions lancer notre propre produit en dehors de l'écosystème OpenAI avec sa propre identité de marque et une connexion plus directe avec nos autres produits.
2. Interface Personnalisée avec l'API Assistant :
Initialement, nous avons créé une interface personnalisée utilisant l'API Assistant. Cela nous donnait plus de contrôle sur les documents utilisés par l'IA. Mais nous avons vite rencontré des limitations de scalabilité et il était difficile de contrôler quelles parties de la connaissance personnalisée étaient utilisées pour générer les réponses.
3. Interface Personnalisée avec LangChain et Weviate Vector DB :
Ensuite, nous avons implémenté un Assistant personnalisé utilisant LangChain et des connaissances provenant d'une base de données vectorielle Weviate. Cette configuration nous permettait de n'utiliser que les connaissances pertinentes, améliorant la qualité. Les résultats étaient excellents dans la plupart des cas, mais parfois l'Assistant se perdait dans des boucles infinies ou fournissait des réponses bizarres et peu naturelles.
4. Agent LangChain :
Pour contrer ces problèmes, nous avons implémenté un agent LangChain. Cette approche assez récente a livré les meilleurs résultats jusqu'à présent. L'agent peut décider quels outils et informations utiliser en fonction de la requête de l'utilisateur et gère plus efficacement sa mémoire des interactions passées. Par exemple, si un utilisateur dit "Salut", l'agent décide qu'il n'a pas besoin de chercher dans ses connaissances spécialisées pour simplement saluer en retour.
Le compromis est qu'on abandonne une partie du contrôle car l'agent a plus d'autonomie. Cependant, les avantages en termes de qualité et d'efficacité l'emportent largement. La bibliothèque d'agents Langchain offre de nombreuses options et configurations pour affiner les performances du modèle.
5. Une nouvelle solution géniale.
Ce qui vient après les agents, nous ne le savons pas encore. On verra...
Apprentissage :
Si une configuration ne fonctionne pas, ne t'y accroche pas. Continue d'essayer de nouvelles configurations et apprends de chacune. De nouvelles solutions émergent quotidiennement dans le paysage de l'IA, alors reste ouvert et prêt à t'adapter aux derniers outils et approches pour améliorer ton produit.
10. Créer l'Application Mobile : Un Saut dans l'Inconnu
Nous savions depuis toujours qu'il nous faudrait une application mobile, mais en créer une semblait intimidant. Quand Sohrab a demandé ce qu'il faudrait pour créer une app, nous étions hésitants. Les applications mobiles sont complexes, et nous ne l'avions jamais fait auparavant. Bien que notre application web était encore à ses débuts avec beaucoup de choses à faire, il était logique de commencer l'application mobile tôt. En faisant fonctionner l'app avec un ensemble de fonctionnalités limité, nous évitions le risque de devoir rattraper notre retard plus tard quand le produit serait plus complexe. En plus, cela nous donnait une opportunité précoce d'apprendre et de nous adapter.
En utilisant Expo et React Native, nous avons créé les versions iOS et Android en quatre semaines. Appuyer sur le bouton "Soumettre pour Révision" était vraiment excitant. Cela nous a rappelé de faire le saut et de voir où nous atterrissons.
Apprentissage :
Si les utilisateurs expriment un besoin, fais le saut. La courbe d'apprentissage peut être raide, mais l'expérience pratique bat la planification théorique. Des frameworks comme Expo et React Native fonctionnent bien pour créer des apps multi-plateformes. Par le passé, les apps non-natives pouvaient sembler maladroites ou déplacées, mais ces frameworks ont considérablement évolué. Tu ne sacrifies qu'un peu du ressenti natif, et en retour, tu gagnes un développement rapide et une maintenance plus facile sur toutes les plateformes.
11. Utiliser l'IA pour Construire l'IA : Donner les Moyens à Chacun
Une des choses les plus cools était d'utiliser l'IA pour aider à construire notre IA. Nous avons configuré différents GPTs pour des tâches spécifiques : un pour le code, un autre pour l'écriture, et ainsi de suite. Même moi, un designer avec des capacités de codage limitées, je me suis retrouvé à coder avec l'aide de Cursor, un éditeur de code avec un assistant intégré. L'IA est devenue un facilitateur, permettant à chacun de contribuer de nouvelles façons.
Apprentissage :
Utilise l'IA pour améliorer ton processus de développement et créer des outils spécialisés. Comme nous l'avons appris de Henrik Kniberg : Pour chaque tâche sur ta liste, demande-toi : Comment l'IA peut-elle m'aider avec ça ?
12. Garder la Touche Humaine
Dans un projet piloté par l'IA, il est facile de perdre de vue l'élément humain. Nous avons donc fait un effort conscient pour éviter cela :
- Le logo a d'abord été esquissé sur un post-it.
- Le code a été vérifié, sélectionné et écrit manuellement.
- Les textes marketing ont d'abord été écrits sur papier — avec un crayon.
- Les emails aux utilisateurs ont été écrits et envoyés manuellement avec une approche bootstrappée, sans encore penser à la mise à l'échelle. (Hint: Don't optimize for scale prematurely)
Apprentissage :
L'IA est un outil puissant, mais ce sont les éléments humains qui rendent un produit authentique et relatable. Garde la touche personnelle vivante dans ton projet.
13. Ce n'est que le début
Nous avons construit beaucoup de choses rapidement, mais nous continuons à apprendre. Chaque jour apporte de nouveaux défis, de nouvelles leçons et de nouvelles idées à tester. Nous apprenons encore, nous itérons et nous essayons de créer quelque chose qui fonctionne.
Et c'est très bien ainsi, car c'est comme ça que nous avons toujours fonctionné. Nous vivons selon les principes que nous enseignons : apprendre vite, s'adapter rapidement et continuer à avancer.
Ce qu'on en retient :
Reste curieux et flexible. Continue à remettre en question tes hypothèses, tire parti de ce que tu apprends et sois prêt à changer de direction.
Et n'oublie pas de t'amuser en chemin.
---