Está en la página 1de 2

¿Qué es un programador full stack?

Todo proyecto web está desarrollado por diferentes componentes que definen la arquitectura de la
solución. Una arquitectura típica es un servidor web, como puede ser Apache, IIS o Node.js, un
lenguaje de programación de la lógica del negocio (también conocido como modelo de negocio), una
tecnología de base de datos que nos permita persistir información, objetos y/o datos, y una
herramienta de desarrollo visual o presentación, por ejemplo Angular.js. Cada uno de estos
componentes son denominados capas.

Así, podemos hablar de diferentes capas de acuerdo a su misión: capas de virtualización, de


servidores, de modelos, de datos, de persistencia, de presentación, etc. A medida que avanzan las
tecnologías, surgen nuevas herramientas que realizan tareas concretas y necesarias dando lugar a
una nueva capa, como podría ser una capa de seguridad u orquestación. Por definición, la misión de
la capa debe ser clara, con un único propósito e independiente de las otras capas.

En la literatura, verás que mencionan a las diferentes arquitecturas en base a las iniciales de cada
capa.

Una aclaración: usaremos indistintamente los términos arquitectura y stack como sinónimos.

Si consideramos la evolución de las arquitecturas en los últimos años vemos que por el 2005 se
utilizaba LAMP: Linux, Apache, MySQL, PHP. Hoy en día, es muy popular el stack MEAN: MongoDB,
Express, Angular y Node. Pero si abrimos MongoDB, tenemos como subcapas AWS (Amazon web
services) y HMTL5 que nos permiten alojar nuestra base de datos y accederla desde la web o via
servicios. Por sobre Express, nos encontramos con NGINX que permite optimizar la velocidad de
respuesta de consultas web y la descarga de contenido por parte del browser. Junto con el uso de
Angular debemos ocuparnos de la experiencia del usuario (UX), y utilizaremos SASS o LESS para
administrar los estilos de nuestras páginas.

Como pueden ver, hace 10 años teníamos arquitecturas más simples y hoy en día más complejas
debido a la multiplicidad de capas y por lo tanto, de tecnologías involucradas. De hecho, cada una de
las capas mencionadas, cuenta con especialistas que sólo se dedican a eso.

Entonces, ¿qué entendemos por desarrollador full stack? Entendemos por desarrollador full stack a
una persona que trabaja con todas las tecnologías necesarias para desarrollar un proyecto,
incluyendo todas sus capas, y por supuesto, la puesta en producción para que los usuarios finales lo
utilicen.

¿Qué sucede en el mercado?

La polifuncionalidad de un programador full stack abre debate sobre el grado de productividad y


profesionalismo de una entrega comparandolo con un equipo de especialistas. Otro debate entorno
a esta figura, es sobre el expertise generalista versus el especialista. En la industria del software hay
defensores de ambas líneas de pensamiento. Para citar un ejemplo, cuando comenzó a desarrollarse
una de las grandes redes sociales de la actualidad, sólo buscaban programadores full stack. Algo
similar ocurre actualmente con las startups o emprendimientos, tanto dentro de companias
establecidas (lo que se conoce como intrapreneurship) como por fuera. Sin embargo, en productos
maduros o con necesidades de negocio muy concretas que requieren conocimiento particular de
una tecnología o técnica, se suelen buscar perfiles de especialista. Por otro lado, la forma de
gestionar los proyectos tecnológicos de las empresas puede favorecer o no a los perfiles full stack.
Paradigmas de gestión del estilo Ágil, probablemente vean con buenos ojos la multiple competencia
debido a que puede y entiende las diferentes áreas del proyecto y puede aportar, dependiendo de
su experiencia, sinergias con todo el equipo. Este perfil suele tener una visión más global de la
solución y logra integrar con facilidad las diferentes áreas de trabajo.

Lo habitual, es que uno no sea bueno en todo y tenga puntos fuertes donde apoyarse que serán los
que generen mejor contribuición a un desarrollo. Probablemente, esos puntos fuertes sean los que
más le agraden.

¿Dónde hacen diferencia clave los programadores full stack?

La gran ventaja de los programadores full stack es que pueden comenzar y finalizar proyectos por sí
mismos. Por lo tanto, son oro para cualquier emprendimiento dado que es mucho más económico
contar con un full stack que con 2 o más programadores. Por económico me refiero a dos aspectos:
monetario, que es evidente, y por otro lado temporal, que implica lograr un beta de proyecto o
prueba de concepto en un tiempo muy breve comparando con un equipo tradicional.

¿En cuanto a lo formativo?

Ciertamente es un buen punto de partida para ingresar al mundo de la programación y comenzar tus
proyectos personales o en una nueva empresa. Hay gran demanda de programadores en el mercado
y los perfiles full stack son muy solicitados. Conocer las diferentes capas de desarrollo y sus
necesidades te abrirán un mundo nuevo donde podrás descubrir qué es lo que más te interesa y
tendrás herramientas para avanzar por tu cuenta sólidamente.

También podría gustarte