Le mythe du développeur fullstack

En dehors du titre, le générique masculin est utilisé sans aucune discrimination et uniquement dans le but d'alléger le texte.

Le développeur fullstack n’est pas un mythe

Le développeur fullstack est bien réel et son rôle est bien particulier. Énormément de monde pense que le concept de fullstack est impossible. Y’en a même qui se foutent royalement de leur gueule. Ça me sort par les yeux, il faut que je t’en parle.



Un full quoi ?

OK, alors commençons par se mettre d’accord sur la définition avant d’aller plus loin. Un développeur fullstack est un développeur polyvalent capable d’intervenir dans n’importe quelle partie du produit. Du CSS du front, au Terraform de l’infra en passant par le serveur en Go.

Le bordel il a cinq bras et fout ses mains partout. Et forcément, quand tu lis cette définition, tu te dis que le mec en question c’est un dieu. Une rockstar reconnue dans toute la galaxie.



fullstack


Mais en fait, non. Et c’est là que tout le monde est perdu avec cette histoire de fullstack. Le fait de comprendre et d’intervenir dans toute la stack ne fait pas du fullstack un expert en tout. Et surtout, c’est pas ce qu’on lui demande.

Sinon, il ferait plusieurs boulots en fait. Autant engager que des fullstack partout non ? Ça fait aucun sens. Mais alors pourquoi on parle de fullstack ? En fait, comme d’habitude, on essaye de répondre à une question compliquée avec une réponse simple. Tu fais de l’informatique comme moi, tu sais ce que je m’apprête à dire.



Ça dépend, ca dépasse

Comme d’habitude, ça dépend. Et ici, dans le cas des développeurs fullstack, on va parler scope et objectif. Il faut comprendre pourquoi les entreprises font le choix de prendre un fullstack au lieu d’un spécialiste.

Déjà, il faut intégrer que tout le monde n’a pas besoin d’expert. De nombreuses entreprises ont seulement besoin d’une présence numérique dite “modeste”. Quand je dis modeste, ça veut pas dire que c’est nul. T’énerve pas.



korben


Ça veut juste dire que plusieurs WordPress sur OVH et des sites vitrine suffisent largement à l’entreprise pour faire son business. Pour ce genre de besoin, tu vas engager plusieurs experts dans chaque domaine, ou un développeur fullstack ?

Ensuite, il y a le cas où le développeur fullstack a le rôle de facilitateur. Il va travailler avec d’autres développeurs, lesdits experts dans leur domaine, pour faire en sorte qu’une vision transverse soit présente à tous les niveaux.

Ici, le développeur fullstack répond à un besoin fondamental : il casse les silos entre les expertises. C’est central au rôle de fullstack ! Il permet plus de fluidité dans le développement du produit. Pouvant même aller jusqu’à intervenir dans le côté business des choses. C’est passe-partout qui coure partout dans ta boite.



fullstack


Je vois beaucoup de monde se foutre royalement de la gueule des développeurs fullstack. “Personne ne peut avoir autant de connaissances, imposteur !”. Je ne suis pas un développeur fullstack, mais je trouve ça incroyablement agaçant.

Je répète, le développeur fullstack n’est pas censé être un expert dans tous les domaines. Donc il faut arrêter avec cette perception qui met à mal beaucoup d’entre eux.

Et tiens d’ailleurs, poussons l’analyse un peu plus loin, c’est vraiment impossible qu’un développeur fullstack soit expert un peu partout ?



Fullstack Javascript

Le rêve Javascript c’est de pouvoir utiliser le même langage à tous les niveaux. Et aujourd’hui plus que jamais, Javascript à des arguments.

Côté backend, de par son architecture, le runtime NodeJS permet de gérer énormément de trafic concurrent. Si tu sais le scaler proprement, et bien gérer les workers thread en cas de forte utilisation CPU, c’est impressionnant ce que tu peux faire. Beaucoup de monde sous-estime cette technologie.

Côté frontend, je vais pas te faire l’insulte de t’expliquer pourquoi Javascript est très bien adapté. De toute façon, malgré la monté de WebAssembly, t’as juste pas le choix dans un navigateur. Et ça, sans parler des React, VueJS et les 3000 autres frameworks format géant.

Côté mobile, ReactNative, Cordova et autre NativeScript sont présents et prennent de plus en plus de place. Et malgré des solutions comme Flutter et son Dart, Javascript reste présent dans de nombreuses grandes applications mobiles.

Côté applicatif, même là tu as une solution ! ElectronJS est utilisé dans des applications géantes comme Visual Studio Code, Slack, Discord ou Skype.

Et avec tout ça, on pourrait se dire que si t’es un expert Javascript alors t’es un dieu partout. Javascript permettrait vraiment de créer des fullstack experts ? L’eau, le feu, la terre, le vent et Javascript.



