Latest / Le Dernier Clic (avant la fin du monde) / 17 - Une application de A à Z : besoins, code, tests et production
Transcript
- 0:13Bonjour et bienvenue dans Le Dernier Clic,
- 0:14votre podcast tech,
- 0:15IA et no-code.
- 0:16On se retrouve comme chaque semaine avec Lulu.
- 0:19Comment ça va ?
- 0:20Ça va bien.
- 0:21Et d'ailleurs,
- 0:22je ne te m'en ai pas demandé s'il ne faisait pas trop chaud chez toi.
- 0:24Tu n'étais pas encore en mode caniculaire.
- 0:26Oui,
- 0:26je suis venue,
- 0:27c'est signé.
- 0:27comme toujours,
- 0:28mais bon,
- 0:29on arrive à garder du frais à la maison,
- 0:30donc ça va.
- 0:32Parfait.
- 0:33Alors,
- 0:34on se retrouve cette semaine pour changer un petit peu des sujets d'IA,
- 0:38parce qu'on vous a pas mal parlé d'IA ces dernières semaines et ces derniers épisodes,
- 0:43notamment sur l'IA frugale et la semaine dernière quand on vous a parlé également de notre portail.
- 0:50Donc,
- 0:50on est revenu en fait un petit peu sur ce que ça implique de développer une application en l'illustrant à travers le développement
- 0:57de notre application,
- 0:58de notre portail qu'on utilise,
- 1:00nous,
- 1:00au quotidien maintenant pour préparer nos épisodes.
- 1:03C'était un épisode côté outils un petit peu thématique et un peu plus particulier.
- 1:07Je vous invite à l'écouter si ce n'est pas déjà fait et si le sujet vous intéresse.
- 1:11Et aujourd'hui,
- 1:12histoire de faire le pont justement avec tout ça et de clarifier un petit peu ce que représente le développement logiciel,
- 1:19le développement d'une application au sens un peu plus général.
- 1:23qui n'est pas spécifique au wipecoding et au développement assisté par IA,
- 1:27qui n'est pas spécifique non plus à la manière dont nous,
- 1:29on travaille avec Lulu et ce qu'on vous a présenté la semaine dernière et ce qu'on continuera de vous présenter la semaine prochaine.
- 1:35Là,
- 1:36l'idée va être de revenir un petit peu sur le développement logiciel au sens large.
- 1:42Lulu,
- 1:43je te laisse nous dire un petit peu pourquoi aussi on part sur ce sujet-là maintenant.
- 1:48En fait,
- 1:49on s'était dit...
- 1:50Peut-être qu'on continuera juste à parler du développement dans cet épisode-là,
- 1:54mais moi,
- 1:55en tout cas,
- 1:55ça me semblait important de juste prendre le temps de définir les différentes étapes et de revenir un peu sur le vocabulaire aussi.
- 2:02Parce que c'est peut-être des expressions qu'on voit beaucoup dans notre bulle,
- 2:08mais sans forcément comprendre ce que ça implique de faire des tests,
- 2:12sachant qu'il y a différents tests,
- 2:15même les différents types de développement.
- 2:17Bon,
- 2:17là,
- 2:18on n'ira pas.
- 2:18pas beaucoup dessus.
- 2:20On a essayé de condenser pour donner un vernis et une première couche de vocabulaire et savoir ce que ça veut dire quand une application est en prod,
- 2:32le côté maintenance,
- 2:34vraiment toutes les grandes étapes de développement.
- 2:37On est dans de la vulgarisation,
- 2:40on sait que c'est différent plus ou moins dans chaque boîte,
- 2:46mais là,
- 2:46c'est des grandes étapes.
- 2:47dans la théorie et a priori,
- 2:51on passe par celle-là.
- 2:52Oui,
- 2:53on va effectivement,
- 2:54on va revenir vraiment sur les principes et que vous soyez exposé en fait déjà ou pas au jargon et à certains mots qu'on emploiera.
- 3:02L'objectif là justement,
- 3:03c'est que ce soit clair pour tout le monde.
- 3:05Parce que bien souvent,
- 3:07quand on croise des gens dans les boîtes,
- 3:09même si votre entreprise est un éditeur de logiciels et qu'elle va le mettre à disposition de clients pour une fonction Voilà.
- 3:17pour un usage spécifique ou des usages spécifiques,
- 3:20au sein d'une entreprise,
- 3:21il est quand même assez fréquent de voir que les gens ne se rendent pas forcément compte de ce qui se passe dans les autres services et du rôle de chacun et du rôle de chaque équipe au niveau d'un produit,
- 3:31au niveau d'un logiciel.
- 3:33Donc on n'ira pas justement dans le détail de tout,
- 3:35comme disait Lulu,
- 3:36puisque en fait,
- 3:36en fonction de la taille de l'entreprise,
- 3:38déjà,
- 3:38ça va impacter différemment et avoir des...
- 3:43comment dire...
- 3:43des dépendances et des sujets plus ou moins vastes et des implications techniques plus ou moins vastes.
- 3:48On ne va pas revenir sur tout ça parce que ce serait infini,
- 3:54mais bien vous donner les clés de compréhension de ce qu'est un logiciel,
- 3:59vraiment de bout en bout,
- 4:00en tout cas sur toutes les phases principales et importantes.
- 4:03Ça dépend du type de logiciel aussi qui va être développé.
- 4:08Il y a autant de spécificités presque de logiciels et d'équipes.
- 4:13C'est des grandes phases aussi pour savoir ce que ça implique parce qu'on a l'impression qu'avec l'IA,
- 4:18tout est simple et on peut tout aussi bien se lancer soi-même dans le développement ou passer par quelqu'un qui développera.
- 4:25Et je pense que c'est important d'avoir ce vocabulaire qu'on soit potentiellement client ou une personne qui va se dire « bon,
- 4:34je peux faire un logiciel maintenant juste en comptant » .
- 4:38C'est bien de savoir tout ce que ça implique.
- 4:41Parce que typiquement quand vous avez un produit dans les mains,
- 4:44un logiciel dans les mains,
- 4:45il n'y a pas juste eu une étape où vous avez dit je veux tel truc,
- 4:50je veux un programme qui me fasse ces trois fonctions et quatre boutons,
- 4:55et basta,
- 4:58il y a tout un chemin à parcourir pour arriver à deux.
- 5:02du début à la fin.
- 5:03Et le début de ce chemin,
- 5:05en fait,
- 5:05il va passer par ce qu'on appelle le recueil des besoins.
- 5:08On l'avait déjà évoqué la semaine dernière,
- 5:10un petit peu,
- 5:10à travers la compréhension des besoins pour notre cas d'usage qui était le portail.
- 5:14On s'est dit,
- 5:15ben voilà,
- 5:15nous,
- 5:16aujourd'hui,
- 5:16on a des infos éclatées dans plein d'outils,
- 5:19on a besoin de tout centraliser,
- 5:20et que ça nous aide à faire un épisode de tout en bout.
- 5:24Et pour ce faire,
- 5:25ben voilà,
- 5:25que ce soit sur un usage comme le nôtre ou sur n'importe quel usage,
- 5:27vous allez avoir besoin de comprendre et...
- 5:31d'interagir et d'aller chercher les informations pour ce fameux recueil de besoins.
- 5:35Est-ce que tu peux nous l'expliquer un peu,
- 5:37Lulu,
- 5:37sur les différentes approches qu'il peut y avoir,
- 5:39justement ?
- 5:40Oui,
- 5:41et juste aussi,
- 5:42on en avait parlé dans l'épisode sur l'Igafrugal,
- 5:46où déjà de bien définir,
- 5:48savoir si ce qu'on veut développer n'a pas déjà une solution,
- 5:51de bien répondre à un problème,
- 5:54parce que si on se lance tout de suite dans le développement du logiciel,
- 5:57on peut le faire de la meilleure manière possible,
- 5:59s'il ne répond pas.
- 6:00à un problème ou à une douleur,
- 6:03il ne va pas forcément servir et ce sera toutes les étapes derrière qui vont juste partir à la poubelle où le logiciel ne sera pas utilisé.
- 6:14Et c'est important,
- 6:18déjà pour recueillir du besoin,
- 6:22et il faut aller chercher du concret,
- 6:23donc en général,
- 6:24ça passe par des phases de discussion avec des vrais gens qui,
- 6:28idéalement...
- 6:29ont ces problèmes au quotidien,
- 6:32ou des frictions,
- 6:33ou ils connaissent un peu leur process.
- 6:38Alors là,
- 6:38c'est peut-être plus dans un cas de...
- 6:42Comment dire ?
- 6:43Pas que d'outils internes,
- 6:44parce qu'après,
- 6:45je pense que c'est encore différent en startup,
- 6:47quand tu développes un produit.
- 6:49Toi,
- 6:50tu connais peut-être un peu plus du côté là,
- 6:52mais on va avoir des entretiens,
- 6:54on va les observer,
- 6:55étudier l'existant,
- 6:56que ça soit un logiciel déjà existant.
- 6:59ou savoir comment les gens travaillent.
- 7:03Et nous,
- 7:04pour mettre en parallèle,
- 7:05c'était un peu toute notre phase de bricolage,
- 7:06savoir par où passer l'information et qu'on ait un peu une idée des flux.
- 7:10Je ne sais pas si toi,
- 7:12peut-être par rapport à ton expérience...
- 7:14Alors,
- 7:15déjà,
- 7:16effectivement,
- 7:18normalement,
- 7:19le besoin d'une application,
- 7:20le besoin d'un logiciel,
- 7:22il l'est habituellement et théoriquement,
- 7:24il émerge tout seul.
- 7:26Il va émerger tout seul d'un problème que...
- 7:28Quelqu'un dans son entourage va rencontrer,
- 7:31et dans son entourage que ce soit perso ou pro,
- 7:33mais disons qu'on est dans un contexte d'entreprise,
- 7:35donc ça va être des collègues qui vont commencer à se plaindre d'avoir besoin de quelque chose pour arriver à leur fin.
- 7:42Pour produire un document,
- 7:43par exemple,
- 7:43de travail,
- 7:44ils n'ont pas les informations qu'il faut,
- 7:46ou alors ces informations,
- 7:48ils sont obligés,
- 7:48comme nous,
- 7:49d'aller les chercher dans 15 endroits différents,
- 7:51ou alors ils n'ont techniquement rien qui leur permette de produire le livrable dont ils ont besoin,
- 7:56que ce soit un document,
- 7:56que ce soit un PDF,
- 7:57que ce soit un...
- 7:59pas importe le livrable final,
- 8:02quelque part,
- 8:03le besoin,
- 8:03il part de là.
- 8:04Et donc ça,
- 8:05c'est une approche de recueillir tout simplement ce qui a été constaté dans une boîte.
- 8:11Donc soit parce que la solution n'existe pas,
- 8:13soit parce que la solution,
- 8:14aujourd'hui,
- 8:15elle a été bricolée.
- 8:16C'est pour ça qu'on a beaucoup de gens qui utilisent du Excel et qui le détournent ou qui utilisent d'autres outils qu'ils ont à disposition dans l'entreprise et qui vont gruger un petit peu comme ils peuvent dans les différents bouts.
- 8:28pour les tordre au mieux et arriver à leur fin.
- 8:32Parce qu'à partir du moment où ils n'ont pas l'outil adapté,
- 8:35il faut quand même réussir à bosser.
- 8:38Et ils vont employer un petit peu tous les moyens à leur disposition pour y arriver.
- 8:43Et après,
- 8:43il y a le contexte d'éditeurs de logiciels ou de startups,
- 8:46peut-être plus propres aux startups ou aux boîtes qui vont démarrer,
- 8:49qui vont identifier un besoin qui n'est pas encore couvert par le marché,
- 8:55soit qui est...
- 8:56partiellement couvert par le marché ou pas de la bonne manière ou alors,
- 8:59parce qu'en fait la plupart des besoins dans les boîtes ils sont là depuis très longtemps,
- 9:02c'est juste la manière d'y répondre qui va être différente et un point de vue,
- 9:06un angle,
- 9:07une façon de le faire,
- 9:08une technologie nouvelle,
- 9:10une interface plus simple enfin voilà,
- 9:11il y a plein de choses pour l'amener,
- 9:14mais qui va être de repenser le problème d'une manière différente.
- 9:17Si on prend des gros outils,
- 9:18pour essayer d'aller dans un peu plus de concret,
- 9:20des suites logicielles comme
- 9:22Word.
- 9:24ont apporté de la bureautique pendant très longtemps à travers le classique éditeur de texte,
- 9:30le tableur et le PowerPoint,
- 9:34l'éditeur de diaporama.
- 9:36Google a un peu renversé tout ça quand il a apporté le collaboratif à l'époque de Google Drive et de la suite Google.
- 9:43Donc d'un coup,
- 9:44on s'est rendu compte qu'on n'avait plus besoin d'installer ces programmes-là sur son ordinateur et que chacun ait sa licence et tout ça pour travailler.
- 9:50Mais on pouvait passer,
- 9:51même s'il y avait aussi un système de licence.
- 9:53mais on pouvait passer directement par des outils en ligne,
- 9:56via internet,
- 9:57sans avoir à rien installer,
- 9:59et quand même avoir du collaboratif où tout le monde travaillait en temps réel sur le même document,
- 10:02on voyait les gens interagir.
- 10:04Et voilà,
- 10:05ça a été une nouvelle façon déjà d'appréhender la suite bureautique avec un aspect neuf.
- 10:10Et
- 10:12Notion, prononcez-le comme vous voulez,
- 10:15l'a apporté encore d'une manière différente plus tard,
- 10:17avec cette idée de partir d'une page blanche,
- 10:22d'avoir un header qui soit beaucoup plus simple qu'un Word,
- 10:25et en même temps d'intégrer dedans des petites bases de données qui ressemblent à des tableaux,
- 10:29donc c'est assez familier pour qu'on les prenne en main.
- 10:32mais où on va être sur des bases de données relationnelles,
- 10:34et du coup chaque tableau,
- 10:36chaque colonne ne sera pas un simple,
- 10:39ne sera pas que du chiffre,
- 10:41sera moins rigide et mieux pensé qu'un Excel,
- 10:45ce ne sont pas les mêmes finalités.
- 10:46Mais vous voyez qu'à travers ces trois exemples,
- 10:49on a trois visions différentes d'une suite bureautique,
- 10:53et qui ont évolué forcément à travers les technologies,
- 10:56et les phases d'évolution,
- 10:57et la prise en main aussi des gens.
- 10:59Peut-être qu'un Notion à l'époque de Microsoft Office n'aurait pas du tout fonctionné parce qu'il aurait été trop avant-gardiste.
- 11:04Il y a aussi toute une logique quand même de répondre à un besoin,
- 11:07mais d'une manière que les gens sont aussi en mesure de s'en saisir et de le prendre en main.
- 11:12D'ailleurs,
- 11:13les premières versions de Notion n'étaient pas bonnes en termes d'expérience utilisateur et ont dû être repensées.
- 11:18Donc généralement,
- 11:19quand vous avez un programme aussi dans les mains,
- 11:21ne vous dites jamais qu'il est arrivé comme ça,
- 11:23tel quel déjà prêt.
- 11:25Il est passé par plein de phases en amont.
- 11:27Au début,
- 11:28c'était probablement une version brouillon,
- 11:30un peu éclatée,
- 11:31que personne ne comprend,
- 11:32avant qu'on identifie ce qui va et ce qui ne va pas dedans,
- 11:35pour que ça arrive à quelque chose de propre et d'agréable à utiliser.
- 11:39Et voilà.
- 11:41Tout ça pour en revenir aux besoins,
- 11:42c'est que ça part justement de quelque chose qui est concret,
- 11:46et qu'on va pouvoir,
- 11:47comme disait Lulu,
- 11:48le peaufiner et mieux l'interpréter,
- 11:51le comprendre,
- 11:52à travers des discussions,
- 11:53les fameuses discussions qu'on appelle avec les métiers.
- 11:56Donc là,
- 11:56ça peut prendre des formes d'atelier métier,
- 11:58d'entretien métier.
- 11:59Le but,
- 12:00c'est de mettre des gens dans la même pièce ou d'interagir et de discuter directement avec des responsables qui font ce boulot au quotidien et qui sont les premiers concernés.
- 12:09Ça ou l'étude de marché aussi ?
- 12:14Si le produit est destiné pas forcément à une entreprise,
- 12:18mais plus à des utilisateurs lambda,
- 12:21on peut...
- 12:22Oui,
- 12:23mais est-ce que...
- 12:23Je ne sais pas si on les appellera des métiers,
- 12:25les gens,
- 12:26si c'est par exemple du SaaS.
- 12:28Oui,
- 12:28ça dépend,
- 12:29effectivement.
- 12:29Si tu t'adresses à du particulier ou à de l'entreprise,
- 12:31mais en tout cas,
- 12:32voilà.
- 12:33Il faut discuter avec des gens.
- 12:35C'est ça.
- 12:35À un moment ou à un autre,
- 12:36il faut parler avec des gens qui vont avoir besoin,
- 12:39enfin,
- 12:40celles et ceux pour qui vous voulez créer le produit et répondre aux besoins.
- 12:45Il n'y a pas de meilleur moyen de comprendre leurs problèmes qu'en parlant avec eux.
- 12:50Ou après,
- 12:50il y a des phases d'observation aussi qui peuvent être faites.
- 12:53Donc,
- 12:53typiquement...
- 12:53dans des contextes d'entreprise,
- 12:55d'aller voir un peu comment les gens bossent au quotidien et de se rendre compte qu'ils font du Excel,
- 12:58qu'ils font de tels outils bricolés.
- 13:01Et c'est là qu'on va voir encore davantage les petites failles et comment ils y auront répondu dans l'immédiat et se dire que c'est des pistes de réflexion,
- 13:10de se dire,
- 13:10en fait,
- 13:10il a pensé à sa solution de telle manière,
- 13:13ce qui pourrait sembler complètement pas efficient quand on le voit de l'extérieur,
- 13:17mais du coup,
- 13:17qui va donner des indices sur la manière dont les gens bossent et pensent leur solution.
- 13:22Il va y avoir d'autres approches aussi.
- 13:23Donc,
- 13:24tu l'as dit,
- 13:24la partie études de marché,
- 13:25études de l'existant.
- 13:27Il y a déjà plein de concurrents,
- 13:28il y a plein d'outils.
- 13:29On va mettre les mains dedans.
- 13:31Et d'ailleurs,
- 13:32ça que ce soit dans toutes les logiques produits,
- 13:36et quand on pense des nouvelles fonctionnalités,
- 13:38quand on va améliorer un logiciel,
- 13:41ou le concevoir de toutes pièces aussi,
- 13:42on va forcément mettre les mains dans les logiciels qui se rapprochent le plus sur le marché et voir un peu ce qu'ils proposent et ce qu'ils ne proposent pas.
- 13:50En fait,
- 13:50c'est aussi un des points de compréhension du besoin,
- 13:54de se dire que la plupart des acteurs ont mis en avant tel sujet et telle manière d'y répondre,
- 14:00parce qu'en fait,
- 14:00ils s'adressent,
- 14:01je viens de bêtiser,
- 14:02tous et toutes aux PME et aux grosses boîtes.
- 14:04Mais en fait,
- 14:05ce même problème existe chez les TPE,
- 14:07et personne ne l'a traité aujourd'hui,
- 14:08parce que c'était peut-être trop galère à faire,
- 14:11ou trop compliqué,
- 14:11ou machin,
- 14:12alors qu'il y a un autre angle,
- 14:14alors qu'il y a une autre manière d'envisager le problème.
- 14:17Et ce n'est pas parce qu'on a...
- 14:19un problème,
- 14:21nous,
- 14:22que ça veut dire qu'il faut forcément faire un produit,
- 14:24il faut le confronter,
- 14:25c'est pas forcément une phase agréable parce qu'on va se prendre des retours,
- 14:30ça va potentiellement modifier l'idée qu'on pouvait avoir de notre solution parce qu'on a souvent tendance à penser directement aux solutions de comment notre application,
- 14:38elle,
- 14:38pourra faire,
- 14:39machin,
- 14:39et que au final,
- 14:41des fois,
- 14:41la solution,
- 14:42elle pourrait être beaucoup plus simple,
- 14:44moins waouh,
- 14:45enfin...
- 14:47Et juste d'aller confronter et de se rendre compte que peut-être il y a déjà des solutions qui existent et on peut être tout seul à avoir ce problème.
- 14:55Alors c'est assez rare,
- 14:56mais ça ne vaut pas le coup de sortir tout de suite le développement,
- 15:00de partir à l'étape d'après.
- 15:03C'est presque l'étape-là qui est...
- 15:06la plus importante,
- 15:08alors les autres le sont aussi,
- 15:09mais toutes les autres,
- 15:10aussi bien qu'elles seront exécutées,
- 15:14si la base n'est pas solide,
- 15:15parce que si on définit mal un besoin et qu'on se rend compte finalement qu'il y a telle fonctionnalité,
- 15:20enfin,
- 15:21pas fonctionnelle,
- 15:21parce qu'il y a aussi le côté fonctionnel,
- 15:23non fonctionnel qu'il faut séparer,
- 15:26mais si on se rend compte que finalement il faut qu'on ajuste quelque chose,
- 15:29c'est beaucoup plus facile au stade de découverte et de...
- 15:35pour définir le besoin et les problèmes,
- 15:38qu'au moment où tout est développé,
- 15:39il y a des dépendances,
- 15:42il faut changer du code et potentiellement des choses qui vont coûter très cher.
- 15:46C'est un peu comme passer par un architecte avant de se lancer dans une construction,
- 15:52une grosse rénovation.
- 15:53Il va faire des plans.
- 15:54Peut-être que les plans ne seront pas suivis au millimètre près,
- 15:57mais ça donne déjà une idée de l'ordre d'exécution,
- 16:00de se projeter aussi.
- 16:01Et que si on se dit,
- 16:02ah bah tiens,
- 16:03finalement,
- 16:04je vois...
- 16:05plus ma cloison comme ça,
- 16:06la cloison,
- 16:07on va juste la déplacer un peu dans un logiciel où on gomme et puis on refait notre cloison.
- 16:13Alors qu'une fois que c'est monté et qu'on est là et que tout est fait,
- 16:16on se dit,
- 16:17c'est vrai que ça aurait été bien un peu différemment.
- 16:20C'est pareil dans un logiciel,
- 16:21il ne suffira pas non plus de juste prompter et dire,
- 16:25finalement,
- 16:26mon interface,
- 16:27je la verrai complètement différente qui va faire aussi modifier complètement le back-end.
- 16:32Voilà,
- 16:33c'est important.
- 16:34Oui,
- 16:35mais j'aime bien la métaphore,
- 16:36parce qu'effectivement,
- 16:36c'est plus facile de pincer les murs à l'avance que de les monter une fois,
- 16:40se rendre compte que la moitié ne va pas,
- 16:41les casser et les refaire différemment.
- 16:44Surtout quand tu vois toutes les couches qui se rajoutent par-dessus,
- 16:47ou peut-être elle,
- 16:48j'ai fait ta trichoterie,
- 16:50ou c'est comme par exemple de se dire,
- 16:53tiens,
- 16:53dans cette pièce,
- 16:54je veux mes prises ici,
- 16:55Si on ne se dit pas où est-ce qu'on va penser nos meubles,
- 16:58alors ça demande de se projeter pas mal et ce n'est pas ce qu'il y a de plus confortable,
- 17:03ça demande pas mal d'énergie.
- 17:05Mais il faut savoir qu'il y aura toujours des choses qui vont se passer pas comme prévu.
- 17:09Donc tout ce qu'on peut prévoir au départ,
- 17:12ça sera de l'argent et du temps gagné pour après.
- 17:17Effectivement.
- 17:18Et à garder en tête qu'en fait,
- 17:21plus tôt vous allez,
- 17:23plus vous avez d'infos au départ,
- 17:26plus les étapes d'après vont être fluides et pertinentes,
- 17:30plus vous bâclez ou vous...
- 17:33Prenez pas le temps de réfléchir vraiment aux besoins initiaux et comment on peut y répondre de la manière la plus simple possible.
- 17:40Comme disait Lulu,
- 17:40plus derrière,
- 17:41vous risquez d'avoir un espèce d'effet qui va se décupler en termes d'efforts,
- 17:46en termes de temps,
- 17:47en termes d'impact et où chaque chose à reprendre sera beaucoup plus galère à faire derrière.
- 17:54En soi,
- 17:54oui,
- 17:54une prise,
- 17:55on peut en rajouter un endroit,
- 17:56mais ça veut dire refaire une saignée potentiellement dans le mur qui est tout propre,
- 18:01qui est tout beau avec...
- 18:03le placo qui est déjà mis,
- 18:04la plomberie,
- 18:05mince,
- 18:06on s'en a saigné,
- 18:06on tape dans un tuyau.
- 18:09Autant imaginer,
- 18:10essayer d'imaginer de se projeter dès le départ,
- 18:12quitte à passer un peu plus de temps.
- 18:14C'est vrai que les personnes techniques ou même les clients ont vite envie de voir quelque chose et d'attaquer le développement,
- 18:22parce que c'est là que le projet commence vraiment.
- 18:25Et ça peut paraître un peu long,
- 18:27cette phase de...
- 18:29Demandez de comprendre les process,
- 18:31l'entreprise,
- 18:31parce qu'aussi,
- 18:32il y a un moment où il faudra arrêter et de se dire,
- 18:35OK,
- 18:36notre produit devra ressembler à ça.
- 18:39Et de bien le penser pour que quand même,
- 18:41s'il y a des choses qui doivent se rajouter,
- 18:44ça puisse se rajouter après dans une deuxième version.
- 18:47Mais on ne peut pas non plus juste rajouter au fil de l'eau.
- 18:50Il faut quand même imaginer un produit fini et s'y tenir.
- 18:53Là,
- 18:55on est en train de glisser déjà dans la phase d'après,
- 18:57qui est l'étape de conception.
- 18:59On va commencer à baliser un petit peu effectivement cette notion de version et des choses qu'on vous a expliquées la dernière fois.
- 19:07Juste pour terminer sur cette étape recueil de besoins,
- 19:10justement,
- 19:10tu l'as évoqué rapidement,
- 19:13qu'on doit distinguer justement ce qui est du fonctionnel du non fonctionnel.
- 19:18Est-ce que tu peux nous clarifier ça un peu ?
- 19:20Le fonctionnel,
- 19:22par définition,
- 19:23c'est vraiment ce que le système va faire.
- 19:26Et le non fonctionnel,
- 19:28c'est comment il va le faire.
- 19:29Et ça,
- 19:29on en avait parlé justement dans l'épisode précédent.
- 19:32Toute la phase de
- 19:33PRD et les user stories,
- 19:36ça va vraiment être dans le fonctionnel.
- 19:39Et le non fonctionnel arrive seulement après.
- 19:42Ouais.
- 19:44En fait,
- 19:44disons,
- 19:45quand on va réfléchir à nos besoins,
- 19:49et prendre les infos et discuter avec les gens,
- 19:51etc.,
- 19:51on va d'abord se concentrer sur le fonctionnel.
- 19:53Donc en gros,
- 19:54qu'est-ce que...
- 19:55le logiciel doit faire pour répondre à leurs besoins et le non fonctionnel ce sera l'envers du décor et la partie un peu plus technique un peu plus galère de se dire ok
- 20:05Ils ont besoin d'un logiciel qui leur permet de cliquer et de faire telle et telle action.
- 20:10Mais en fait,
- 20:11est-ce qu'ils en ont besoin sur leur ordinateur en ligne,
- 20:15sur leur tablette,
- 20:15sur leur téléphone ?
- 20:16Est-ce qu'ils peuvent se passer du réseau ou pas ?
- 20:21Des points comme ça qui vont déterminer après la partie technique qui va être un peu tous les à côté,
- 20:24sur l'architecture,
- 20:25sur les langages,
- 20:26sur l'infrastructure,
- 20:27enfin un certain nombre de choses.
- 20:29Là où le fonctionnel,
- 20:30c'est vraiment dans le quotidien de la personne.
- 20:32qu'est-ce qui doit se faire
- 20:34avoir à disposition pour que ça marche et que ça...
- 20:37Qu'est-ce qu'il y a avant et qu'est-ce qu'il y a après l'utilisation,
- 20:40mais sans passer par le comment on va faire pour transformer l'avant et l'après.
- 20:47C'est ça.
- 20:48Et donc,
- 20:49tu l'as dit rapidement,
- 20:50l'étape d'après,
- 20:51ça va être la partie conception.
- 20:54Et là-dessus,
- 20:55n'hésitez pas à revenir,
- 20:57on vous renvoie vers notre épisode précédent et on va passer un peu rapidement sur ces points-là.
- 21:03Mais c'est là en fait où on va s'attaquer au fameux PRD,
- 21:06au User Story.
- 21:07Donc le PRD en gros c'est le cahier des charges fonctionnel.
- 21:09Donc si vous avez bien fait votre affornement et pris toutes les infos,
- 21:12vous allez pouvoir le traduire en une espèce de cahier des charges qui va décrire les parcours utilisateurs qui sont souhaités,
- 21:19qui va permettre aussi de décrire justement ce qu'on appelle les User Story.
- 21:23Donc de dire chaque profil dans mon application,
- 21:28que ce soit un administrateur,
- 21:29que ce soit un utilisateur,
- 21:30que ce soit un...
- 21:32super manager,
- 21:32etc.,
- 21:33chaque niveau de profil doit pouvoir faire des choses différentes dans le programme et on va lister en fait chaque chose qu'il doit faire dans le programme.
- 21:42C'est-à-dire,
- 21:43il faut qu'il puisse valider un formulaire,
- 21:45il faut qu'il puisse rajouter une nouvelle entrée de tel élément,
- 21:49il faut qu'il puisse imprimer tel document,
- 21:51il faut qu'il puisse télécharger telle chose,
- 21:54il faut qu'il puisse avoir telle information à disposition,
- 21:58et ainsi de suite.
- 22:01Encore une fois,
- 22:01on parle un petit peu plus de ces deux points dans l'épisode précédent,
- 22:04on vous y renvoie.
- 22:05Là,
- 22:05l'idée,
- 22:05c'est que vous ayez vraiment juste la logique de se dire à chaque fois,
- 22:07on passe par ces points-là.
- 22:09Et c'est ça qui va commencer à nous permettre de déterminer les différents briques,
- 22:16de déterminer les différents éléments techniques dont on va avoir besoin pour aller plus loin et avant de se lancer vraiment dans le développement.
- 22:24C'est ça,
- 22:24c'est vraiment,
- 22:25on va traduire les besoins en architecture.
- 22:27Enfin voilà,
- 22:28quelles briques ?
- 22:29comment ces briques vont communiquer entre elles,
- 22:32où vont être les données.
- 22:35C'est là où il y a un concept de cohésion forte-couplage faible,
- 22:45où chaque brique va faire une seule chose,
- 22:48et elle va dépendre le moins possible des autres,
- 22:50mais après il va y avoir ce travail de les mettre ensemble pour qu'elles fonctionnent bien.
- 22:55En fait,
- 22:56la partie...
- 22:57Plage fort,
- 22:58par exemple,
- 22:58pour donner une image,
- 23:00c'est comme si tout est un peu soudé et après,
- 23:01une fois que c'est mis en place et qu'on veut enlever un élément ou modifier un élément,
- 23:05ça va forcément impacter ce qu'il y a autour.
- 23:10Mais le coup plage faible,
- 23:12ça va être plutôt on va se mettre un rôle par brique et ça sera plus simple de les faire.
- 23:18C'est un peu comme ça où ça fonctionne dans certaines boîtes en feature.
- 23:22Et après,
- 23:23le but,
- 23:24c'est de faire de l'assemblage.
- 23:27Oui,
- 23:27je suis en train de réfléchir à justement si j'avais...
- 23:29parce que ça me fait toujours penser aux bases de données,
- 23:31aux bases de données relationnelles.
- 23:33Oui.
- 23:34Mais j'essaie de retrouver un exemple qui soit facile à vous donner.
- 23:39Mais en fait,
- 23:40l'idée de ce système de briques,
- 23:43c'est comme dans un système d'informations,
- 23:44justement une base de données où vous allez ranger les informations.
- 23:48C'est de se dire que chaque élément,
- 23:50dans la mesure du possible,
- 23:52doit être indépendant,
- 23:53quitte à ce qu'il soit relié les uns les autres.
- 23:55mais pour que quand vous allez toucher un point,
- 23:58vous n'ayez pas à toucher à tout le reste.
- 24:02Surtout si cet élément est amené à bouger,
- 24:05ou qu'on va devoir y tirer dessus.
- 24:08Si on sait dès le départ qu'il ne va pas rester fixe tel quel,
- 24:11il faut autant que possible faire en sorte qu'on puisse le modifier après coup,
- 24:15sans impacter toutes les autres fonctionnalités.
- 24:19Oui,
- 24:20et je donne un exemple un peu cassé avec l'adresse.
- 24:25Mais ici on peut reprendre l'adresse.
- 24:27En fait,
- 24:27par exemple,
- 24:28votre adresse,
- 24:28ce n'est pas un seul bloc.
- 24:31Ça va être plusieurs éléments et si vous allez justement sur n'importe quel formulaire de l'administration et que vous avez besoin de remplir des papiers ou de vous inscrire je ne sais où,
- 24:39à chaque fois vous allez voir que vous allez dissocier votre code postal de la ville,
- 24:44vous allez dissocier le numéro de votre rue,
- 24:48de votre avenue,
- 24:49le type de rue ou d'avenue.
- 24:50Vous allez voir ensuite l'intitulé de votre avenue.
- 24:53Si vous êtes sur un immeuble,
- 24:54vous allez voir aussi des étages.
- 24:56Vous avez vu qu'en fait,
- 24:57toutes ces informations sont à chaque fois séparées.
- 25:00Puisque ça va permettre de mettre à jour les différentes informations et les différentes briques qu'il y a derrière de manière indépendante sans avoir à...
- 25:07changer toute votre adresse à chaque fois.
- 25:10Désolé,
- 25:10je ne sais pas si l'exemple est très parlant.
- 25:11Enfin,
- 25:12visuellement aussi,
- 25:12vous voyez un peu le découpage.
- 25:14Et en fait,
- 25:14il faut vous dire que dans une base de données,
- 25:16ça va être le même principe.
- 25:17Et après,
- 25:18quand vous allez mettre en place des fonctionnalités dans un logiciel,
- 25:21ça va être un petit peu la même logique.
- 25:23C'est-à-dire qu'on va essayer d'avoir le plus de...
- 25:28Comment dire ?
- 25:30On va essayer de ne pas réinventer la roue à chaque fois.
- 25:31Ah,
- 25:31nid de l'huile.
- 25:33Globalement,
- 25:33en fait,
- 25:33c'est ça.
- 25:34C'est de se dire qu'aujourd'hui,
- 25:35par exemple,
- 25:36j'arrive sur une page web où vous avez différents boutons,
- 25:41vous avez plusieurs,
- 25:43je ne sais pas,
- 25:44vous avez deux tableaux,
- 25:45mettons,
- 25:45vous avez plusieurs informations au même endroit.
- 25:48Tout ça,
- 25:48si c'est un seul,
- 25:50une seule entité,
- 25:52un seul bloc,
- 25:52un seul élément,
- 25:53et que vous avez besoin de changer juste la couleur de votre bouton,
- 25:57en fait,
- 25:57potentiellement,
- 25:58la couleur de votre bouton est par exemple le lien qui va derrière.
- 26:02si tout ça est un seul élément vous avez besoin de retoucher l'entièreté et donc de ça a plein d'applications techniques derrière qui rendent le truc galère alors que si le bouton il est isolé et peut-être même encore mieux d'ailleurs on va prendre le bouton mais d'une manière différente vous
- 26:17avez un bouton validé qui est partout dans votre application votre site internet si vous avez un bouton justement qui est indépendant et qui est mutualisé vous allez réutiliser un peu partout si vous changez la couleur à un endroit ça va la changer partout si votre bouton
- 26:30il est intégré dans d'autres blocs,
- 26:32dans d'autres éléments,
- 26:33et qu'il n'est pas indépendant,
- 26:35vous allez devoir aller sur chaque page de votre site Internet pour changer la couleur de votre bouton.
- 26:40Et c'est un peu tout comme ça,
- 26:41globalement.
- 26:42Là,
- 26:42c'est bien visuel,
- 26:44mais c'est là où on dit qu'il ne faut pas le coder en dur,
- 26:48et qu'il y a un peu le côté où on va mettre en place des variables qui permettent de changer tout d'un coup.
- 26:56Par exemple,
- 26:56une charte graphique qui est peut-être amenée à bouger.
- 26:59C'est bien de la dissocier de tout le reste et de se dire,
- 27:03« Bon,
- 27:04bah tiens,
- 27:04telle couleur,
- 27:05si je la modifie ici,
- 27:06ça va la modifier partout dans mon appli,
- 27:11dans mon site. »
- 27:11Parce que sinon,
- 27:12aller remodifier tout à la main,
- 27:15c'est impossible.
- 27:16Ça,
- 27:17c'est aussi quelque chose qu'il faut garder en tête et à laquelle il faut faire attention.
- 27:20Parce que ça peut coûter cher.
- 27:22Sur le coup,
- 27:22on se dit,
- 27:22« Ah ouais,
- 27:23mon bouton,
- 27:23il est bien de cette couleur-là,
- 27:24c'est bien,
- 27:25la police,
- 27:25elle est bien. »
- 27:26Et arrivé à la fin,
- 27:27on a plein,
- 27:28plein de boutons et on se dit,
- 27:29« Ah,
- 27:29mais c'est vrai qu'un tout petit peu plus gros,
- 27:31ça serait pratique. »
- 27:32Oui,
- 27:33s'il faut aller le faire 20 fois ou 30 fois sur chaque bout d'eau.
- 27:38Oui,
- 27:39par exemple,
- 27:39pour reprendre un exemple que nous,
- 27:40on a eu sur notre portail à nous en interne,
- 27:44c'est qu'on a plusieurs endroits dans notre portail qui nous permettent de rédiger du texte.
- 27:48Puisqu'il y a un endroit où on va préparer la trame de l'épisode,
- 27:51on va écrire dedans.
- 27:51Il y a des endroits où on va rédiger le texte qui va servir à la diffusion de ce podcast et qui sera présent sur un groupe.
- 27:57qu'on va renvoyer sur Ausha et qui arrivera dans votre Spotify,
- 28:00dans votre YouTube,
- 28:00etc.
- 28:01On a un autre endroit où on va pouvoir préparer le texte,
- 28:03on va le mettre sur LinkedIn,
- 28:04et ainsi de suite.
- 28:05On a plein d'endroits comme ça.
- 28:07Et là,
- 28:07l'idée,
- 28:07plutôt que d'avoir là aussi plein de briques du coup indépendantes,
- 28:13mais chacun sur leur interface,
- 28:14on va dire ça comme ça,
- 28:16on a pensé la mutualisation,
- 28:18et donc j'ai un éditeur qui va être réutilisé un petit peu partout et qui va partager des fonctionnalités.
- 28:23Et dans des cas particuliers,
- 28:25lui soit il va être
- 28:26il y aura une déclinaison différente de lui,
- 28:29soit ce sera complètement un autre éditeur,
- 28:32si jamais vraiment on est sur un cas très spécifique et très particulier.
- 28:35Mais on va toujours penser,
- 28:36voilà,
- 28:37tout ce qu'on fait dans une application,
- 28:38dans les interfaces,
- 28:39on va le penser en système de briques,
- 28:40avec qu'est-ce qui est commun,
- 28:41qu'est-ce qui est réutilisable,
- 28:43qu'est-ce qui vaut mieux dès maintenant,
- 28:45penser pour être réutilisé un petit peu partout dans l'application,
- 28:48plutôt que de faire que des petits morceaux et de devoir repasser partout à chaque fois qu'il y a une modif,
- 28:53et du coup de faire des bêtises.
- 28:55Parce que là,
- 28:55c'est vrai qu'on est sur du visuel,
- 28:57mais si on a une application et qu'on développe,
- 29:00par exemple,
- 29:01une fonction qui va faire quelque chose,
- 29:02on ne va pas avoir plein de fois cette fonction différente.
- 29:06Parce que même après,
- 29:07en termes de performance,
- 29:08ce n'est pas ce qu'il y a de plus efficient non plus.
- 29:10Et là,
- 29:11ça peut se ressentir au-delà juste du visuel.
- 29:14Oui,
- 29:15c'est que concrètement,
- 29:16si vous avez
- 29:1610 pages dans votre outil de tous les jours et que vous avez 10 fois les mêmes choses,
- 29:22en fait,
- 29:22ça va ramer vachement plus que si vous l'aviez une fois.
- 29:25et que c'était la même chose qui était réutilisée un petit peu partout.
- 29:27Et c'est plus simple de le penser dès le départ que de se dire après coup,
- 29:30comment est-ce que j'optimise mon application ?
- 29:34Et là où le raccourci qui peut être fait souvent,
- 29:37enfin souvent,
- 29:38pas souvent,
- 29:38mais en tout cas selon les philosophies,
- 29:40selon les cas,
- 29:41ça peut être un mauvais réflexe,
- 29:43on va dire,
- 29:44de se dire bon,
- 29:44j'ai envie de sortir vite une nouvelle chose,
- 29:47une nouvelle fonctionnalité,
- 29:49de vouloir aller au plus court.
- 29:50Et souvent,
- 29:50le chemin le plus court,
- 29:51c'est d'aller pas penser en termes de mutier.
- 29:54de mutualisation et de réutilisation.
- 29:57et de faire juste la chose la plus simple possible.
- 30:03Mais du coup,
- 30:04ça a des implications derrière,
- 30:05parce qu'une fois qu'on va commencer à empiler des choses là-dessus,
- 30:09c'est d'autant plus dur.
- 30:10On en revient à l'exemple de tout à l'heure avec le coup de la maison.
- 30:13C'est que typiquement,
- 30:16si vous faites une canalisation un petit peu à l'arrache,
- 30:19et que le reste suit,
- 30:21vous allez commencer à mettre votre sol par-dessus.
- 30:24du coup vos meubles,
- 30:25votre tapis,
- 30:25vos machins et qu'après vous vous rendez compte qu'en fait il faut refaire toutes les canalisations parce que vous en avez pensé qu'une et qu'il en fallait trois,
- 30:31vous allez devoir littéralement tout virer et tout reprendre pour ensuite aller faire les différents chemins derrière.
- 30:37Alors ça n'impliquera pas de tout recasser mais en tout cas de tout bouger.
- 30:40Ou de faire du bricolage et de ne pas faire aussi bien que si ça avait été pensé dès le départ.
- 30:44Et aussi optimiser,
- 30:46voilà.
- 30:46Ça demande de prendre en compte l'existant,
- 30:48de ne pas tout enlever.
- 30:51Alors dans tous les cas,
- 30:52Enfin voilà.
- 30:53On ne peut pas tout prévoir,
- 30:56mais il faut quand même se poser.
- 31:01Là,
- 31:01juste pour passer aussi un peu à la partie d'après,
- 31:03parce qu'au final,
- 31:04on parle,
- 31:05on parle.
- 31:06Là,
- 31:06je pense que tu seras peut-être plus apte à en parler,
- 31:08tout ce qui est développement et versionnage.
- 31:10Parce que c'est vrai que maintenant,
- 31:11avec le développement assisté par IA,
- 31:13le vibe coding,
- 31:15on parle beaucoup de Git et GitHub sans forcément savoir ce que ça implique.
- 31:21comment ça fonctionne et pourquoi c'est utile aussi.
- 31:25Oui.
- 31:26Alors,
- 31:27on va reprendre dans l'ordre.
- 31:29Donc,
- 31:30jusque-là,
- 31:32d'accord,
- 31:33on a été parler avec des gens,
- 31:34on a trouvé un problème,
- 31:36on a identifié du coup qu'est-ce qui pourrait y répondre.
- 31:39À partir de là,
- 31:40on s'est posé pour réfléchir à de quoi on a besoin dans notre application pour répondre à ce problème et on a pensé un petit peu les interfaces et tout ça.
- 31:50Donc normalement arrivé à ce moment là,
- 31:51on a un petit peu tout sur papier ou sur numérique,
- 31:54on a une maquette,
- 31:55on a plein de cahiers de décharge,
- 31:56on a plein d'informations.
- 31:58On voit vraiment ce qu'on veut faire et on voit vraiment les interfaces,
- 32:03donc grosso modo ce qu'on veut vous mettre dans les mains pour que vous puissiez vous en servir.
- 32:08Maintenant,
- 32:09il va falloir s'attaquer au développement.
- 32:11Mais le développement,
- 32:13je vais prendre le cas d'une équipe avec plusieurs personnes pour que ce soit un peu plus prudent.
- 32:19si chacun...
- 32:20doit bosser.
- 32:21En mettant que vous avez trois développeurs et développeuses,
- 32:24ces trois personnes vont devoir travailler.
- 32:26Elles ne vont pas pouvoir bosser sur le même sujet en même temps.
- 32:29Puisque techniquement,
- 32:31en fait,
- 32:32ça ne va pas le faire.
- 32:34L'intercom de l'analogie d'un document partagé en ligne où on veut travailler tous sur le même paragraphe en écrivant,
- 32:42effaçant,
- 32:44c'est juste impossible.
- 32:46Oui,
- 32:46voilà,
- 32:46exactement.
- 32:47Ça ne marchera pas.
- 32:47Il faut se séparer,
- 32:48se dire dans ce document,
- 32:50On a trois parties,
- 32:51chacun va bosser sur une partie.
- 32:53Et voilà,
- 32:55ça va être le postulat de départ.
- 32:57Mais pour que ça puisse fonctionner,
- 32:59et que chacun puisse bosser de son côté sur sa partie,
- 33:02et qu'on puisse après tout réunifier en un seul document,
- 33:06il faut mettre en place un protocole,
- 33:08et on va mettre en place ce qu'on appelle un protocole qui permet de faire du versionnage,
- 33:13et un des plus utilisés aujourd'hui,
- 33:15c'est Git.
- 33:16Alors je ne vais pas rentrer dans l'historique maintenant,
- 33:18déjà parce que je ne l'ai plus trop en tête.
- 33:20mais en gros ce protocole va être très utilisé notamment par GitHub et GitLab qui sont deux des plus gros acteurs dont vous avez pu entendre parler,
- 33:30ou en tout cas voir le nom.
- 33:32Mais il y en a d'autres,
- 33:32il y a d'autres systèmes de versionning,
- 33:34certains qui s'appuient aussi sur Git mais qui ont une façon de le gérer différemment,
- 33:37d'autres qui n'utilisent pas Git et qui font encore autre chose.
- 33:41Mais dans tous les cas,
- 33:41le principe de Git c'est de se dire on a notre document final qu'on va appeler le main.
- 33:50qui va être vraiment notre...
- 33:52C'est la page commune,
- 33:54c'est la page que la personne va voir à la fin,
- 33:57que l'utilisateur va voir à la fin.
- 33:59Et c'est là que tout doit arriver.
- 34:01Mais on ne peut pas mettre à disposition et en lecture le brouillon.
- 34:05Parce que pendant que les gens bossent sur chaque partie,
- 34:07ce ne sont que des brouillons de chaque partie.
- 34:10Donc sur cette page,
- 34:11on va attendre que chacun ait terminé.
- 34:13Et pour faire ça,
- 34:14le protocole va permettre à chacun d'aller travailler sur ce qu'on appelle les branches.
- 34:20des branches.
- 34:21Vous n'êtes pas obligé d'utiliser des branches,
- 34:22mais quand vous êtes une équipe,
- 34:23normalement,
- 34:24c'est ce qui se fait.
- 34:25C'est que chacun travaille sur une branche.
- 34:27Et en fait,
- 34:28sur chaque branche,
- 34:30donc globalement,
- 34:31dites-vous qu'en fait,
- 34:31le document principal,
- 34:32pour l'instant,
- 34:33il a juste une introduction.
- 34:34Vous avez fait trois copies de ce document.
- 34:37Chaque personne travaille sur une partie différente de ce document.
- 34:40Et au fur et à mesure que chaque personne va avoir une partie ou un paragraphe qui est terminé,
- 34:45on va dire un paragraphe,
- 34:47c'est comme s'il appuyait sur enregistrer.
- 34:49Et à partir de là,
- 34:50ça va faire ce qu'on appelle un commit.
- 34:53Donc en gros,
- 34:54il va valider cette section-là,
- 34:57enfin voilà,
- 34:57ce paragraphe,
- 34:58il va le valider,
- 34:58il va dire OK.
- 35:00ça c'est bon,
- 35:01je considère qu'il est prêt,
- 35:03et même si j'ai besoin d'aller rajouter des choses plus tard au travail,
- 35:07mais en tout cas cette partie elle est enregistrée,
- 35:09elle est disponible,
- 35:10elle est visible sur ma branche,
- 35:12et du coup même les collègues s'ils viennent regarder ma partie,
- 35:14ils ne verront pas le deuxième paragraphe sur lequel je suis encore en train de bosser,
- 35:17et par contre le premier ils vont le voir.
- 35:19Et en fait chacun fait ça de son côté,
- 35:22et à partir de là,
- 35:23une fois que chacun fait tous ses commits,
- 35:26donc tous ses paragraphes et que les trois parties sont à peu près prêtes,
- 35:29Et voilà,
- 35:29ça peut être à des rythmes différents en fonction des personnes.
- 35:31Et puis de la charge aussi,
- 35:32parce que ça fait partie aussi des logiques de développement.
- 35:35C'est de se dire qu'en fait,
- 35:36tout le monde n'a pas forcément la charge,
- 35:38le même effort de travail sur une partie.
- 35:40Il y en a des plus courtes,
- 35:41il y en a des plus longues.
- 35:42Et chacun peut avoir ses spécialités aussi.
- 35:45Et voilà,
- 35:46qui vont avoir du coup des choses qui peuvent bloquer d'autres gens.
- 35:50Par exemple,
- 35:50la partie 3,
- 35:51peut-être que la personne va pouvoir faire les deux premiers paragraphes,
- 35:54mais pour le troisième,
- 35:54elle ne pourra pas le rédiger tant qu'elle n'aura pas les parties 1 et 2 qui sont terminées.
- 35:58Il peut y avoir comme ça des systèmes de dépendance.
- 36:01Dans l'idée,
- 36:02on va répartir en parallèle le travail de chacun.
- 36:05Une fois que les trois parties sont prêtes,
- 36:08ils vont faire ce qu'on appelle des pull requests.
- 36:12Le mot fait très peur,
- 36:13mais le concept est très simple.
- 36:15C'est de se dire,
- 36:16j'ai fini ma partie,
- 36:18je l'envoie à relire et à valider par les copains.
- 36:22Et en fait,
- 36:24cette partie-là n'arrivera pas dans le document principal tant que...
- 36:28les collègues devs n'auront pas relu.
- 36:31Ils vont venir,
- 36:32ils vont regarder.
- 36:33OK,
- 36:33en fait,
- 36:34tu as écrit ce paragraphe.
- 36:36OK,
- 36:36ça,
- 36:36c'est bien.
- 36:36Ah,
- 36:37là,
- 36:37il y a un petit souci.
- 36:39Du coup,
- 36:40on va le pointer en disant,
- 36:41en fait,
- 36:41cette partie-là,
- 36:42il faut un petit peu la remanier parce qu'elle ne me semble pas bonne.
- 36:47Il y a un truc qui ne va pas.
- 36:48Donc là,
- 36:49la personne qui a rédigé justement la partie,
- 36:51elle va venir,
- 36:52elle va faire la petite modif.
- 36:53Hop,
- 36:53elle va resoumettre à validation.
- 36:55Et donc là,
- 36:55on va du coup...
- 36:56Les collègues vont dire,
- 36:57ok,
- 36:57très bien,
- 36:58cette pull request,
- 37:00cette
- 37:01PR, si jamais on vous entendait parler de PR,
- 37:03c'est ça en fait.
- 37:06Là,
- 37:07je parle de paragraphe,
- 37:07mais dites-vous que c'est du code.
- 37:09Depuis tout à l'heure,
- 37:10je vulgarise comme ça avec l'exemple du document,
- 37:12mais à la place du texte,
- 37:14dites-vous que c'est du code.
- 37:16Et donc,
- 37:16une fois que la PR est prête,
- 37:18elle va être validée et elle va partir,
- 37:21justement,
- 37:21elle va fusionner avec la page principale,
- 37:25donc avec le main.
- 37:27Et ensuite,
- 37:27du coup,
- 37:27on va continuer comme ça.
- 37:28Chaque fois,
- 37:29les pull requests vont avoir plus ou moins de...
- 37:32Soit elles vont être validées directement,
- 37:33soit elles vont demander plusieurs allers-retours,
- 37:36plusieurs correctifs,
- 37:37mais ça va être cette logique-là.
- 37:38Et des fois,
- 37:38il peut y avoir aussi deux PR qui vont être en conflit.
- 37:42C'est-à-dire que,
- 37:44justement,
- 37:44chacun bossait sur une partie différente,
- 37:46partie 2 et partie 3,
- 37:48mais en fait,
- 37:49il y avait un paragraphe qui était commun entre les deux et que les deux personnes n'ont pas la même version du paragraphe.
- 37:55Il y a une phrase ou deux qui diffèrent.
- 37:57Et bien là,
- 37:57au moment de fusionner,
- 37:58il va falloir choisir avant de fusionner quelle version du paragraphe on garde,
- 38:04et laquelle en fait est la plus récente,
- 38:05la plus à jour,
- 38:06et la plus logique par rapport à l'ensemble du document.
- 38:09Puisque en même temps,
- 38:11comme je disais,
- 38:11on travaille en parallèle,
- 38:12donc il peut y avoir d'autres gens qui ont avancé davantage sur d'autres bouts,
- 38:15et qu'on n'avait pas forcément conscience à ce moment-là,
- 38:18et donc voilà,
- 38:18on fait une relecture.
- 38:20D'où l'importance de ces phases qu'on appelle des phases de review,
- 38:24vraiment,
- 38:25du PR,
- 38:26donc de relire.
- 38:27le document et la partie de document.
- 38:29Une fois que tout est prêt,
- 38:31à chaque fois,
- 38:32on va fusionner,
- 38:32on envoie dans le document principal et les pages s'ajoutent.
- 38:35Évidemment,
- 38:36vous l'aurez compris,
- 38:37cette page principale,
- 38:38ce document principal,
- 38:39c'est votre code de l'application et ça se traduit pour vous en tant qu'utilisateur en une interface avec des choses à cliquer,
- 38:46avec des pages,
- 38:47avec plein de choses comme ça.
- 38:49Est-ce que sur cette partie-là,
- 38:50Lulu,
- 38:50tu veux que je clarifie d'autres points ?
- 38:52Je ne sais pas si tu avais d'autres points.
- 38:54Non,
- 38:54ça me semble...
- 38:56Ça me semble bien et ça montre d'autant plus l'intérêt d'utiliser ces techniques-là,
- 39:01même si on développe tout seul avec plusieurs agents.
- 39:04Parce que là,
- 39:05d'autant plus,
- 39:07on se rend compte que le code avec IA va produire du code où tout est plus ou moins dépendant.
- 39:14Ce n'est plus forcément séparé par section claire,
- 39:16surtout si on n'a pas bien défini en amont et qu'on envoie notre agent.
- 39:24coder sur une fonctionnalité mais on ne l'a pas forcément bien découpé donc ça va toucher à plusieurs endroits du code.
- 39:31Donc imaginez,
- 39:32vous avez plusieurs agents qui travaillent en même temps sur un projet qui est en local,
- 39:37ils vont peut-être essayer de modifier des choses au même moment,
- 39:41au même endroit,
- 39:42et là après ça peut tout casser,
- 39:44ou induire des doublons,
- 39:46enfin voilà.
- 39:47C'est pour ça que c'est important,
- 39:48même si on développe tout seul,
- 39:51d'utiliser d'utiliser et...
- 39:54Git,
- 39:54bon après même si c'est en local,
- 39:55on peut utiliser Git quand même,
- 39:56mais après GitHub permet aussi de...
- 39:59Enfin,
- 39:59c'est vrai qu'il y avait la distinction,
- 40:00moi avant je ne connaissais pas forcément la distinction Git-GitHub,
- 40:04pour moi c'était la même chose et Git c'était en mode...
- 40:06Juste le raccourci,
- 40:09l'abréviation.
- 40:10Je vais juste effectivement clarifier un peu ce point-là.
- 40:12C'est que le protocole Git,
- 40:13à la base,
- 40:13il permet de travailler sur son propre ordinateur avec ce système de version,
- 40:17de se dire à chaque fois,
- 40:18je fais une nouvelle version.
- 40:20Je vous ai parlé là des fusions et tout,
- 40:22mais je n'ai même pas revenu sur le terme de version.
- 40:25Mais du coup,
- 40:26le fait d'avoir des commits et après votre pull request et ensuite de venir justement fusionner tout ça,
- 40:30ça vous permet d'avoir une nouvelle version.
- 40:33Vous n'êtes pas obligé de faire des pull requests pour quand même...
- 40:36versionnés petit à petit au fur et à mesure des changements.
- 40:39J'ai pris l'exemple du contexte entreprise où on est à plusieurs et d'où les fameuses PR.
- 40:44Et effectivement,
- 40:45ce que vous allez avoir comme du GitHub ou du GitLab permet en fait d'avoir ce code et ces versions de code et tous les changements qui partent sur un serveur cloud.
- 40:55Donc chez GitHub,
- 40:56c'est chez du Microsoft aujourd'hui.
- 40:59Et
- 41:00GitLab, je pense que c'est juste GitLab d'ailleurs,
- 41:03je crois qu'ils n'ont pas d'instance au-dessus.
- 41:06Mais l'avantage de ça,
- 41:07c'est que du coup,
- 41:07le code va être centralisé sur un espace commun sur Internet.
- 41:12Et donc,
- 41:12n'importe quel développeur ou développeuse va pouvoir bosser sur son ordi en local,
- 41:17faire toute sa partie jusqu'au bout.
- 41:19Et une fois que sa partie est prête,
- 41:20elle va pouvoir faire le point avec ce qui est disponible en ligne.
- 41:23Et elle va l'envoyer en ligne et justement soumettre à validation pour lecture,
- 41:27etc.
- 41:27Et c'est aussi des fois d'ailleurs comme ça qu'on se rend compte qu'il y a des conflits.
- 41:31Autre personne,
- 41:31en bossant sur son ordi,
- 41:32au moment où elle a envoyé le code,
- 41:33elle est plus avancée que moi sur un truc qui était commun,
- 41:36et ainsi de suite.
- 41:37Et sur la manière de bosser en solo avec des agents,
- 41:43il y a plein de manières de le faire,
- 41:45avec plus ou moins de pull requests,
- 41:47avec plus ou moins d'enregistrements,
- 41:49etc.
- 41:49Mais ce qu'il faut garder en tête,
- 41:52c'est que
- 41:53Git, du coup,
- 41:54enfin Git ou un autre protocole de versionning,
- 41:57est très important,
- 41:59parce que ça vous permet en fait...
- 42:01de sauvegarder petit à petit votre progression et ce qui a été fait côté code,
- 42:05ça donne aussi des points de restauration.
- 42:07Donc en fait,
- 42:08si vous avez un pépin et que vous vous rendez compte que vous avez fait quelque chose qui ne marche pas et qui casse votre application,
- 42:13vous pouvez revenir en arrière sur une version antérieure.
- 42:16Et voilà,
- 42:16ce qui est fondamental,
- 42:18que ce soit tout seul ou à plusieurs.
- 42:20Et l'autre intérêt aussi de bosser comme ça,
- 42:24justement avec des branches,
- 42:25avec des versions et tout,
- 42:28c'est de se dire qu'en fait,
- 42:29à tout moment,
- 42:30Quelqu'un peut arriver sur votre repository,
- 42:33donc en gros sur votre dossier avec tout votre code,
- 42:37et qui peut reprendre le travail.
- 42:38De se dire,
- 42:39demain,
- 42:39s'il y a un dev qui arrive,
- 42:40qui prend mon code,
- 42:43il va pouvoir savoir où j'en suis,
- 42:44il va avoir l'historique de tout ce que j'ai développé,
- 42:46s'il y a une fonctionnalité qui fonctionne bien ou pas bien,
- 42:49il va pouvoir remonter,
- 42:50du coup,
- 42:51voir non seulement le détail du code,
- 42:53mais aussi l'historique qui est associé,
- 42:55et être à même de comprendre d'où vient le problème.
- 42:59ou qu'est-ce qu'il pourrait faire pour l'améliorer ou comment on va rajouter une nouvelle fonctionnalité,
- 43:03etc.
- 43:04D'où l'intérêt de bien documenter,
- 43:06de bien commenter aussi son code.
- 43:08Alors,
- 43:09c'est sûr que quand on est avec de l'IA,
- 43:11on ne va pas forcément lire le code,
- 43:12mais je pense que même pour suivre un projet,
- 43:15ça peut être intéressant de juste voir comment c'est fait et que ce soit pour qu'un humain ou une IA reprenne derrière des noms de fonctions clairs qui disent exactement ce qu'elles font,
- 43:25ou bien découpés.
- 43:27aussi une fonction à tout faire et de bien commenter,
- 43:32de bien documenter.
- 43:33Parce que que ce soit une IA,
- 43:36vous dans six mois ou quelqu'un d'autre,
- 43:39vous serez content de retrouver les commentaires et il faut penser à ceux qui viennent après.
- 43:46Petite référence à Claire Obscur.
- 43:48J'ai réussi.
- 43:50Alors,
- 43:51du coup,
- 43:52est-ce qu'on se lance sur la partie d'après ou est-ce qu'on s'en tient là pour aujourd'hui,
- 43:55Lulu ?
- 43:56Je me dis qu'on peut quand même attaquer les tests parce que tu vas peut-être en parler pas mal la semaine prochaine et ça serait bien de dire au moins les différents...
- 44:06Parce que c'est pareil,
- 44:08notre application,
- 44:09à la fin,
- 44:10on ne va pas se dire
- 44:11« Ah bah tiens,
- 44:12je vais la tester à la fin » .
- 44:14C'est vraiment quelque chose qu'il y a à mettre en place à chaque étape de développement aussi et de se demander aussi,
- 44:22même avant de commencer à développer,
- 44:24de définir ses tests.
- 44:27En partie,
- 44:28mais je pense que là,
- 44:29tu en parleras un petit peu mieux parce qu'il y a différents types de tests.
- 44:33On entend parler,
- 44:35tu avais parlé aussi de recettes la semaine dernière.
- 44:38Et après,
- 44:39il y a les tests de régression,
- 44:41tests unitaires.
- 44:42Ça aussi,
- 44:42c'est du vocabulaire qui peut paraître un peu barbare quand on n'est pas dedans.
- 44:47Oui,
- 44:48effectivement.
- 44:49Ok,
- 44:50alors,
- 44:51parce qu'on a déjà fait un petit peu long sur les trois premières parties,
- 44:54donc là,
- 44:54on va essayer d'aller un peu plus vite sur les trois suivantes.
- 44:57mais que vous ayez le panel complet justement du cycle de développement dès aujourd'hui n'hésitez à nous faire basculer sur deux épisodes pour
- 45:06vous n'ayez pas à vous en mettre trop dans la tête d'un coup.
- 45:09Mais en même temps,
- 45:11je pense que ce serait un peu frustrant de s'arrêter aussi à la moitié.
- 45:13Donc,
- 45:14je rejoins Guillaume.
- 45:14Au pire,
- 45:15vous écouterez en deux fois.
- 45:17Oui,
- 45:17c'est ça.
- 45:17Ce sera pareil.
- 45:19Et alors,
- 45:19les tests.
- 45:20Les tests,
- 45:21les tests.
- 45:21Effectivement,
- 45:22il va y avoir plusieurs choses.
- 45:23On ne pourrait pas en parler longuement parce que ce que vous avez sous le nom d'assurance qualité ou de QA dans les entreprises,
- 45:30en tout cas chez les éditeurs de logiciels,
- 45:32c'est les services des...
- 45:35volontaire ou désigné volontaire pour aller casser les produits et les logiciels et trouver toutes les failles et les remonter aux développeurs qui vont râler parce qu'ils ont des nouvelles failles et des nouveaux bugs à corriger mais qui est fondamental pour éviter que ces bugs arrivent dans les mains des gens à la fin.
- 45:49Donc la première chose ça va être effectivement de penser les tests dès le départ donc ça on en avait déjà aussi parlé dans l'épisode précédent c'est de se dire quand on écrit une user story et qu'on dit tel profil doit pouvoir faire telle chose dans l'application
- 46:04on va y associer des critères d'acceptation,
- 46:07donc de dire en fait,
- 46:08pour valider que cette fonction-là,
- 46:11donc quand il clique dans ce bouton,
- 46:12ça marche,
- 46:13en fait,
- 46:13c'est les critères qui vont dire qu'est-ce qui fait que ça marche ou pas.
- 46:16Et associé à ça,
- 46:18en fait,
- 46:18on va avoir justement un carnet de tests ou un cahier de tests ou un carnet de recettes,
- 46:23enfin bon,
- 46:24plusieurs appellations.
- 46:26Mais en fait,
- 46:26en face de chacune de ces user stories,
- 46:29on va mettre des tests pour se dire,
- 46:32pour que tout...
- 46:34Ce bouton,
- 46:35il doit,
- 46:35par exemple,
- 46:36permettre d'ajouter une ligne dans mon tableau.
- 46:40Mais du coup,
- 46:40il faut que je teste tous les cas possibles et impossibles,
- 46:45c'est où ça devient rigolo,
- 46:47les fameux cas limites,
- 46:47de se dire en utilisation normale,
- 46:49la personne va remplir ces deux champs,
- 46:52cliquer sur le bouton,
- 46:53ça rajoute une ligne.
- 46:53Et en fait,
- 46:54si dans ces deux champs,
- 46:56j'ai un champ nom,
- 46:56j'ai un champ prénom,
- 46:57à la place,
- 46:57si elle met des chiffres,
- 46:58qu'est-ce qu'il se passe ?
- 46:59Si elle met des caractères spéciaux,
- 47:00qu'est-ce qu'il se passe ?
- 47:01Si elle ne met rien,
- 47:02qu'est-ce qu'il se passe ?
- 47:03Si elle met un script,
- 47:04qu'est-ce qui se passe ?
- 47:06Si elle met un script,
- 47:06qu'est-ce qui se passe ?
- 47:07Ou si elle met...
- 47:08Alors ça,
- 47:08c'est un des tests qui est assez rigolo,
- 47:10d'ailleurs,
- 47:10quand on les voit passer.
- 47:12Si on met un texte sans fin dedans avec
- 47:142000 caractères,
- 47:15qu'est-ce qui se passe ?
- 47:18Et voilà.
- 47:19Et ensuite,
- 47:20à partir de là,
- 47:20on en déduit les tests à faire et la perce.
- 47:25Pas faire tout à fait dans ce temps-là.
- 47:27À ce moment-là,
- 47:28vous avez déjà un scénario de test qui est associé à chaque...
- 47:31un ou plusieurs scénarios de test qui sont associés à chaque fonctionnalité,
- 47:35globalement.
- 47:36C'est vraiment plus large et ça ne va pas tester juste un petit bout.
- 47:39On est vraiment dans le...
- 47:41On teste une fonctionnalité,
- 47:45une user story.
- 47:46On va tester une fonction dans le code.
- 47:48Là,
- 47:49on est vraiment sur presque le plus haut niveau de test,
- 47:54je pense.
- 47:55Oui,
- 47:56c'est ça.
- 47:56C'est-à-dire qu'en fait,
- 47:58on va avoir plusieurs niveaux de test.
- 47:59Il va y avoir les tests...
- 48:00unitaire donc ça ça va être vraiment purement au niveau du code de se dire ben voilà le développeuse a créé a développé ce bouton qui permet de valider d'ajouter la nouvelle ligne avec les noms prénoms elle va mettre en place un test unitaire au niveau du code pour dire ben en fait quand je clique ça
- 48:19fait exactement ça insère donc un ajout du nom prénom dans la ligne de ces deux champs voilà typiquement test unitaire il va être là
- 48:29C'est une brique,
- 48:30on teste vraiment juste une petite brique,
- 48:33indépendamment du reste.
- 48:35C'est ça.
- 48:36On va avoir des tests d'intégration.
- 48:40Selon les cas,
- 48:41ils viennent à des moments un peu différents,
- 48:42mais qui vont être là un petit peu pour l'environnement.
- 48:45Je vais en reparler juste après de cette notion d'environnement.
- 48:48Et donc,
- 48:49ils vont être un peu plus sur la partie vraiment technique,
- 48:52globalement,
- 48:52mais technique,
- 48:54pas du code,
- 48:55mais tout ce qu'il y a autour.
- 48:56le fait que le programme est disponible,
- 48:58où est-ce qu'il est disponible,
- 48:59de quelle manière il est disponible,
- 49:00un petit peu plus ces choses-là.
- 49:02Et on va avoir les tests dits end-to-end,
- 49:06qui sont en fait les tests type utilisateur,
- 49:10c'est-à-dire vraiment les tests de ce qui se passe quand on navigue sa souris dans le logiciel,
- 49:15ou sur le téléphone par exemple,
- 49:18et qu'on clique directement sur les boutons,
- 49:20etc.
- 49:22On reproduit le comportement d'une...
- 49:24personnes utilisant vraiment l'application.
- 49:27Et ces trois tests-là,
- 49:31déjà,
- 49:31on va pouvoir les...
- 49:33Comment dire ?
- 49:34On va pouvoir les automatiser,
- 49:35déjà.
- 49:36Test unitaire,
- 49:36intégration,
- 49:37etc.
- 49:37Les tests end-to-end,
- 49:38en fait,
- 49:39quand on les automatise,
- 49:40c'est qu'on va littéralement avoir un programme qui reproduit des clics à l'écran et qui reproduit des actions utilisateurs.
- 49:47Donc ça,
- 49:47c'est assez marrant à voir quand vous le faites.
- 49:49Et voilà,
- 49:50d'ailleurs,
- 49:50si vous développez avec de l'IA et que vous faites du vibe-coding,
- 49:53ben...
- 49:54demandez enfin j'espère que vous faites des tests end to end et quand il s'est le cas justement amusez vous à regarder les fenêtres de tests pendant qu'il les fait pour voir justement ce ces interactions en temps réel et
- 50:06Il y a des programmes qui sont dédiés,
- 50:07etc.
- 50:08pour faire ça.
- 50:09Mais les familles de tests,
- 50:10en gros,
- 50:11ça va être là-dessus.
- 50:12Après,
- 50:12on va avoir des tests de non-régression.
- 50:15Donc les tests de non-régression,
- 50:16en fait,
- 50:17entre guillemets,
- 50:17il peut y avoir un peu tout ça dans le lot,
- 50:19mais le but,
- 50:21c'est de se dire,
- 50:23en gros,
- 50:23quel est notre panel de tests dans les différentes familles qui valident et vérifient que notre programme n'est pas cassé et qu'on a...
- 50:33pas cassé un bout du logiciel en ajoutant une nouvelle fonctionnalité,
- 50:36même si,
- 50:37a priori,
- 50:38la nouvelle fonctionnalité n'avait rien à voir.
- 50:40Parce que ça,
- 50:41c'est un des cas,
- 50:42justement,
- 50:42des effets de bord,
- 50:43c'est de se dire en fait,
- 50:45je sais pas,
- 50:45je rajoute une nouvelle page dans mon programme,
- 50:47cette nouvelle page elle permet de faire des...
- 50:50de rajouter des tableaux alors qu'avant j'en avais pas,
- 50:52mais en fait,
- 50:52quand elle rajoute des tableaux,
- 50:53elle utilise un bouton qui était utilisé à un autre endroit et qu'en fait,
- 50:56ce bouton,
- 50:56du coup,
- 50:57on l'a retouché sans se rendre compte qu'il était utilisé à un autre endroit et ça va casser à ce moment-là.
- 51:02Ça marchera bien sur la page avec le tableau,
- 51:03mais ça marchera plus sur l'autre page qui utilisait le même bouton.
- 51:06Voilà,
- 51:07les tests de non-régression,
- 51:08en fait,
- 51:08ils sont là pour empêcher ça,
- 51:10enfin,
- 51:10pour empêcher ça,
- 51:11pour se rendre compte de ça.
- 51:12Parce que là,
- 51:13en plus,
- 51:14on parle de boutons où c'est visible,
- 51:16mais ça peut être des choses qui s'accumulent sans qu'on s'en rende compte,
- 51:19jusqu'à un point où c'est pour ça que c'est vraiment important de le penser et de garder ça en tête et de se dire que c'est pas parce que je modifie une partie là,
- 51:29d'autant plus si c'est en développement assisté par IA ou...
- 51:32On peut avoir un peu de code spaghetti,
- 51:33où il y a tout qui s'entremêle.
- 51:35Se dire,
- 51:36non,
- 51:36mais ça va,
- 51:37visuellement,
- 51:37je ne modifie que quelque chose qui est là,
- 51:39mais derrière,
- 51:40au final,
- 51:40ça va aller toucher d'autres choses et on ne s'en rendra pas compte avant de peut-être modifier autre chose ailleurs aussi.
- 51:46Donc,
- 51:47ça peut être vraiment exponentiel.
- 51:50Oui,
- 51:50et là,
- 51:50c'est vrai que je parle beaucoup de boutons et de choses.
- 51:53Pour que vous arriviez à avoir quelque chose en tête,
- 51:56parce que déjà qu'on est quand même très abstrait sur plein de sujets,
- 51:59concepts,
- 52:00parce que si vous n'avez jamais fait de développement,
- 52:02C'est normal,
- 52:02ça fait beaucoup de nouveautés,
- 52:04de nouvelles idées,
- 52:05de nouvelles choses à intégrer.
- 52:07Mais dans la réalité des faits,
- 52:08effectivement,
- 52:09la majorité des cas et des bugs viennent de choses qu'on ne voit pas de prime abord.
- 52:14Même s'il y a aussi des petits tests,
- 52:16il peut y avoir des petits bugs d'interface,
- 52:18il peut y avoir des caractères.
- 52:19Il y a des choses qui sont visuelles,
- 52:21mais les soucis et les bugs les plus embêtants,
- 52:24comme disait Lulu,
- 52:24on ne les voit pas.
- 52:26C'est ça,
- 52:26et aussi de se rendre compte à quel moment on a cassé.
- 52:29parce que si on se rend compte que...
- 52:31rapidement,
- 52:33ça peut être facile de corriger tout de suite,
- 52:35de revenir à une ancienne version,
- 52:36de refaire autrement.
- 52:38Mais si on s'en rend compte plusieurs jours,
- 52:40plusieurs semaines après,
- 52:41et ça c'est vrai qu'IA accélère énormément le développement,
- 52:45les pull requests,
- 52:46et au final c'est le lenteau nord,
- 52:50le goulot d'étranglement,
- 52:51il est au niveau de la revue de code maintenant,
- 52:53et avec tout ça qui arrive très très vite,
- 52:56s'il y a quelque chose qui...
- 52:57passe à la trappe,
- 52:58mais on va rajouter d'autres choses,
- 52:59d'autres fonctionnalités,
- 53:00ce qui fait qu'on ne pourra pas juste se dire « je reviens en arrière au moment où ça a pété » ,
- 53:04parce qu'il y a d'autres choses qui sont rajoutées en même temps et c'est là qu'on se retrouve à faire des choses pas très propres en général.
- 53:12Oui,
- 53:13c'est là qu'on se retrouve avec de la dette technique,
- 53:15notamment.
- 53:16En fait,
- 53:17la dette technique,
- 53:18sur les cas où vous pouvez,
- 53:20les plus criards,
- 53:21vous pouvez en avoir,
- 53:22ça va être justement quand,
- 53:23au début,
- 53:23vous aviez une fonctionnalité à faire.
- 53:26vous voulez rajouter une nouvelle chose et en fait vous voulez la rajouter le plus vite possible sans vous prendre la tête à vous dire,
- 53:31en fait,
- 53:31est-ce que pour la faire bien,
- 53:33ça prendrait vachement de temps,
- 53:35c'est vachement complexe et il faut anticiper plein de choses.
- 53:37Moi,
- 53:37je veux juste que les utilisateurs et les utilisatrices l'aient très vite dans les mains.
- 53:41Je la fais de la manière la plus printée et la plus express.
- 53:45Sauf que la manière dont elle est conçue,
- 53:48effectivement,
- 53:50ça va pour deux semaines et un cas défini.
- 53:53Mais en fait,
- 53:54dès qu'on va vouloir...
- 53:55rajouter des choses sur cette fonctionnalité,
- 53:57on va se rendre compte que non,
- 53:59ce n'est pas possible parce que ce n'est pas qu'elle est mal conçue,
- 54:02c'est qu'elle n'est pas pensée pour évoluer.
- 54:06Ça ne prend pas forcément beaucoup de temps de faire des tests à chaque étape.
- 54:12C'est aussi à penser et que ça peut vraiment sauver son application après.
- 54:17Alors,
- 54:18oui,
- 54:19justement,
- 54:19c'est là où je voulais revenir.
- 54:21Là,
- 54:21déjà,
- 54:22il y a de la technique juste de...
- 54:24de ne pas avoir anticipé assez ou d'avoir voulu aller trop vite et de manière qui ne peut pas évoluer derrière.
- 54:32Et par-dessus ça,
- 54:33on va rajouter les problèmes et les bugs liés au manque de tests et au manque de tests de qualité qui ne vont pas permettre de se rendre compte que cette fonctionnalité qu'on a développée très vite,
- 54:45elle a des problèmes qui sont visibles dès maintenant et qu'on va retarder.
- 54:49Et parmi ça,
- 54:50il peut y avoir par exemple des soucis de performance.
- 54:53Typiquement,
- 54:53il peut y avoir des...
- 54:55Vous rajoutez une nouvelle page qui va vous permettre de rajouter,
- 54:59en plus de votre nom,
- 55:00prénom,
- 55:00vous allez pouvoir rajouter votre adresse.
- 55:02Mais en fait,
- 55:04toute cette partie-là,
- 55:04elle est très mal faite.
- 55:06elle a été faite à l'arrache,
- 55:08elle n'est pas évolutive,
- 55:08et surtout elle consomme énormément de ressources.
- 55:10Et en fait,
- 55:11sur le moment,
- 55:12ça passe,
- 55:12parce que vous ne rajoutez que ça,
- 55:14mais vous allez vouloir rajouter une suite au formulaire pour aller prendre des informations complémentaires,
- 55:19et en fait,
- 55:20chaque fois que vous rajoutez des blocs sur votre formulaire,
- 55:22vous vous rendez compte que ça devient très très lent,
- 55:25et que toute la page ram.
- 55:27Et en fait,
- 55:28le problème va venir d'un des tout premiers composants,
- 55:30votre adresse.
- 55:32qui,
- 55:32rien que le fait qu'elle tourne sur la page,
- 55:33va consommer vachement de ressources de votre navigateur
- 55:36Chrome et va faire des ralentissements.
- 55:39Mais dès que vous allez faire d'autres choses supplémentaires,
- 55:41rajouter des composants,
- 55:42ça va rendre tout ça exponentiel.
- 55:44Chaque composant va rajouter le même ralentissement et à la fin,
- 55:47vous allez retrouver,
- 55:49quand vous cliquez,
- 55:49qu'il va devoir attendre plusieurs secondes pour qu'il se passe quelque chose,
- 55:52par exemple.
- 55:53Ça,
- 55:53c'est un cas de technique classique de l'IA de la performance qui peut être décelé notamment à travers des tests automatisés.
- 56:00Parce qu'en fait,
- 56:01dans les tests automatisés ou pas automatisés d'ailleurs,
- 56:04puisque c'est là,
- 56:05on va se rendre compte qu'il y a un problème.
- 56:07Si quand on clique sur le bouton,
- 56:08ce n'est pas immédiat et instantané et que ça prend 10 secondes,
- 56:11c'est qu'il y a quelque chose qui ne va pas quelque part.
- 56:13Et donc dans la QA,
- 56:15dans les services d'assurance qualité,
- 56:18comme ça,
- 56:18ils vont être en mesure de faire les deux,
- 56:20la partie test automatisé,
- 56:21mais aussi la partie test vraiment humaine,
- 56:24de se dire,
- 56:24OK,
- 56:25la machine,
- 56:25j'ai pu mettre en place un certain nombre de trucs pour que ça tourne tout seul.
- 56:29Parce qu'en fait,
- 56:29on invite des centaines de tests.
- 56:31Et donc,
- 56:31à chaque fonctionnalité,
- 56:32on ne peut pas faire des centaines de tests à la main.
- 56:36Mais à côté de ça,
- 56:36il y a besoin d'avoir ce regard humain pour se dire,
- 56:38attention,
- 56:39parce qu'en fait,
- 56:40ce truc-là,
- 56:41je n'ai pas pensé qu'on pouvait le prendre de telle ou de telle manière.
- 56:46Ou alors,
- 56:46le test que j'ai mis en place,
- 56:48il est bien,
- 56:48mais en fait,
- 56:48il ne dira pas si,
- 56:50justement,
- 56:51quand on va rajouter la prochaine fonctionnalité qui est prévue avec l'équipe,
- 56:54ça risque de poser souci.
- 56:55Et là,
- 56:56du coup,
- 56:56la personne...
- 56:57les personnes justement dans le service qualité apportent énormément de valeur côté produit et information.
- 57:03Au même titre que les utilisateurs finaux justement qui vont se servir de votre produit,
- 57:06mais à la qualité,
- 57:08en fait,
- 57:08ils vont avoir un regard tellement complet sur votre application qu'ils sont en mesure de vous montrer des choses,
- 57:15d'essoler des choses que vous ne pourriez pas faire différemment,
- 57:17que vous n'auriez pas pu voir différemment.
- 57:19On va dire ça comme ça.
- 57:20Et juste pour terminer justement sur ce sujet des tests,
- 57:26pour faire le lien avec notre...
- 57:29Là,
- 57:30tu as parlé des tests de non-régression,
- 57:32mais il y a aussi les tests de régression encore.
- 57:35En fait,
- 57:35techniquement,
- 57:36c'est les tests de non-régression qui te font valider l'absence de régression.
- 57:40Ah,
- 57:41oui,
- 57:42d'accord.
- 57:43Parce que moi,
- 57:44j'avais tendance à entendre tests de régression,
- 57:46mais c'est tests de non-régression.
- 57:50Du coup,
- 57:50je dis peut-être une bêtise sur le vrai terme officiel,
- 57:53mais j'ai toujours dit tests de non-régression,
- 57:54c'est un balut
- 57:55le principe étant que justement t'es toute ta suite de tests automatisés pour t'assurer comme on disait avant que quand t'as rajouté quelque chose,
- 58:01en tout cas t'as un palier de sécurité qui a tourné tout seul et voilà qui sont parmi les différents tests qu'on a déjà évoqué avant mais qui vont être aussi une sélection et il y a aussi le fameux smoke test,
- 58:17je ne sais pas si tu veux nous en parler de celui-là ça je l'ai découvert en préparant l'épisode c'est un à...
- 58:25Test,
- 58:25alors,
- 58:26il vient,
- 58:26c'est test de fumée,
- 58:30pour traduire littéralement,
- 58:31qui vient de l'électronique.
- 58:33En gros,
- 58:33c'est on va allumer et s'il y a de la fumée qui sort,
- 58:37on arrête et on considère que ce n'est pas bon.
- 58:41Voilà,
- 58:41donc en logiciel,
- 58:43on va lancer,
- 58:45on va faire des vérifications qui sont vitales.
- 58:49Et si ça ne passe pas,
- 58:50juste on ne va pas continuer à faire d'autres tests et investir du temps sur cette...
- 58:55partie-là du logiciel ou sur cette version du logiciel,
- 58:57parce que ça serait une perte de temps et de ressources.
- 59:02Oui.
- 59:03Je suis en train de penser à mes usages,
- 59:06mais effectivement,
- 59:07c'est un test qui va à l'essentiel.
- 59:11Si ça,
- 59:11ça ne passe pas,
- 59:12on ne va pas aller vérifier si le bouton a la bonne couleur.
- 59:16Il y a d'autres choses à vérifier en amont.
- 59:21Et c'est vrai que quand tu parlais du formulaire aussi,
- 59:24On se dit,
- 59:25mais comment est-ce qu'on peut tester tout ?
- 59:27Parce qu'au final,
- 59:28c'est presque infini ce qui peut se passer.
- 59:31Et justement,
- 59:32on va essayer de choisir à chaque fois des valeurs ou des tests qui vont être représentatifs d'un intervalle ou qui vont être représentatifs de plusieurs tests qui vont permettre,
- 59:44par exemple,
- 59:45si on peut mettre des numéros,
- 59:49on va se dire,
- 59:49bon,
- 59:50on va tester,
- 59:50par exemple,
- 59:51je ne sais pas,
- 59:510,
- 59:511.
- 59:53après on va tenter sans tester après aussi à chaque borne où on peut mettre,
- 59:57c'est souvent là où ça peut bugger si on met un nombre négatif si on met un chiffre à virgule et ça va pas être pertinent de tester tous les chiffres tous les nombres et juste prendre un
- 1:00:13test ou une valeur qui va représenter une famille de valeurs ouais et en fait il faut Ouais.
- 1:00:21à garder en tête,
- 1:00:21c'est qu'on ne peut pas tout tester.
- 1:00:24C'est juste pas possible.
- 1:00:25Et aucun logiciel n'a pas de bug.
- 1:00:31L'idée,
- 1:00:31c'est de ne pas avoir de bug visible,
- 1:00:34entre guillemets,
- 1:00:35et les traiter au fil de l'eau,
- 1:00:39justement de ne pas attendre qu'ils s'accumulent et qu'ils s'agglutinent,
- 1:00:42et surtout de traiter tous les problèmes majeurs le plus rapidement possible,
- 1:00:45mais sans pour autant délaisser les petits bugs mineurs,
- 1:00:47parce qu'en fait,
- 1:00:48il y a des soucis.
- 1:00:49Il peut y avoir des...
- 1:00:50petits pépins et des petits bugs moins importants mais qui sont pénibles dans l'utilisation quotidienne et qui sont aussi nécessaires de corriger petit à petit.
- 1:00:59Mais typiquement,
- 1:01:01il peut y avoir des cas où vous avez des bugs qui sont connus,
- 1:01:04qui ne sont pas traités volontairement parce qu'on sait que telle page ou tel composant,
- 1:01:09on va le faire évoluer.
- 1:01:10C'est déjà prévu qu'il évolue dans deux semaines,
- 1:01:12dans un mois.
- 1:01:14Et l'effort que ça prendrait de corriger le bug est beaucoup trop important.
- 1:01:19au vu du fait que de toute façon,
- 1:01:23cette partie-là va être refaite différemment et on ne va pas faire le boulot deux fois.
- 1:01:28Donc c'est ce qui fait aussi des fois que vous avez des bugs dans certains logiciels que vous allez voir,
- 1:01:32vous savez qu'ils sont là.
- 1:01:33Donc des fois,
- 1:01:33ils ne sont pas traités de suite parce qu'en fait,
- 1:01:35il n'y a plus prioritaire avant,
- 1:01:37il y a plus important et plus urgent et plus critique dans l'application.
- 1:01:42Et d'autres fois,
- 1:01:43mais en fait,
- 1:01:43ils sont connus,
- 1:01:45acceptés,
- 1:01:45tolérés parce que...
- 1:01:48la fonctionnalité ou le composant va être amené à changer.
- 1:01:51Et dans ces cas-là,
- 1:01:52soit il faut prendre son mal en patience,
- 1:01:53soit ne pas hésiter aussi à solliciter les services support,
- 1:01:56les équipes support qui ont généralement...
- 1:01:58C'est tout à l'aimant.
- 1:02:01Oui.
- 1:02:01Généralement,
- 1:02:02des astuces et des contournements à vous donner qui ne sont pas forcément idéaux,
- 1:02:06mais qui peuvent vous permettre de vous débloquer pour quand même arriver à vos fins sans avoir à attendre justement que la fonctionnalité soit terminée et que la nouvelle version soit disponible.
- 1:02:17C'est vrai que c'est compliqué de trouver un peu cet équilibre entre la partie maintenance et régler des problèmes qui remontent,
- 1:02:27et la partie innovation où on veut rajouter des nouvelles fonctionnalités,
- 1:02:30parce que c'est sûr qu'il y a ce côté-là où le produit doit quand même vivre,
- 1:02:34l'application doit vivre,
- 1:02:35et on ne peut pas juste tout régler parce qu'il y a d'autres choses qui vont arriver,
- 1:02:41comme tu disais,
- 1:02:41au fil de l'eau.
- 1:02:43trouver un peu ce sweet spot entre on fait quand même évoluer l'appli,
- 1:02:46mais en même temps il ne faut pas qu'on casse tout et qu'on construit sur quelque chose qui est bancable.
- 1:02:53C'est pour ça qu'il y a certains moments aussi,
- 1:02:56on verra,
- 1:02:57où c'est mieux de recommencer.
- 1:02:59Ce n'est pas agréable,
- 1:03:02ça peut être compliqué,
- 1:03:03ça peut coûter,
- 1:03:04mais ça peut aussi coûter d'essayer de continuer à essayer de maintenir et de...
- 1:03:09pu avoir d'innovation et de se faire potentiellement dépasser par quelqu'un qui lance son nouveau logiciel.
- 1:03:16Oui,
- 1:03:16après,
- 1:03:17voilà,
- 1:03:17ça serait complètement vrai,
- 1:03:19mais ça va dépendre aussi de l'envergure de l'application et de l'objectif.
- 1:03:23Si vous faites du vape coding et que vous développez une application toute seule ou toute seule sur votre ordi,
- 1:03:29globalement,
- 1:03:30votre appli,
- 1:03:30une fois qu'elle est terminée et qu'elle répond à vos besoins,
- 1:03:33vous n'aurez peut-être jamais besoin de la faire évoluer pendant des années,
- 1:03:36et puis au bout d'un moment,
- 1:03:37juste...
- 1:03:38passer sur un autre produit ou faire une nouvelle version,
- 1:03:40enfin,
- 1:03:41peu importe.
- 1:03:42Et la même chose sur certains modules et certaines applis.
- 1:03:46Des fois,
- 1:03:46vous allez remplacer un logiciel entier par un nouveau qui est pensé différemment et qui correspond davantage à vos besoins.
- 1:03:53Ou au contraire,
- 1:03:53du coup,
- 1:03:54effectivement,
- 1:03:55des logiciels qui vont durer très longtemps vont de temps en temps changer des bouts de moteur et des bouts de l'application complète et ne changeront jamais tout d'un coup.
- 1:04:08Enfin,
- 1:04:08ça peut arriver en réalité,
- 1:04:10mais généralement c'est une nouvelle version qui va cohabiter avec une ancienne.
- 1:04:14Et le souci de cette Ausha,
- 1:04:17c'est que souvent,
- 1:04:18quand on a besoin de repartir de zéro avec un nouveau moteur et des technologies plus modernes,
- 1:04:22on ne peut pas répliquer à l'identique un logiciel qui existait depuis 20 ans et qui avait 20 ans de développement avec toutes ses fonctionnalités.
- 1:04:28Dans ces moments-là,
- 1:04:29on est obligé de trancher dans le vif,
- 1:04:32de sélectionner que les choses les plus critiques et les plus importantes dans la nouvelle version qui sera.
- 1:04:37fluide,
- 1:04:37rapide,
- 1:04:38modernisé,
- 1:04:38etc.
- 1:04:39tout très bien,
- 1:04:40mais qui perdra forcément un grand nombre de choses par rapport à l'ancienne.
- 1:04:43En partant du principe qu'on va vous mettre dans les mains la nouvelle version au top,
- 1:04:48et vous rajouter ce qui manque petit à petit.
- 1:04:51et que les bookings seront rajoutés petit à petit,
- 1:04:53ils seront mieux pensés,
- 1:04:55plus rapides et tout.
- 1:04:56Mais voilà,
- 1:04:57et ça c'est un des cas que j'ai déjà vu justement dans différentes boîtes où en fonction du client et de l'utilisateur final,
- 1:05:05ça va être
- 1:05:06« Ok, je préfère rester sur l'ancienne version,
- 1:05:08donc la nouvelle n'est pas assez mature,
- 1:05:10elle n'a pas ce dont j'ai besoin dans mon quotidien »
- 1:05:13ou au contraire,
- 1:05:14les fonctionnalités qu'il y a dans la nouvelle version,
- 1:05:16c'est juste ce dont j'ai besoin.
- 1:05:17Et c'est parfait,
- 1:05:18je peux basculer dessus.
- 1:05:19J'avais deux,
- 1:05:19trois broutilles que j'aimais bien raconter,
- 1:05:21mais je peux m'en passer pour le moment.
- 1:05:24Parce que les langages aussi ont différentes versions.
- 1:05:30Et on ne peut pas juste,
- 1:05:31quand un nouveau,
- 1:05:32par exemple,
- 1:05:32un nouveau langage en Java sort,
- 1:05:34se dire,
- 1:05:34on fait la mise à jour et puis notre application,
- 1:05:36on passe au nouveau langage,
- 1:05:40à une nouvelle version de Java qui apporte des nouvelles fonctionnalités,
- 1:05:44des meilleures performances.
- 1:05:47Parce qu'il y a des choses qui ne marcheront plus.
- 1:05:49C'est un moment où on ne peut pas juste mettre à jour aussi facilement.
- 1:05:55Et c'est comme ça qu'on se retrouve.
- 1:05:57C'est ce qu'on appelle des refontes,
- 1:05:59quand on refait une partie.
- 1:06:02Et ça,
- 1:06:02c'est très connu,
- 1:06:03par exemple,
- 1:06:04dans le système bancaire,
- 1:06:05assurance.
- 1:06:06On va dire des boîtes qui ont des logiciels historiques.
- 1:06:10On va trouver peut-être encore des bouts de cobol aussi,
- 1:06:12qui est un très,
- 1:06:13très vieux langage.
- 1:06:15ça dans la banque c'est encore autre chose parce qu'ils sont un peu banque à l'aéroport etc ils ont des outils tellement critiques qui font durer et traîner des choses qui sont très technologiquement où il y a peu de gens qui sont encore en mesure de le réparer c'est
- 1:06:30ça et puis des fois la refonte va prendre tellement de temps qu'elle sera déjà obsolète donc on se retrouve à faire des refontes de refontes et c'est sans fin donc voilà après ça c'est plus Aïe !
- 1:06:43C'est à l'échelle vraiment d'une plus grosse boîte et tout ce qui est,
- 1:06:47on va dire,
- 1:06:47plus historique aussi.
- 1:06:49Automobile.
- 1:06:51Après,
- 1:06:51je pense que tu l'as peut-être rencontré dans des trucs plus récents,
- 1:06:54dans des contextes plus récents aussi.
- 1:06:56Oui,
- 1:06:57ce n'est pas forcément une taille de boîte,
- 1:06:58c'est vraiment plus une durée de vie du logiciel.
- 1:07:03Parce qu'en fait,
- 1:07:03tu peux avoir un petit programme qui est concerné,
- 1:07:05tout simplement,
- 1:07:06parce qu'il sera utilisé pendant 10 ans,
- 1:07:08pendant 5 ans,
- 1:07:10en plus.
- 1:07:11et pour lesquels,
- 1:07:12au bout d'un moment,
- 1:07:12il va y avoir certaines technologies ou certaines dépendances.
- 1:07:16On ne tirera pas là-dessus maintenant,
- 1:07:19mais dites-vous juste qu'un programme,
- 1:07:22quand vous le faites et quand vous le développez,
- 1:07:24vous ne développez jamais tout de zéro.
- 1:07:26Vous allez généralement vous appuyer sur des librairies,
- 1:07:29donc des bout de code qui ont été réalisés par d'autres,
- 1:07:32pour ne pas réinventer la roue à chaque fois.
- 1:07:34Mais la contrepartie de ça,
- 1:07:35c'est qu'il y a des briques qui peuvent ne plus être maintenues ou ne plus être compatibles avec des nouvelles versions.
- 1:07:41pour différentes raisons.
- 1:07:43Il peut y avoir des briques,
- 1:07:44justement,
- 1:07:45de dépendance qui se retrouvent avec des failles de sécurité dont on doit se passer pour aller sur quelque chose d'autre parce que les failles de sécurité ne peuvent pas être corrigées ou même si elles ont été corrigées,
- 1:07:55du coup,
- 1:07:55c'est un trop gros risque,
- 1:07:56etc.
- 1:07:56Enfin,
- 1:07:56il y a des considérations à prendre en compte.
- 1:07:59Il peut y avoir le fait de ne pas avoir pris de dépendance,
- 1:08:02d'avoir voulu coder soi-même une fonctionnalité et de se rendre compte qu'en fait,
- 1:08:06on n'était pas en mesure de bien la couvrir parce qu'elle était complexe techniquement.
- 1:08:09Il se retrouvait à utiliser des dépendances
- 1:08:11payantes ou des outils tiers qu'on va connecter aussi avec différents systèmes comme des API.
- 1:08:17Il y a plein de paramètres qui peuvent rentrer en jeu dans le fait de faire une refonte ou pas et que la refonte soit que sur des petits bouts,
- 1:08:25sur des grands bouts.
- 1:08:29On va prendre peut-être un exemple tout bon,
- 1:08:32mais aujourd'hui il y a beaucoup de logiciels et d'applications qui s'appuient sur Stripe qui fait toute la partie paiement.
- 1:08:40du coup ça devient une dépendance.
- 1:08:42Demain si Stripe pour une raison politique ou de sécurité ou comme ça,
- 1:08:50est plus compatible avec nos réglementations en France,
- 1:08:54du coup ça fait que toutes les boîtes qui s'habituent,
- 1:08:56elles l'ont dans l'offre,
- 1:08:56c'est qu'il faut soit qu'elles trouvent un autre équivalent à Stripe pour gérer toute la partie paiement de leur boîte,
- 1:09:03soit qu'elles développent eux-mêmes,
- 1:09:04et auquel cas c'est vraiment délicat parce que du coup dans les parties paiement il y a plein de choses qui sont vraiment...
- 1:09:09très sensible.
- 1:09:10Et puis même après,
- 1:09:11je pense qu'en termes réglementaires d'agrémenter tout,
- 1:09:13il y a des choses aussi à vendre.
- 1:09:14Mais voilà,
- 1:09:15pour citer un exemple de dépendance qui n'est pas une librairie pour le coup,
- 1:09:19qui est un outil tiers,
- 1:09:20mais qui est un outil tiers qu'on va intégrer et qui va être intégré dans plein plein de logiciels parce que c'est une brique tellement difficile à mettre en œuvre qu'on s'appuie sur de l'existant mais que cet existant a des contraintes.
- 1:09:31C'est vrai que quand il y a eu aussi la mise en application du
- 1:09:34RGPD.
- 1:09:35Tout simplement,
- 1:09:35là,
- 1:09:36ça a demandé beaucoup de modifications,
- 1:09:38et là,
- 1:09:38c'est une réglementation qui évolue,
- 1:09:41et là,
- 1:09:41ça demande de mettre à jour,
- 1:09:44de rajouter des choses qui n'étaient pas prévues au départ dans un logiciel,
- 1:09:48et là,
- 1:09:49ça demande...
- 1:09:50Pas mal de boulot,
- 1:09:51je sais que ça a été compliqué dans pas mal de boîtes,
- 1:09:55la question RGPD.
- 1:09:56Oui,
- 1:09:57parce que le RGPD implique ne serait-ce que de pouvoir exporter tes données en tant qu'utilisateur.
- 1:10:03Donc en fait,
- 1:10:04il faut dans le logiciel en mettre en œuvre tout ce qu'il faut pour récupérer toutes tes données un peu partout et te permettre de les sortir de là,
- 1:10:12de les exporter,
- 1:10:13d'en avoir une copie complète.
- 1:10:14Et ils sont aussi censés te permettre de supprimer ou d'anonymiser en fonction des cas.
- 1:10:19peut être supprimé ou pas,
- 1:10:20parce qu'il y a des choses que techniquement tu ne vas pas pouvoir supprimer,
- 1:10:22mais du coup tu vas devoir basculer en anonymisation pour pas qu'on puisse remonter ta trace et en même temps que le logiciel continue à fonctionner.
- 1:10:31Quand elles sont reliées entre elles,
- 1:10:34si tu casses un bout,
- 1:10:35tu peux casser beaucoup de choses à côté,
- 1:10:36donc la suppression n'est pas si simple.
- 1:10:39Et après,
- 1:10:40en plus,
- 1:10:40tu dois rajouter d'autres contraintes,
- 1:10:41puisque notamment sur les parties RGPD,
- 1:10:43ça peut rentrer en
- 1:10:45contradiction avec d'autres règles de sécurité informatique en fonction de ton secteur et de la sensibilité,
- 1:10:50par exemple dans la santé ou d'autres domaines,
- 1:10:53la durée de rétention des données n'est pas la même.
- 1:10:55Et du coup,
- 1:10:56c'est toujours celle qui est en vigueur la plus critique,
- 1:10:58on va dire,
- 1:10:59qui va prendre le pas sur le RGPD et qui va le rendre caduque.
- 1:11:03Parce que si le RGPD te dit combien d'années il faut en standard pour la rétention des données,
- 1:11:12mais si d'un point de vue légal,
- 1:11:13on te dit que non,
- 1:11:14sur cet usage-là de santé,
- 1:11:16il faut garder les logs et la traçabilité pendant 10 ans.
- 1:11:19Pendant 10 ans,
- 1:11:19tu ne vas pas ni supprimer ni anonymiser parce que c'est une obligation légale d'avoir ces infos-là.
- 1:11:25Du coup,
- 1:11:25c'est des choses à prendre en compte,
- 1:11:27à mettre en œuvre d'un point de vue métier et d'un point de vue technique,
- 1:11:30ce qui peut amener plein de galères.
- 1:11:32C'est là qu'on peut se rendre compte que c'est pertinent d'essayer au maximum de découper pour qu'on puisse presque y aller de manière chirurgicale pour modifier.
- 1:11:42Alors,
- 1:11:42ça ne sera pas possible
- 1:11:44de ne pas impacter et juste avoir des Legos qui sont fixés de manière,
- 1:11:50on va dire,
- 1:11:51simple,
- 1:11:51sans dépendance.
- 1:11:53Mais à un moment,
- 1:11:53il faudra quand même impacter d'autres fonctionnalités.
- 1:11:56Mais si c'est bien découpé,
- 1:11:59ça se passera mieux que si c'est un gros mélange où il faut se dire,
- 1:12:07si je modifie là,
- 1:12:08qu'est-ce que ça va casser autour ?
- 1:12:10mais en même temps,
- 1:12:11si je casse tout ça,
- 1:12:13est-ce que c'est...
- 1:12:13plus grave que de ne pas être en conformité.
- 1:12:17C'est là que typiquement,
- 1:12:18avoir une base de données bien structurée est fondamentale.
- 1:12:21Parce que tes éléments vont quand même être liés les uns les autres entre les différentes tables,
- 1:12:26entre les différentes entités d'information.
- 1:12:29Mais plus cette structure est efficiente,
- 1:12:32plus justement tu vas pouvoir identifier les infos qui vont bien,
- 1:12:36jongler d'une relation à une autre pour prendre ce que tu as besoin ou justement supprimer ou analyser ce que tu as besoin.
- 1:12:43sans tout casser.
- 1:12:44Et là où,
- 1:12:45comme on disait au tout début,
- 1:12:48comme le cas de l'adresse ou ce genre de choses,
- 1:12:50si c'est un seul tenant,
- 1:12:51un seul bloc d'informations,
- 1:12:52et dedans vous avez une info à enlever,
- 1:12:53mais qu'en fait,
- 1:12:55si vous enlevez cette info,
- 1:12:56vous êtes obligé d'enlever l'entièreté de l'adresse.
- 1:13:00Sinon,
- 1:13:00on va prendre l'exemple de l'adresse.
- 1:13:02Mais en fait,
- 1:13:02dans votre adresse,
- 1:13:03vous n'êtes plus à l'étage,
- 1:13:04vous êtes au rez-de-chaussée.
- 1:13:06Et si c'est un seul tenant,
- 1:13:09vous cassez toute l'adresse,
- 1:13:10vous supprimez toute l'adresse.
- 1:13:12Dans notre cas,
- 1:13:12vous allez juste mettre à jour une information de moi.
- 1:13:15Ça ou par exemple si l'adresse c'est un seul bout,
- 1:13:19de se dire,
- 1:13:19je ne sais pas,
- 1:13:20demain il y a la réglementation qui change et les codes postaux changent.
- 1:13:25Ça peut être pratique que le code postal soit isolé tout seul et qu'on n'ait pas à remodifier tout et peut-être essayer de l'isoler alors que tout est imbriqué.
- 1:13:35Je pense que ça a été un peu le cas avec ce qui se passait avec le RGPD.
- 1:13:39penser aussi dedans comment est-ce que notre chemin de données,
- 1:13:43comment est-ce que c'est stocké,
- 1:13:45comment est-ce que les données sont séparées,
- 1:13:47comment est-ce que les rends accessibles...
- 1:13:50Et même d'ailleurs,
- 1:13:51aujourd'hui,
- 1:13:51quand tu fais un programme de zéro,
- 1:13:53si tu ne penses pas à ta conformité à RGPD au début,
- 1:13:55on ne va pas se mentir,
- 1:13:57c'est chiant.
- 1:13:58Comme l'accessibilité,
- 1:14:01c'est à penser dès le début et pas à la fin.
- 1:14:03Oui,
- 1:14:03clairement.
- 1:14:06Allez,
- 1:14:07on embraye.
- 1:14:07On a bientôt fini,
- 1:14:08si vous êtes encore avec nous.
- 1:14:10on est presque alors on va terminer plus rapidement donc suite au test on a fait tout le panel et on va revenir au fameux concept de mise en production de quoi on parle ?
- 1:14:23Quand on développe alors on va avoir une structure classique,
- 1:14:28encore une fois selon les boîtes il peut y avoir plus ou moins d'environnement mais là le standard ça va être de se dire on a trois environnements,
- 1:14:34un qui est là pour le développement
- 1:14:36Donc c'est là où vos équipes de développement,
- 1:14:38vos développeurs et développeuses vont faire justement les différentes briques de code dont on a parlé tout à l'heure et leurs différentes versions,
- 1:14:45leurs PR,
- 1:14:45et balancer tout ça quelque part et ça arrivera généralement en dev.
- 1:14:49où vous avez la version de votre Google Doc dont on parlait tout à l'heure,
- 1:14:54de votre document complet.
- 1:14:55Vous avez la version la plus à jour,
- 1:14:57la plus fraîche,
- 1:14:58mais celle qui est aussi le plus fragile parce qu'elle a eu des tests unitaires,
- 1:15:02etc.
- 1:15:02Elle peut avoir plus ou moins de tests end-to-end et tout,
- 1:15:05selon le process de la boîte,
- 1:15:06mais elle est dans un environnement qui est prévu pour être cassée,
- 1:15:10en quelque sorte.
- 1:15:11OnDev,
- 1:15:11c'est vraiment votre environnement de bordel.
- 1:15:16Au-dessus,
- 1:15:16vous allez avoir...
- 1:15:17L'environnement dit de staging ou de pré-production,
- 1:15:21ça peut être deux environnements différents.
- 1:15:23Vous pouvez avoir un environnement dit de recette,
- 1:15:25un environnement de staging.
- 1:15:28Là,
- 1:15:28vous pouvez avoir plusieurs paliers,
- 1:15:30mais si on part du principe que vous en avez qu'un,
- 1:15:32c'est un environnement de pré-production.
- 1:15:36En gros,
- 1:15:37lui,
- 1:15:38il est là pour ressembler le plus possible à votre production.
- 1:15:42L'environnement de production étant celui que vous,
- 1:15:44vous avez dans les mains en tant qu'utilisateur et utilisatrice.
- 1:15:47Mais en fait derrière un environnement de production,
- 1:15:49ou un environnement des autres,
- 1:15:51il y a plus que juste l'écran et le bout de code,
- 1:15:55il y a aussi toute la partie infrastructure.
- 1:15:58Parce que concrètement,
- 1:15:59votre équipe de développeurs,
- 1:16:02s'ils sont 5,
- 1:16:03du coup ils n'ont pas besoin d'avoir énormément de ressources matérielles derrière pour faire tourner l'application.
- 1:16:08Ils n'ont besoin que d'une version légère.
- 1:16:10Mais en revanche sur la production,
- 1:16:11si vous avez 10 000 utilisateurs,
- 1:16:13il faut que derrière vous ayez des serveurs des ordinateurs,
- 1:16:15des machines,
- 1:16:16un réseau des mesures de sécurité des tests,
- 1:16:20des sauvegardes etc qui soient proportionnés pour supporter ces 10 000 utilisateurs et en fait le staging va être l'entre-deux votre environnement de pré-production il va être déjà plus sécurisé plus
- 1:16:35vérifié que l'environnement de dev il peut avoir éventuellement des données enfin pas
- 1:16:41pas forcément issus de la production,
- 1:16:42mais en tout cas qui reflètent des données de production,
- 1:16:44qui sont des données plus complètes,
- 1:16:46là où on dev,
- 1:16:46on va avoir un peu plus de données vraiment de tests,
- 1:16:49de brouillons,
- 1:16:49on va aussi avoir des vraies applications pour s'entraîner,
- 1:16:52mais voilà,
- 1:16:53qui va être un peu à part.
- 1:16:56Et votre staging,
- 1:16:57donc,
- 1:16:58c'est vraiment l'hybride de se dire,
- 1:17:00il doit ressembler le plus possible à la production en termes de type de données,
- 1:17:05en termes de type d'exemples,
- 1:17:06en termes de profil utilisateur,
- 1:17:08en termes de
- 1:17:09pas de nombre de gens,
- 1:17:10ça ne pourrait jamais répliquer autant,
- 1:17:12ou alors si,
- 1:17:12d'ailleurs je dis ça,
- 1:17:13mais il y a des tests qui permettent de le faire,
- 1:17:15mais voilà,
- 1:17:15c'est votre entre-deux,
- 1:17:17et justement,
- 1:17:17la fameuse mise en production,
- 1:17:18c'est de se dire,
- 1:17:19ok,
- 1:17:20donc sur staging,
- 1:17:21on a tout qui est bon,
- 1:17:22tout a été testé par le service qualité,
- 1:17:25tout est arrivé jusque-là,
- 1:17:27on s'est rendu compte aussi que sur notre environnement de staging,
- 1:17:30qui ressemble le plus possible à la prod,
- 1:17:32entre dev et là,
- 1:17:33on a eu un problème quand on est passé de l'un à l'autre,
- 1:17:37problème de déploiement,
- 1:17:38de...
- 1:17:39où,
- 1:17:39en fait,
- 1:17:39quand on a mis à jour,
- 1:17:41on s'est rendu compte qu'il y a un truc qui ne s'est pas bien passé côté infrastructure,
- 1:17:44parce qu'il y avait un tunnel qui était bouché,
- 1:17:47ou parce qu'il y avait un truc de réseau qui ne marchait pas bien,
- 1:17:49ou parce qu'il y avait une fonctionnalité qui marchait bien dans l'environnement de développement,
- 1:17:53mais en fait,
- 1:17:54sur l'environnement de pré-production,
- 1:17:56on se rend compte qu'il y a un truc qui ne passe pas et que,
- 1:17:58je ne sais pas moi,
- 1:17:59les administrateurs par exemple,
- 1:18:00peuvent plus se connecter à l'application.
- 1:18:02Voilà,
- 1:18:02c'est ce genre de choses qu'on va pouvoir identifier quand on passe d'un environnement à l'autre.
- 1:18:06Et l'idée,
- 1:18:07c'est qu'en staging,
- 1:18:07on verrouille
- 1:18:09tout ou quasiment tout,
- 1:18:11pour que quand on envoie en production,
- 1:18:12donc quand on fait la fameuse mise en production,
- 1:18:15le programme arrive,
- 1:18:17prêt,
- 1:18:18il tourne.
- 1:18:19On sait là où il peut y avoir des pépins et on est prêt à les corriger dans la foulée.
- 1:18:24On a vérifié que tout ce qui était critique est bon.
- 1:18:28On fait de la surveillance et on garde le tout à l'œil.
- 1:18:33Et pendant la mise en production,
- 1:18:35c'est le moment où les équipes sont au taquet,
- 1:18:37prêtes à intervenir.
- 1:18:38pour soit corriger les pépins s'il y en a au moment où ça arrive la mise à jour est terminée soit si,
- 1:18:46c'est le pire scénario,
- 1:18:46si la mise à jour elle casse tout et qu'on n'arrive pas à débloquer le cas,
- 1:18:50de pouvoir faire ce qu'on appelle un revert enfin revenir à une version antérieure et ça pareil,
- 1:18:56il y a plein de manières de revenir,
- 1:18:58enfin plusieurs manières en tout cas de revenir à la version antérieure mais de s'assurer que la production elle est coupée le moins longtemps possible si jamais elle doit avoir un mètre.
- 1:19:09Et j'ai parlé de recettes sans expliquer ce que c'était,
- 1:19:11mais en fait la recette ça va être un peu l'ensemble des scénarios qu'on doit valider avant d'envoyer en production.
- 1:19:21Donc de se dire,
- 1:19:22on a un panel de tests,
- 1:19:24où il y a,
- 1:19:25je viens de bêtise,
- 1:19:251000 tests possibles,
- 1:19:27et on va estimer que ces 1000 tests doivent être remplis avant d'envoyer en production,
- 1:19:32ou alors on va estimer qu'il n'y en a que 700 qui sont nécessaires,
- 1:19:35ou 300,
- 1:19:35etc.
- 1:19:35Après ça,
- 1:19:36ça va dépendre un peu d'eux.
- 1:19:37la tambouille de chaque boîte,
- 1:19:38le niveau de complexité,
- 1:19:41la criticité aussi de la mise à jour.
- 1:19:43En fait,
- 1:19:43il y a des mises à jour qu'on va envoyer en production et sur lesquelles on sait qu'il y a peu de risques et donc un panel de recettes plus léger peut être raté.
- 1:19:52accepté et ben nécessité moins de temps,
- 1:19:56moins de risques etc.
- 1:19:57Là où ben en fait justement si on a fait une refonte plusieurs refontes de se dire ah oui mais non là il faut vraiment que tout tout soit vérifié jusque le plus possible pour qu'on ait le moins de pépins possible arrivé.
- 1:20:10Voilà dans l'idée sur les trois gros environnement est ce que représente une mise en production et raison pour laquelle on évite de la faire le vendredi parce qu'en cas de pépins vous vous flinguez un bout de week-end
- 1:20:22Voilà,
- 1:20:22ça c'est dans les pires cas.
- 1:20:24Et de manière générale,
- 1:20:25une des bonnes pratiques de mise en production,
- 1:20:27c'est de le faire en dehors des horaires où vos utilisateurs sont sur l'application.
- 1:20:34Et scénario,
- 1:20:35encore idéal,
- 1:20:36si jamais vous êtes obligé de le faire,
- 1:20:38enfin le coquin n'est pas idéal,
- 1:20:39mais si jamais c'est obligé de le faire pendant des heures d'ouverture où les gens sont là,
- 1:20:43parce que ça va prendre trop de temps de faire les changements,
- 1:20:46quand il y a des grosses refontes,
- 1:20:46etc.
- 1:20:47On peut avoir un temps de coupure qui est absolument nécessaire.
- 1:20:50Et dans ces cas-là,
- 1:20:50on prévient à l'avance de se dire « Attention,
- 1:20:53ce jour-là,
- 1:20:53de telle heure à telle heure,
- 1:20:54il peut y avoir des perturbations parce qu'on met une nouvelle version. »
- 1:20:57Ou alors
- 1:20:58« Pendant de telle heure à telle heure,
- 1:21:00le produit sera juste complètement indisponible. »
- 1:21:03Et voilà,
- 1:21:06prenez vos mesures et soyez attentifs à ça.
- 1:21:11Et ce jour-là,
- 1:21:12vous pourrez.
- 1:21:14Aujourd'hui,
- 1:21:14même chose en fonction du domaine et du niveau d'importance de l'application.
- 1:21:19généralement il y a aussi des...
- 1:21:22je vais pas voir le terme mais en gros il y a tout un plan qui enfin il y a un nom pour les plans qui permettent de fonctionner en mode dégradé et donc quand justement l'application est pas disponible en entièreté ou est coupée pour x raisons de
- 1:21:37quand même pouvoir faire tourner le programme dans une manière plus légère pour pouvoir bosser parce qu'on peut dire en fait ce jour là j'ai des fonctionnalités qui marchent pas mais au moins je peux bosser de bout en bout et ça théoriquement
- 1:21:49il faudrait avoir ce concept-là dans toutes les boîtes,
- 1:21:52de se dire,
- 1:21:53est-ce qu'il y a un mode dégradé dans l'application que j'utilise qui me permettra de bosser dans tous les cas ?
- 1:21:57Et si jamais ce n'est pas le cas,
- 1:21:59est-ce que j'ai un plan B,
- 1:22:01tout simplement ?
- 1:22:02J'ai des outils de secours qui vont me permettre de bosser ?
- 1:22:05Je ne sais pas si tu as le terme en tête,
- 1:22:06Lulu,
- 1:22:06pour le plan de...
- 1:22:08Non,
- 1:22:09je ne l'ai pas forcément,
- 1:22:10mais...
- 1:22:12Bon,
- 1:22:12j'essaierai de remettre la note dessus.
- 1:22:14En plus,
- 1:22:14il y en a quelqu'un dans la communauté de code qui...
- 1:22:17qui est spécialisé sur le sujet,
- 1:22:18qui en avait déjà pas mal parlé et fait du contenu dessus,
- 1:22:20mais je peux avoir l'appel à ça.
- 1:22:24Est-ce qu'on est bon sur la mise en production ?
- 1:22:25Et comme ça,
- 1:22:26on termine très rapidement pour la partie maintenance.
- 1:22:29Ouais,
- 1:22:29ça me semble bien.
- 1:22:32Là,
- 1:22:32je pense que vous avez compris pourquoi est-ce que on développe pas sur la partie qui est en prod.
- 1:22:37Je pense que là,
- 1:22:38c'est à peu près bon.
- 1:22:39Est-ce que on connaît,
- 1:22:41tout le monde connaît quelqu'un qui le fait,
- 1:22:42qui l'a fait ?
- 1:22:44C'est d'autant plus vrai.
- 1:22:46à l'ère du vibe coding et développement par IA ou même l'application qui est en ligne et de se dire je vais juste faire un petit fixe,
- 1:22:53je vais juste changer un petit truc et au final ça casse tout et c'est plus accessible c'est effectivement le vibe coding donc le développement assisté par IA que même si vous bossez seul même si vous bossez,
- 1:23:08d'autant plus normalement si vous bossez en équipe vous avez déjà les bons réflexes mais si vous bossez seul et que vous découvrez prenez le temps de vous former sur les
- 1:23:15les méthodes et les techniques de développement,
- 1:23:18et ne serait-ce que,
- 1:23:19parce qu'en fait,
- 1:23:19ça s'applique aussi.
- 1:23:20Alors,
- 1:23:20vous n'êtes pas obligé d'avoir un staging au milieu,
- 1:23:22mais en fait,
- 1:23:24vous avez quand même besoin d'éprouver ce que vous faites sur un environnement de développement,
- 1:23:29donc généralement en local,
- 1:23:31sur votre machine,
- 1:23:32et ensuite de l'envoyer en production,
- 1:23:34donc vraiment sur la partie que les gens utilisent.
- 1:23:37Mais aussi,
- 1:23:38dans le vibe coding,
- 1:23:39il y a moyen d'avoir des environnements de pré-production.
- 1:23:42Par exemple,
- 1:23:43sur Supabase,
- 1:23:44qui est un outil qui fait back-end,
- 1:23:48donc base de données,
- 1:23:49authentification,
- 1:23:49plein de choses,
- 1:23:50permet d'avoir des branches qui sont conformes d'un point de vue infrastructure avec la production.
- 1:23:56Et du coup,
- 1:23:56vous pouvez soit faire vos tests en local,
- 1:24:00puis envoyer directement sur la prod une fois que c'est validé,
- 1:24:04soit faire vos tests en local,
- 1:24:05puis passer par une branche dite de preview et de là envoyer vers la production,
- 1:24:11soit faire un espace d'hybride où vous faites vos tests.
- 1:24:14directement sur la branche de preview,
- 1:24:16vu qu'elle est prévue pour ça,
- 1:24:17dans tous les cas.
- 1:24:18Et voilà,
- 1:24:18il y a plusieurs approches,
- 1:24:19mais en tout cas,
- 1:24:19même en white coding,
- 1:24:21et différents outils le permettent,
- 1:24:23Gano le permet,
- 1:24:23enfin,
- 1:24:24voilà.
- 1:24:25Il y a plusieurs approches,
- 1:24:26mais en tout cas,
- 1:24:27la notion d'environnement et de ne pas bosser directement sur ce que les gens ont dans les mains est fondamentale.
- 1:24:31Et après tout ça,
- 1:24:35donc,
- 1:24:38dernier point,
- 1:24:39dernière étape,
- 1:24:41votre application est en production.
- 1:24:43les gens s'en servent,
- 1:24:44la dernière chose qui reste,
- 1:24:46c'est la maintenance et le support.
- 1:24:49C'est là où on va repartir un petit peu dans un cycle comme on a...
- 1:24:52On va refaire un peu tout le cycle,
- 1:24:53en fait.
- 1:24:54C'est-à-dire que les gens vont vous signaler des soucis,
- 1:24:58soit des bugs,
- 1:24:59soit des choses qui seraient bien de faire évoluer,
- 1:25:01soit des choses qui manquent et qui auraient besoin de nouvelles fonctionnalités.
- 1:25:05Et ça va repartir dans l'étape recueil du besoin pour comprendre tout ce qu'on vous demande.
- 1:25:10Est-ce que c'est pertinent ou pas ?
- 1:25:13Comment on peut le faire ?
- 1:25:14Comment on peut le traduire ?
- 1:25:14Quand c'est le cas d'un bug,
- 1:25:15est-ce qu'il est important,
- 1:25:16pas important ?
- 1:25:17À quel niveau ?
- 1:25:18qu'est-ce que ça implique comme effort de développement pour le réparer rapidement ou pas.
- 1:25:24Et ça repart dans tout le cycle derrière,
- 1:25:27de développement,
- 1:25:27de relecture,
- 1:25:28de test,
- 1:25:30des différents environnements,
- 1:25:31etc.
- 1:25:32Et c'est pour ça que,
- 1:25:33de toute façon,
- 1:25:34même si un bug est corrigé le jour même,
- 1:25:37ça ne veut pas dire que vous l'aurez le jour même,
- 1:25:38parce qu'il faut qu'il repasse par toutes les étapes.
- 1:25:41Et qu'on ne fait pas une mise en production à la légère.
- 1:25:46Donc vous avez besoin...
- 1:25:49d'attendre généralement d'avoir plusieurs choses qui sont prêtes et développées en même temps avant de faire une mise en production.
- 1:25:55Et selon les boîtes,
- 1:25:56vous pouvez avoir une mise en production chaque semaine,
- 1:25:58chaque deux semaines,
- 1:25:59chaque mois,
- 1:25:59chaque deux mois,
- 1:26:00enfin du coup c'est très variable.
- 1:26:04Mais c'est ça le principe.
- 1:26:05Et sachant que chaque correction que vous pouvez faire peut vous amener d'autres effets de bord et d'autres problèmes à côté.
- 1:26:11D'où l'importance des tests et de chaque étape qu'on a citée au paradis.
- 1:26:16Et c'est aussi pour ça que dans les boîtes,
- 1:26:17vous aurez généralement les équipes de support.
- 1:26:19Et pour avoir bossé dans le support dans pas mal d'années et dans plusieurs boîtes,
- 1:26:25je vous confirme que généralement,
- 1:26:26les équipes de support sont celles avec les équipes de qualité qui connaissent le mieux le produit dans son entièreté,
- 1:26:33parce qu'elles sont amenées à travailler au contact des gens et des retours utilisateurs directement,
- 1:26:38donc au contact des métiers,
- 1:26:40un terme qu'on a déjà évoqué pas mal de fois,
- 1:26:42et en même temps qui manipulent un petit peu.
- 1:26:45tout le programme de bout en bout et donc ils sont les plus à même de dire et de savoir il y a ça qui ne marche pas mais en même temps on a une nouveauté à tel endroit qui doit pouvoir impacter ici ou alors il y a peut-être un contournement par tel biais et ainsi de suite et voilà d'où l'importance aussi de la communication entre les différents services dans les boîtes parce que au
- 1:27:05développement et d'autant plus quand la boîte va être plus grosse et le produit plus volumineux et qu'il va commencer à avoir de...
- 1:27:13du legacy,
- 1:27:13donc du code qui est hérité parce que le programme a
- 1:27:165 ans,
- 1:27:1710 ans,
- 1:27:1715 ans,
- 1:27:1820 ans.
- 1:27:19C'est impossible d'avoir tout en tête à chaque fois qu'on fait quelque chose,
- 1:27:22peu importe le service.
- 1:27:23Et à ce titre-là,
- 1:27:26c'est de la communication entre les différents services qui va déterminer la qualité de votre produit et de votre application.
- 1:27:31Parce que si les infos transitent et que le support est en mesure de vous remonter,
- 1:27:35les choses qui vont et qui ne vont pas,
- 1:27:36et là où les utilisateurs râlent le plus,
- 1:27:38ou les pépins qu'ils ont le plus,
- 1:27:40la qualité...
- 1:27:41quand ils font les tests,
- 1:27:42si vous écoutez ce qu'ils vont vous dire et les évolutions et les ajustements qui seraient intéressants,
- 1:27:46c'est vraiment fondamental aussi et après les devs aussi ont leur mot à dire parce qu'ils sont complètement en mesure d'identifier quand il y a des problèmes de performance quand il y a des problèmes de des suggestions dites du hits par exemple un développeur qui va vous faire toute l'interface même
- 1:28:03si elle a été maquettée par un designer et par quelqu'un d'autre,
- 1:28:06peut très bien vous dire en fait là non
- 1:28:08vous m'avez donné ça comme consigne et je suis censé faire tel écran,
- 1:28:11mais en fait,
- 1:28:11il y a des choses pour moi qui ne vont pas à l'utilisation,
- 1:28:14ça va coincer pour telle et telle raison.
- 1:28:16Et voilà,
- 1:28:17donc à mon sens,
- 1:28:19la base d'une bonne application,
- 1:28:22ce sera la communication entre les différents intervenants d'un programme,
- 1:28:26de bout en bout,
- 1:28:27et de tenir compte du fait que chaque étape est importante et chaque personne que vous avez à chaque étape est importante.
- 1:28:34Et c'est vrai que j'avais vu certaines boîtes justement où...
- 1:28:38Parfois,
- 1:28:38on peut avoir l'idée que les devs sont un peu déconnectés de ce qui se passe et comment le produit est utilisé.
- 1:28:45Et justement,
- 1:28:45de faire tourner les devs aussi sur le support pour qu'ils soient au contact des utilisateurs et de se dire,
- 1:28:52ça fait une,
- 1:28:53deux fois qu'on me demande ça.
- 1:28:55Bon,
- 1:28:55je n'ai pas envie qu'on me redemande la prochaine fois,
- 1:28:57donc je vais le corriger.
- 1:28:58Et ça peut donner d'autant plus de sens à un geste qui va être soit correctif,
- 1:29:07adaptatif ou perfectif.
- 1:29:09Ça,
- 1:29:09c'est les différentes modifications qu'on peut faire.
- 1:29:13Mais c'est là où c'est intéressant de pas juste rester cloisonné.
- 1:29:18C'est vrai que c'est quelque chose qui est assez français,
- 1:29:21de cloisonner les différents métiers,
- 1:29:24les différentes compétences.
- 1:29:25Là où,
- 1:29:26par contre,
- 1:29:26par exemple,
- 1:29:27aux États-Unis,
- 1:29:27ils vont plus travailler par feature.
- 1:29:29Donc là,
- 1:29:30ça va être vraiment,
- 1:29:31on va travailler sur une fonctionnalité et...
- 1:29:35Il y a du bon et du moins bon dans chaque modèle,
- 1:29:38mais parfois,
- 1:29:40on peut manquer un peu de prise de hauteur et de se dire comment est-ce que ça s'intègre.
- 1:29:48tout le parcours parce que forcément chaque...
- 1:29:51compétences,
- 1:29:52chaque personne va avoir un biais par rapport à ce qu'il fait et de se dire,
- 1:29:56moi c'est plus important alors que le support va dire autre chose,
- 1:29:59le développeur va dire autre chose et en même temps,
- 1:30:01côté marketing ils vont encore dire autre chose et voilà,
- 1:30:04il faut réussir à faire communiquer tout ça et encore une fois la communication,
- 1:30:10de s'ouvrir aussi même sans forcément savoir le faire et que ça devienne nos compétences,
- 1:30:18là c'est un peu ce qu'on essaye aussi de faire avec cet épisode,
- 1:30:20de donner les clés pour
- 1:30:21pour pouvoir communiquer avec quelqu'un qui le fera ou si on a envie de se mettre à développer,
- 1:30:28d'avoir ce qu'il faut en tête pour avancer et apprendre.
- 1:30:32Oui,
- 1:30:33et là,
- 1:30:34on n'a pas détaillé toutes les méthodes parce qu'on vous en doutait.
- 1:30:37Là,
- 1:30:37on vous a donné les grandes lignes de choses qui reviennent à chaque fois dans un développement d'application.
- 1:30:42Mais il y a plusieurs méthodes de le faire,
- 1:30:45plusieurs méthodes de travail en équipe,
- 1:30:48il y a plein d'organisations,
- 1:30:49il y a plein de...
- 1:30:50Et voilà,
- 1:30:50comme on l'a dit,
- 1:30:51en fonction de la taille de boîte,
- 1:30:52en plus,
- 1:30:53ça va jouer.
- 1:30:54Mais ce qui est important de retenir,
- 1:30:57c'est les différentes étapes qu'on vous a données aujourd'hui pour que vous ayez en tête que quand quelqu'un fait un programme,
- 1:31:04qu'il soit tout seul ou que ce soit une équipe de 10 ou de 20 ou de 2000,
- 1:31:08derrière,
- 1:31:09ce n'est pas juste j'ai besoin de ça et on le couche sur un écran une journée.
- 1:31:15Même quand c'est rapide,
- 1:31:16même quand c'est tout seul avec du développement assisté parier,
- 1:31:18etc.
- 1:31:19Il y a tout un cheminement à avoir,
- 1:31:21toute une logique à avoir si on veut faire les choses bien.
- 1:31:23Et c'est là où il faut être aussi méfiant et vigilant quand on fait du vibe coding.
- 1:31:27Ça ne veut pas dire qu'il ne faut pas faire de développement assisté par IA,
- 1:31:29ça ne veut pas dire que tout ce qui est fait en vibe coding sera mauvais ou sera bon,
- 1:31:34parce que si il est fait,
- 1:31:35il le fera bien et tout.
- 1:31:36On a déjà évoqué le sujet,
- 1:31:38l'IA reste un outil.
- 1:31:40Potentiellement un très bon exécutant,
- 1:31:42mais derrière,
- 1:31:43c'est à vous de driver et d'avoir en tête le chemin justement et les logiques.
- 1:31:49Je j'ose espérer.
- 1:31:50En tout cas,
- 1:31:50je vous souhaite que la prochaine fois que vous discutiez avec quelqu'un de votre boîte ou un collègue ou de la famille ou des amis qui bosse dans un des services qu'on a évoqués aujourd'hui,
- 1:32:00ce soit un peu moins obscur pour vous de savoir quel rôle il a dans le chemin d'une application en tout cas.
- 1:32:09Même si effectivement,
- 1:32:09on n'est pas rentré dans le détail de chaque service.
- 1:32:14C'est de se dire que ce sont les grandes étapes d'un logiciel,
- 1:32:16mais après,
- 1:32:17ça peut être aussi une partie dans le logiciel.
- 1:32:19Et c'est là où on va justement arriver sur différents modèles,
- 1:32:23juste rapidement.
- 1:32:24Parce que je pense que tout le monde connaît l'agilité,
- 1:32:27la méthode agile.
- 1:32:28C'est vrai qu'on n'en a pas forcément parlé,
- 1:32:30mais là,
- 1:32:31ce qu'on a un petit peu décrit,
- 1:32:35c'est la méthode en cascade.
- 1:32:38même si c'est pas forcément celle qui qui me
- 1:32:42marche le mieux si on le fait à l'échelle d'un logiciel parce que là,
- 1:32:44c'est ok,
- 1:32:45on met des besoins,
- 1:32:46on développe,
- 1:32:47on développe,
- 1:32:47et puis à la fin le client,
- 1:32:48il a quelque chose et c'est potentiellement pas forcément ce qu'il attendait,
- 1:32:53donc c'est là où il...
- 1:32:56En fait,
- 1:32:57avec une approche itérative,
- 1:32:58t'as quand même ces cycles-là,
- 1:33:00d'une manière ou d'une autre.
- 1:33:01Oui,
- 1:33:01mais en plus petit.
- 1:33:05Enfin,
- 1:33:05c'est...
- 1:33:05Ouais,
- 1:33:06en plus petit.
- 1:33:07Sur un périmètre peut-être plus petit aussi.
- 1:33:09C'est ça,
- 1:33:09sur ton périmètre.
- 1:33:10c'est-à-dire que tu ne vas pas attendre 6 mois avant de donner ta première version,
- 1:33:14tu vas le faire,
- 1:33:15comme je disais,
- 1:33:16ça peut être une fois par semaine,
- 1:33:17toutes les deux semaines,
- 1:33:18tous les un mois,
- 1:33:19selon la taille de boîte et selon les versions.
- 1:33:21Mais ce cycle-là de développement,
- 1:33:25de test,
- 1:33:26de mise en prod,
- 1:33:27etc.,
- 1:33:27tout ça,
- 1:33:27il faut quand même y passer,
- 1:33:28le recueil des besoins aussi.
- 1:33:29Mais c'est vrai que dans la partie itérative,
- 1:33:33quand on va penser une nouvelle fonctionnalité,
- 1:33:34le recueil des besoins,
- 1:33:35on va le faire différemment.
- 1:33:37On va aller discuter avec les gens,
- 1:33:38on va aller faire...
- 1:33:39des fois des maquettes ou des prototypes qu'on va leur mettre dans les mains,
- 1:33:44qui ne seront pas dans la version finale que tout le monde utilise,
- 1:33:46mais qui seront réservées à un petit groupe d'utilisateurs et d'utilisatrices qui vont pouvoir utiliser cette version-là un peu bricolée et dire « en fait,
- 1:33:54ça,
- 1:33:55ça marche bien,
- 1:33:55ça,
- 1:33:55ça ne marche pas bien » .
- 1:33:56Et à partir de là,
- 1:33:57on va développer la vraie version qui sera intégrée au logiciel.
- 1:34:01Et dans les parties recueil de besoins,
- 1:34:03justement,
- 1:34:03ça va être plus ou moins long.
- 1:34:04Dans la partie développement,
- 1:34:05ça va être sur le prototype qui sera plus ou moins gros,
- 1:34:07qui sera intégré à une prochaine version.
- 1:34:10En tout cas,
- 1:34:10les grandes étapes sont là,
- 1:34:12même en mode itératif et même avec d'autres approches,
- 1:34:15mais effectivement avec des durées différentes,
- 1:34:19avec des périmètres différents et avec des actions qui peuvent être un peu différentes aussi.
- 1:34:24Il n'y a pas une méthode qui est meilleure que les autres.
- 1:34:27Ça va vraiment dépendre du type de logiciel développé,
- 1:34:30du type d'équipe.
- 1:34:33Il y a même des moments où la cascade ou le cycle en V reste pertinent par rapport...
- 1:34:39à une méthode agile,
- 1:34:40même mal appliquée,
- 1:34:41où on va faire un peu d'agilité de façade,
- 1:34:44ou du scrum.
- 1:34:45Il y a certains...
- 1:34:49contextes,
- 1:34:50notamment réglementaires ou alors qui vont toucher à toute la partie hardware,
- 1:34:54qui vont faire qu'un framework de développement sera plus pertinent qu'un autre.
- 1:34:58Donc c'est pas genre,
- 1:35:00si je me mets à développer,
- 1:35:01il faut forcément que ce soit avec une méthode agile.
- 1:35:06Il faut aussi se poser ces questions,
- 1:35:08c'est comme un peu dire il y a un meilleur outil qu'un autre,
- 1:35:11il y a un meilleur langage qu'un autre pour développer.
- 1:35:14A chaque fois,
- 1:35:14c'est en fonction,
- 1:35:15c'est qu'un outil qui va répondre.
- 1:35:17qui va aider à répondre du mieux possible à un besoin.
- 1:35:20Comme il y a,
- 1:35:20voilà,
- 1:35:21si elle peut être pertinente,
- 1:35:22c'est bien,
- 1:35:23mais ce n'est pas forcément une finalité.
- 1:35:26Oui,
- 1:35:27on est vraiment d'accord.
- 1:35:29Bon,
- 1:35:30on a fait notre plus gros et plus long numéro jusqu'à présent,
- 1:35:35mais au moins,
- 1:35:35vous avez le chemin complet.
- 1:35:38J'espère que ça vous aura plu.
- 1:35:39Il y a toute la partie sécurité aussi,
- 1:35:41mais ça,
- 1:35:42on peut le mettre dans les tests.
- 1:35:44Il y aurait,
- 1:35:45mais après,
- 1:35:45il y aurait...
- 1:35:46Mais voilà.
- 1:35:46Le bon logiciel,
- 1:35:47ce n'est pas infini,
- 1:35:48mais oui,
- 1:35:49il y aurait la partie sécurité,
- 1:35:50il y aurait la partie sauvegarde,
- 1:35:51mais tu as d'autres choses dans la maintenance,
- 1:35:53dans le support.
- 1:35:54C'est ça,
- 1:35:54mais ça,
- 1:35:54c'est comme on a dit pour les tests,
- 1:35:56il faut aussi la penser à chaque étape.
- 1:35:58Ce n'est pas à la fin,
- 1:35:58on vérifie que notre application est sécurisée.
- 1:36:02On va demander à Cloud Code,
- 1:36:04on vérifie si l'application est sécure et que c'est bon,
- 1:36:09les gens peuvent effectuer des paiements,
- 1:36:10créer des comptes sans souci dessus.
- 1:36:13Non,
- 1:36:13c'est aussi à chaque étape et ça inclure aussi dans les tests.
- 1:36:17Parfait.
- 1:36:18Merci Lulu de m'avoir accompagné sur cet épisode.
- 1:36:21On se retrouve la semaine prochaine pour la suite de notre épisode côté outils sur le développement de notre portail.
- 1:36:30Maintenant qu'on vous a expliqué tout ça,
- 1:36:32ce sera beaucoup plus simple à suivre.
- 1:36:34Et rassurez-vous,
- 1:36:36l'épisode sur la suite du portail sera plus court.
- 1:36:39J'espère qu'il sera plus court maintenant qu'on a pris le temps de tout expliquer.
- 1:36:43Oui,
- 1:36:43on a déjà fait une première moitié.
- 1:36:45pour vraiment aller montrer comment on a mis les mains dans le cambouis et puis avec des côtés,
- 1:36:50enfin outils là pour le coup.
- 1:36:54Oui.
- 1:36:54Voilà.
- 1:36:56Merci à tous et à toutes de nous avoir écoutés.
- 1:36:59On vous souhaite une bonne journée ou bonne fin de journée selon quand vous nous écouterez et on se retrouve la semaine prochaine avec Lulu.
- 1:37:06Salut.