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 ».
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 ?
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.