Developpez.com

Une très vaste base de connaissances en informatique avec
plus de 100 FAQ et 10 000 réponses à vos questions

Existe-t-il encore des développeurs « Full Stack » ?
Pour un senior, la pile de technologies utilisées dans des projets est devenue importante

Le , par Amine Horseman, Expert éminent sénior
Le « full stack developer » est un terme qui désigne un développeur capable de créer un outil informatique (logiciel, application, site web…) tout seul de A à Z. Il prend ainsi en charge l’empilement complet des composantes de cet outil. Cependant, avec le marché actuel qui est très exigeant et l’apparition croissante de nouvelles technologies, certains commencent à se demander si c’est toujours possible de tout gérer tout seul.

Selon Peter Yared, le directeur de technologie de Sapho, le « Full Stack était possible dans l’ère du Web 2.0. Mais, une nouvelle génération de startups a émergé, repoussant les limites de pratiquement tous les domaines du logiciel. De l’intelligence artificielle à l'analyse de données jusqu’aux objets connectés, en passant par le mobile. Il devient pratiquement impossible pour un seul développeur de programmer à travers la pile complète de technologies modernes ».

Il explique ensuite que dès l’apparition des architectures client/serveur à la fin des années 80 et le début des années 90, la programmation d’application est devenue « un sport d’équipe », ceci parce que « chaque facette de la nouvelle technologie était si complexe qu'un spécialiste était nécessaire, parfois un pour différents niveaux (front-end, bases de données, serveurs d'applications, etc.) ». Toutefois, avec l’apparition de la pile LAMP (Linux, Apache, MySQL, PHP / Python / Perl) et des nouveaux langages et frameworks comme Django, Ruby on Rails et jQuery, ainsi que les services Cloud, il est « devenu possible, pour de nombreux programmeurs, de créer des sites entiers ou des services SaaS complets, contenant un client Web dynamique, une couche métier côté serveur, une base de données évolutive, et un support opérationnel ».


Figure : la nouvelle "Full Stack" selon Peter Yared

Cependant, Peter Yared précise dans son billet de blog que ces dernières années, la pile de technologies à maîtriser pour devenir un développeur Full Stack ne cesse de s’agrandir, et les technologies actuelles telles que iOS, Android, Scala, MangoDB, HTML5/CSS3, JavaScript et même les services Cloud sont tellement évoluées que les entreprises d’aujourd’hui nécessitent des spécialistes dans chacun de ces domaines pour rester compétitives. Aussi, « il est essentiel d'avoir au moins une personne avec une compréhension fonctionnelle de chacune de ces composantes et qui est également capable de connecter les différents niveaux et de travailler avec chacun des experts ». Ces personnes que Yared appelle « Full Integrators », sont capables de relier plusieurs technologies ensemble, sans pour autant être capables de développer toute une fonctionnalité toute seule. Ce sont des intégrateurs et ils peuvent être des spécialistes dans un ou deux domaines, mais ne sont sûrement pas des développeurs « Full Stack ».

Source : Blog de Peter Yared

Et vous ?

Etes-vous d’accord avec Peter Yared ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de oallouch oallouch - Candidat au Club http://www.developpez.com
le 10/12/2014 à 21:39
Je pense, au contraire, qu'il est de plus en plus simple de devenir full stack. Par exemple (le seul exemple peut-être, pour être honnête), lorsqu'on code en JavaScript, on code dans le browser, le serveur (Node.js) et la base (MongoDB).
Et puis, quand on code en Java, c'est comme un jeu de se mettre à d'autres "langages" comme PHP. Et pour le mobile, l'hybride fonctionne tellement bien, si l'on connait les 3-4 trucs pour avoir des perfs.

Btw...MangoDB...miam ! J'adore.

Olivier Allouch
http://www.illicotravel.com
Avatar de Haseo86 Haseo86 - Membre éclairé http://www.developpez.com
le 10/12/2014 à 22:37
Je ne suis pas sûr que l'exemple rentre dans le cadre énoncé ici. Aujourd'hui les développeurs utilisent les couches plutôt qu'ils ne les codent, en ça ils ne sont pas "Full Stack".

En même temps je ne crois pas que ce soit un problème en soit, il vaut mieux être capable d'identifier et d'utiliser proprement l'existant que perdre du temps à réinventer la roue.
Avatar de Grimly Grimly - Membre actif http://www.developpez.com
le 10/12/2014 à 23:17
What ?!?

Si un développeur n'est pas capable d'identifier l'impact de sa modification en base sur l'IHM qu'il alimente, alors ce gentil monsieur peux rentrer chez lui (sauf les indiens, ils ont une bonne excuse).

Les développeurs "full stack", ce n'est pas ce qui manque.
Maintenant un développeur qui est capable de passer de n'importe quelle techno à n'importe quelle autre techno, c'est un doux rêve qui n'a jamais été réalisable car il existe autant de langage que de bons élèves sur la théorie des langages.
Avatar de grunk grunk - Modérateur http://www.developpez.com
le 11/12/2014 à 8:41
Il est à mon avis de plus en plus difficile de faire du fullstack de manière performante.
J'ai commencé en tant que développeur LAMP puis j'ai rajouté Android. Je développe maintenant plus les backend php et les "clients" android et force est de constaté que lorsque je doit repasser sur du frontend (html/css /js) je suis moins performant qu'avant simplement par le manque de pratique.

