{"id":17216,"date":"2019-03-04T12:44:34","date_gmt":"2019-03-04T11:44:34","guid":{"rendered":"https:\/\/www.oezratty.net\/wordpress\/?p=17216"},"modified":"2019-04-08T08:08:17","modified_gmt":"2019-04-08T07:08:17","slug":"mythe-fin-developpement-logiciel","status":"publish","type":"post","link":"https:\/\/www.oezratty.net\/wordpress\/2019\/mythe-fin-developpement-logiciel\/","title":{"rendered":"Le mythe de la fin du d\u00e9veloppement logiciel"},"content":{"rendered":"<p>Un <a href=\"https:\/\/www.developpez.com\/actu\/249042\/Le-directeur-de-l-education-de-l-OCDE-estime-que-c-est-une-perte-de-temps-d-apprendre-aux-enfants-a-coder-car-demain-ce-sera-une-competence-obsolete\/\">article publi\u00e9 sur le site Developpez.com<\/a> fin f\u00e9vrier 2019 relan\u00e7ait il y a quelques jours un vieux d\u00e9bat sur l\u2019int\u00e9r\u00eat d\u2019apprendre \u201c\u00e0 coder\u201d aux enfants. Il cite <strong>Andreas Schleicher<\/strong>, Directeur de l\u2019Education et des Comp\u00e9tences au Secr\u00e9tariat G\u00e9n\u00e9ral de l\u2019OCDE. Il s\u2019exprimait sur le sujet lors de la conf\u00e9rence \u201cWorld Innovation Summit for Education\u201d qui avait lieu \u00e0 Paris fin f\u00e9vrier.<\/p>\n<p>Selon lui \u201c<em>enseigner aux enfants \u00e0 coder est une perte de temps, car c&#8217;est [\u2026] une comp\u00e9tence qui sera bient\u00f4t obsol\u00e8te<\/em>\u201d. \u201c<em>Cette comp\u00e9tence est simplement \u00ab une technique de notre temps <\/em>\u00bb et elle deviendrait inutile \u00e0 l&#8217;avenir\u201d. Il consid\u00e8re qu\u2019apprendre \u00e0 coder n&#8217;est qu&#8217;une \u201c<em>technique de notre \u00e9poque<\/em>\u201d. Il pense que ce serait une grave erreur que cet \u201coutils\u201d soit enracin\u00e9. \u201c<em>Il affirme qu\u2019il est beaucoup plus enclin \u00e0 enseigner la science des donn\u00e9es ou la pens\u00e9e informatique que d&#8217;enseigner une technique tr\u00e8s sp\u00e9cifique d&#8217;aujourd&#8217;hui.<\/em>\u201d. Son point de vue intervient en r\u00e9action aux initiatives de nombreux pays d\u2019apprendre le code aux enfants d\u00e8s le plus jeune \u00e2ge, comme au Royaume-Uni.<\/p>\n<p>Voil\u00e0 de quoi enflammer un beau d\u00e9bat, ce qui n\u2019a pas manqu\u00e9 de se produire sur Twitter avec une r\u00e9probation plut\u00f4t majoritaire de ces propos. Mais lisez plut\u00f4t les commentaires de l\u2019article de D\u00e9veloppez.com qui sont, pour la plupart, un peu plus \u00e9labor\u00e9s.<\/p>\n<p><strong><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/OCDE-et-Code.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"OCDE et Code\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/OCDE-et-Code_thumb.jpg\" alt=\"OCDE et Code\" width=\"512\" height=\"362\" border=\"0\" \/><\/a><\/strong><\/p>\n<p>Le Docteur Schleicher n\u2019est pourtant pas n\u00e9 de la derni\u00e8re pluie. C\u2019est un sp\u00e9cialiste de l\u2019\u00e9ducation qu\u2019il a trait\u00e9e en long et en large. Son avis est toutefois l\u00e9g\u00e8rement entach\u00e9 d\u2019un biais cognitif classique. Son m\u00e9tier d\u2019origine \u00e9tant la statistique, il n\u2019est pas \u00e9tonnant qu\u2019il valorise la data science. Mais on ne peut juger un avis par quelques phrases sorties de leur contexte. Il est notamment l\u2019auteur du tr\u00e8s int\u00e9ressant \u201cWorld Class\u201d, un ouvrage OCDE <a href=\"http:\/\/www.oecd.org\/education\/world-class-9789264300002-en.htm\">librement t\u00e9l\u00e9chargeable ici<\/a>. Il y d\u00e9construit de nombreux mythes sur l\u2019\u00e9ducation dans le monde. C\u2019est un peu un analogue de feu Hans Rosling (GapMinder) sur l\u2019\u00e9ducation. Cela m\u00e9rite le d\u00e9tour.<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/World-Class-Andreas-Schleicher.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"World Class Andreas Schleicher\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/World-Class-Andreas-Schleicher_thumb.jpg\" alt=\"World Class Andreas Schleicher\" width=\"175\" height=\"244\" border=\"0\" \/><\/a><\/p>\n<p>Et cela tombe plut\u00f4t mal car, approchant de la <strong>Journ\u00e9e Internationale des Droits des Femmes <\/strong>(8 mars), on a droit \u00e0 une tr\u00e8s utile piq\u00fbre de rappel dans les m\u00e9dias sur la trop faible repr\u00e9sentation des femmes dans les m\u00e9tiers techniques du num\u00e9rique. Comment valoriser ces m\u00e9tiers si dans le m\u00eame temps, certains donnent l&#8217;impression de les d\u00e9valoriser ?<\/p>\n<p><em>Ci-dessous<\/em>, <strong>Marie-Claire Capobianco <\/strong>de la BNP relayait un article sur cette triste r\u00e9alit\u00e9 et propose d\u2019orienter massivement les filles vers les \u201c\u00e9tudes de codages\u201d (pourquoi au pluriel ?). Un contre-point saisissant \u00e0 celui d\u2019Andreas Schleicher.<\/p>\n<p>Je r\u00e9agissais au quart de tour \u00e0 ce tweet en indiquant qu\u2019il faudrait commencer par utiliser des expressions plus valorisantes comme ing\u00e9nieur(e) logiciel, architecte logiciel ou d\u00e9veloppeur(euse). Evitons de d\u00e9finir un m\u00e9tier par une t\u00e2che ou un outils ! Privil\u00e9gions la mission et l&#8217;objet r\u00e9alis\u00e9, et aussi sa dimension humaine. St\u00e9phane Zibi <a href=\"https:\/\/twitter.com\/StephZibi\/status\/1102489554479706113\">rench\u00e9rissait<\/a> \u00e0 juste titre \u201c<em>Et d\u2019ajouter la cr\u00e9ativit\u00e9 n\u00e9cessaire, la passion que cela engendre et les aspects strat\u00e9giques de ces postes dans les entreprises<\/em>\u201d. D\u2019autres \u00e9voquent aussi l\u2019appellation ancienne d\u2019analyste programmeur.<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Codage.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"Codage\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Codage_thumb.jpg\" alt=\"Codage\" width=\"503\" height=\"522\" border=\"0\" \/><\/a><\/p>\n<p>Avec le recul, Andreas Schleicher et Marie-Claire Capobianco incarnent deux facettes oppos\u00e9es du biais n\u00e9gatif associ\u00e9 au d\u00e9veloppement logiciel. L\u2019un en relativise l\u2019int\u00e9r\u00eat et l\u2019autre le valorise un peu maladroitement. Ils confondent peut-\u00eatre les outils et leur utilit\u00e9. Ils se m\u00e9prennent sur ce que l\u2019on apprend en programmant.<\/p>\n<p>Ce n\u2019est peut-\u00eatre qu\u2019une question de jargon employ\u00e9 et de sens donn\u00e9 \u00e0 ces diff\u00e9rentes appellations. Je vais donc enfoncer quelques portes ouvertes sur le sujet dans ce qui suit.<\/p>\n<p><strong>Une remise en cause permanente des acquis<\/strong><\/p>\n<p>Quand on se met \u00e0 programmer \u201cavec du code\u201d, peu importe le langage de programmation. Il faut surtout se pr\u00e9parer au changement permanent pendant sa vie professionnelle.<\/p>\n<p>Comme j\u2019approche de la soixantaine, je suis pass\u00e9 par le FORTRAN (avec des cartes perfor\u00e9es\u2026 le top du top de l&#8217;apprentissage de la patience et de l&#8217;humilit\u00e9 pour le d\u00e9veloppeur !), le COBOL (tr\u00e8s peu, fort heureusement pour moi) et le BASIC (sur un Pet Commodore en 1978 ou un TRS-80 en 1980). Entre deux cours de Math Sup, j&#8217;ai aussi d\u00e9velopp\u00e9 plus d&#8217;une centaine de programmes pour ma calculatrice HP41C en notation polonaise invers\u00e9e (dingue non ?). Ces diff\u00e9rents langages n\u2019ont plus du tout cours. J\u2019ai aussi appris l\u2019APL, qui est moins connu, un langage math\u00e9matique extr\u00eamement concis qui sert notamment \u00e0 manipuler des matrices. Plus personne ne l&#8217;utilise aujourd&#8217;hui mais c&#8217;\u00e9tait marrant. C&#8217;est ce que l&#8217;on appelle un langage &#8220;write once, read never&#8221; ! On peut l&#8217;\u00e9crire mais le lire est une sacr\u00e9e paire de manche !<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/2019\/mythe-fin-developpement-logiciel\/apl-code-example\/\" rel=\"attachment wp-att-17220\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-17220\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/APL-code-example.jpg\" alt=\"\" width=\"369\" height=\"255\" srcset=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/APL-code-example.jpg 800w, https:\/\/www.oezratty.net\/wordpress\/wp-content\/APL-code-example-300x207.jpg 300w, https:\/\/www.oezratty.net\/wordpress\/wp-content\/APL-code-example-768x530.jpg 768w\" sizes=\"auto, (max-width: 369px) 100vw, 369px\" \/><\/a><\/p>\n<p>Je suis ensuite pass\u00e9 par la programmation objet (C++) puis par la programmation \u00e9v\u00e9nementielle \u00e0 partir de Windows 1.0 \u00e0 la fin des ann\u00e9es 1980 et ensuite avec Javascript et AJAX il y a une dizaine d\u2019ann\u00e9es pour la cr\u00e9ation de plugins dans WordPress.<\/p>\n<p>Plus r\u00e9cemment, j\u2019ai d\u00e9couvert les m\u00e9thodes d\u00e9claratives de cr\u00e9ation de r\u00e9seaux de neurones ainsi que la programmation quantique qui remet beaucoup de choses en cause. A chaque fois, les outils \u00e9taient diff\u00e9rents mais les bases apprises il y a des d\u00e9cennies m\u2019\u00e9taient toujours utiles. Et pourtant, je ne suis plus d\u00e9veloppeur depuis 1989, au sens du m\u00e9tier principal. Les basiques du d\u00e9part m\u2019ont permis \u00e0 chaque fois de d\u00e9couvrir de nouveaux langages, outils et architectures. Il faut surtout savoir parfois remettre les pendules \u00e0 l\u2019heure et \u00e9voluer.<\/p>\n<p>Le changement permanent est le lot commun du d\u00e9veloppeur d\u2019aujourd\u2019hui qui passe de framework en framework aussi bien pour du d\u00e9veloppement web \u201cfull stack\u201d (serveur et poste de travail, REACT, Angular, Node.js, et je ne dois plus \u00eatre au point tellement cela bouge vite dans le domaine) ou pour cr\u00e9er des solutions de machine learning (de Theano \u00e0 Tensorflow en passant par Caffee ou Pytorch). Le d\u00e9veloppement logiciel d\u2019aujourd\u2019hui est une juxtaposition d\u2019une quantit\u00e9 de plus en plus grande d\u2019outils sp\u00e9cialis\u00e9s dont il faut ma\u00eetriser l\u2019agencement.<\/p>\n<p>Et les jeunes d&#8217;aujourd&#8217;hui qui d\u00e9veloppent auront eux-aussi \u00e0 traverser de nouvelles g\u00e9n\u00e9rations d&#8217;outils qui transformeront incessamment leur m\u00e9tier. Je leur dis souvent que les outils d&#8217;aujourd&#8217;hui sont les cartes perfor\u00e9e de <em>dans 30 ans<\/em> !<\/p>\n<p><strong>La programmation au-del\u00e0 du m\u00e9tier de d\u00e9veloppeur<\/strong><\/p>\n<p>Apprendre \u00e0 d\u00e9velopper, c\u2019est aussi un moyen d\u2019automatiser les t\u00e2ches r\u00e9p\u00e9titives de sa vie num\u00e9rique. Sans \u00eatre d\u00e9veloppeur \u00e0 temps plein, je cr\u00e9\u00e9 ainsi des batches et macros diverses avec des outils qui n\u2019ont rien d\u2019extraordinaire (genre VBA dans Office). Ils me font gagner \u00e9norm\u00e9ment de temps. C\u2019est aussi cela \u201cle codage\u201d : savoir automatiser ce qui peut l\u2019\u00eatre pour devenir plus efficace. Cela me sert par exemple \u00e0 produire le <a href=\"https:\/\/www.oezratty.net\/wordpress\/2019\/rapport-ces-2019\/\">Rapport du CES de Las Vegas<\/a> chaque ann\u00e9e. Plein d\u2019anciens d\u00e9veloppeurs ont conserv\u00e9 ces r\u00e9flexes et pratiques. C\u2019est leur petit secret de productivit\u00e9 !<\/p>\n<p>En apprenant \u00e0 cr\u00e9er du logiciel, petit ou grand, on d\u00e9veloppe sa capacit\u00e9 \u00e0 structurer un raisonnement et \u00e0 d\u00e9composer un probl\u00e8me en composantes. On (re)d\u00e9couvre la logique. Ce b\u00e9n\u00e9fice est souvent mis en avant avec brio par <strong>Aur\u00e9lie Jean<\/strong> dans ses diff\u00e9rentes interventions comme lors de la conf\u00e9rence USI en juin 2017 (<a href=\"https:\/\/www.youtube.com\/watch?v=C9CQdpTxboM\">vid\u00e9o<\/a>).<\/p>\n<p>On s\u2019aper\u00e7oit aussi qu\u2019une bonne partie de la vie est une forme de programmation. Tous les jours, nous prenons des d\u00e9cisions dans nos actions qui prennent en compte un grand nombre de param\u00e8tres. Sans que l\u2019on s\u2019en rende compte, c\u2019est une forme de programmation. Elle est moins explicite que dans la programmation, mais cela reste une forme de \u201ccode\u201d. Notre \u201clibre arbitre\u201d est ainsi la juxtaposition d\u2019un nombre \u00e9lev\u00e9 de donn\u00e9es de contexte, de notre pass\u00e9, des r\u00e8gles apprises et de nos r\u00e9actions hormonales \u00e0 des \u00e9motions.<\/p>\n<p>Nous passons d\u2019ailleurs notre vie \u00e0 mettre en \u0153uvre les deux grands volets de l\u2019intelligence artificielle : l\u2019IA symbolique avec ses r\u00e8gles et sa logique et l\u2019IA connexionniste qui consiste \u00e0 apprendre par l\u2019observation des donn\u00e9es. Notre savoir empirique est ainsi construit par l\u2019accumulation de r\u00e8gles que nous d\u00e9duisons de l\u2019observation : de la nature, des choses, des comportements, etc. Les r\u00e8gles et savoirs appris profitent de ce travail r\u00e9alis\u00e9 par les autres homo-sapiens. De la m\u00eame mani\u00e8re, les parents programment les enfants avec son \u00e9ducation mais l\u2019enfant en bas \u00e2ge \u201cprogramme\u201d aussi ses propres parents avec ses pleurs, cris et sourires. Action. R\u00e9action.<\/p>\n<p>Cela ne doit pas pour autant induire une approche \u201cm\u00e9canique\u201d de la vie et des relations humaines. On reproche souvent aux d\u00e9veloppeurs d\u2019\u00eatre trop introvertis et de ne pas s\u2019int\u00e9resser assez aux autres et aux utilisateurs. C\u2019est un reproche recevable pour une part d\u2019entre eux\/elles. Mais les d\u00e9veloppeurs n\u2019ont pas l\u2019exclusive de ce genre d\u2019\u00e9cueils. Plein d\u2019autres m\u00e9tiers que je ne citerai pas et qui sont cens\u00e9s \u00eatre plus \u201ctourn\u00e9s vers les gens\u201d pr\u00e9sentent des travers voisins.<\/p>\n<p>Ces travers d\u00e9shumanisants sont aussi li\u00e9s \u00e0 la tendance \u00e0 tayloriser un peu trop les m\u00e9tiers du logiciel, notamment dans les soci\u00e9t\u00e9s de services informatiques (les ESN : entreprises de services num\u00e9riques). Un peu comme il existe des \u201cstages ouvriers\u201d dans les \u00e9coles d\u2019ing\u00e9nieur, on devrait peut-\u00eatre cr\u00e9er des \u201cstages utilisateurs\u201d pour les d\u00e9veloppeurs, et les exposer plus aux personnes qui utilisent ou utiliseront leurs cr\u00e9ations (c&#8217;est pr\u00e9vu dans les m\u00e9thodes Agile).<\/p>\n<p><strong>La fin du code n\u2019est pas pour demain<\/strong><\/p>\n<p>Et pourtant, la fin du code est une vieille rengaine. Je me souviens de mes d\u00e9buts professionnels dans les ann\u00e9es 1980 o\u00f9 la tendance \u00e9tait aux \u201clangages de quatri\u00e8me g\u00e9n\u00e9ration\u201d qui allaient faire dispara\u00eetre la programmation. Avec eux, on allait d\u00e9crire les besoins m\u00e9tiers \u00e0 haut niveau et les g\u00e9n\u00e9rateurs de code s\u2019occuperaient du reste. C\u2019\u00e9tait les beaux jours de la m\u00e9thode MERISE de conception d\u2019applications de gestion. La m\u00e9thode a chang\u00e9 mais la programmation est rest\u00e9e.<\/p>\n<p>Aujourd\u2019hui, la grande vague de l\u2019intelligence artificielle relance la tendance avec de nombreux futurologues &#8211; non d\u00e9veloppeurs en g\u00e9n\u00e9ral &#8211; qui pr\u00e9voient la fin de la programmation. C\u2019est aliment\u00e9 par la mode du machine learning qui d\u00e9crit les m\u00e9thodes de cr\u00e9ation de programmes qui apprennent eux-m\u00eames par les donn\u00e9es. On oublie qu\u2019en g\u00e9n\u00e9ral, ces outils sont \u00e0 la base de v\u00e9ritables logiciels qui requi\u00e8rent tout de m\u00eame de la programmation. Quand AlphaGo de Google DeepMind gagne au jeu de Go, c\u2019est aussi le r\u00e9sultat de la cr\u00e9ation de logiciels ! Ce n\u2019est pas magiquement sorti tout seul de l\u2019ordinateur !<\/p>\n<p>Mais l\u2019IA peut aider les d\u00e9veloppeurs \u00e0 am\u00e9liorer leur productivit\u00e9. Les environnements de d\u00e9veloppement sont de plus en plus productifs comme peut \u00e9ventuellement l\u2019\u00eatre un traitement de texte. C\u2019est ce qui est expos\u00e9 dans l\u2019article ci-dessous dont le titre est trompeur (<a href=\"https:\/\/www.futurity.org\/artificial-intelligence-bayou-coding-1740702\/\">source<\/a>). Il existe aussi un outil d\u00e9nomm\u00e9 <strong>Bayou<\/strong> qui est cens\u00e9 coder par lui-m\u00eame en s\u2019entra\u00eenant avec les millions de lignes de code stock\u00e9es dans Github qui contient une bonne part des logiciels open source du monde entier (<a href=\"https:\/\/www.engineering.com\/DesignerEdge\/DesignerEdgeArticles\/ArticleID\/16827\/This-Deep-Learning-AI-Can-Code-Just-Like-a-Programmer.aspx\">source<\/a>).<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/AI-Application-can-write-its-own-code.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"AI Application can write its own code\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/AI-Application-can-write-its-own-code_thumb.jpg\" alt=\"AI Application can write its own code\" width=\"576\" height=\"400\" border=\"0\" \/><\/a><\/p>\n<p>Dans <a href=\"http:\/\/blog.thefirehoseproject.com\/posts\/end-of-code\/\">Is The End Of Code Really Coming?<\/a>, Ken Mazaika (2016) d\u00e9construit efficacement ces mythes sur la fin de la programmation en rappelant que l\u2019on n\u2019a jamais autant cod\u00e9. Et si des outils permettent de cr\u00e9er des sites web sans coder (WordPress de base, Wix, \u2026), d\u00e8s que l\u2019on veut interagir avec des donn\u00e9es ou ajouter une interaction non standard, il faut s\u2019y coller ! Il conclue en d\u00e9montrant que l\u2019on n\u2019a jamais autant eu besoin de d\u00e9veloppeurs pour une raison simple : le logiciel fait maintenant partie de tous les m\u00e9tiers et de tous les march\u00e9s. J&#8217;ajouterai que l&#8217;am\u00e9lioration de la productivit\u00e9 de la production de logiciels divers a \u00e9t\u00e9 accompagn\u00e9e d&#8217;un \u00e9largissement constant de son march\u00e9.<\/p>\n<p>Ken Mazaika rappelle aussi qu\u2019un d\u00e9veloppeur fait bien plus que coder. Il doit d\u00e9j\u00e0 commencer par interpr\u00e9ter ou traduire les besoins m\u00e9tiers ! C\u2019est une t\u00e2che parfois infinie, comme l\u2019ont illustr\u00e9 \u00e0 leurs d\u00e9pends les projets serpents de mer type <strong>Louvois<\/strong> (paye de l\u2019arm\u00e9e en France). Je reprend <em>ci-dessous<\/em> une illustration d\u2019un commentaire de l\u2019article de Developpez.com qui est \u00e9loquente !<\/p>\n<p>Cet exercice de sp\u00e9cification des besoins est d\u00e9j\u00e0 une forme de programmation. La programmation intervient d\u00e8s lors qu\u2019il s\u2019agit d\u2019interpr\u00e9ter des r\u00e8gles m\u00e9tiers ! L\u00e0-dessus sont apparues les notions vari\u00e9es de RAD (rapid application development), d&#8217;Extreme Programming, de Lean et de m\u00e9thodes agiles. En g\u00e9n\u00e9ral, elles servent \u00e0 raccourcir la boucle entre utilisateurs, sp\u00e9cifications et r\u00e9alisations et \u00e0 am\u00e9liorer la flexibilit\u00e9 des d\u00e9veloppements logiciels qui doivent r\u00e9pondre \u00e0 des demandes fluctuantes des utilisateurs.<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Specifications.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"Specifications\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Specifications_thumb.jpg\" alt=\"Specifications\" width=\"467\" height=\"440\" border=\"0\" \/><\/a><\/p>\n<p>Le d\u00e9veloppeur con\u00e7oit un syst\u00e8me et il utilise des syst\u00e8mes existants. Selon la taille du projet et des \u00e9quipes, il intervient dans la d\u00e9finition de l\u2019architecture du syst\u00e8me. En termes de connaissances, un d\u00e9veloppeur d\u2019aujourd\u2019hui doit bien plus ma\u00eetriser les interface avec les nombreuses biblioth\u00e8ques logicielles qu\u2019il utilise (les \u201cframeworks\u201d) que les constructions standards des langages de programmation qui les mettent en musique.<\/p>\n<p>Ayant d\u00e9velopp\u00e9 un plugin pour WordPress (depuis 2012 pour <a href=\"https:\/\/www.oezratty.net\/wordpress\/photos\/\">g\u00e9rer mes photos<\/a>), je me suis rendu compte de la grande diversit\u00e9 des t\u00e2ches \u00e0 r\u00e9aliser pour faire du bon boulot : conception graphique et exp\u00e9rience utilisateur (souvent d\u00e9l\u00e9gu\u00e9e \u00e0 des sp\u00e9cialistes), architecture client et serveur, s\u00e9curit\u00e9, gestion des donn\u00e9es, outillage (devops), documentation, aide utilisateur, tutoriels vid\u00e9o, et\u2026 surtout, les tests et le d\u00e9bugging qui peuvent facilement prendre la t\u00eate tellement les probl\u00e8mes peuvent \u00eatre complexes \u00e0 r\u00e9soudre. Et encore, je ne suis pas \u00e9diteur de logiciels ! Ce n\u2019est que du \u201ccode de garage\u201d.<\/p>\n<p>La capacit\u00e9 \u00e0 r\u00e9soudre les bugs d\u2019un logiciel est un v\u00e9ritable savoir en soi. C\u2019est une comp\u00e9tence int\u00e9ressante et r\u00e9utilisable dans de nombreux domaines. Elle aide par exemple \u00e0 rechercher les causes d\u2019un probl\u00e8me non pas l\u00e0 o\u00f9 il se manifeste mais dans sa p\u00e9riph\u00e9rie et ses composantes. Il requiert de se cr\u00e9er une image mentale aussi large que possible du syst\u00e8me \u00e0 corriger.<\/p>\n<p>C\u2019est un outil d\u2019analyse tr\u00e8s puissant dans nombre de m\u00e9tiers. On l\u2019appelle aussi &#8220;approche syst\u00e9mique\u201d. Elle sert par exemple en \u00e9conomie (\u201ccomment relancer la croissance\u201d, \u201ccomment baisser le ch\u00f4mage\u201d, \u201cpourquoi ci, pourquoi \u00e7a ?\u201d\u2026) et dans le marketing (\u201cpourquoi les clients n\u2019ach\u00e8tent-ils pas notre produit\u201d, \u201cpourquoi les m\u00e9dias n\u2019en parlent-ils pas ?\u201d, \u201cpourquoi mon concurrent est-il mieux plac\u00e9 ?\u201d, \u2026).<\/p>\n<p>Et le cloud dans tout \u00e7a ? L\u00e0 encore, s\u2019il facilite un certain nombre de choses, il les complique aussi et requiert la ma\u00eetrise pour le d\u00e9veloppeur d\u2019un nombre de plus en plus grand de concepts et outils : machines virtuelles, hyperviseurs, containers, Kubernetes (gestion de containers originaire de Google), devops (pour automatiser la mise en production des logiciels), AIOps (utilisation de l\u2019IA pour automatiser les t\u00e2ches de la production et de la supervision informatique), etc. Les logiciels font aussi de plus en plus appel \u00e0 des processeur sp\u00e9cialis\u00e9s (GPU, neuromorphiques). Le d\u00e9veloppeur d&#8217;aujourd&#8217;hui doit donc avoir aussi des comp\u00e9tences en hardware.<\/p>\n<p>Si vous d\u00e9veloppez par exemple des solutions logicielles sur la plateforme de cloud de Google (<em>ci-dessous<\/em>), vous devez d\u00e9couvrir des dizaines d\u2019outils et de concepts associ\u00e9s. On est plus proche du m\u00e9tier d\u2019architecte que de celui de ma\u00e7on !<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Google-cloud-platform.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"Google cloud platform\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Google-cloud-platform_thumb.jpg\" alt=\"Google cloud platform\" width=\"551\" height=\"280\" border=\"0\" \/><\/a><\/p>\n<p>Et les donn\u00e9es ? Elles jouent bien entendu un r\u00f4le de plus en plus cl\u00e9, surtout dans les applications de machine learning. Le d\u00e9veloppeur doit en comprendre les aspects, se (re)plonger dans les basiques des statistiques et probabilit\u00e9s, comprendre aussi les biais des donn\u00e9es d\u2019entra\u00eenement de syst\u00e8mes d\u2019IA. Cela ne remplace pas les comp\u00e9tences existantes des d\u00e9veloppeurs, cela les compl\u00e8te. M\u00eame si dans la pratique, les entreprises et les startups ont tendance \u00e0 bien (trop) s\u00e9parer les m\u00e9tiers entre data scientists et les d\u00e9veloppeurs. Encore cette taylorisation !<\/p>\n<p>Bref, d\u00e9velopper aujourd\u2019hui est loin d\u2019\u00eatre un m\u00e9tier monolithique comme certains aimeraient le croire. Le d\u00e9veloppeur s\u2019appuie maintenant sur une bien plus grande vari\u00e9t\u00e9 d\u2019outils de travail que nombre de sp\u00e9cialistes d\u2019autres m\u00e9tiers (radiologues, experts-comptables, marketeur, \u2026).<\/p>\n<p><strong>Revenons aux enfants<\/strong><\/p>\n<p>Malgr\u00e9 tout ce que nous venons de voir, je ne suis pas forc\u00e9ment un grand adepte de l\u2019apprentissage de la programmation d\u00e8s le plus jeune \u00e2ge. L\u2019enfant en bas \u00e2ge a surtout besoin de bien se relier au monde physique. D\u2019o\u00f9 l\u2019importance des jeux de construction, pour les gar\u00e7ons comme pour les filles. Ils \u00e9veillent au r\u00e9el, \u00e0 la cr\u00e9ativit\u00e9, \u00e0 la construction par modification de mod\u00e8les pr\u00e9existants.<\/p>\n<p>C\u2019est dans ce cadre que l\u2019apprentissage de la programmation est pertinente, comme avec le langage Scratch du MIT utilis\u00e9 en robotique. Elle a du sens lorsqu\u2019elle est reli\u00e9e au monde r\u00e9el avant de permettre de g\u00e9rer des raisonnements totalement abstraits dans un second temps.<\/p>\n<p><strong><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Scratch-robot-programming.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"Scratch robot programming\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/Scratch-robot-programming_thumb.jpg\" alt=\"Scratch robot programming\" width=\"527\" height=\"281\" border=\"0\" \/><\/a><\/strong><\/p>\n<p>Il faut surtout ne pas confondre ces outils de d\u00e9couverte qui permettent de comprendre quelques composantes de l\u2019articulation du monde technique avec les m\u00e9tiers de d\u00e9veloppeurs. Les premiers sont des outils g\u00e9n\u00e9riques qui compl\u00e8tent les autres savoirs fondamentaux (calcul, lecture, \u00e9criture, dessin, musique, sciences de la vie, \u2026). Les seconds sont des m\u00e9tiers sp\u00e9cialis\u00e9s.<\/p>\n<p>L\u2019apprentissage du code ne cr\u00e9\u00e9 pas directement de comp\u00e9tences m\u00e9tiers. Il permet juste de diversifier sa mani\u00e8re de comprendre le monde. Eventuellement, il donnera envie de s\u2019int\u00e9resser \u00e0 ces m\u00e9tiers tout comme les sciences de la vie peuvent donner envie de devenir m\u00e9decin.<\/p>\n<p><strong>Et \u00e0 la mixit\u00e9\u2026<\/strong><\/p>\n<p>Pour ce qui est de \u201c<em>r\u00e9orienter massivement les filles vers les \u00e9tudes de codage<\/em>\u201d, ce n\u2019est pas une mince affaire puisque presque toutes les tentatives d\u2019am\u00e9liorer la situation se sont sold\u00e9es par des \u00e9checs des 10 derni\u00e8res ann\u00e9es. On est m\u00eame plut\u00f4t en pleine r\u00e9gression, tout du moins en France avec moins de 10% de femmes dans les \u00e9coles sp\u00e9cialis\u00e9es en informatique.<\/p>\n<p>Comme s\u2019y attachent les associations membres de la fondation <a href=\"mailto:\u201cFemmes@Num\u00e9rique\">\u201cFemmes@Num\u00e9rique<\/a>\u201d, dont \u201cQuelques Femmes du Num\u00e9rique !\u201d fait partie (j\u2019en suis l\u2019un des cofondateurs avec Marie-Anne Magnac), cela passe par de nombreuses actions de sensibilisation. Il n&#8217;y a pas de solution miracle mais une association d&#8217;ingr\u00e9dients \u00e0 assembler avec discernement.<\/p>\n<p>Il faut commencer par utiliser un vocabulaire valorisant des m\u00e9tiers associ\u00e9s au d\u00e9veloppement logiciel qui en met en valeur la richesse \u00e0 la fois technologique et humaine. Cela peut s\u2019illustrer par les objectifs des logiciels et leur r\u00f4le dans une incroyable diversit\u00e9 de secteurs d\u2019activit\u00e9 : dans la sant\u00e9, dans l\u2019agriculture, dans les transports, dans l\u2019environnement, dans le marketing ou m\u00eame dans les m\u00e9dias. De plus en plus, le d\u00e9veloppeur a une double comp\u00e9tence : technique et m\u00e9tier. Cela lui ouvre d&#8217;ailleurs des portes professionnelles inimaginables en d\u00e9but de carri\u00e8re.<\/p>\n<p>Comme le rappelle \u00e0 l&#8217;envie Guy Mamou-Mani aussi bien dans son dernier ouvrage anti-anxiog\u00e8ne &#8220;<a href=\"https:\/\/www.amazon.fr\/Lapocalypse-num%C3%A9rique-naura-pas-lieu\/dp\/B07HGGBXC4\">L&#8217;apocalypse num\u00e9rique n&#8217;aura pas lieu<\/a>&#8221; que dans ses interventions en conf\u00e9rences ou sur Twitter, la demande est l\u00e0 ! C&#8217;est m\u00eame la premi\u00e8re branche de m\u00e9tiers en terme d&#8217;emplois toutes industries confondues. M\u00eame si l&#8217;attrait \u00e9conomique d&#8217;une fili\u00e8re ne doit pas \u00eatre la seule motivation pour s&#8217;y int\u00e9resser, il est bon de le souligner, surtout au regard de nombreuses fili\u00e8res d&#8217;enseignement sup\u00e9rieur sans d\u00e9bouch\u00e9s.<\/p>\n<p><a href=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/QFDN-Developpeuse.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"QFDN Developpeuse\" src=\"https:\/\/www.oezratty.net\/wordpress\/wp-content\/QFDN-Developpeuse_thumb.jpg\" alt=\"QFDN Developpeuse\" width=\"476\" height=\"270\" border=\"0\" \/><\/a><\/p>\n<p>Cela passe aussi par la mise en valeur &#8220;en ligne&#8221; et &#8220;IRL&#8221; (in real life, sur le terrain) de \u201crole models\u201d et de parcours diversifi\u00e9s qui sont pass\u00e9s par le d\u00e9veloppement logiciels o\u00f9 y sont m\u00eame rest\u00e9s (<em>ci-dessus<\/em>, une cinquantaine de d\u00e9veloppeuses photographi\u00e9es dans le cadre de QFDN). Les jeunes proc\u00e8dent beaucoup dans leurs choix par identification. Ils sont influenc\u00e9s par ce qu&#8217;ils re\u00e7oivent, notamment via les m\u00e9dias et contenus divers, et par leurs in\u00e9vitables st\u00e9r\u00e9otypes envahissants. Changer ces contenus prendra du temps.<\/p>\n<p>Enfin, on l\u2019oublie parfois, cela demande aussi des efforts de la part de la gent masculine qui se doit d\u2019\u00eatre plus accueillante dans ces diff\u00e9rents parcours. Et ce n&#8217;est pas le moindre des efforts \u00e0 d\u00e9ployer !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un article publi\u00e9 sur le site Developpez.com fin f\u00e9vrier 2019 relan\u00e7ait il y a quelques jours un vieux d\u00e9bat sur l\u2019int\u00e9r\u00eat d\u2019apprendre \u201c\u00e0 coder\u201d aux enfants. Il cite Andreas Schleicher, Directeur de l\u2019Education et des Comp\u00e9tences au Secr\u00e9tariat G\u00e9n\u00e9ral de l\u2019OCDE. Il s\u2019exprimait sur le sujet lors de la conf\u00e9rence \u201cWorld Innovation Summit for Education\u201d [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,23,25,5],"tags":[3203,3212,3209,3207,798,3206,3208,3210,3204,3211,3205,2838],"class_list":["post-17216","post","type-post","status-publish","format-standard","hentry","category-logiciels","category-logiciels-libres","category-sociologie","category-technologie","tag-andreas-schleicher","tag-angular","tag-apl","tag-cobol","tag-developpeurs","tag-fortran","tag-merise","tag-node-js","tag-ocde","tag-react","tag-scratch","tag-tensorflow"],"views":41271,"_links":{"self":[{"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/posts\/17216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/comments?post=17216"}],"version-history":[{"count":0,"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/posts\/17216\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/media?parent=17216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/categories?post=17216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.oezratty.net\/wordpress\/wp-json\/wp\/v2\/tags?post=17216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}