Fullstack developers, ¿Quiénes son? ¿Mito o realidad? 🤔
El término teórico de un fullstack developer, se refiere a un desarrollador que tiene conocimiento de cada una de las aristas que conforman el desarrollo de un producto digital, es decir, al menos debería conocer:
Dicho de una forma más simple, puede iniciar un proyecto él solo desde la planeación, el diseño de la base de datos, diseño de la api, el frontend, hasta el despliegue en la nube. En realidad este sería un escenario completo para describir a un fullstack developer de una manera muy sintetizada.
Hay quienes usan el término para hacerle un overload de tecnologías, llenarlo como si se tratara de una comanda y es cuando se comienza a distorsionar el término y confundirse con un "todólogo", es decir, buscan perfiles que cumplan con todos los lenguajes de backend (al menos los más famosos como Python, Ruby, PHP, NodeJs, Go, R, Rust, Java, .NET... ), la mayoría de bases de datos relacionales (MySQL, SQL, Postgres...) y no relacionales (Mongodb, Firebase, Cassandra, Redis, DynamoDB...) así como los frameworks o librerías de frontend (React, Angular, Vue, {introduzca el framework de moda, menos jQuery}...) y conozca las nubes más usadas (AWS, GPC, Azure, IBM Cloud...), entre un centenar de cosas más 😕.
¿Un fullstack es un todólogo?
El efecto "todólogo" es una mala comprensión del rol "fullstack", suele ser una distorsión, una mutación, un teléfono descompuesto que le ocurre mayormente a los headhunters sin mucha experiencia, o muy poco actualizados; Muchas veces ya viene distorsionada la información de la vacante desde el propio cliente, incluso desde el departamento de desarrollo 😵💫.
Hay quienes están a favor y quienes están en contra de este rol, o lo catalogan de "imposible". Ambos tienen razón dependiendo el nivel de expectativas que se tengan.
Muchos "bootcamps" dentro de su línea de aprendizaje mantienen la promesa que al término del curso de 3 o 6 meses, serás un súper fullstack developer. Hasta cierto punto es verdad, solo cambiaría el título por "fullstack jr", pero ese título no vende.
Considero que el rol de un fullstack está fuertemente aunado a los años de experiencia de un developer (al menos +6 años), ya que no solo se trata de conocer el 360 de un producto digital, si no de divisar los riesgos técnicos y las implicaciones que puede tener antes de teclear cualquier línea de código, así como la planeación, seguridad y escalabilidad de un producto. Esto solo se aprende con la experiencia después de varios, varios proyectos de distinta índole y tecnologías.
¿Existen varios tipos de fullstack?
El término "fullstack" puede segmentarse en distintos tipos, dependiendo la tecnología "base" que la empresa necesite, por ejemplo:
Fullstack developer .NET
Fullstack developer Python.
Fullstack developer Ruby.
Fullstack developer Javascript.
Por dar algunos ejemplos.
Recomendado por LinkedIn
Algunos colegas de desarrollo piensan que no existe el término fullstack, en realidad, no es imposible convertirte en un desarrollador "multipropósito", siempre y cuando estés dispuesto a comprender ambos mundos (o multimundos), quizá no a un nivel ninja-dios-experto-saiyajin, pero si a un nivel "útil-práctico" para resolver o construir; Muchos developers o solo hacen frontend o solo hacen backend, y no está mal, pero si en algún momento quieres desarrollarte mucho más el ciclo de desarrollo de software va a ser necesario comenzar a entender otros componentes/áreas del desarrollo.
Si algún día quieres ser un buen CTO...
Un CTO debe conocer al menos a alto nivel como opera un producto digital, anticiparse a errores inesperados y como escalar en el futuro, si toda la vida hiciste backend y ahora eres un backend Sr, aún así no vas a poder ser un CTO, o si toda tu vida hiciste frontend y ahora eres un "crack", pero no tienes idea cómo construir un API autenticado, entonces va a ser complejo que algún día puedas ser considerado para este roll.
¿Eres developer y no sabes por dónde empezar en el camino de fullstack?
Una de las formas más prácticas que he encontrado para aprender es tener proyectos personales todo el tiempo, una app, un blog, crea una comunidad, una app de fans de tu grupo musical favorito o cualquier proyecto que te ponga a prueba, donde tengas que planear, diseñar el api, montar tu frontend, establecer seguridad y desplegarlo en la nube, desarrolla los proyectos que puedas, prueba distintas tecnologías en cada uno.
Otra forma puede ser, estar siempre dispuesto a colaborar en otras áreas dentro de tu empresa, si estás aprendiendo python o ruby (o la tecnología que se use en tu área), pídele al equipo de backend que te dejen ayudar en tareas pequeñas, lo mismo si eres backend y quieres aprender de frontend.
¿Es necesario ser un fullstack?
No, definitivamente no. Todo depende del enfoque que tengas, hay developers que se especializan en frontend, backend, db, mobile o devops, y son muy (pero muy) buenos, mucho mejores que cualquier fullstack; Sin embargo van a encontrarse muchas limitantes al momento de querer escalar en la empresa o incluso para incursionar en su propia startup o liderar proyectos completos.
Y para los headhunters, ¿Cómo pueden mejorar su búsqueda de fullstack's, sin morir en el intento?
Una recomendación es que aprendas a identificar las tecnologías tanto de backend como de frontend, siempre debe existir una tecnología "base" y una opcional, pero si el cliente te manda un pergamino de tecnologías de backend y otro igual de frontend, créeme que tu cliente no tiene claro qué tipo de programador necesita, ni Mark Zuckerberg, ni Elon Musk, ni Kim Dotcom podrán cubrir por completo esa vacante y sufrirás mucho.
Si crees que este rol es imposible, existe otro aún más complejo llamado "unicornio", pero esa es otra historia 😅.
¿Qué piensas de este rol?, déjalo en comentarios.
Por último te recomiendo trucos y tips para aumentar la visibilidad de tu perfil de LinkedIn:
Co-Founder at Flux (YC S19)
3 añosSi algún #fullstackdeveloper de Javascript lee esto y le interesa trabajar en un startup, mándenme un mensaje!
Analista y Desarrollador Certificado Genexus
3 añosSin entrar mucho en detalle ni las tecnologías que requiere, diría que un FullStack es alguien que se desempeña y combina muy bien tanto el Back como el FrontEnd o lo que es lo mismo, es capaz de proporcionar soluciones de software completas por si solo.
PhD in engineering sciences Candidate
3 añosSi existe, y vaya que se abusa de este "puesto", todo por sacarle el mayor provecho a una sola persona por el menor precio posible, esto sin duda genera alta rotación y equipos de trabajo con un descontento y frustración tremendos debido a las largas sesiones retrospectivas y a los constantes cambios a los que se someten, sobre todo cuando se enfrentan a la combinación entre la estética y la funcionalidad.
Frontend Web Developer / Digital Strategist / Veeva Certified Consultant
3 añosMe encanta la manera en que lo bajas a la realidad... simple y con un lenguaje muy coloquial 🥰
React Frontend Engineer
3 añosSi existe, pero el detalle es que los fullstacks son mal pagados, las empresas quieren un utility que haga de todo para pagar menos, yo particularmente soy fiel creyente que cada stack debe tener especialistas en el area, me ha tocado estar en la posición del fullstack y siempre es mucha responsabilidad y poca paga.