Blog

El desarrollador del futuro será full-stack

El mundo del desarrollo de software ha estado siempre integrado por muy diferentes tipos de profesionales, cada uno especializado en un lenguaje, entorno o cierto tipo de aplicación. Sin embargo, en los últimos tiempos, proliferan especialistas en todo tipo de tecnologías y marcos de trabajo. Es el desarrollador full-stack y muchos lo consideran el perfil profesional del futuro.

Un full-stack tiene conocimientos en todas las técnicas de programación, lenguajes y conceptos de ingeniería de sistemas, tecnologías y habilidades necesarias para completar un proyecto completo, con todos sus elementos (stacks), móviles, web, plataforma y software.

En general, un ingeniero de software clásico se centra en una parte del desarrollo, ya sea el front-end o el back-end. El primero asocia todos los componentes o partes visibles de una aplicación o sitio web, mientras el segundo abarca las bases de datos y la infraestructura subyacente. El stack completo es una suma de ambos mundos.

Algunos observadores aseguran que el concepto no existe o es demasiado utópico. Aunque la idea de encajar en cualquier proyecto y ser útil en cualquier entorno sea más que atractiva, en especial para los más jóvenes. Su objetivo no es programar de forma independiente un proyecto de principio a fin, sino saber lo suficiente sobre código y procesos funcionales para afrontar con éxito cualquier iniciativa.

Sus habilidades deben ser amplias y abarcar todas los niveles o etapas del proyecto de desarrollo; lenguajes comunes, como JavaScript, Java, PHP, C#; Python, Ruby o Perl, y sus estructuras, patrones y peculiaridades. Además, tienen que dominar marcos de desarrollo y bibliotecas de terceros para implementar cada lenguaje de programación de forma completa.

También estarán familiarizados con las tecnologías de  front-end y con todo lo que tiene que ver con la experiencia de usuario; lenguajes HTML y CSS que se emplean en la web, así como con los principios básicos de diseño, interfaces de usuario y usabilidad de las páginas. Puede que tengan experiencias en modelado de datos y su infraestructura relacionada, incluidos todos los tipos de bases de datos y técnicas de caché, servidores, redes, entornos de alojamiento y APIs.

Por último, serán muy valoradas otras habilidades blandas, orientadas a dirigir un equipo, como visión global, dotes de comunicación, creatividad y gestión del tiempo. Además, los desarrolladores completos pueden poseer habilidades relacionadas con asegurar la calidad (QA), tecnologías analíticas, Business Intelligence y seguridad, incluso todo lo que rodea al servicio al cliente.

Ventajas e inconvenientes

Su gran ventaja es que son profesionales que pueden trabajar más rápido y de forma más independiente que otros miembros del equipo, tal vez reduciendo los costes técnicos.

Debido a su amplia gama de conocimientos, también pueden poseer opiniones únicas y una mentalidad más activa. Por eso, suelen estar muy solicitados a la hora de poner en marcha un proyecto inicial, cuando no hay demasiada inversión, pero es necesario tener mucha imaginación y experiencia. También pueden formar a otros profesionales y solucionar problemas graves, adaptar su perfil a muchos escenarios y diferentes tecnologías.

Pero tienen alguna limitación; primero, la mayoría de ellos no son realmente expertos en ninguna habilidad concreta y, en cambio, tienen un conocimiento medio en muchas de ellas. Por tanto, si un proyecto requiere experiencia precisa en conceptos complejos, su aportación no será muy adecuada.

Además, involucrarlos en un gran proyecto puede implicar excesiva dependencia de una sola persona, algo que suele retraer a organizaciones que desconfían de un modelo tan personalista.