Qu'est-ce qu'un développeur full stack ?

Le développeur Full Stack existe-t-il ?

Pourquoi ce questionnement sur l’expression « Développeur Full Stack » ?

Nous sommes dans une ère où des intitulés de poste amènent au débat de manière légitime : qui n’en a pas marre de voir passer depuis quelques années des annonces recherchant des « ninjas de l’agile », des « samouraïs du clean code » ? J’avoue avoir souri au début (et avoir posté des annonces de ce type !) mais au bout d’un moment l’effet de nouveauté disparaît et l’on devient uniquement lassé par ces annonces.

Cependant, un autre type d’annonce fait régulièrement débat. Cela concerne les offres d’emplois de « Développeur Full Stack ». Le questionnement sur l’existence (ou non) du développeur Full Stack apparaît de plus en plus fréquemment dans mon fil d’actualité sur LinkedIn et c’est un sujet que j’ai eu l’occasion d’évoquer en entretien avec des candidats à plusieurs reprises. Je vous partage aujourd’hui ma réflexion et mes recherches sur le sujet.

 

Qu’est-ce qu’un développeur Full Stack ?

La définition « historique »

Premier constat à la suite des échanges et des discussions que j’ai pu avoir sur le sujet : tout le monde ne comprend pas la même chose quand l’on utilise ce terme. D’où la nécessité de définir les différentes réalités auxquelles renvoie ce terme.

En 2008, Randy Schmidt a défini le développeur Full Stack comme un développeur qui a la capacité de concevoir et créer un outil informatique (site web, application mobile, logiciel …) de A à Z. Par conséquent, cela implique de maîtriser un nombre de technologies et de compétences très large. Un « vrai » développeur Full Stack est à la fois : un architecte, un développeur front-end, un développeur back-end, un administrateur système …

Aujourd’hui, nous sommes dans une ère où les langages et les frameworks se multiplient, où les limites du développement logiciel sont constamment repoussées. Il devient impossible d’être un expert dans une majorité des technologies existantes.

Par conséquent, si vous entendez parler de quelqu’un qui se revendique développeur Full Stack de manière fidèle à cette définition, méfiez-vous !

Mais de manière assez paradoxale, dans le même temps, le terme de « Développeur Full Stack » est de plus en plus utilisé.

À lire aussi : Focus sur ... l'eXtrem Programming

Le développeur Full Stack comme « désiloteur » des organisations

Par la suite, une deuxième définition du terme a été faite par Laurence Gellert, dans un article de blog posté en 2012. Il définit le développeur Full Stack de la manière suivante :

« Un développeur Full Stack est quelqu’un de familier avec toute la stack technique et qui a les compétences pour faciliter le travail de ses collaborateurs ».

Ainsi, on arrive à l’idée d’un développeur « désiloteur ». Au lieu de se jeter corps et âme en complète indépendance dans un projet, le développeur Full Stack permet de répondre aux problèmes de spécialisation des équipes de taille importante. En résumé, c’est une personne capable d’implémenter des fonctionnalités et de résoudre des problèmes sur l’ensemble des couches de la stack technique en tant que membre d’une équipe.

Quelles sont les compétences d'un développeur full stack ?

 

La définition la plus utilisée du développeur Full Stack

Là où le débat actuel s’égare peut-être en critiquant la multiplication des annonces recherchant des développeurs Full Stack c’est qu’aujourd’hui, la réalité à laquelle renvoie ce terme a changé.

En effet, on peut observer une croissance très forte des offres d’emplois émises par des start-ups à la recherche de développeur Full Stack. Si l’on s’intéresse à ces annonces on remarque une définition commune : un développeur Full Stack est un développeur capable de coder sur du front et du back sur un nombre de langages limité. On ne parle plus de Full Stack comme personne capable de mener un projet web de A à Z en autonomie mais d’une personne ayant suffisamment de compétences techniques pour évoluer sur les facettes front et back d’un même projet.

Pour faire simple : un développeur compétent sur du PHP/Symfony en back et de l’Angular en front peut aujourd’hui être considéré comme un développeur Full Stack.

Une des raisons de l’expansion de l’utilisation de ce terme et de la multiplication des annonces vient aussi de la digitalisation exponentielle d’un grand nombre d’entreprises avec une multiplication des produits SaaS, web ou mobile qui sont développés. Sur un marché de l’emploi pénurique en offre de compétences et dans un contexte où de nombreuses entreprises n’ont pas forcément les moyens d’embaucher un développeur front-end et un développeur back-end simultanément ; par conséquent un développeur qui a la capacité d’évoluer sur ces deux aspects d’un projet est devenu une perle rare !

D’ailleurs, lorsque l’on regarde du côté des formations au métier de développeur, une simple recherche google renvoie à plus d’une dizaine d’écoles proposant de se former au métier de « Développeur full stack ». Parmi les formations proposées, on en trouve notamment une qui définit ce métier de la façon suivante : « Un développeur parfaitement autonome et capable de créer, développer, coder et maintenir un site internet de A à Z, aidé ou non par un chef de projet ou un pôle marketing ». Celle-ci ressemble fortement à la première définition que nous avons vu. Cependant, attention ! La nuance par rapport à la définition vue précédemment étant le nombre de technos maîtrisées. Ce type de formation propose de se former sur HTML/CSS/JavaScript en Front, PHP en back et MySQL par exemple. On est loin de la définition originelle de Randy Schmidt !

À lire aussi : Qu'est-ce que le sotfware craftsmanship ?

En résumé : une question, trois réponses !

La réponse à la question que l’on s’est posée au début est que, non, LE développeur full stack n’existe pas mais il existe cependant DES développeurs full stack.

Trois définitions donnent du sens au terme de développeur full stack. Celle de Randy Schmidt qui amène le concept d’un « Full-Stack Builder » ; celle de Laurence Gellert qui pose l’idée d’un « Cross-Stack developer » et celle, bien plus usuelle de Daniel Borowski « Un web developer full stack est quelqu’un capable d’évoluer à la fois sur la partie front et back d’une application ».

Essayez de garder cela en tête la prochaine fois que le débat fera surface !

Et si vous adhérez à notre vision du travail et que vous souhaitez rejoindre une communauté engagée, suivez-le lien !

Les dernières actus