Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

309PARTAGES

4  3 
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 ?

:fleche: Etes-vous d’accord avec Peter Yared ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de grunk
Modérateur https://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.
5  0 
Avatar de santana2006
Membre régulier https://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.
5  0 
Avatar de Pyramidev
Expert confirmé https://www.developpez.com
Le 05/07/2018 à 1:10
Citation Envoyé par Saverok Voir le message
Citation Envoyé par Brütal Voir le message
Au final, je connais des élèves qui sortent avec un diplôme d'ingé en informatique, mais qui sont incapables ne serait-ce que lire la sortie du compilateur pour voir la source de leurs erreurs...
Qui a besoin de faire ça ??
[...]
et je n'ai jamais, mais alors jamais eu besoin de regardé le code en sortie du compilateur.
Je crois que Brütal parlait des messages d'erreur du compilateur.

Quand on génère du code assembleur à partir du code C (par exemple avec GCC), lire le code assembleur généré ne sert pas à trouver les éventuelles erreurs de programmation du code C d'origine. Lire le code assembleur généré est surtout intéressant pour observer comment le compilateur optimise le code. Une telle compétence est parfois utile, mais pas pour tout le monde.

Par contre, essayer de comprendre les messages d'erreur du compilateur, c'est la base. Typiquement, un débutant qui ne cherche pas à les comprendre essaiera de faire plein de changements au hasard dans le code jusqu'à ce que ça compile.
4  0 
Avatar de palnap
Membre actif https://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... :/
3  0 
Avatar de Luckyluke34
Membre émérite https://www.developpez.com
Le 11/12/2014 à 16:36
"Full stack" n'a jamais voulu dire excellent dans tous les domaines. C'est essentiellement le résultat :

  • Dans certaines grosses entreprises, d'une division du travail de plus en plus organisée autour de tranches fonctionnelles verticales (influence de SOA, méthodes agiles, etc.) plutôt qu'horizontalement en services par domaine de compétence.

  • De l'essor des startups, où par nécessité les membres d'une équipe doivent savoir toucher à tout. Tout le monde a pris ça comme une vertu cardinale de "l'esprit startup"... Full-stack est devenu un buzzword que les RH ont repris dans leurs offres d'emploi, pour suivre la tendance et/ou bien ancrer dans la tête des développeurs qu'ils doivent être polyvalents et faire le café et la vaisselle ou aller voir ailleurs.


Mais les gens n'ont pas changé : chacun garde ses technos favorites, ses lacunes, ce n'est pas nouveau. Il y a juste plus de curiosité et de transdisciplinarité qu'avant, ce qui n'est pas un mal.

Assiste-t-on au déclin du développeur full stack ? Non dans l'esprit, car il est plus que jamais primordial de s'intéresser à tout ce que fait son équipe ne serait-ce que pour pouvoir remplacer un collègue malade au pied levé, et je ne crois pas que l'ajout de deux ou trois couches dans la stack y changeront grand-chose. Et oui, j'espère, en tant que stupide buzzword qui va s'éteindre de lui-même à l'apparition de la prochaine mode.
2  0 
Avatar de Saverok
Expert éminent https://www.developpez.com
Le 04/07/2018 à 14:06
Citation Envoyé par Brütal Voir le message
Au final, je connais des élèves qui sortent avec un diplôme d'ingé en informatique, mais qui sont incapables ne serait-ce que lire la sortie du compilateur pour voir la source de leurs erreurs...
Qui a besoin de faire ça ??
J'ai appris le C a un niveau assez poussé durant mes études (dans mon cursus universitaire, le coef y était élevé justement) mais je me suis spécialisé en Java que j'ai pratiqué intensément durant 8 ans avant d'évoluer vers la gestion puis la direction de projet et je n'ai jamais, mais alors jamais eu besoin de regardé le code en sortie du compilateur.
Même chose pour tous les dev, lead tech et architectes avec lesquels j'ai pu bosser au cours de tout mon parcours.

Dans la très grosse majorité des cas, on a pas besoin d'aller voir ce qu'il se passe si bas niveau dans le code et les dev qui ne savent pas le faire ne sont pas des mauvais dev pour autant.
Il existe plein de manière différente d'exercer ce métier.

Par contre, je remarque que c'est en algorithmie (tout langage confondu) que je remarque la chute de niveau au cours des années et c'est ça qui me préoccupe.
2  0 
Avatar de Brütal
Nouveau membre du Club https://www.developpez.com
Le 05/07/2018 à 10:01
Bah exactement...
Effectivement, voir le code en sortie de compilateur a un intérêt limité (encore que, si la possibilité existe c'est qu'il y a une utilité).
Et qui a besoin de descendre aussi bas niveau? Au hasard les développeurs pour la programmation embarquée, des créateurs de drivers, et à peu près tout ce qui nécessite une bonne optimisation...
Par exemple, tous les cockpits d'avions sont développés en très bas niveau, en C, voir en assembleur je pense parfois, en tout cas jamais en Java.
Et dans tous les cas, ça change rien à la problématique, le sujet parle de développeurs full-stack. Et je pars du principe qu'un développeurs qui se contente de sa spécialité (et qui au passage ne la connaît même pas bien), sans s'intéresser à ce qu'il y'a autour, bah c'est pas un développeur full-stack.
2  0 
Avatar de Haseo86
Membre éclairé https://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.
1  0 
Avatar de Zefling
Membre expert https://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.
1  0 
Avatar de Kropernic
Expert confirmé https://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.
1  0