¿Qué es un stack tecnológico?

Los desarrolladores no pueden manejar un stack tecnológico a menos que sepan lo que está sucediendo, por lo que una plataforma de análisis, como Mixpanel, es una parte tan importante del stack tecnológico. Cada herramienta en su stack crea, analiza o toma datos, y para funcionar de la forma más eficiente, esas fuentes de datos deben estar enlazadas entre sí.

¿Cuál es el propósito de un stack tecnológico?

Un stack tecnológico, también llamado stack de soluciones o ecosistema de datos, es una lista de todos los servicios tecnológicos utilizados para construir y ejecutar una sola aplicación. El sitio social Facebook, por ejemplo, está compuesto por una combinación de frameworks de codificación y lenguajes, entre los que se incluyen JavaScript, HTML, CSS, PHP y ReactJS. Este es el “stack tecnológico” de Facebook.

Los desarrolladores hablan de stacks tecnológicos porque facilitan la comunicación de grandes cantidades de información sobre cómo se construye una aplicación. El término se aplica a veces a los servicios de marketing (stacks de MarTech) o a los servicios de ventas (stacks de ventas), pero se originó en la comunidad de desarrollo de software. Un stack tecnológico resume rápidamente los lenguajes de programación, los frameworks y las herramientas que un desarrollador necesitaría para interactuar con la aplicación. Debido a que la mayoría de los lenguajes de codificación poseen atributos y limitaciones de rendimiento bien conocidos, un stack tecnológico alude a las fortalezas y debilidades de la aplicación en general. Si un programador sabe que un servicio de software está construido en PHP, por ejemplo, sabe que su base de código quizás sea grande y difícil de depurar. PHP es un lenguaje de codificación notoriamente ineficiente que se utiliza en la mayoría de las aplicaciones web populares. Si un programador sabe que una aplicación fue construida usando Ruby on Rails, sabe que tendría que aprender el lenguaje de programación Ruby para hacer cualquier cambio. Los stacks tecnológicos son particularmente útiles para la contratación de desarrolladores. “A menos que los solicitantes estén familiarizados con las estructuras y los lenguajes de un stack tecnológico, o estén dispuestos a familiarizarse, puede que no encajen bien”, dijo John Debs, ingeniero de software de la plataforma de mensajería Lua. Las compañías que tratan de reclutar desarrolladores a menudo incluyen su stack tecnológico en las descripciones de trabajo.

¿Qué hay en un stack tecnológico?

No hay dos stacks tecnológicos iguales. Los equipos deciden qué tecnologías quieren utilizar y luego se basan en un lenguaje de codificación central, añadiendo herramientas y servicios adicionales a medida que avanzan. “Cuando se tiene un producto en mente, por lo general se empieza con el front end, la pieza que enfrenta al cliente, y luego se decide qué herramientas de back-end se necesitan para apoyarlo”, dijo Lira Skenderi, una analista de datos e ingeniera del proveedor de alojamiento Digital Ocean. El paquete de servicios resultante se denomina “stack” porque cada servicio adicional se basa en los que se encuentran debajo, lo que permite a los desarrolladores personalizar la aplicación. Los desarrolladores que diseñan una aplicación a la que accederán millones de personas cada día pueden elegir lenguajes de programación que sobresalen en lo que se conoce como operaciones de alta lectura, lo que significa que pueden ser accedidos por muchos usuarios simultáneos. Si la aplicación está destinada a rastrear la web y recopilar información, los desarrolladores pueden optar por lenguajes de alta escritura. Todos los stacks tecnológicos se dividen entre el back-end y el front-end, también conocido como server-side y client-side. Si un stack tecnológico fuera una computadora portátil, el back-end sería el hardware interno que la hace funcionar. El front-end serían la pantalla, la carcasa y el teclado, que permiten al usuario interactuar con el portátil. Cuando una solicitud de empleo requiere de un ingeniero con experiencia en el área de back-end, front-end y full-stack, hace referencia a la parte de la tecnología en la que el solicitante se especializará de forma especial.

Las tecnologías back-end incluyen frameworks web, lenguajes de programación, servidores y sistemas operativos. Una stack popular de tecnología de desarrollo web es conocida por el acrónimo LAMP, abreviatura de sistema operativo Linux, servidor HTTP Apache, sistema de gestión de bases de datos relacionales MySQL y el lenguaje de programación PHP. Las tecnologías front-end son la interfaz visual, como los sitios web y las aplicaciones. Estos son los elementos visuales por los que la mayoría de las aplicaciones son conocidas, y ofrecen a los usuarios las herramientas que necesitan para hacer las cosas. Los lenguajes front-end suelen ser mucho más sencillos que los de back-end. La mayoría de las interfaces de aplicaciones web se construyen utilizando el lenguaje de programación Javascript y los frameworks Angular JS, Backbone.js y ReactJS. Las tecnologías de punta para aplicaciones de smartphones incluyen Objective-C/SWIFT para aplicaciones iOS y Java para aplicaciones Android.

