Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Existe-t-il encore des développeurs Full Stack ?


Sujet :

Langages de programmation

  1. #1
    Expert éminent sénior
    Existe-t-il encore des développeurs Full Stack ?
    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 « 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 ?

  2. #2
    Futur Membre du Club
    et si c'était l'inverse
    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

  3. #3
    Membre éclairé
    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.

  4. #4
    Membre averti
    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.

  5. #5
    Modérateur

    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.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre expert
    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.

  7. #7
    Expert confirmé
    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.
    Kropernic

  8. #8
    Membre actif
    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... :/
    Développeur / Formateur
    Tutoriels AngularJS / Node.js sur ma chaîne Youtube : http://www.youtube.com/user/DevDuFutur

  9. #9
    Membre régulier
    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.

  10. #10
    Membre régulier
    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.

  11. #11
    Membre éprouvé
    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.

  12. #12
    Membre émérite
    "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.

  13. #13
    Membre du Club
    un peu de modestie
    J'ai l'impression que beaucoup de monde ici se surestime. Comme la plupart d'entre vous, je sais faire du développement full-stack au sens simplifié de la DB jusqu'à l'affichage.
    Mais en fait, je vous suggère surtout de lire le poste originale de Peter Yared. Pour lui full-stack, cela veux dire qu'on ajoute le cloud, android, ios.
    Et des gens capables de développer une application web de haut nivo, une app androit et une app ios le tous en maitrisant toute la chaine de dév... cela doit exister, mais pas être très fréquent.

    (Et non, utilisé des webapp pour proposer son site sur android, ios et windows phone, ce n'est pas du dev de haut nivo

  14. #14
    Membre confirmé
    C'est vrai que dans des SSII ou les PME les développeurs touchent un peu à tout.
    Mais dans un environnement hautement concurrentiel ,On nécessite la présence de beaucoup d'experts.
    Alors il est clairement difficile dans un gros projet qu'un ingénieur sache tout faire.
    Habituellement on voit des leaders techniques ont une vision globale des technologies et peuvent intervenir dans presque toutes les parties du projet.
    Ce qui ne me tue pas me rend plus fort.

  15. #15
    Membre averti
    Kropernic : 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...
    Voilà qui ressemble beaucoup plus à la réalité du terrain. Pour s'en convaincre il suffit de consulter les "offres d'emploi" dans lesquelles la litanie des compétences "exigées" est longue comme un jour sans pain.

    Moralité, les développeurs full-stack se comptent par milliers !!
    La nature fait des choses extraordinaires, observons la et restons humble, on ne nous demande pas de refaire le monde mais juste de reproduire virtuellement des choses existantes ....

    et n'oubliez pas si vous aimez et quand vous avez la réponse

  16. #16
    Membre habitué
    Bonjour

    L'empilement de technologie est un choix parfois tentant, et souvent fait. Durant la vie d'un projet, il y a souvent quelqu'un qui annonce : et si on utilisait telle technologie, on pourrait facilement faire ceci ou cela.
    Cependant, l'adoption de toutes ces technologies fini par avoir un coût : est-ce que les équipes en place de suivre le projet sont bien capable de maîtriser toute les technologies utilisées ? J'ai l'impression que la réponse est un peu trop souvent non.
    Ma conclusion, et que selon les projets, il faut être très prudent au sein d'un projet quand on décide d'adopter une nouvelle technologie, cela peut avoir un coût caché très élevé beaucoup plus tard.

    Dans cette problématique, il ne faut pas oublier qu'il existe beaucoup de SSII (ou SDN) dont le métier est de rassurer les entreprises qui choisissent toutes ces technologies, car les SSII ont toujours un expert de ces briques logicielles à placer. Après est-ce le bon choix pour le projet ?

    Je me rappel qu'à une époque l'acronyme KISS était très à la mode ( Ket It Simple and Stupid ).

    Cordialement
    Emmanuel

  17. #17
    Candidat au Club
    Full-stack dans le sens de coder une application web de A-Z ? Oui avec HTML-Bootstrap-jQuery côté client et le framework Play+Java et une DB SQL côté serveur.

    Dans le sens de connaître toutes les technologies et de répondre à tous les besoins existants (big data, responsive, mobile app, etc) ? Ben non, pas encore...

    Dans un monde de technologies toujours en changement et en créations nouvelles, le développeur doit développer son jugement et être capable de faire des choix intelligents : pourquoi telle techno plutôt qu'une autre ? De quoi ai-je besoin et est-ce que mon stack va me permettre de répondre à tous les besoins du client (en plus de me rendre heureux si possible )

  18. #18
    Expert éminent
    Pour ma part, soit on vise à faire une appli complète tout seul et c'est toujours faisable, soit on vise à faire une appli qui utilise telles technos à tels endroits et, dans ce cas, avoir un dév full stack n'a pas grand intérêt en soi. Il a l'avantage du centralisé (on sait toujours qu'on peut toujours lui demander en cas de soucis), mais pas celui du décentralisé (si lui se casse on est dans la panade), question de choix de gestion donc. Mais si on est seul et qu'on veux faire une appli, on minimisera les technos et apprendra ce qu'il faut pour en être capable. Si on n'est pas capable d'utiliser telle techno, on en utilisera une autre (inutile d'apprendre l'assembleur pour programmer sur PC aujourd'hui).

    Dans ce sens, existe-t-il encore des dév full stack... ils n'ont pas de raison de disparaître tant qu'on aura encore des passionnés de dév, qui feront des trucs complets dans leur coin. Mais si on parle de dév qui maîtrise tous les langages, ça n'a jamais existé et ce n'est pas prêt d'arriver, mais de ce que j'ai compris c'est pas ça qu'on qualifie de "full stack".
    Site perso
    Recommandations pour débattre sainement

    Références récurrentes :
    The Cambridge Handbook of Expertise and Expert Performance
    L’Art d’avoir toujours raison (ou ce qu'il faut éviter pour pas que je vous saute à la gorge {^_^})

  19. #19
    Membre à l'essai
    jQuery framework ?

    Attention à ne pas confondre librairie et framework !
    Librairies : jQuery, momentjs, underscore, ...
    Framework : Angular, Backbone, React, Ember, ...

    Pour faire simple, un framework c'est un composant actif qui controle le déroulement de l'application.
    Un code sans framework fait appel a des biblothèques.
    Sur une application structurée par un framework, ce sont les bouts de code de l'application qui sont controlé par le framework.

  20. #20
    Nouveau Candidat au Club
    Je ne suis pas d'accord avec la répartition par domaine
    Je ne suis pas d'accord avec la répartition par domaine, du genre : il y a les développeurs web, les développeurs d'entreprise.
    Par exemple, moi à la base je faisais pour mon entreprise des applications financières en temps réel en C++ avec des grosses bases de données Oracle ou Sybase avec des procédures stockées.
    Et à titre perso, je faisais des sites web en php, javascript, mysql, html.

    Maintenant, j'intègrent les technologies de tous ces domaines : les sites web communiquent avec des web services php qui accèdent soit à la base de données, soit communiquent avec des applications .Net en réseau via des Net Pipe, ce qui est extrêmement rapide en temps de réponse. Et les sites web sont bien évidemment compatibles avec les mobiles et smartphone. Je n'utilise aucun framework car je veux maîtriser toute la chaîne et comme je continue à développer et maintenir chacun de ces composants tout en évoluant vers la conception d'architecture base de données, logicielles ou système, je ne perds pas mes compétences sur chacune des technologies ni même dans les domaines fonctionnels. Je ne dirais pas que je suis expert en tout (sauf en bdd), mais j'arrive à me débrouiller pour résoudre tous les problèmes qui peuvent survenir.