javascript


En effet, la variable Javascript permet au développeur fullstack Javascript d’être un cran au-dessus. C’est indéniable. Mais je pense que la réponse est quand même négative. Reboucher les bouteilles les copains, en vrai c’est pas aussi simple que ça. Y’a deux raisons principales à ça.

La première c’est que, malgré la variable Javascript, les spécialisations sont tellement fortes dans certains frameworks, et/ou domaines, qu’on ne peut pas faire intervenir n’importe qui n’importe où. 

La seconde, c’est que Javascript n’est pas forcément parfaitement adapté au besoin et donc pas forcément utilisé. J’aime beaucoup Javascript et NodeJS est l’un de mes outils de travail. Mais parfois le besoin n’est juste pas adapté. Dans ce cas, Javascript n’est pas utilisé et le rêve disparaît avec.

Et si on revient sur terre cinq minutes, on se rend compte qu’en fait les profils fullstack sont souvent experts. Mais pas expert partout.



La vérité sur les fullstack

Le cas de figure qu’on voit le plus souvent, c’est une expertise forte avec plein de connaissances satellites. Les développeurs sont nombreux à essayer de comprendre ce qu’il se passe dans les couches qui ne les concernent pas. Parfois, c’est pour comprendre le point de vue d’autres experts. Souvent, c’est par pure curiosité.

Les développeurs fullstack sont des développeurs qui ont assez élargi leur zone de confort pour pouvoir intervenir efficacement à plusieurs endroits. Ils gardent leurs expertises de cœur et ont les connaissances nécessaires pour faire fonctionner les couches autour.

Mais un développeur backend spécialisé fera un bien meilleur travail coté backend non ? Oui. Mais on s’en fout en fait. Ça dépend du besoin. Tu peux pas dissocier l’expertise et le besoin de l’entreprise. Prenons un exemple.

Si le besoin côté backend c’est un trafic de quelques milliers de personnes dans la journée : presque n’importe qui peut faire un backend qui tient la route. Objectivement, avec les solutions toutes faites qui existent, c’est “facile”.

Par contre, si le besoin c’est une grande API critique tapée 50 000 fois par secondes et qui doit répondre sous 150ms, c’est pas pareil. Là, si t’as pas un expert backend, accroche-toi bien parce que ça va te péter à la gueule.



fullstack


Les besoins et les connaissances pour répondre à ces deux cas de figure sont radicalement différents. Et c’est la même chose côté frontend, devops, software et toutes les spécialisations autour des devs. Et c’est là que le choix entre expert et fullstack doit être fait. Au besoin !



Épilogue

Le développeur fullstack est donc tout sauf un mythe. C’est juste que tout le monde à sa définition. La pire étant qu’il devrait être un expert en tout, ce qui est totalement faux. Un développeur fullstack prend son sens dans un scope bien particulier, et ce scope est défini par chaque organisation.

Qui me parle ?

jesuisundev
Je suis un dev. En ce moment je suis Backend Développeur / DevOps à Montréal. Le dev est l'une de mes passions et j'écris comme je parle. Je continue à te parler quotidiennement sur mon Twitter. Tu peux m'insulter à cet e-mail ou le faire directement dans les commentaires juste en dessous. Y'a même une newsletter !