Technology stack overview of a simple application

¿Esta lista para construir el mejor stack tecnológico?

Aprenda como escoger las herramientas mejores para tu negocio.

Descarge el Reporte

Consejos para la construcción de stacks tecnológicos

Al igual que los cimientos de una casa, el orden en que se construye una stack es importante. Cada nueva capa se construye sobre la última y las capas enterradas no se pueden sacar fácilmente. He aquí algunos consejos básicos para la construcción de stacks de tecnología:

Plane para el futuro

Preparar un stack tecnológico para el futuro puede ser un arma de doble filo. Si los desarrolladores no tienen en cuenta la forma en que su aplicación se expandirá, es posible que tengan que añadir servicios adicionales que la hagan engorrosa y difícil de gestionar. Por otro lado, si anticipan un crecimiento exponencial e invierten demasiado en herramientas y servicios costosos, es posible que se queden sin dinero antes de que la aplicación tenga éxito en el mercado, si es que lo tiene. La mejor estrategia es crear productos mínimamente viables, como aplicaciones web, utilizando herramientas de código abierto para probar conceptos antes de invertir en ellos, y buscar herramientas que ofrezcan la flexibilidad de enviar datos a las demás herramientas de su pila, incluso si no es un requisito al principio. En caso de haber dudas, los desarrolladores siempre deben orientarse hacia tecnologías y lenguajes de codificación or programación más maduros, que a menudo son más fiables.

Confíe en la comunidad de código abierto

Los desarrolladores de todo el mundo contribuyen a la creación de herramientas gratuitas de código abierto que se encuentran disponibles para cualquier persona con una conexión a Internet. El alcance de la comunidad de código abierto y la utilidad que ofrece son asombrosos. “El software de código abierto es probablemente lo que está detrás de los últimos 10-20 años de renacimiento de la tecnología”, dijo Debs. “Cualquiera puede pararse sobre los hombros de los gigantes y construir productos con una tecnología subyacente increíblemente complicada que nunca podrían haber construido ellos mismos. Estás hablando de miles de millones de horas de tiempo de la gente, y de contribuciones de expertos en todos los campos”. Debs estima que el software que usa todos los días les tomó a otras personas millones de horas para escribir. Cualquier equipo de ingeniería que esté considerando la posibilidad de construir una stack tecnológico lo tendrá más fácil si confía, al menos en parte, en el software de código abierto.

Considere el propósito de la aplicación

Los desarrolladores tienden a favorecer los lenguajes de codificación or programación que ya conocen, pero para construir el mejor stack tecnológico, vale la pena dar un paso atrás y dejar que el propósito de la aplicación determine su tecnología. Por ejemplo, ¿la aplicación será móvil o de escritorio? Si es para móvil, ¿qué aplicaciones? Si es de escritorio, ¿qué navegadores? ¿Es un sitio de medios que recibirá millones de visitantes diarios o una aplicación de banca móvil que debe ser segura? Diferentes lenguajes de programación, herramientas y stacks tecnológicos se prestan para cada uno de estos propósitos. Lo mismo podrían hacer ciertos desarrolladores con habilidades relevantes.

Use una plataforma de análisis

Los desarrolladores no pueden gestionar una stack tecnológico a menos que sepan lo que está sucediendo, razón por la cual muchos utilizan el análisis de productos. Las plataformas de Analytics están diseñadas para unir las fuentes de datos en todo el stack y proporcionar un seguimiento granular del usuario. Esto permite a los desarrolladores identificar los problemas que los usuarios experimentan dentro de su aplicación, depurar y corregir los errores.

Considere el mantenimiento

Los equipos deben fijar el precio de las tecnologías necesarias para apoyar su stack tecnológico antes de construirlo. En caso de haber dudas, los equipos deben sobrestimar el coste total y recordar incluir el precio variable del talento de ingeniería. Los desarrolladores a menudo se sienten atraídos por lenguajes de codificación or programación innovadores que refuerzan sus habilidades y currículum vitae, y aunque los lenguajes de programación maduros pueden proporcionar fiabilidad, también pueden dificultar la contratación de los mejores talentos. Ocasionalmente, las tecnologías más baratas pueden costar más en términos de atraer a los mejores talentos.

¿Esta lista para construir el mejor stack tecnológico?

Aprenda como escoger las herramientas mejores para tu negocio.

Descarge el Reporte