A moins d'avoir une pratique équitable de toutes les technos et donc probablement pas optimale, il est difficile d'avoir des des devs fullstack expert partout.
Avatar de Zefling Zefling - Membre émérite http://www.developpez.com
le 11/12/2014 à 9:01
On peut être « full stack », mais faire du « full stack » ça me semble de moins en moins envisageable. Il est préférable de réutiliser des briques, les créer prend beaucoup trop de temps. Vouloir faire un gros site avec aucun framework c'est juste utopique aujourd'hui. J'ai essayé, j'ai vite compris que c'était un boulot bien trop important pour être applicable en entreprise. Ok, je maîtrise tout, mais ça m'a demandé des centaines d'heures de boulot que j'aurais pu éviter en délégant le boulot à certains outils.
Avatar de Kropernic Kropernic - Membre expert http://www.developpez.com
le 11/12/2014 à 9:33
Mais il n'y a pas que les sites web dans la vie !

Je ne bosse pas pour un SSII mais pour un client finale. Dans le service ICT-DEV, sans sompter le chef, nous sommes 2 et nous nous occupons de tout du début à la fin...

Analyse fonctionnelle/technique, architecture de la DB, administration du serveur DB, développement, testing, debugging, etc. (et même parfois souvent, c'est nous qui devons faire le cahier des charges...)

Après bien sûr, les technologies utilisées sont limités. On développe en .NET avec DB SQL SERVER derrière et... c'est tout. Donc si j'ai bien compris la définition, nous sommes bien des développeurs "full stack".

My 2 cents.
Avatar de palnap palnap - Membre habitué http://www.developpez.com
le 11/12/2014 à 9:56
Bien sûr qu'il existe encore des développeurs full stack et il en existera toujours. Ce gentil monsieur dispose peut-être d'équipes conséquentes mais dans une petite structure ou le nombre de développeurs se comptent sur les doigts d'une mail ce serait insensé d'embaucher des types trop spécialisés.

De plus, il me semble que pour bien appréhender une application il faut savoir ce que chaque partie fait (avec un niveau de détail variable selon la taille des applis) et que tout bon développeur devrait être capable de monter en compétence avec à peu près n'importe quel langage de prog ou base de données.

En développement agile, on privilégiera le transfert de compétences en faisant tourner les développeurs sur les différentes parties de l'appli. Au bout de N itérations, chaque membre de l'équipe devient capable de travailler sur n'importe quelle partie. Si un dév se barre (congés/démission), ça n'impacte personne.

Raisonnement par l'absurde : Chaque développeur n'a qu'une compétence, techno serveur, techno client, techno mobile ou BDD. Le client demande l'ajout d'une petite fonctionnalité (mais avec un impact sur ces 4 couches) dont le dév prendrait une heure. Avec les recommandations de ce gugusse on serait obligé de monopoliser 4 développeurs. On a au moins quadruplé le coût de cette fonctionnalité (si on prend en compte la communication entre les développeurs, leur synchronisation, les aléas du dév collaboratif, etc. on peut encore monter !). Bref, pas super rentable tout ça... :/
Avatar de santana2006 santana2006 - Membre régulier http://www.developpez.com
le 11/12/2014 à 10:00
Cela dépend du stack on lui même,

Pour moi il y a plusieurs stacks possibles :

1/ Application d'entreprise (DB relationnelles, architectures pour desktop ou web et frameworks qui les implémentent, reporting, ..)
2/ Application mobile professionnelle
3/ ..

Il est trivial qu'un développeur ne peut maitriser tout cela, on peut pas être à la fois expert en déve d'applications d'entreprise de A-Z, et un expert en développement de sites marchands à base de CMS par exemple, à un moment donné on choisit une orientation selon laquelle on construit notre expertise et donc notre profile.

Par contre on peut trouver, pour chaque domaine cité, un développeur fullstack.

Donc la notion de fullstack en elle même n'est pas précise, c'est en fait un fullstack par domaine, et ça il existe bien des profiles qui le sont.
Avatar de jv2759 jv2759 - Membre régulier http://www.developpez.com
le 11/12/2014 à 11:35
La question est de savoir si l'on est capable ou alors, qu'on le fait.

Capable, je pense qu'un bon développeur est capable de le faire. Maintenant être capable d'inventer la roue ne veux pas dire qu'on le fait.
Avatar de laerne laerne - Membre éclairé http://www.developpez.com
le 11/12/2014 à 15:49
Citation Envoyé par santana2006  Voir le message
Cela dépend du stack on lui même,

Pour moi il y a plusieurs stacks possibles :

1/ Application d'entreprise (DB relationnelles, architectures pour desktop ou web et frameworks qui les implémentent, reporting, ..)
2/ Application mobile professionnelle
3/ ..

Tellement vrai. On peut même sortir de la programmation pour considérer sa pile de connaissance. Par exemple, connaitre la physique électromagnétique, l'électronique, les microcircuit, la logique et les portes logiques et l'assembleur. Ou avoir des connaissance en philo, en psycho, en math, en IA et en python… Réduire les couches d'abstraction aux divers niveau d'interpreteurs et de compilateurs me semble un peu réducteur.
Offres d'emploi IT
Développeur d'applications de drone gaming
Techniwi - Basse Normandie - Caen (14000)
Développeur web h/f
NEXTGEN RH - Aquitaine - Bordeaux (33000)
Développeur c/c++ qt et .net
EZNOV - Lorraine - Metz (57000)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil