#5 Low-code, No-Code, IA-code, la mort des développeurs?
Le métier de développeur est probablement celui qui a connu l’évolution la plus profonde et fulgurante de tous.
Des cartes perforées des années 60 à TypeScript aujourd’hui, le métier de développeur a changé, et notre industrie également à une vitesse absolument inconnue nul part ailleurs.
Préhistoire
Quand j’avais 8 ans, mon père, ingénieur militaire, m’emmenait dans son labo de conception de sous-marins nucléaires à Leningrad. J’y découvrais les cartes perforées, les bobines magnétiques, des ordinateurs remplissant des hangars entiers et des fers à souder, tenus par des PhD aux focales plus grosses que leurs QI.
Le métier de développeur était alors à la croisée des mathématiques, de l’électronique et du bricolage. Dans les années 80, on les appela “génies” de l’informatique, nerds, avec Bill Gates pour idole et étalon de cette nouvelle espèce. Une sub-culture entière s’est crée de toutes pièces autour des développeurs, hackers et autres geeks.
Puis, l’arrivée de l’informatique personnelle et de l’internet marqua un coup d’accélérateur : webmaster, intégrateur html, développeur back, développeur CMS, full-stack, dev-ops, data-scientist, creative-developer…
Les tendances en cours
On voit apparaitre plusieurs tendances dans le métier du développeur:
- Spécialisation : la multiplication de couches et d’outils, et la taille du gateau digital, démultiplie les spécialisations (front, back, devops, IA, block-chain, cloud, data, sécurité, edge)
- Simplification technique des couches basses : du fait de la spécialisation d’une part et de l’apparition de nombreux outils d’autre part, la partie technique des couches basses devient de plus en plus simple
- Complexification architecturale extraordinaire : alors qu’en 98, en gros, on avait le choix entre Java et PHP pour réaliser un projet, qui serait toujours hébergé sur un serveur, pointé par un nom de domaine, aujourd’hui, une infinité des possibles existent (de la page Facebook à la montre connectée, utilisant des centaines de langages, frameworks, CMS ou plateformes).
- Industrialisation : nous sommes passés d’un métier artisanal (le fameux “génie” de l’informatique) à une industrie mature, pleine de process, de standards (RFC, W3C, CI/CD, SCRUM, SAFE, …) et de métriques.
- Parité : Si le métier reste malheureusement dominé par les hommes, le pourcentage de femmes a quasiment doublé dans la dernière décennie. Ce qui nous apporte plus d’intelligence et de qualité dans nos projets, des projets dans les temps, respectant le budget et mieux adaptés aux besoins des utilisateurs. Fini les concours de 🍆 d’adolescents.
No-code is the new black.
Une tendance forte des dernières années est la montée fulgurante des plateformes no-code, dont la promesse est d’ouvrir les portes du chateau fort à tous. Vous n’êtes pas développeur ? — pas de soucis, avec ces plateformes, vous pouvez réaliser vos projets sans une ligne de code, n’importe quel projet.
Alors est-ce qu’on va vers la disparition du développeur ?
Papa, c’est quoi un développeur ?
In fine, un développeur faisait et fait toujours la même chose : il transcrit la complexité d’un monde non structuré dans des modèles structurés, de manière plus ou moins industrialisée.
Que ce soit en réalisant des mécanismes de calculs complexes au XVIIème siècle, connectant des fils des machines électriques des années 40, perforant les cartes des années 60, écrivant du code assembleur des années 80 ou réalisant un front-end e-commerce headless en React aujourd’hui.
L’entropie ou la complexité du monde qui nous entoure augmente toujours et toujours plus vite. La digitalisation des entreprises, mais aussi des administrations, la naissance de nouveaux acteurs (Uber), nouveaux besoins (Candy Crush), la globalisation et la pression concurrentielle dingue, crée chaque jour plus d’information et de données que l’humanité n’en ait jamais vu durant toute son existence.
L’erreur est alors de penser que tout à chacun va devenir un créateur d’applications si et seulement si l’on pouvait supprimer la barrière du code. Le code n’est pas le problème, le problème c’est nous :)
Décrire le théorème de la relativité générale en emojis ne la rendra pas plus simple à comprendre (🌍💡🌌⏰↩)
Du comment vers le quoi
Explaining that true no-code platforms embrace declarative programming, CEO of no-code software platform company AppSheet Praveen Seshadri, says that no-code is about what rather than how. In traditional software application platforms, code represents instructions telling the platform how to implement the desired functionality. In a no-code platform on the other hand, the app creator defines what the app does… rather than how it does it.
Les nombreux outils à notre disposition nous permettent de passer du “comment” au “quoi”, mais le “quoi” en question est toujours plus complexe, nécessitant toujours les mêmes geeks. Tout le monde ne deviendra pas développeur d’applications demain, même si le code disparaissait et c’est loin d’être le cas.
Notre industrie se complexifie en strates, ce qui était complexe hier ne l’est plus aujourd’hui, mais nous générons toujours plus de complexité, nécessitant beaucoup d’ingénierie :
- Hardware — il y a 50 ans
- OS / application basiques — 40 ans
- Serveurs web / base de données — 30 ans
- Scalabilité / frameworks — 20 ans
- Plateformes SAAS — 10 ans
- IA / Edge — Aujourd’hui
Le plateformes “no-code” ont en réalité toujours existé, et ont toujours “résolu” des problématiques qui se posaient 10 ans auparavant.
Les systèmes d’exploitation ont résolu les problèmes de hardware, le cloud a résolu celui de l’hébergement, les site builders celui des pages webs, etc… Le no-code a toujours 10 ans de retard sur les besoins des entreprises.
Certes, il n’est plus nécessaire de coder pour réaliser un site web grâce aux “site builders”, mais ce n’est plus vraiment un besoin. Aujourd’hui on travaille, par exemple, sur des écosystèmes d’APIs transactionnels ouverts, intégrant des données provenant des IoT et un UX fonctionnant sur tous les terminaux et touch-points (Apple Watch, Alexa, …). Les développeurs maitrisant ces sujets sont aussi chers et peu nombreux que ceux qui développaient des sites web scalables il y a 10 ans.
D’ailleurs, le “no-code” existe aussi pour les développeurs : votre compilateur C génère du code assembleur ce qui vous évite de comprendre ce que veut dire “mov ax, bx”, votre PHP est écrit en C ce qui vous évite de vous soucier du malloc(), votre ORM génère du SQL, etc…
Je pense donc que nous allons vers toujours plus de simplification du “comment” — toute tâche répétitive et sans valeur ajoutée sera progressivement supprimée du travail des développeurs.
La réutilisation du code est d’une importance clé aujourd’hui, comme la subdivision des monolithes en micro-services ou la standardisation de la communication des composants.
En revanche, nous allons également vers toujours plus de complexité et de diversité du “quoi”, avec des développeurs se rapprochant du business et de l’architecture.
Le développeur full-stack de demain, devra avoir une compréhension de la data, de l’UX et du métier, travaillant au sein d’équipes cross-fonctionnelles et agiles.
On revient un peu aux origines du métier d’ingénieur — un professionnel traitant de problèmes complexes d’ingénierie, notamment en concevant des produits, des processus si nécessaire avec des moyens novateurs, et dirigeant la réalisation et la mise en œuvre de l’ensemble : produits, systèmes ou services.
CTO chez Upsell (Sarawak Group) | Diplômé en Management, innovation et TIC
11 moisLa discussion contemporaine se focalise davantage sur le concept de Low code/No code plutôt que sur le No code seul. Cette tendance s'explique par la capacité du Low code à surmonter les limitations intrinsèques du No code. Bien que le recours à un certain niveau de codage soit toujours requis, l'approche Low code permet de réduire considérablement les temps de développement, souvent jusqu'à dix fois moins. Les plateformes de Low code/No code (LCNC) en sont encore à leurs premiers stades de développement, promettant un potentiel d'évolution significatif. Le couplage du LCNC avec la dynamique de composabilité, rendue possible par la démocratisation de l'accès aux API publiques fournies par les éditeurs d'applications métiers, ouvre la voie à la création d'écosystèmes économiquement rationnels particulièrement adaptés pour répondre aux exigences d’agilités des entreprises modernes. L'avenir s'annonce prometteur, notamment avec l'intégration l’IA dans ce paradigme. L'IA pourra faciliter le développement d'applications, mais aussi accélérer l'hyper-automatisation à travers des interfaces en langage naturel marquant ainsi une étape décisive dans la manière dont les entreprises conçoivent et déploient leurs solutions technologiques.
Freelance Head of Growth
5 ansMerci Maxime, super intéressant ! Si je peux me permettre d'ajouter un axe : les interfaces et la productivité. Aller chercher la bonne boiboîte dans le bon sous-menu prend des heuuures et demande de lire la doc quand même, et une fois qu'on devient rapide et efficace avec ce genre de solution on se rend compte qu'on la connaît par coeur (excel, mon bel excel). Mais quitte à tout connaître par coeur autant ne pas avoir d'interface. Un codeur expérimenté a son language en tête et toutes les commandes au bout des doigts, il va beaucoup plus vite que celui qui se débat avec une interface, et peut construire des choses plus subtiles, plus complexes, plus optimisées. Of course il y a des choses qui se répètent mais comme tu dis elles sont éliminées petit à petit par l'avancée des systèmes. Bref le no-code me semble surtout intéressant pour permettre aux illetrés du code (dont je fais partie) d'automatiser quand même quelques trucs. Notamment des choses sur lesquelles on aurait jamais investi le temps d'un développeur. Ou des choses où la logique métier est tellement compliquée et prédominante sur la complexité technique (un petit arbre logique à 40 sorties) qu'il vaut mieux construire un proto crado pour stabiliser le besoin avant de l'envoyer aux développeurs. Mais bon c'est pas ça qui va mettre grand monde au chômage !
Direction de projets - Transformation entreprise - Transformation Digitale
5 ansFrançois Caron
President Fondateur (CEO)
5 ansPour toutes les raisons que tu exposes (spécialisation en de multiples couches avec chacune leur langage propre pour construire une application, complexité de builds des applications, explosion du nombre de canaux sur lesquelles déployer le back et le front ...), la productivité est dramatiquement basse par rapport à ce que nous avons connu à l'époque du Client Serveur (Powerbuilder, SQLWindows, Delphi ...). Face à ce constat, 2 types de réponses: - No-Code ou IA-Code (sorte de programmation par la pensée) qui relève du rêve / cauchemar irréaliste - Low-Code qui ressemblent furieusement à nos bons L4G ou solution RAD (Rapid Application Development) La clé du succès de ces plateformes Low-Code outre la productivité, va être la capacité de produire du code "standard de fait" par couche en fonction du contexte de déploiement: HTML, React.JS, Vue.JS, PHP, .Net, Java ... modifiable à posteriori ET sans Runtime imposé par la plateforme Low-Code. Et là, on arrive à maturité avec des solutions particulièrement matures qui seront à mettre dans les mains d'indispensables développeurs pour faire les bons choix de conception.
Développeur fullstack
5 ansEn pratique le front end n'a jamais été aussi complexe, le back end répond de manière plus clean qu'il y a 15 ans aux problématiques d accès et de répartition de données(flux, publish/subscribe) mais ça reste plus complexe qu'avant également. Même sur les crms, le degré de compétence technique requis pour bien travailler est en hausse. Au niveau de l exploitation des datas c'est plutôt la même 😂. Plus de pouvoir, plus d'exigences, plus de complexité.