El término desarrollador de pila completa es algo controvertido en la comunidad tecnológica, mientras que muchos refuta la existencia de tal nomenclatura, muchos argumentan. Pila completa si viene del inglés de "pila completa" o más bien "todas las capas", entonces primero tenemos que entender que este término ha estado adaptando su significado. Recuerdo que cuando empecé a trabajar con tecnología hace más de 10 años, muchos usaban esta definición para las personas que entendían todas las capas de desarrollo web, incluyendo frontend, backend e infraestructura/base de datos. Actualmente, cuando alguien se refiere a la pila completa, probablemente se refiere a un desarrollador que actúa en ambas capas: Frontend y Backend.
Hay una broma de referirse a un desarrollador de pila completa como el desarrollador de patos. Porque el pato nada, camina y vuela, pero no hace ningún derecho. Creo que es posible más bien un desarrollador para ser bueno en todo lo que hace, pero seguramente la gran mayoría que se llaman pila completa no lo es. Si nos fijamos en mi blog o incluso mi linkedin, verá que utilizo el término pila completa, aunque no me gusta mucho, es más porque el término es utilizado por la gente y los reclutadores cuando se trata de encontrarte. Al final del artículo voy a hablar un poco más sobre por qué no creo que ese término es ideal para ser utilizado hoy en día.
Comprender las capas
Una aplicación web tiene capas de tecnología, en definitiva podemos enumerar dos principales: Frontend (Lado cliente / Lado cliente); Backend (lado del servidor/lado del servidor);
El desarrollador de pila completa actualmente tiene que ser capaz de actuar en estas dos capas, ser capaz de desarrollar la regla de negocio en el backend y desarrollar el frente. Así que si el desarrollador puede programar en PHP, que es un lenguaje backend y sabe cómo ensamblar una estructura básica en HTML/CSS/Javascript, teóricamente ya puede llamarse a sí mismo pila completa.
Controversia de los desarrolladores de Pato
En estos días me parece muy genérico y tal vez algo excelente llamar pila completa, todas las capas han evolucionado de más y hoy tienes divisiones internas en frontend y backend. Anteriormente frontend era quien sabía cómo meterse con HTML, CSS y Javascript, hoy en día encontramos desarrolladores front-end que sólo conocen Javascript, o simplemente HTML y CSS. Esta especialización se produjo gracias a los avances en los marcos frontales, que se han convertido en marcos complejos debido a la demanda de los usuarios de interfaces más interactivas y una mejor usabilidad. El mismo escenario se aplica al back-end e incluso a la infraestructura. En mi opinión, no podemos considerar el término de desarrollador de pila completo totalmente correcto porque, después de todo, todas las pilas deben incluirse: Tenemos el entorno de nube (GCP, AWS, Azure), la infraestructura (Linux, Windows), móvil (iOS, Android, híbridos), etc. Así que si todas estas capas son parte de la aplicación, el desarrollador de la pila completa teóricamente debe saber cómo moverse incluso poco en todas ellas. La pila ha crecido demasiado, ha ido demasiado lejos, y por lo que me parece improbable en estos días habrá un desarrollador de pila realmente 100% completo. Esa es mi posición sobre la teoría detrás de la nomenclatura (¿y luego bien?). La discusión es larga, pero no vale la pena perder el tiempo, sólo entender que cuando alguien se refiere como pila completa, probablemente se refiere al frente y la espalda. No juzgo quién utiliza el término, como expliqué al principio del artículo que todavía uso por razones de referencia, y al final del día tanto, después de todo, en el mundo de TI todo el mundo puede recurrir a ingeniero.