[{"data":1,"prerenderedAt":1568},["ShallowReactive",2],{"tag-data-lyoncraft":3},[4,465,1062],{"id":5,"title":6,"alt":7,"authors":8,"body":16,"date":433,"description":434,"extension":435,"image":436,"meta":437,"navigation":438,"ogImage":436,"path":439,"published":438,"reviewers":440,"seo":456,"stem":457,"tags":458,"__hash__":464},"blogs\u002Fblogs\u002F2025-04-24-lyon-craft-2025-12\u002Findex.md","Lyon Craft 2025 1\u002F2","Photo de l’écran d’accueil au Lyon Craft 2025, présentant la liste des sessions prévues ainsi que le plan des lieux.",[9],{"id":10,"name":11,"image":12,"linkedin":13,"x":14,"bio":15},"67adfd77-4b84-4496-b55d-3391541f59c5","Michaël Bernasinski",".\u002Fassets\u002Fauthor-michael-bernasinski.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmichael-bernasinski",null,"Principal Lead - Software Engineer - HoppR Lyon",{"type":17,"value":18,"toc":424},"minimark",[19,27,44,47,52,58,65,68,71,74,102,105,122,133,140,147,150,153,164,170,174,179,185,188,191,200,208,219,225,233,236,245,248,281,284,295,298,311,317,325,330,336,349,352,360,363,366,405,408,414,418,421],[20,21,22,23],"p",{},"Retour sur la conférence Lyon Craft 2025 qui s’est déroulée le lundi 14 Avril 2025. Au programme, comme l’indique la conférence elle-même : “",[24,25,26],"strong",{},"Des passionné·e·s, des ateliers, des présentations et… c’est déjà pas mal !”",[20,28,29,30,37,38,43],{},"Une journée sur le thème du ",[31,32,36],"a",{"href":33,"rel":34},"https:\u002F\u002Fmanifesto.softwarecraftsmanship.org\u002F",[35],"nofollow","Software Craftsmanship"," donc, dans l’optique d’apprendre ou de se perfectionner dans ces thématiques avec des experts locaux. Après une séquence d’introduction et de remerciement des sponsors (dont ",[31,39,42],{"href":40,"rel":41},"https:\u002F\u002Fwww.hoppr.tech\u002F",[35],"HoppR"," qui était VIP), une vingtaine de sessions, couvrant talks et workshops (et même une table ronde) étaient proposées.",[20,45,46],{},"Je vous propose de revenir avec moi sur les sessions auxquelles j’ai assisté, en commençant dans cet article par celles du matin.",[48,49,51],"h2",{"id":50},"ia-générative-tdd-et-architecture-hexagonale-une-synergie-révolutionnaire","IA Générative, TDD et Architecture Hexagonale : Une Synergie Révolutionnaire ?",[20,53,54],{},[55,56,57],"em",{},"Par Florine CHEVRIER et Clément VIRIEUX",[20,59,60],{},[31,61,64],{"href":62,"rel":63},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fia-generative-et-architecture-hexagonale-une-synergie-revolutionnaire.html",[35],"Lien vers la conférence",[20,66,67],{},"Pour bien démarrer la journée, Florine et Clément nous proposent de réaliser un kata avec l’IA. Nous sommes donc directement plongés dans les sujets en vogue du moment.",[20,69,70],{},"L’idée ici : faire du TDD avec une IA en lui fournissant les éléments nécessaires pour développer une nouvelle fonctionnalité dans un projet front. Le contexte : nous avons une application bancaire très simple, et nous souhaitons mettre en place une fonctionnalité “nouveau virement” avec un bouton dédié.",[20,72,73],{},"Pour ce faire, trois outils seront utilisés ici :",[75,76,77,86,94],"ul",{},[78,79,80,85],"li",{},[31,81,84],{"href":82,"rel":83},"https:\u002F\u002Fgithub.com\u002Fcline\u002Fcline",[35],"Cline",", un agent IA qui vient s’intégrer à Visual Studio Code",[78,87,88,93],{},[31,89,92],{"href":90,"rel":91},"https:\u002F\u002Fwww.anthropic.com\u002Fclaude\u002Fsonnet",[35],"Claude 3.7 Sonnet ",", l’IA spécialisée dans le codage derrière Cline",[78,95,96,101],{},[31,97,100],{"href":98,"rel":99},"https:\u002F\u002Fopenrouter.ai\u002F",[35],"Open Router",", pour pouvoir switcher d’IA et être à l’état de l’art ou contrôler les coûts",[20,103,104],{},"À présent, comment communiquer avec cette IA ? Pour développer, elle va se baser sur un prompt indiquant :",[75,106,107,116,119],{},[78,108,109,110,115],{},"Des contraintes d’architecture, sous forme de tests. Nous souhaitons ici obliger l’IA à suivre une ",[31,111,114],{"href":112,"rel":113},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FArchitecture_hexagonale",[35],"architecture hexagonale"," déjà en place",[78,117,118],{},"Une capture d’écran d’une maquette Figma faite par un UX\u002FUI",[78,120,121],{},"Des tests Cypress, pour définir les règles de gestion fonctionnelles, et qui seront à la base de notre TDD. À noter que ces tests auraient été rédigés également pour un développement par un humain",[20,123,124,125,128,129,132],{},"Cline va ainsi d’abord passer une première phase ",[24,126,127],{},"PLAN",", pour indiquer ce qu’elle souhaite mettre en place, ainsi qu’une estimation des coûts de l’API. C’est une sorte de dry run si l’on veut. Ensuite, il sera temps de passer à la seconde phase ",[24,130,131],{},"ACT",", où l’IA va réellement coder pour nous.",[20,134,135,136,139],{},"À noter que Cline peut apprendre de ses erreurs. De nouvelles règles sont ajoutées au fur et à mesure dans un fichier ",[55,137,138],{},".clinerules",", un fichier texte lisible également par l’humain. Ici, ce sont les développeurs qui demandent à Cline de les ajouter quand ils sont confrontés à une erreur de l’IA.",[20,141,142],{},[143,144],"img",{"alt":145,"src":146},"Cline sur le Marketplace Visual Studio Code","\u002Fcontent-assets\u002F2025-04-24-lyon-craft-2025-12\u002Fassets\u002Fimg1.webp",[20,148,149],{},"Revenons à notre démonstration. Nous sommes ici plus sûr du test-first que sur du TDD en réalité, mais l’IA traite le prompt. Surprise (effet démo), Cline oublie lors de la présentation d’ajouter le bouton alors qu’il a développé la fonctionnalité. Les tests Cypress ne passent pas. Au deuxième essai, plus de problème, l’IA se base sur ce qu’elle peut lire dans le terminal, et est satisfaite de son travail : les tests Cypress passent. Effectivement, le bouton et la fonctionnalité sont présents et correspondent à l’attendu.(",[20,151,152],{},"Maintenant, Florine et Clément demandent à l’IA de développer la suite de la fonctionnalité : le formulaire du virement. Même principe : tests Cypress correspondants + capture d’écran en maquette. Les fonctionnalités sont présentes et tout fonctionne, le respect de la maquette est par contre très approximative, une problématique a priori très présente avec ce genre d’outils.",[20,154,155,156,159,160,163],{},"C’est d’ailleurs un bon point de ce talk, nos deux speakers restent critiques par rapport aux outils d’IA qu’ils utilisent. La démonstration est bluffante de rapidité, l’API de l’IA n’a coûté que 1,5$ pour cette démo. Mais le code, bien que répondant aux critères évoqués, n’est pas à la qualité d’un bon développeur humain. D’ailleurs, au quotidien, l’équipe laissent à Cline les droits de lecture, mais l’écriture passe par une validation manuelle. Et il y a d’autres subtilités à connaître qui viennent avec l’expérience de l’outil (",[55,157,158],{},"clinerules",", mauvaise gestion des erreurs, erreurs de compréhension de la maquette, gestion de la ",[55,161,162],{},"context window",", etc.).",[20,165,166],{},[143,167],{"alt":168,"src":169},"Florine explique les informations que Clément est en train de donner à l’IA","\u002Fcontent-assets\u002F2025-04-24-lyon-craft-2025-12\u002Fassets\u002Fimg2.webp",[48,171,173],{"id":172},"the-choice-must-go-on-mais-le-bon-de-préférence","The choice must go on, mais le bon de préférence",[20,175,176],{},[55,177,178],{},"Par Céline LOUVET",[20,180,181],{},[31,182,64],{"href":183,"rel":184},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fthe-choice-must-go-on.html",[35],[20,186,187],{},"Un sujet qui a été, est et sera toujours d’une importance capitale pour un projet, quelque soit le domaine : comment faire le bon (ou le moins pire) choix pour un projet ?",[20,189,190],{},"Tout d’abord, Céline nous confie la définition du projet réussi. Pour les décideurs, le respect du budget, du délai et la satisfaction utilisateur sont les principales métriques permettant de jauger la réussite du projet. À cela viennent s’ajouter, concernant les développeurs, leur bien-être et la maintenabilité du projet.",[20,192,193,194,199],{},"Viennent ensuite quelques chiffres issus du ",[31,195,198],{"href":196,"rel":197},"https:\u002F\u002Ffile.notion.so\u002Ff\u002Ff\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fce54b1c6-d205-4f58-b57c-a0c9c377767e\u002FCHAOSReport2015_rev.pdf?table=block&id=1dcf4462-cd38-80cf-9017-e873e03fa39b&spaceId=5863e833-64f2-4f13-9f7a-2c92c72b5bbf&expirationTimestamp=1745280000000&signature=PgRSPuAWReZL_sg2opmSPe1NqAHZsjtjcJLHQEb-fs4&downloadName=CHAOSReport2015_rev.pdf",[35],"CHAOS report"," :",[75,201,202,205],{},[78,203,204],{},"Le budget est respecté à 44%, le délai à 40%, le périmètre à 56%",[78,206,207],{},"Les projets réussissent à 36%, sont en difficulté à 45% et échouent à 19%",[20,209,210,211,214,215,218],{},"10 facteurs de mise en difficulté sont ainsi identifiés, dont on ressortira par exemple les ",[24,212,213],{},"besoins flous",", et le ",[24,216,217],{},"choix de technologies non maîtrisées",".",[20,220,221],{},[143,222],{"alt":223,"src":224},"Les 10 facteurs de mise en difficulté identifiés pour un projet","\u002Fcontent-assets\u002F2025-04-24-lyon-craft-2025-12\u002Fassets\u002Fimg3.webp",[20,226,227,228,218],{},"Première piste pour expliquer ces problématiques, les besoins flous. Se basant sur une expérience personnelle, Céline nous évoque un cas courant : l’expression d'une solution à la place du besoin. Comment s’en sortir dans ce cas ? En utilisant par exemple la fameuse technique des ",[31,229,232],{"href":230,"rel":231},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FCinq_pourquoi",[35],"cinq pourquoi",[20,234,235],{},"Ainsi, la demande “j’ai besoin d’un bouton pour télécharger un CSV” est devenue une page web dynamique avec des données financières et un envoi de mail avec cette même page en lien.",[20,237,238,239,244],{},"Également, attention à ne pas créer de faux besoins (",[31,240,243],{"href":241,"rel":242},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FProbl%C3%A8me_XY",[35],"Problème XY","), à identifier l’inconnu (ce qui manque de clarté) et à se concentrer sur le futur proche (plus on anticipe, plus c’est flou).",[20,246,247],{},"On se concentre ainsi sur la valeur à apporter, avec des critères d’acceptation par exemple, et on identifie ainsi les objectifs à atteindre tout en prenant compte des contraintes impossibles à ignorer (budget, temps, réglementation, etc.).",[20,249,250,251,254,255,260,261,266,267,270,277,280],{},"Il faut connaître l’existant (technologies, équipe, méthodes, dettes, etc.), et mettre par exemple en place un ",[55,252,253],{},"tech radar",", comme celui de ",[31,256,259],{"href":257,"rel":258},"https:\u002F\u002Fopensource.zalando.com\u002Ftech-radar\u002F",[35],"Zalando par exemple",". De même, on pourra mettre en place des ",[31,262,265],{"href":263,"rel":264},"https:\u002F\u002Fwww.redhat.com\u002Ffr\u002Ftopics\u002Fdevops\u002Fgolden-paths",[35],"golden paths"," pour répondre aux besoins les plus communs. Gardons en tête, comme Céline nous le répétera tout au long de son talk, qu’il n’y a pas de ",[55,268,269],{},"silver bullet (”",[31,271,274],{"href":272,"rel":273},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FPas_de_balle_en_argent",[35],[55,275,276],{},"No Silver Bullet",[55,278,279],{},"”)",", c’est-à-dire pas de solution miracle.",[20,282,283],{},"Trois complexités sont ici représentées :",[75,285,286,289,292],{},[78,287,288],{},"Essentielle, ce qui a trait au problème à résoudre",[78,290,291],{},"Obligatoire, liée à la technologie (et donc à un choix)",[78,293,294],{},"Accidentelle, liée à de mauvaises décisions (et donc à un choix)",[20,296,297],{},"Nous avons la main sur les deux dernières, qu’il nous faudra viser à réduire.",[20,299,300,301,304,305,310],{},"Un conseil : tous les choix devraient être tracés dans des ",[55,302,303],{},"decisions records"," (comme les ",[31,306,309],{"href":307,"rel":308},"https:\u002F\u002Fadr.github.io\u002F",[35],"ADR par exemple",") pour y expliquer les raisons du choix, et capitaliser sur ces décisions.",[20,312,313],{},[143,314],{"alt":315,"src":316},"La slide la plus utilisée lors de cette conférence : pas de “silver bullet”, c’est-à-dire pas de solution miracle","\u002Fcontent-assets\u002F2025-04-24-lyon-craft-2025-12\u002Fassets\u002Fimg4.webp",[48,318,320,324],{"id":319},"rex-le-craft-en-startup",[321,322,323],"span",{},"REX"," Le craft en startup",[20,326,327],{},[55,328,329],{},"Par Anne JACQUET et Philippe LEBOC",[20,331,332],{},[31,333,64],{"href":334,"rel":335},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Frex-le-craft-en-startup.html",[35],[20,337,338,339,344,345,348],{},"Anne et Philippe travaillent actuellement dans la start-up ",[31,340,343],{"href":341,"rel":342},"https:\u002F\u002Fwww.auxodynamics.com\u002F",[35],"Auxo",", fondée il y a quasiment deux ans (à peine moins âgée que ",[31,346,42],{"href":40,"rel":347},[35],"). Le produit proposé accompagne la transformation durable des entreprises, à partir de leurs données financières et opérationnelles. L’équipe technique se compose d’une dizaine de personnes développant le produit. Les technologies employées : Java \u002F SpringBoot, Vue.js et AWS.",[20,350,351],{},"Nos deux speakers sont les deux développeurs backend de l’équipe. Ils commencent par nous faire un rappel de certains concepts :",[75,353,354,357],{},[78,355,356],{},"Monolithe \u002F Monolithe distribué \u002F Microservices \u002F Nanoservices",[78,358,359],{},"Synchrone \u002F Asynchrone",[20,361,362],{},"La solution technique est ici partie sur des microservices asynchrones, qui échangent des messages via Kafka. Mais un des microservices a ensuite nécessité des appels synchrones, nous sommes donc ici sur un mix des deux. Les microservices partagent tous une “shared library” commune, contenant de la configuration, des briques techniques, des concepts métier partagés, etc.",[20,364,365],{},"Nous passons ensuite en revue de nombreux concepts mis en place sur leur produit, dont certains biens connus des crafteurs :",[75,367,368,371,380,383,391,394,397],{},[78,369,370],{},"Architecture hexagonale",[78,372,373,374,379],{},"Pyramide de tests : Unitaire > Intégration > Comportement (",[31,375,378],{"href":376,"rel":377},"https:\u002F\u002Fcucumber.io\u002F",[35],"Cucumber",") > End-to-end",[78,381,382],{},"Respect des principes REST (PUT vs PATCH par ex.) et comment cela est mis en place (idempotence, pagination, etc.)",[78,384,385,390],{},[31,386,389],{"href":387,"rel":388},"https:\u002F\u002Fwww.openapis.org\u002F",[35],"OpenAPI",", contrats entre front et back",[78,392,393],{},"Assertions dans le domaine, exceptions dans le domaine traduites ensuite et renvoyant un statut HTTP adéquat",[78,395,396],{},"Annotations Java pour valider request body, query parameters et path parameters",[78,398,399,404],{},[31,400,403],{"href":401,"rel":402},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOptimistic_concurrency_control",[35],"Optimistic lock"," pour des questions de performance",[20,406,407],{},"Au final, Anne et Philippe font ici un tour complet de tout ce qui a été mis en place pour assurer la qualité du produit et de son implémentation technique. On voit ici que tout ce qui a été mis en place l’a été pour une bonne raison. Ces conseils ne sont d’ailleurs pas spécifiques à un contexte de startup.",[20,409,410],{},[143,411],{"alt":412,"src":413},"Fin de conférence pour Anne et Philippe","\u002Fcontent-assets\u002F2025-04-24-lyon-craft-2025-12\u002Fassets\u002Fimg5.webp",[48,415,417],{"id":416},"fin-de-cette-matinée","Fin de cette matinée",[20,419,420],{},"Après cette belle matinée et tous ces concepts craft abordés, la faim se fait sentir, et il est temps pour tout le monde de profiter d’un déjeuner bien mérité.",[20,422,423],{},"Je vous propose de continuer ce retour de conférence dans un second article à paraître, où nous parlerons front, regard scientifique et… Smalltalk !",{"title":425,"searchDepth":426,"depth":426,"links":427},"",2,[428,429,430,432],{"id":50,"depth":426,"text":51},{"id":172,"depth":426,"text":173},{"id":319,"depth":426,"text":431},"REX Le craft en startup",{"id":416,"depth":426,"text":417},"2025-04-24T14:50:16.697Z","Retour sur la conférence Lyon Craft 2025 qui s’est déroulée le lundi 14 Avril 2025. Au programme, comme l’indique la conférence elle-même : “**Des passionné·e·s, des ateliers, des présentations et… c’","md",".\u002Fassets\u002Fcover-image.webp",{},true,"\u002Fblogs\u002F2025-04-24-lyon-craft-2025-12",[441,446,451],{"id":442,"name":443,"image":444,"linkedin":445,"x":14},"0bb914a6-f882-4951-bee6-53e8e8abb807","Emmanuelle Gouvart","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466ZZP3LNIZ%2F20250424%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250424T145016Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEH8aCXVzLXdlc3QtMiJGMEQCIAD4hutXa0ml3Y8EZ316barAph9dGk3IRKbBJ6H2NPkkAiAdQG9T0owlAUFInwuzoMAQM01j1NtLiiZG2jW%2FT%2FjX9Sr%2FAwgYEAAaDDYzNzQyMzE4MzgwNSIMTN%2FWccyZZyqeFjXDKtwD7likSB1JMnGkfv56Ja%2BDQbgTvr%2FuJpffy5MHg%2BJJ%2BVxIrE8T7Zw7%2BvvkaExh1fWWPq67xJJ0DJDM%2Ft9Www2JFLzAGwhWQRoTTDxSWuHpSpf6kwgapJaMIAA%2FclFRJnE%2FHc3xXXWWELIAgjzltcVwh5cbNj8JI5Qp3gDQztRRhTnx7%2B0demwgkRXJMsTvGl37RLwMb29yHrc3yR6JnZOKM9T25ZXu95SRD9xAmJkCp209j5R04n0Yjy0QJ7Sni32FBwcRJhh6Wg1e2Kyk80QnjAQ7lNCH6EoRDSV8Fe%2FH3ZKYqFdDNa5lEUwIOt7SnGG%2FGtQu2kIlEb%2FS0SgpQBKpGtuDPe7G%2F3sQ2pI8NLWlUqEfikpjbDnR3OINc7Gz3lxesdG9U6YBSK%2F25acDDqAgrv7KtTidxsXrLao8hWQ38TEpwQQSicWbPT1yM3bIZbnPNOy9Bt2qCfA0q60kftPkXY2g5Lo6HrMP1zWlYV2FRxivvTHB5q%2FYBPLz0%2FqsN3b5gGo8kcQUso9UP4toIrOUjXDXUX28ntdwfdHzDltQAmuPUmPNiVjPcCBRItdwRVXUdtEBIalb3JDRTk1YDxz7PIOCQsLGq2IvdfqryYvGXGfIe5R%2FD0wSqVzRjLowpJ6pwAY6pgEgu8gqJrHbvb0l%2B2yitK%2FU094ki4AwNAQuta9J%2BzV%2BzNuwqbK%2F44yu4xRTm5GmLX20gbrkJdK1hmfEQ6Yvq0gfsLRcah%2F5nVaybYz4ggsj4RjepHqij2rdOpB%2B9mDEVs2hzbADQQSC%2B2Xa8Ial%2BLh0RvQv%2FnGulFlegFMIg%2BewQwGSHiAjqGXjZFix8O5Kep53wEA8nmg8sXPTkR6XCqygwwUJAItM&X-Amz-Signature=ea9ad56797425f78e31cddc4a233f3fb6f6a3d762a4de2d79c59c807a7fd2c48&X-Amz-SignedHeaders=host&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Femmanuellegouvart-182b6ab2\u002F",{"id":447,"name":448,"image":449,"linkedin":450,"x":14},"70a8663a-742d-4937-a6d4-5cef079b12c8","Théo Lanord","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F53946b9e-3bb9-45bd-a8b4-429c51156179\u002FT04PC176TGB-U05EW3YF61Z-5e129f612df3-512.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466ZQTQSD5B%2F20250424%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250424T145016Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEH4aCXVzLXdlc3QtMiJIMEYCIQDbg0WLCaqDYBaT5EAm90fC9VoyYCY744P%2B1c3G4qB%2ByQIhAM36Uk9ob7vyZOspNUFT728A6IE7FMyTluR9N6yZIWZNKv8DCBcQABoMNjM3NDIzMTgzODA1IgxwBrjSMTqOr1iBNTkq3AOkQ79%2BucvRaAFugoBvlSJSfacPAIgOWapcuAgBDgIZ8t6ucyaNiHnoN8RJQf%2FsUFXbmNZOi7QsD%2F8kn5fpfedw%2BDrtUHhOgSREmYFSeYUX4j0gKDARi4R7gJVa0atIUnSEiqXcpxljIGEaJlhVpuZu3cI6TdRRCvBO%2FkHFnh%2FMsWBA23IGHMJ1wzVZP23rwOcU%2BPb6Fee4AN6y%2BmxJuv6KGk6745C65PQvJrhBonJ1xHYywuFqr2GgYXuUPB7csZ%2FzzYo%2BA0xYXIhkf5qETQqYXwbGBDxJDT5xYyZiqiGr7xhtPRrKb%2F0eJfdUoBXTNr3alIIexaZ2j%2FUk9WREQBtyRuvZxJfIBz053pG2%2FzII6mFzE7T5PeuhfeYG6bSYiVOV3RYhueioXzukCtuBDzv0U9nT5i98QQZd2HX7rGlFW8gU3BiEwCYLP0A4yVuckpgFKy5bzU3ri9BrDBxBUhZtDdl%2FQAvibikqUv5xqK9DbYuE7UzzF7x1B%2FCjIGdRT648ftoW22ktXjYNMygX5URd8CHEJFTgCpXUqGF3MVgCRZ%2F%2FeWK6dV9h7ZoeXiGpPnHsZf8ikcN2JR5PQsF3roTMauTBpbHak62F14FkazBMpu0IPYpdUacDvOCZ1jDGgqnABjqkAZeHxXrKXw%2FyxBY0qW0PJk%2Fqwy%2FzyEtCN3aab7YFWGbU1XZ7wZg1wMEmfandoQ%2FF9QDrKfu6vDxaWidbSI%2Bqhc9%2BxMtpFIp8mwOXqFBUJyQedEzox0S20vcgrYK7yS%2BNppUdMCz1QWCmd8RAB3PZHWVDw6FxvJE5ObD14am0QJf3JYZDzVfvLjKSL8dbXCpHRZ8Lh7bP3AHjubFmBqIKqx9hjJJs&X-Amz-Signature=4b999cb952cb26fd3de1e914824e91a2eb46e1bf095d9dc88f2a653b3c2f1104&X-Amz-SignedHeaders=host&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fth%C3%A9o-lanord\u002F",{"id":452,"name":453,"image":454,"linkedin":455,"x":14},"4f37105b-9f64-4dcc-8a19-a1f4d5489826","Samuel Bally","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fb8425b05-a0a4-4560-964d-259e8a84c063\u002Fsamuel.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB4662CQLWNJA%2F20250424%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250424T145016Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEH4aCXVzLXdlc3QtMiJIMEYCIQCmhL9dbISruox6fMvLj6hlUJwDL2RNROCNk%2BRnyXewpAIhAPIZL8fOAQYfTbrQhTi1roY4yx9Y4wlxLIexFvMQ8SxfKv8DCBcQABoMNjM3NDIzMTgzODA1IgxKEHa2%2BtpiCyu7zb4q3ANQvi91jPvQtMl6sDwBYHgyOYunstmWOnOtycBpk8d2NIALAsY8hqSc5vdD2oApdfs%2BUQIHYZQ1qEm2OyVx7UYR6O4ftWad0slO4MKujNa3%2BQzNSa24AWMSWQEnvvtwFi8Rd0I9Q8dD8xmROSgGgJbKYxkU96LJg25t4uKHYUyTlZ1F6jkIV9PtKWMLJ0XM7fVrDrHObwgND4g3ngRTArfVxNR3LaIvoNHvHuOkduBpf%2F0uzIE6glxdSb0wzTW74DZUTv%2F68rI%2Fnw6ePZRTJTYmFk0fxy%2BifaPRO7%2B9CjT2eA4xak9ibyRakRnoxJI%2Fkwe6FctuAYBzsttofBD8eQREOxcp%2BqesuA4KkHUIe9oR4%2FOV8GD9vBX3xtpZcodp97CvsECaxbBmVRVhBLna4I7MZcc7ISurFOEBh3JM1%2FHdVvcXrkWMZXcsYnvMtonQRbXx0jp4gy3J0NigBQDYvUQZV6%2F7TTqpIhCig%2Fzc0UCn3kQp8jTn%2FJQFnZ0KkTDPIiEyKDixz42R%2B5uTU2bWP8CmnQST2BIl2yoxVeUMZJkyaG7Q6pA%2Bvm3gFjJubT11CeEwZckBuf%2FP1HAPkl6iKEDik4szHdjg4vI2sRvP0s8V%2BBVinUfBLcRIWCi65jDWg6nABjqkAbyEEgUPtQBKSOClV6oaBk3mWzg%2BSZcaOqklt6UcxlmfihqrfgPXbDJl0JXZkWJOPhbq8gg4sffVR9w1Sun0twXdMHAP0Ek2NyRy0PxQVgS0k1q%2FHCaUH0kPyma8c3pj96t6ckwXeXsBY%2FBYOV7Jk3FZJ6%2BrfQUitMPu2EzyziL8JenDdqjasIspgXU8X8qwMX3ZxV4TItv9BQsVYjc6j2C25O2q&X-Amz-Signature=1dab69f2b448359e58c91caae1e683bb810dc844845994020bbdd895da8d33b5&X-Amz-SignedHeaders=host&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsamuel-bally\u002F",{"title":6,"description":434},"blogs\u002F2025-04-24-lyon-craft-2025-12\u002Findex",[459,460,461,462,463],"événement","2025","craft","veille tech","lyoncraft","jFHeN_vE4754YUxM_v7GqIcWHM7CX1NhHlTYZ6TWTPs",{"id":466,"title":467,"alt":468,"authors":469,"body":471,"date":1043,"description":1044,"extension":435,"image":436,"meta":1045,"navigation":438,"ogImage":436,"path":1046,"published":438,"reviewers":1047,"seo":1058,"stem":1059,"tags":1060,"__hash__":1061},"blogs\u002Fblogs\u002F2025-05-07-lyon-craft-2025-22\u002Findex.md","Lyon Craft 2025 2\u002F2","Photo de la scène principale du Lyon Craft 2025, avec le logo de la conférence, avant le talk de conclusion de la journée.",[470],{"id":10,"name":11,"image":12,"linkedin":13,"x":14,"bio":15},{"type":17,"value":472,"toc":1036},[473,482,486,491,497,503,516,534,543,554,561,567,570,573,588,594,621,636,651,668,671,682,697,701,706,712,715,724,731,752,761,767,778,785,800,815,821,830,836,839,856,865,884,891,906,912,918,921,927,934,939,942,953,959,968,971,974,985,996,999,1002,1006,1021,1024,1033],[20,474,475,476,481],{},"Cet article est la suite de ",[31,477,480],{"href":478,"rel":479},"https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-04-24-lyon-craft-2025-12",[35],"mon retour sur Lyon Craft",". Dans cette première partie, nous avions couvert les talks auxquels j’ai eu la chance d’assister dans la matinée. Place maintenant à un après-midi de Craft !",[48,483,485],{"id":484},"smalltalk-voyage-futuriste-dans-le-passé","Smalltalk, voyage futuriste dans le passé !",[20,487,488],{},[55,489,490],{},"Par Lionel ARMANET",[20,492,493],{},[31,494,64],{"href":495,"rel":496},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fsmalltalk-voyage-futuriste-dans-le-passe.html",[35],[20,498,499],{},[143,500],{"alt":501,"src":502},"Début de talk pour Lionel sur Smalltalk","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg1.webp",[20,504,505,506,511,512,515],{},"Tout commence par une discussion entre Lionel et un de ses collègues. Celui-ci vient pour son premier jour avec un livre, ",[31,507,510],{"href":508,"rel":509},"https:\u002F\u002Fwww.babelio.com\u002Flivres\u002FMartin-Coder-proprement\u002F125763",[35],"Coder Proprement"," de Robert C. Martin. Lionel parcourt ce livre, un classique du Craft, revient vers son collègue et lui dit \"",[55,513,514],{},"ton bouquin, c'est mon cours de Smalltalk de l'école","\".",[20,517,518,519,522,523,528,529,218],{},"S’en suit une plongée dans les années 70, au Xerox PARC ",[55,520,521],{},"(Palo Alto Research Center)",". Les créateurs de l’ordinateur ",[31,524,527],{"href":525,"rel":526},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FXerox_Alto",[35],"Xerox Alto",", un des premiers ordinateurs présentant une interface graphique, inventent le langage ",[31,530,533],{"href":531,"rel":532},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FSmalltalk",[35],"Smalltalk",[20,535,536,537,542],{},"Ce langage est le premier à utiliser les concepts clés de la ",[31,538,541],{"href":539,"rel":540},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FProgrammation_orient%C3%A9e_objet",[35],"POO",". L’idée sous-jacente est une métaphore du monde qui nous entoure, des objets et de leurs interactions. Les concepts objet ici :",[75,544,545,548,551],{},[78,546,547],{},"Encapsulation",[78,549,550],{},"Envoyer un message",[78,552,553],{},"Recevoir un message",[20,555,556,557,560],{},"Le Smalltalk est compilé en ",[55,558,559],{},"bytecode"," et interprété par une machine virtuelle, pour plus de portabilité. Jusque là, les amateurs de Java ne sont pas surpris. Et pour cause, Java s’inspire de Smalltalk !",[20,562,563],{},[143,564],{"alt":565,"src":566},"Hello World en Smalltalk","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg2.webp",[20,568,569],{},"Il est à noter que Smalltalk avait pour but de pouvoir être simple à apprendre (par des enfants par exemple), et à se rapprocher au plus du langage anglais naturel. En Smalltalk, on écrit plus qu’on ne code, et on finit nos instructions par un point.",[20,571,572],{},"Pour finir l’histoire, la Xerox Alto est un échec commercial. Steve Jobs ayant visité le Xerox PARC, reprendra l’interface graphique pour créer l’Apple Lisa puis les Macintosh, et l’Objective-C comme successeur au Smalltalk.",[20,574,575,576,581,582,587],{},"Place maintenant à une démonstration de Smalltalk en live avec Lionel. Il utilise ici ",[31,577,580],{"href":578,"rel":579},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FCuis_Smalltalk",[35],"CUIS",", et nous parle également de ",[31,583,586],{"href":584,"rel":585},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FPharo",[35],"Pharo",". En effet, une communauté Smalltalk existe toujours pour garder le langage vivant.",[20,589,590],{},[143,591],{"alt":592,"src":593},"Démonstration de Smalltalk par Lionel","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg3.webp",[20,595,596,597,602,603,608,609,614,615,620],{},"En Smalltalk, tout est objet, et tout peut se réécrire. La ",[31,598,601],{"href":599,"rel":600},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FM%C3%A9taprogrammation",[35],"métaprogrammation"," y est monnaie courante, et l’IDE lui-même (écrit en Smalltalk également) peut-être modifié. Ici, pas de ",[31,604,607],{"href":605,"rel":606},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FSucre_syntaxique",[35],"sucre syntaxique",", pas d’",[31,610,613],{"href":611,"rel":612},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FInstruction_conditionnelle_(programmation)",[35],"instruction conditionnelle",", mais du typage dynamique, des ",[31,616,619],{"href":617,"rel":618},"https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fsmalltalk\u002Fmanual-base\u002Fhtml_node\u002FBlockClosure.html",[35],"BlockClosures"," (équivalent de lambdas en Java par exemple) qui sont eux-mêmes des objets manipulables.",[20,622,623,624,629,630,635],{},"Lionel nous fait naviguer sur des concepts simples, comme les objets ",[31,625,628],{"href":626,"rel":627},"https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fsmalltalk\u002Fmanual-base\u002Fhtml_node\u002FBoolean.html",[35],"Boolean"," et ",[31,631,634],{"href":632,"rel":633},"https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fsmalltalk\u002Fmanual-base\u002Fhtml_node\u002FMessageNotUnderstood.html",[35],"MessageNotUnderstood"," (erreur de fonction introuvable). Etant des objets comme les autres, tous deux pouvant être également réécrits  !",[20,637,638,639,644,645,629,648,218],{},"La notion de test n’est pas présente à cette époque, mais il est quand même possible d’y faire une sorte de TDD. Smalltalk s’écrit en ",[31,640,643],{"href":641,"rel":642},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FApproches_ascendante_et_descendante",[35],"top-down"," et avec une approche très itérative en ",[55,646,647],{},"baby steps",[55,649,650],{},"red\u002Fgreen\u002Frefactor",[20,652,653,654,657,658,661,662,667],{},"Il nous est montré ici à quel point Smalltalk se veut ",[55,655,656],{},"simple & fluent",", se rapprochant vraiment de notions telles que le ",[55,659,660],{},"clean code",". D’ailleurs, le livre ",[31,663,666],{"href":664,"rel":665},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FDesign_Patterns",[35],"Design Patterns"," de 1994 donne des exemples en Smalltalk.",[20,669,670],{},"En conclusion, nous pouvons effectivement faire un parallèle entre les années 70 et maintenant. Beaucoup de concepts qui nous semblent novateurs de nos jours sont en fait tirés ou inspirés d’une époque très lointaine de la programmation. Lionel nous indique trois points qui en découlent :",[75,672,673,676,679],{},[78,674,675],{},"Changer l’anormal (remettre en question les choix, les paradigmes et langages utilisés)",[78,677,678],{},"Apprendre de tous (attention à une potentiel hiérarchie entre les développeurs)",[78,680,681],{},"Apprendre du passé (se baser sur toutes les connaissances du passé)",[20,683,684,687,688,695],{},[55,685,686],{},"Pour plus d’informations, voici un podcast où"," ",[31,689,692],{"href":690,"rel":691},"https:\u002F\u002Fpodcast.ausha.co\u002Fpunkindev\u002Fs05e10-aux-origines-du-craft-et-de-tdd-smalltalk-avec-lionel-armanet",[35],[55,693,694],{},"Lionel parle de Craft et de Smalltalk avec Sylvain\u002FPunkinDev",[55,696,218],{},[48,698,700],{"id":699},"du-style-au-sein-du-craft","Du Style au sein du Craft",[20,702,703],{},[55,704,705],{},"Par Aurélie BRACCO et Arnaud FREISMUTH",[20,707,708],{},[31,709,64],{"href":710,"rel":711},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fdu-style-au-sein-du-craft.html",[35],[20,713,714],{},"Aurélie et Arnaud, tous deux développeurs front, sont venus nous parler de concepts craft… graphiques !",[20,716,717,718,723],{},"Tout d’abord, nous assistons à une présentation de plusieurs concepts bien connus des devs front, comme par exemple le ",[31,719,722],{"href":720,"rel":721},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FSyst%C3%A8me_de_design",[35],"Design System",", comprenant les blocs de construction et normes à adopter pour un projet \u002F une organisation. Les avantages : cohérence de produit et de marque, collaboration simplifiée, temps de conception diminué, et même une amélioration de l’accessibilité, dont on parlera juste après.",[20,725,726,727,730],{},"Ce Design System est composé d’un ",[55,728,729],{},"styleguide",", un document qui définit des règles et bonnes pratiques. Il permet une communication visuelle cohérente à l’entreprise\u002Fau projet, et comprend également une charte éditoriale, permettant de savoir à quel public on s’adresse et comment.",[20,732,733,734,739,740,745,746,751],{},"Aurélie et Arnaud nous montrent un exemple sur ",[31,735,738],{"href":736,"rel":737},"https:\u002F\u002Fwww.figma.com\u002F",[35],"Figma",", où sont également définis les couleurs primaires\u002Fsecondaires et leurs teintes, la typographie, les ",[31,741,744],{"href":742,"rel":743},"https:\u002F\u002Fwww.w3schools.com\u002Fcss\u002Fcss3_borders.asp",[35],"radius",", les ",[31,747,750],{"href":748,"rel":749},"https:\u002F\u002Fwww.w3schools.com\u002Fcss\u002Fcss3_shadows.asp",[35],"shadows",", etc. qui seront utilisés sur le projet.",[20,753,754,755,760],{},"Parlons maintenant ",[31,756,759],{"href":757,"rel":758},"https:\u002F\u002Fbradfrost.com\u002Fblog\u002Fpost\u002Fatomic-web-design\u002F",[35],"Atomic Design",", ce concept structure les interfaces en composants réutilisables, des plus simples (atomes) aux plus complexes (pages), pour une conception modulaire et cohérente.",[20,762,763],{},[143,764],{"alt":765,"src":766},"Les composants de l’Atomic Design, dans l’ordre : Atomes, Molécules, Organismes, Templates et enfin Pages","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg4.webp",[20,768,769,770,773,774,777],{},"Dans cette optique, nous pouvons également ajouter la notion de ",[55,771,772],{},"quarks",", encore plus petits que l’atome et inutilisables seuls (par exemple une couleur). L’ensemble de ces éléments est trouvable sur la ",[55,775,776],{},"pattern library"," qu’Aurélie et Arnaud nous présentent alors.",[20,779,780,781,784],{},"Pour la suite de la démonstration, les deux développeurs nous embarquent sur la création d’un composant accordéon, que nous allons ajouter à leur ",[55,782,783],{},"component library"," (regroupant et standardisant les différents composants graphiques utilisables sur le projet).",[786,787,788],"blockquote",{},[20,789,790,791,794,795,218],{},"💡 Si vous ne savez pas ce qu’est un accordéon, ou que vous voulez jeter un œil au ",[55,792,793],{},"Système de Design"," de l’Etat, vous pouvez aller voir ",[31,796,799],{"href":797,"rel":798},"https:\u002F\u002Fwww.systeme-de-design.gouv.fr\u002Fcomposants-et-modeles\u002Fcomposants\u002Faccordeon\u002F",[35],"l’accordéon des sites gouvernementaux ici",[20,801,802,803,808,809,814],{},"Nous assistons donc à une démonstration sur ",[31,804,807],{"href":805,"rel":806},"https:\u002F\u002Ftikui.org\u002F",[35],"Tikui"," (projet Open Source). Cette solution s’appuie sur ",[31,810,813],{"href":811,"rel":812},"https:\u002F\u002Fpugjs.org\u002Fapi\u002Fgetting-started.html",[35],"Pug",", qui permet du templating minimaliste traduisible en HTML. L’accordéon est créé, puis ensuite un groupe d’accordéons.",[20,816,817,818,820],{},"Dans une appli Vue, on récupère ensuite tout simplement la ",[55,819,776],{}," provenant de Tikui, et l’organisme “groupe d’accordéons” précédemment créé. Et nous voici avec notre composant injecté sur notre application.",[20,822,823,824,829],{},"S’en suit un focus sur l’",[31,825,828],{"href":826,"rel":827},"https:\u002F\u002Faccessibilite.numerique.gouv.fr\u002Fobligations\u002Fnotions-accessibilite-numerique\u002F",[35],"accessibilité numérique",", un élément ô combien important. Situation de handicap, connexion lente, matériel ancien ou défectueux, environnement défavorable, les problématiques potentielles d’utilisation d’un produit numérique ne manquent pas. C’est au développeur front qu’incombe la responsabilité de ne pas créer l’inaccessibilité du web.",[20,831,832],{},[143,833],{"alt":834,"src":835},"Pourquoi l’accessibilité c’est important ? Aurélie et Arnaud nous informent sur le sujet","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg5.webp",[20,837,838],{},"Quelques pistes pour améliorer l’accessibilité numérique de votre produit :",[75,840,841,844,847,850,853],{},[78,842,843],{},"conformité aux normes HTML\u002FW3C,  utilisation correcte des balises sémantiques et des attributs aria",[78,845,846],{},"tester la navigation clavier",[78,848,849],{},"tests avec lecteur d'écran",[78,851,852],{},"responsivité et zoom du texte jusque 200%",[78,854,855],{},"tests sur différents navigateurs",[20,857,858,859,864],{},"Aurélie et Arnaud font ici un test avec un lecteur d’écran. Celui-ci démontre que notre accordéon n’est pas encore accessible : le lecteur d’écran ne sait pas si celui-ci est ouvert ou fermé, ce qui n’est pas pratique. Les deux développeurs ajoutent donc l’attribut ",[31,860,863],{"href":861,"rel":862},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAccessibility\u002FARIA\u002FReference\u002FAttributes\u002Faria-expanded",[35],"aria-expanded"," pour déterminer le statut de l’accordéon, et le tour est joué !",[20,866,867,868,873,874,687,877,687,880,883],{},"La conclusion donnée ici est un lien avec le Craft, et notamment avec le ",[31,869,872],{"href":870,"rel":871},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FTest_driven_development",[35],"TDD"," : le cycle ",[55,875,876],{},"red >",[55,878,879],{},"green >",[55,881,882],{},"refactor"," est ici remplacé par un cycle structure (HTML) > style (CSS) > refacto (qualité, accessibilité).",[48,885,887,890],{"id":886},"conférence-dessinée-regard-scientifique-sur-lartisanat-logiciel",[321,888,889],{},"Conférence dessinée"," Regard scientifique sur l'artisanat logiciel",[20,892,893,896,903],{},[55,894,895],{},"Par Victor LAMBRET (",[31,897,900],{"href":898,"rel":899},"https:\u002F\u002Fvlambret.github.io\u002F",[35],[55,901,902],{},"boringdev.eu",[55,904,905],{},")",[20,907,908],{},[31,909,64],{"href":910,"rel":911},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fregard-scientifique-sur-l-artisanat-logiciel.html",[35],[20,913,914,915,218],{},"En avant pour une conférence dessinée, Victor nous illustrant ses propos avec des dessins faits maison. Nous allons ici bien sûr parler de Craftsmanship, ou en français d’",[55,916,917],{},"artisanat logiciel",[20,919,920],{},"Cet artisanat logiciel, ces concepts, méthodes et outils pour mieux faire, est-ce que cela compte réellement ? Est-ce simplement une accumulation d’effets de mode ? Ne pas faire de Craft conduit-il forcément à l’échec, est-ce si manichéen ? Pour s’en assurer, rien de mieux que de se référer aux études scientifiques.",[20,922,923],{},[143,924],{"alt":925,"src":926},"C’est parti pour un regard scientifique sur l'artisanat logiciel, et sur les dessins de Victor","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg6.webp",[20,928,929,930,933],{},"Par exemple, Robert C. Martin, dans son livre ",[31,931,510],{"href":508,"rel":932},[35]," (déjà cité plus haut dans cet article, décidément) nous indique que la taille des fonctions est une donnée importante pour jauger la qualité d’un code. En effet, on peut trouver cette citation dans son ouvrage :",[786,935,936],{},[20,937,938],{},"The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that.",[20,940,941],{},"Écrire de plus petites fonctions permettrait de simplifier la programmation. Mais est-ce aussi évident ? Dans un exemple sur du Fortran datant de 83, plus le module était grand, plus le nombre de bugs par ligne était petit, rentrant en contradiction avec Robert C. Martin.",[20,943,944,945,948,949,952],{},"Pour du plus récent et complet, une étude de 2016 compare deux équipes (que je nommerai ici A et B pour que ce soit plus simple). L’équipe A part avec une base de code, une équipe B avec une version “améliorée” respectant le ",[55,946,947],{},"Clean Code."," Le résultat ? En moyenne, A arrive plus facilement à ajouter une fonctionnalité sur son code, B à refactorer, et des bugs furent trouvés beaucoup plus rapidement par l’équipe A. Conclusion : a priori, pas de bénéfice de ",[55,950,951],{},"Clean Code"," sur la compréhension d’un code par des développeurs.",[20,954,955],{},[143,956],{"alt":957,"src":958},"Un exemple de slide présenté par Lionel, une illustration parlante de sa conférence","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg7.webp",[20,960,961,962,967],{},"C’est au tour du TDD de passer à la loupe de Lionel. Une première ",[31,963,966],{"href":964,"rel":965},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FM%C3%A9ta-analyse",[35],"méta-analyse"," nous indique une tendance : le TDD serait positif pour éviter\u002Fcorriger les bugs, mais en contre-partie la productivité serait impactée négativement. Mais il est compliqué de statuer de manière très claire avec les études industrielles.",[20,969,970],{},"IBM et Microsoft ont mené des études comparatives, sur des projets en parallèle. Une équipe utilisait le TDD, systématiquement, l’autre était un groupe contrôle. Là aussi, le temps passé était plus important du côté de l’équipe en TDD (+20% en moyenne), mais le nombre de bugs bien inférieur (de -40% à -90%).",[20,972,973],{},"Mais ces études ne portent pas de conclusion clair sur l’efficacité de la pratique du TDD. En effet, ces bugs auraient pu être trouvés par l’équipe de QA, et la notion de TDD dépend parfois d’une équipe, d’un projet, d’une étude à l’autre. De plus, l’échantillon est trop faible : par exemple seuls 0,8% des repos Java hébergés sur GitHub feraient du TDD.",[20,975,976,977,980,981,984],{},"Enfin, Lionel nous évoque une comparaison réalisée entre TDD et ITL (",[55,978,979],{},"Iterative Test Last",", que l’on pourrait également qualifier de ",[55,982,983],{},"reverse TDD","), dans différents contextes, qu’ils soient universitaires ou professionnels, sur des katas bien connus. Les conclusions :",[75,986,987,990,993],{},[78,988,989],{},"pas de grandes différences sur étudiants vs professionnels",[78,991,992],{},"pas de grandes différences entre les différents langages de projets",[78,994,995],{},"la qualité est légèrement meilleure pour l’ITL, mais pas de manière significative.",[20,997,998],{},"On peut en conclure que les deux sont globalement équivalents, et que la qualité vient surtout des concepts de feedback régulier, de refactoring continu, et bien sûr des tests à l’origine de ces deux méthodologies.",[20,1000,1001],{},"En conclusion du talk, Lionel nous conseille de ne pas hésiter à attaquer nos croyances. Tout dépend du contexte et des conditions des projets sur lesquels nous intervenons.",[48,1003,1005],{"id":1004},"conclusion","Conclusion",[20,1007,1008,1009,1014,1015,1020],{},"Après toutes ces conférences, j’ai eu la chance d’assister à une très intéressante ",[31,1010,1013],{"href":1011,"rel":1012},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fpodcast.html",[35],"table ronde sur le sujet de l’image du Craft"," (à retrouver également en ",[31,1016,1019],{"href":1017,"rel":1018},"https:\u002F\u002Fpodcast.ausha.co\u002Fpunkindev\u002Fs05e14-liveatlyoncraft-table-ronde-sur-l-image-du-craft",[35],"podcast chez PunkinDev","), un sujet dont nous pourrons discuter à l’avenir dans un autre article.",[20,1022,1023],{},"En somme, le bilan de la journée est très positif, et j’en tire beaucoup d’informations et de réflexions sur le sujet du Software Craftsmanship. Je participerai avec plaisir à l’éventuelle prochaine édition.",[20,1025,1026,1027,1032],{},"Les conférences ont été enregistrées et sont retrouvables sur le ",[31,1028,1031],{"href":1029,"rel":1030},"https:\u002F\u002Fwww.youtube.com\u002F@softwarecrafterslyon9383",[35],"YouTube de Software Crafters Lyon",", où vous pourrez également visionner tous les talks dont je n’ai pas pu parler sur ce blog.",[20,1034,1035],{},"Merci de votre lecture et à très bientôt sur ce blog pour reparler de Craft et de plein d’autres belles choses !",{"title":425,"searchDepth":426,"depth":426,"links":1037},[1038,1039,1040,1042],{"id":484,"depth":426,"text":485},{"id":699,"depth":426,"text":700},{"id":886,"depth":426,"text":1041},"Conférence dessinée Regard scientifique sur l'artisanat logiciel",{"id":1004,"depth":426,"text":1005},"2025-05-07T14:36:44.718Z","Cet article est la suite de [mon retour sur Lyon Craft](https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-04-24-lyon-craft-2025-12). Dans cette première partie, nous avions couvert les talks auxquels j’ai eu la chan",{},"\u002Fblogs\u002F2025-05-07-lyon-craft-2025-22",[1048,1050,1052],{"id":442,"name":443,"image":1049,"linkedin":445,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466SQLTIAF2%2F20250507%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250507T143641Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELb%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIGaaze3jgEdj29BimvIE1eGEt4qcalirK6%2FWgg9g4VXdAiEA2s2DRTx%2FquxcccKRcDDhOWLiQThMIdIwyUz9GvfAyYIq%2FwMIXxAAGgw2Mzc0MjMxODM4MDUiDMRJa%2BxwLownPoG3IyrcA5%2Bszya42miksRJHP6y%2FlvJP9Rckvb5%2BAI1jicKYgmFdOENO%2FfizcRhBrvXjTkyrFKvWZBnN21gnYEGSq5jNjn34c2tdyizCbgS2o4Iu5WcPjpIJL55qIf6%2F2gULe1cRqIOuJ48rDbjX6TePNNqL52G1RRw3Ay3HhnBPfzxTQRnywmDA12ehDGZiszlILVE%2FyYSOV%2FYpd2029bYw9J2bBwctBVGUnSSQ22ofy3DedPAvR7p%2BkMaU09Z5tXNMDsNubkoqZoIc7xFgPy99eOwKHTOVnct0Yf5wPjZM4X%2FcJNk8dw1yh%2FBhkemS2jIEghRtNYYdZqFivTr6TUG12UqCaOIQRGj8GQvnZh3auvGy3OcRU%2F5m1CF9vpAVsW04H%2BwNJMZ6YOmLdwZDYaA7lS4EBrxcb2RCqqRhlgrzEJGR9F0Y0cfGYisH7X4gc7VScJfL82YLsWpZb6UfTMbasF2M6YN4xvJDk%2FDg%2FqsVrPwijuPQ%2FoQJueDdvcN9cxtB2P14rg%2B62hE9ATlJgHe23%2F5rFMUJEDnUPdW3N%2FSjMA01k0MNzm7GugUpCAM0LsEDQkThSwrtHiKKHYWR%2Fh86O7GOdVSHEPgkU29d7%2BtWhX0XWcCK651XvFE9%2FTCg%2B8xSMP%2FN7cAGOqUB4jy0APhdW%2BErX1PpMP0PXNeaUNivHk%2Bm2MRgonNUbdLTSBS3nTkOYx6k6KwlMCi0WF6pf7Lvtmd%2FPlxjoeMEjA5FCC8ssMZFNGE6RrzrrUkUUzi96xWge5H8ZGgwlLwecYDKzalplbbZY0VifoILWWwGrsM%2BvOjv5Q8Pvom5AE85Umx%2BSyZZHDwpM5jMghiKarsWEUX32ZWcY0Wb8dCK8EXN5PGW&X-Amz-Signature=f8d741c680fcbaa2d614ae05ccd4476c1fe5ee5d263e2526fe8c7d933f245601&X-Amz-SignedHeaders=host&x-id=GetObject",{"id":447,"name":448,"image":1051,"linkedin":450,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F53946b9e-3bb9-45bd-a8b4-429c51156179\u002FT04PC176TGB-U05EW3YF61Z-5e129f612df3-512.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466USHIWH35%2F20250507%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250507T143644Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELb%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIQDI6VFScPT%2BI3I6BD536jpkQPrkeA%2BbPftds4nXdYDgjgIgPnZIPY%2FRgFHtx1tcrXyCWcijN%2FFaO7jtsforzr15Tq4q%2FwMIXxAAGgw2Mzc0MjMxODM4MDUiDCZO8N8P2NAfXTTDOSrcA%2FgkSBnN9EE62zrEPz657yafi0ZOaY5w7xj9f8rGGjDsXVnhiXFe0mwQ9cwejPEnf7A2uTaxdpAnYF%2FXX6C7KgJWAGrtUdb8e6nBQ8w06SJZE1m%2FYzGoeJ4AlWoyZdCK214swZe2daBed6TndMX%2B9zEeoc2nhcIVejUe2ZkLgM8ueR6lVdQtSPthOqecKCOokepMclEaeWdimnZm60VNvco5NT%2BTKUPnxLZjnDpEw6tuTpiLmIICsn%2BnCAfmFU8qXIywCkiyeTHv68Q4lNSqnOruxJnHlaKITMNrePffyviFjY4vMjNazpeFsHbErK%2FilGDyFc7VPH6OyW6IXDJO4M%2BkcBQFhJOy31HlT5Ror3DVIQhtTgCn4vZJKPFRG4mba%2FfizDKlQhAuapwpyPn45L8ju8C4g3OWI%2FCFI5woHaThZJjI%2B7uaD%2F7GzR9%2F66RiErJkGLwbWUY9SIPZFSSA04Et%2BJhX6XGvsjQZ5G5sbR32NL22w4kHGlSwC3cfD8m93L%2FP0uWQyybqRMdaAJqWoMfWzpfnemeQT%2Fd1BTNhVNUyYQreKsKJ99WeK0lDLIMydzExOrMiM%2BfedIYH2kmaVUIMjrW4jf5%2BOrFnWS1XIIZzD6BlR4R5hYwvpBskMI3O7cAGOqUBifel974t2leDwzdqu4SDnKsVyHpK9w7r4RvRWXIbc67J2doJg4W%2FcIEpa1yC%2BO7kw07Ee7rVvRWZQeNliCmms4vMYWDaxLkAjAr4WGRnDN7KRdGakXMlbDBwnO34q6vBy5JJf3b1cGjN1xNgjF1B58IkhScl5hVaI3jDRKFIsUh5vs8DZI%2Fa6XO9rO5MhddzyPKFrnt1efUcDC%2FKaA1mSrxDGbAy&X-Amz-Signature=6a4d4c88d15a7eb01702572dbf16211e542898d3fb8f8cdddf194730c044939d&X-Amz-SignedHeaders=host&x-id=GetObject",{"id":1053,"name":1054,"image":1055,"linkedin":1056,"x":1057},"838dec96-f9fc-404f-a302-07719225d785","Maxime Deroullers","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc69d0b59-558d-4e48-879f-bea3fec1fdef\u002FLinkedin_Profile.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB4665EYDPHT7%2F20250507%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250507T143641Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELb%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJGMEQCIG0EXEyE1pXT6gi9pnqyvkaP8ZxWWRsKmmOieqQiOHpXAiBKg9dgfHm%2BShieFhmyoH%2F2CAADimVSzT3SNmH1o6t0nCr%2FAwhfEAAaDDYzNzQyMzE4MzgwNSIMzTls379yYnws2GePKtwDQ1bS97UeqDzfoF7q%2F7fjhOaJXQ2NqAEHJioVxoHnyN%2F%2BnS85XI0dj1tu0kwUJBDi%2FoVmzKyEhPx0gmwXsGikV7IwoH1vhtbqoyMdZwT7RI2bRS1g8KwZfBx%2FqHpP4z%2Fav1cr9td4ygCOfTcFygVGglIc%2FHoJ9CYzgHyM084pGxGCE1fXi7sXvEhdYSbtoqt1UdcD4C%2FyHIa6V1Xhqy0Uets3uzVTRmBCngj0JCtCsLFPY97Xyo%2BuOzzdlvKSun5VSusI%2BbB%2BoG8X%2F3wB0z58dzt%2F5qvSP21DgQFvWTGMe9qY6oCEOX7G8njBPb7JXZfKvdU91RLKV31auGh4WjvgZ620afFU43C4cxE6PEBOrMfs9Yt8d%2FRNu6%2FeI%2Beh9NwuDJUA1WXyvQvpKfhy0FtcZVqAu%2Fo6Hp%2FD50CDjrJivs8vDzlbWIwlf5IIWdbiKWKfNENreGxD4mo%2Fgn6VogkX6UdszuP4XiI%2FixQ4TZbUOfyZeS6OuvvOXUjiC384%2BCa3Bw3ZIpBxzy3B8cnNG7Jkzq77IjoyRJbc1jhjNaTXVRnnXH3Hznqc9FKQmNLhbg7hEbkIo6GReGjIfC9AZIr7Z3%2BPXk15vUbHjQQbICCrufGfBjmn54%2BG3OrlnCswh87twAY6pgHqm6aayYs46ytFdEbIoqMt%2Buk5pDL85bLMuJuk%2FQnuhd96b95P1xAv4Pu3vtI1osrfD115iKvRbomJyU1Gl3S7SwfFe0mv1c%2FoyEgZiIpCVvI8WzhO5Z9hxUPe8FQALuJu12GBhoQdagyFQvf9Ht1lbftfj00ZJv7ynG4I%2FaDZSd38eBp1M0ygI8wwDDyYlJ8zLYf0DHq4XHAiPSSPLYsEVjKOKVRE&X-Amz-Signature=b8109bc670122dbf25b92481a5b8841c12310f13099ec289ec98af779f14726b&X-Amz-SignedHeaders=host&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmaxime-deroullers-1b5791137\u002F","https:\u002F\u002Fx.com\u002Fmderoullers",{"title":467,"description":1044},"blogs\u002F2025-05-07-lyon-craft-2025-22\u002Findex",[459,460,461,462,463],"bbQ9x83Agcb3X3O287CqSA5G_3PdMdLVD4OrWya3zyc",{"id":1063,"title":1064,"alt":1065,"authors":1066,"body":1068,"date":1544,"description":1545,"extension":435,"image":436,"meta":1546,"navigation":438,"ogImage":436,"path":1547,"published":438,"reviewers":1548,"seo":1563,"stem":1564,"tags":1565,"__hash__":1567},"blogs\u002Fblogs\u002F2026-05-18-lyon-craft-2026-12\u002Findex.md","Lyon Craft 2026 1\u002F2","Photo de la scène principale de la conférence Lyon Craft 2026, vide, avant le démarrage de la journée.",[1067],{"id":10,"name":11,"image":12,"linkedin":13,"x":14,"bio":15},{"type":17,"value":1069,"toc":1538},[1070,1079,1107,1122,1125,1129,1151,1154,1160,1166,1171,1174,1183,1188,1191,1200,1203,1267,1271,1290,1299,1329,1337,1340,1360,1366,1369,1394,1397,1426,1433,1438,1444,1448,1467,1470,1473,1476,1479,1485,1490,1493,1506,1509,1512,1515,1518,1521,1527,1530,1532,1535],[20,1071,1072,1073,1078],{},"Le printemps est là ! Les jours se rallongent, le temps se radoucit, les fleurs éclosent… et ",[31,1074,1077],{"href":1075,"rel":1076},"https:\u002F\u002Flyon-craft.fr\u002F",[35],"Lyon Craft ","revient, dans sa quatrième édition !",[20,1080,1081,1082,1087,1088,1091,1092,1097,1098,629,1102,218],{},"Ce 12 mai 2026, s’est donc déroulée une nouvelle journée organisée par les ",[31,1083,1086],{"href":1084,"rel":1085},"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fsoftware-crafters-lyon\u002F",[35],"Software Crafters Lyon",". Journée à laquelle la team ",[31,1089,42],{"href":40,"rel":1090},[35]," était bien naturellement présente et ",[31,1093,1096],{"href":1094,"rel":1095},"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fcolin-damon_hoppr-certified-b-corp-renouvelle-son-soutien-activity-7450143430317551617-6YzT?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAZmGCoB5r4NH8aG9GFIaRVyNOqCxN7v6iU",[35],"sponsor VIP",", comme l’année dernière. J’avais déjà d’ailleurs fait un reporting à l’époque, à retrouver ",[31,1099,1101],{"href":478,"rel":1100},[35],"ici",[31,1103,1106],{"href":1104,"rel":1105},"https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-05-07-lyon-craft-2025-22",[35],"là",[20,1108,1109,1110,1115,1116,1121],{},"Après un petit déjeuner pris dans la bonne humeur, nous avons assisté à l’habituelle séquence d’introduction et de remerciement des sponsors. Ce fut également l’occasion de présenter l’association ",[31,1111,1114],{"href":1112,"rel":1113},"https:\u002F\u002Fyeeso.fr\u002F",[35],"Yeeso",", dont HoppR est très proche. Nous avons ensuite eu le droit à un ",[31,1117,1120],{"href":1118,"rel":1119},"https:\u002F\u002Flyon-craft.fr\u002F#programme",[35],"programme dense en qualité",", entre talks et ateliers.",[20,1123,1124],{},"Je vous invite maintenant à découvrir avec moi ceux que j’ai choisis de suivre. Cet article sera en deux parties : une pour la matinée, l’autre pour l’après-midi.",[48,1126,1128],{"id":1127},"de-villageoise-à-lit-woman-quelles-actions-pour-faire-de-mon-rêve-tech-une-réalité","De villageoise à l’IT Woman … Quelles actions pour faire de mon rêve TECH une réalité ?",[20,1130,1131,687,1134,687,1141,687,1144],{},[55,1132,1133],{},"Par Houleymatou Baldé - 45 minutes -",[31,1135,1138],{"href":1136,"rel":1137},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fde-villageoise-a-it-woman.html",[35],[55,1139,1140],{},"Abstract",[55,1142,1143],{},"-",[31,1145,1148],{"href":1146,"rel":1147},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Z6OWanI403c",[35],[55,1149,1150],{},"Captation",[20,1152,1153],{},"Je viens d’évoquer l’association Yeeso, et cela tombe bien puisque c’est sa co-fondatrice et présidente Houleymatou qui s’avance en première sur la grande scène pour ce premier talk, une keynote sur son passé personnel et ce qui l’a poussée à lancer cette belle association.",[20,1155,1156],{},[143,1157],{"alt":1158,"src":1159},"Houleymatou sur la grande scène de Lyon Craft 2026, présentenant son talk, devant une projection de la couverture du livre de Yeeso.","\u002Fcontent-assets\u002F2026-05-18-lyon-craft-2026-12\u002Fassets\u002Fimg1.webp",[20,1161,1162,1163],{},"Houleymatou, née dans un petit village sans électricité de Guinée, est alors promise à la vie de femme classique dans les environs : orpheline, excisée, elle sera mariée à l’adolescence… Mais cette petite fille sait faire trois choses en particulier, qui lui serviront toute sa vie : ",[24,1164,1165],{},"ne rien lâcher, ne jamais rater une opportunité, et s’entourer des bonnes personnes.",[786,1167,1168],{},[20,1169,1170],{},"Je veux avoir une voix qui compte !",[20,1172,1173],{},"Déscolarisée par faute de moyens et de papiers, elle suit des cours à l’école depuis la fenêtre. Elle arrivera 5ème de sa promotion sans être techniquement scolarisée, ce qui poussera le village à se cotiser pour lui permettre de continuer son cursus. Puis viennent les allers-retours jusqu’au collège à pieds sans bonnes chaussures, sans manger à sa faim. Mais rien ne l’arrête.",[20,1175,1176,1177,1182],{},"Que fera-t-elle de sa vie ? Le déclic viendra en regardant la série 24h Chrono, et notamment celle qui deviendra alors son rôle modèle, ",[31,1178,1181],{"href":1179,"rel":1180},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FChloe_O%27Brian",[35],"Chloé O’Brian",", la spécialiste en informatique de la série. Une femme qui se bat, qui sait argumenter mais aussi se remettre en question, et qui est reconnue pour son expertise.",[786,1184,1185],{},[20,1186,1187],{},"Je veux être experte informatique, comme Chloé !",[20,1189,1190],{},"Après un bac scientifique et un concours remporté, direction la France et Lyon. Première surprise : elle y retrouve le patriarcat et les injustices qui sont donc partout. Le pays change, ces vieilles règles restent les mêmes. Mais peu importe pour Houleymatou : elle est prête et sûre d’elle. Elle comprend que ce n’est pas sur cela qu’elle doit mettre son énergie, mais sur ce qui lui importe, dans sa carrière comme dans son entourage.",[786,1192,1193],{},[20,1194,1195,1196,1199],{},"Tu es raciste ? Sexiste ? ",[24,1197,1198],{},"Je"," décide du temps à t'accorder, je ne vais pas changer, c'est ma fierté d'être qui je suis. Si ça te dérange passe ton chemin, reste derrière, je vais prendre la place et exister !",[20,1201,1202],{},"Rejoignant le monde de la tech, elle se rend compte que celui-ci est majoritairement masculin, en particulier sur les postes purement techniques. Il existe donc selon elle un vrai problème sociétal, et souhaite donc que l’on investisse dans l'éducation, que l’on dénonce le sexisme, et que les femmes et hommes apprennent enfin à travailler ensemble. Les personnes injustes sont moins nombreuses mais plus bruyantes, il faut donc être plus bruyants qu’eux pour faire disparaître les inégalités. Elle conclue ainsi en proposant trois actions par catégorie :",[1204,1205,1206,1222],"table",{},[1207,1208,1209],"thead",{},[1210,1211,1212,1216,1219],"tr",{},[1213,1214,1215],"th",{},"Femmes",[1213,1217,1218],{},"Hommes alliés",[1213,1220,1221],{},"Entreprises",[1223,1224,1225,1234,1245,1256],"tbody",{},[1210,1226,1227,1230,1232],{},[1228,1229,1215],"td",{},[1228,1231,1218],{},[1228,1233,1221],{},[1210,1235,1236,1239,1242],{},[1228,1237,1238],{},"Prendre sa place, mettre l'énergie sur son projet",[1228,1240,1241],{},"Écouter, autoriser à demander de l'aide",[1228,1243,1244],{},"Ne pas faire que de la com’ sur ses femmes, mais se donner des objectifs et les mesurer",[1210,1246,1247,1250,1253],{},[1228,1248,1249],{},"Apprendre à s'entourer",[1228,1251,1252],{},"Faire de la place autour de vous, faire monter tout le monde en compétence, partager",[1228,1254,1255],{},"Travailler avec les hommes et femmes de l'entreprise, trouver un entre deux. Ne pas chercher à recruter des femmes à tout prix, mais plutôt leur donner un environnement où elles seront à l’aise",[1210,1257,1258,1261,1264],{},[1228,1259,1260],{},"Chercher votre rôle modèle, puis en devenir un, inspirer les autres",[1228,1262,1263],{},"La mixité touche tout le monde, s'engager pour être plus nombreux",[1228,1265,1266],{},"Soutenir les associations",[48,1268,1270],{"id":1269},"git-reset-hard","Git reset --hard",[20,1272,1273,687,1276,687,1282,687,1284],{},[55,1274,1275],{},"Par Adeline Morel - 45 minutes -",[31,1277,1280],{"href":1278,"rel":1279},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fgit-reset-hard.html",[35],[55,1281,1140],{},[55,1283,1143],{},[31,1285,1288],{"href":1286,"rel":1287},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=7CDoPXIaMms",[35],[55,1289,1150],{},[20,1291,1292,1293,1298],{},"Adeline souhaite nous parler d’une commande que la grande majorité des développeur·euses connaissent : ",[31,1294,1297],{"href":1295,"rel":1296},"https:\u002F\u002Fgit-scm.com\u002Fdocs\u002Fgit-reset",[35],"git reset",". Elle nous en présente les trois modes :",[75,1300,1301,1311,1320],{},[78,1302,1303,1307,1308],{},[1304,1305,1306],"code",{},"git reset --soft"," : les changements restent ",[55,1309,1310],{},"changed",[78,1312,1313,1316,1317],{},[1304,1314,1315],{},"git reset --mixed"," : les changements redeviennent ",[55,1318,1319],{},"unstaged",[78,1321,1322,1325,1326],{},[1304,1323,1324],{},"git reset --hard"," : tout ce qui n’est pas commité est ",[24,1327,1328],{},"perdu",[20,1330,1331,1332,218],{},"Mais la partie technique n’est pas ici ce qui nous intéresse le plus. On parle ici de retour en arrière, de suppression de ce que l’on vient de réaliser. L’utilisation de ces commandes provoquent à Adeline ce que l’on appelle des ",[31,1333,1336],{"href":1334,"rel":1335},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FBiais_cognitif",[35],"biais cognitifs",[20,1338,1339],{},"Elle en vise ici plusieurs en particulier :",[75,1341,1342,1348,1354],{},[78,1343,1344,1347],{},[24,1345,1346],{},"Le biais des coûts irrécupérables"," (escalade d'engagement), lié à l’aversion pour la perte. Il est difficile pour nous de “gâcher” ce que l’on vient de construire et l’on s’entête alors à continuer",[78,1349,1350,1353],{},[24,1351,1352],{},"Le biais de confirmation",". Ici, elle vise sa manière de faire du TDD : sa manière d’écrire ses tests est parfois brouillée par des idées d’implémentation qu’elle a déjà",[78,1355,1356,1359],{},[24,1357,1358],{},"Le biais d'ancrage",". Nous savons difficilement nous débarrasser d’une première impression, et nous avons tendance à nous y fier excessivement",[20,1361,1362],{},[143,1363],{"alt":1364,"src":1365},"Adeline nous présente ici l’aversion pour la perte.","\u002Fcontent-assets\u002F2026-05-18-lyon-craft-2026-12\u002Fassets\u002Fimg2.webp",[20,1367,1368],{},"Pour maîtriser ces biais, Adeline nous donne plusieurs solutions :",[75,1370,1371,1377],{},[78,1372,1373,1376],{},[24,1374,1375],{},"Sécuriser l'exploration"," pour mieux décider, en sécurité avec la codebase, l'équipe, les tests, les feedbacks, pour prendre du recul. Les feature flags en sont aussi une composante, et il faut se rappeler que les tests sont une documentation vivante utile pour comprendre le code",[78,1378,1379,1382,1383,1388,1389,1393],{},[24,1380,1381],{},"Isoler et découper"," pour aménager de la place pour la ",[31,1384,1387],{"href":1385,"rel":1386},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FM%C3%A9tacognition",[35],"métacognition"," (faciliter la relecture, gérer les interruptions efficacement, ",[31,1390,1392],{"href":1391},"\u002F1acf4462cd38809f802ecb90c6901fba","isoler le domaine avec l'architecture hexagonale","...) et éviter ainsi davantage de charge mentale",[20,1395,1396],{},"Bien entendu, quand une difficulté est découverte, des méthodologies sont testées, comme par exemple :",[75,1398,1399,1408],{},[78,1400,1401,1404,1405,1407],{},[24,1402,1403],{},"La méthode Mikado",". Dans le jeu éponyme, il faut réussir à retirer un bâton sans faire bouger les autres. Côté code, il faut réussir à isoler et modifier de manière itérative sans faire s’effondrer le projet (et intégrer ainsi des régressions). Il est donc nécessaire d’y aller petit à petit, en ",[55,1406,647],{},", et de revenir en arrière si besoin.",[78,1409,1410,1413,1414,1417,1419,1420,1425],{},[24,1411,1412],{},"Le TCR"," (pour ",[1304,1415,1416],{},"test && commit || revert",[24,1418,905],{}," de ",[31,1421,1424],{"href":1422,"rel":1423},"https:\u002F\u002Fmedium.com\u002F@kentbeck_7670\u002Ftest-commit-revert-870bbd756864",[35],"Kent Beck",". L’idée semble presque contradictoire avec celle du TDD (inventé par… Kent Beck). Là aussi, on avance par petits pas, et quand un test est rouge… on revient en arrière !",[20,1427,1428,1429,1432],{},"Et Bien entendu, le ",[55,1430,1431],{},"software craftsmanship"," et les coding dojos\u002Fkatas apportent déjà beaucoup de bonnes pratiques permettant de limiter les biais cognitifs.",[786,1434,1435],{},[20,1436,1437],{},"Et si abandonner n'était pas un échec, mais une stratégie gagnante ?",[20,1439,1440,1441,1443],{},"Il nous faut dompter nos biais et rester maîtres·ses du jeu. Finalement, ",[1304,1442,1324],{}," n’est pas une défaite, c’est un pas en arrière pour prendre du recul sur la problématique à laquelle on tente de répondre.",[48,1445,1447],{"id":1446},"et-craft-la-chaise","Et Craft, la chaise !",[20,1449,1450,687,1453,687,1459,687,1461],{},[55,1451,1452],{},"Par Didier Erin et Laure Champel - 45 minutes -",[31,1454,1457],{"href":1455,"rel":1456},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fet-craft-la-chaise.html",[35],[55,1458,1140],{},[55,1460,1143],{},[31,1462,1465],{"href":1463,"rel":1464},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=XR7ZVn7fSt8",[35],[55,1466,1150],{},[20,1468,1469],{},"C’est un duo qui monte cette fois sur la scène principale du Lyon Craft 2026. Didier et Laure veulent nous parler de Liza, une bricoleuse qui construit des chaises. Seulement, elle est obligée de tester systématiquement chacune d’entre elles avant de les mettre en vente, ce qui lui prend beaucoup de temps (et quelques chutes !)",[20,1471,1472],{},"Nous avons bien entendu ici affaire à une analogie avec le SI et les livraisons en production de nouveaux produits. Ce REX montre les étapes de la mise en place de l’optimisation et de l’industrialisation chez Alptis.",[20,1474,1475],{},"L’exemple donné est celui d’une migration Java 11 => 21 qui s’est passée dans la douleur. Les tests, non pertinents, n'ont pas permis de détecter les régressions. Ont lieu alors de trop nombreux allers-retours entre l’équipe de développement et celle de recette.",[20,1477,1478],{},"De plus, la norme sur la création de nouveaux produits et de 6 mois de développement par une équipe de 4\u002F5 personnes, pour une livraison en production à la fin du projet. Ça fonctionne à peu près, mais il est dommage de repartir de 0 à chaque fois, et donc de créer seulement 2 produits par an.",[20,1480,1481],{},[143,1482],{"alt":1483,"src":1484},"Didier et Laure sur la grande scène de Lyon Craft 2026, démarrant leur talk.","\u002Fcontent-assets\u002F2026-05-18-lyon-craft-2026-12\u002Fassets\u002Fimg3.webp",[786,1486,1487],{},[20,1488,1489],{},"Et si le problème n'était pas la vitesse, mais la façon de fabriquer la chaise ?",[20,1491,1492],{},"Didier arrive alors avec l’occasion de tester une nouvelle manière de faire, respectant les méthodologies du software craftsmanship, sur un nouveau produit et avec une nouvelle équipe.",[20,1494,1495,1496,1499,1500,1505],{},"Le chemin est semé d’embûches : l’équipe ne connaît ni le métier, ni l’environnement de l’entreprise, et à part Didier ni le TDD. Viennent donc la mise en place de ",[55,1497,1498],{},"mob programming"," pour apprendre ensemble et effectuer cette triple montée en compétences. La livraison continue, des US plus itératives, et un périmètre allégé (pour la sortie d’un ",[31,1501,1504],{"href":1502,"rel":1503},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FProduit_minimum_viable",[35],"MVP",") sont d’autres nouvelles manières de faire mises en place.",[20,1507,1508],{},"Pour reprendre l’analogie avec l’atelier de Liza, elle s’est entourée d’un expert artisan, qui lui permet de mieux structurer sa manière de faire, et d’éviter cette fameuse vérification finale autrefois nécessaire.",[20,1510,1511],{},"Dû à beaucoup de difficultés rencontrées (changements dans l’équipe, synchro difficile avec des équipes externes, etc.), le travail de Didier se complique. Le produit arrivera finalement avec un mois de retard et sur un périmètre réduit. Le résultat est donc contrasté sur ce produit, mais le code livré est maintenant bien plus sûr et maîtrisé, ce qui est donc positif pour les futurs produits à suivre.",[20,1513,1514],{},"Le prochain arrive d’ailleurs, et doit être livré rapidement. Le métier est cette fois réticent à rogner sur les fonctionnalités. Mais comme pour l’atelier de Liza, si toutes les chaises ont les mêmes pieds, ça ira plus vite !",[20,1516,1517],{},"En reprenant le produit précédent, sain, sûr, et assez proche de celui à construire, on gagne du temps. Cette fois-ci, le développement se fait en deux mois seulement, et c’est la recette qui devient le goulot d’étranglement. D’ailleurs, les rares retours concernent souvent les deux produits, et sont corrigés en simultanés. Un mois de plus pour implémenter des règles spécifiques et des fonctionnalités de confort (là aussi reportées sur le produit précédent !), et ce nouveau produit sort en 3 mois seulement !",[20,1519,1520],{},"Ne reste plus qu’à industrialiser pour capitaliser sur cette réussite. Un projet template, géré par une équipe socle, est ainsi créé, pour servir de base de travail pour tous les futurs produits.",[20,1522,1523,1524,218],{},"La diffusion des principes craft continue en parallèle, avec des animations d’ateliers avec d’autres équipes. Cela a également un impact sur les profils non-tech, qui voient que “Craft” n’est pas juste un ",[55,1525,1526],{},"buzzword",[20,1528,1529],{},"Et maintenant, Liza ne teste plus ses chaises, elle est devenue une artisane de grande qualité, et elle passe plus de temps à savoir ce que le client veut pour toujours plus le satisfaire.",[48,1531,417],{"id":416},[20,1533,1534],{},"En voilà une belle matinée pleine de talks inspirants ! Après le déjeuner, nous attaquons une nouvelle salve de talks.",[20,1536,1537],{},"Je vous propose donc de continuer ce retour de conférence dans un second article à paraître, où nous parlerons de communautés, de parcours de carrière, d’IA… et de vente de surgelés !",{"title":425,"searchDepth":426,"depth":426,"links":1539},[1540,1541,1542,1543],{"id":1127,"depth":426,"text":1128},{"id":1269,"depth":426,"text":1270},{"id":1446,"depth":426,"text":1447},{"id":416,"depth":426,"text":417},"2026-05-18T15:30:35.296Z","Le printemps est là ! Les jours se rallongent, le temps se radoucit, les fleurs éclosent… et Lyon Craft revient, dans sa quatrième édition !  Ce 12 mai 2026, s’est donc déroulée une nouvelle journée o",{},"\u002Fblogs\u002F2026-05-18-lyon-craft-2026-12",[1549,1551,1556,1558],{"id":442,"name":443,"image":1550,"linkedin":445,"x":14},".\u002Fassets\u002Freviewer-emmanuelle-gouvart.webp",{"id":1552,"name":1553,"image":1554,"linkedin":1555,"x":14},"e8163b24-7e01-41c5-adbf-0dc655f929d0","Nicolas Zago",".\u002Fassets\u002Freviewer-nicolas-zago.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fnicolaszago\u002F",{"id":1053,"name":1054,"image":1557,"linkedin":1056,"x":1057},".\u002Fassets\u002Freviewer-maxime-deroullers.webp",{"id":1559,"name":1560,"image":1561,"linkedin":1562,"x":14},"33bf4462-cd38-80da-845c-c63b2fd024bf","Florian Hirson",".\u002Fassets\u002Freviewer-florian-hirson.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fflorian-hirson\u002F",{"title":1064,"description":1545},"blogs\u002F2026-05-18-lyon-craft-2026-12\u002Findex",[459,1566,461,462,463],"2026","BSRk5FtxRdOcjYFz-bxHGrht4dPfFeuTk5asxwtAyLY",1779176326064]