10 commentaires sur “Le développeur fullstack n’est pas un mythe”

  1. La vision de dev full-stack est différente chez nous (startup vendant son propre produit), tous les devs (10) sont des devs full-stack dans le sens où on gère la vue (JS), le ou les micros services associés (JAVA), le déploiement, la maintenance.

    Chaque dev traite donc une partie logique de l’appli, mais en totalité.
    Bon y a bien sur quelques spécialités.

    Voilà, juste une vision différente ;), bonne continuation.

  2. Bonjour,
    Je suis assez d’accord avec ton raisonnement. Un raccourcis m’est rapidement venu en lisant ce descriptif. Est-ce que le Full-Stack ne serait-pas finalement un architecte ? L’architecte est la pour avoir une connaissance globale et dans tous les domaines (dev, infra, sécu, indus…) sans pour autant être un expert de chaque domaine. Reste que l’architecte sera, en général, un peu plus en amont du projet.
    Evidemment, tout le monde ne sera pas forcement d’accord, il y a autant de définition du métier d’architecte que de celui de dev full-stack 😉

  3. Le problème principal du dev full stack c’est que tout le monde donne sa définition (tu en donnes deux distinctes dans ton article en parlant de full stack javascript, et full stack qui dev et fait de l’infra).
    C’est surtout ça qui est dérangeant je trouve car au final un dev fullstack on ne sait pas trop à quoi ça correspond, c’est devenu un peu un mot bullshit qui veut principalement dire dans les recrutements «est ce que tu sais faire du front et du back?» (et front + back n’équivaut clairement pas à toute la stack d’un produit).
    De fait pour moi le dev full stack est un mythe car chacun a sa définition.

  4. Ahh cool. J’avais recup une template de CV rigolote où le défaut était “Alyx Vance, Full Stack Developper”, maintenant le mystère de ce que va voulait dire est éclairci. Ça explique d’ailleurs qq points de détails dd la template (avec une entrée pour chaque techno utilisé dans chaque poste).

  5. Salut à tous,
    Non ce n’est pas une légende en effet. J’ai commencé le dév il y a 15 ans et avant j’était électronicien (language assembleur). Tous les développeurs étaient fullstack avant l’apparition des termes front et back. On touchaient à tout à la grande époque PHP, JS (natif hein), SQL, CSS, ect… C’était normal. Aujourd’hui je dév en temps que Techlead mais je suis manager avec une équipe de dév confirmés. Je les motive pour qu’ils s’intéressent à tous les domaines (salaria et hors salaria). Je leurs fais faire du SH, du python, PHP, JS, node (front, back), de l’UML, je leurs donne des tuyaux pour utiliser du ML, des algorithme évolutionnaires, du dév sur mobile ect pour qu’ils aient une autonomie dans différents domaine et surtout qu’ils se passionne pour leur métier.
    Surtout un conseil ne vous bridez pas. Je m’intéresse et touche à énormément de domaines de l’UX au sysadmin en passant par le management, je ne m’interdit rien. Au bout de plusieurs années on dépasse les problèmes techniques lié au dév pur.
    Donc on commence à toucher à des choses plus conceptuel, UML, user story ( si vision plus marketing), architecture logiciel (framework, API ect) obligatoirement si les SI deviennent complexes voir plus. Ensuite on touche au architectures matérielles, une petite archi HA et puis le CLOUD avec AWS ou autre. Et puis un jour on se retrouve pas assez nombreux pour assurer la charge de travail alors on fait recrutement et du tutora pour former des dévs juniors et puis après on manage.
    Les choses se font naturellement. Encore faut il être dans une société de taille raisonnable sinon on deviens spécialiste obligatoirement. Après mon cas est peut être différent, mais suivant les types de structures SSII, editeur logiciel ou client final vous vous retrouvez à faire même de l’intégration continu ou alors chef de projet ou alors même product owner.
    Le secret c’est de lever les frontières entre le salaria et les projets personnels qui permettent un vraie liberté pour entreprendre des nouvelles technos ou concepts (blockchain, Deeplearning, intelligence collective… ).
    Il faut aussi comprendre les users (bcp trop de dév considèrent mal les users )
    J’ai fait des projets perso par exemple en utilisant AWS et je m’en suis servi 5 ans après en entreprise (En FRANCE il y a qlq annes de retard 🙂
    Bref être développeur aujourd’hui est un vrai unfair advantage !!!
    “Le développeur est aujourd’hui, ce que le scribe était au Moyen-age”
    je vous laisse méditer là dessus.

  6. Je suis devenu fullstack un peu par force des choses. Je faisait avant quasi que du backend PHP et finalement je me retrouve a bosser sur des projets avec des back en C++, Le front en Angular et du client Android. Le tout soupoudré de SQL.
    C’est d’un côté très intéressant d’avoir cette capacité a sauter de techno en techno mais également très frustrant de voir que petit a petit je perd en expertise dans mon domaine de prédilection puisque inévitablement je ne peux assurer de tous les côtés.

  7. J’ai commencé le code au début des années 2000, en tant que développeur web. À l’époque, ce qui distinguait les devs n’étaient pas front ou back. C’était de savoir quelle était leur spécialité back : PHP, ASP, Java… Il n’y avait donc que des fullstack (dans le sens front+back). J’ai fait très peu de missions dans ma vie de dev où les rôles front et back étaient séparés entre individus différents, seulement sur des grosses missions, dans de très grosses boîtes (et encore, le côté front était statique dans ce cas). En fait, à notre échelle, l’arrivée de développeurs front est très récente. Jusqu’en 2012 environ, soit on était développeur web (donc on faisait du back, du js et du html/css), soit on était designer/intégrateur (et on faisait potentiellement du html/css). Du coup, des développeurs front, j’en ai croisé quelques-uns, souvent jeunes. Des back, jamais. Des gens qui aimeraient ne jamais avoir à faire du javascript, il y en a. Mais ils en font quand même. Du coup, la question traditionnelle “T’es dev front, back ou fullstack” me laisse un peu perplexe. Donc je réponds “full stack”.

T'en penses quoi ?

Your email address will not be published. Required fields are marked *