Se describen muchas cosas cotidianas como si habláramos de tecnología y son parte del lenguaje cotidiano expresiones como las siguientes: las personas están “programadas”, el “ancho de banda” emocional o la manera ingeniosa como se pueden “hackear” las rutinas diarias. Invariablemente, las metáforas explicativas de cualquier época incorporan los dispositivos y los espectáculos del día. Ahora nos estamos acercando al uso extendido del  tentador concepto que a su vez contiene todas las expresiones tecnológicas: el “stack”. No hay palabra equivalente en español, lo más cercano es “capa”, pero no le hace justicia ya que esta no incluye la interrelación entre las capas. La lógica del “stack” todavía no ha traspasado a la conversación cotidiana, pero está comenzando a aparecer en algunos ámbitos:

  • Gerentes corporativos hablan de “stacks” de soluciones.
  • Atletas comparten sus “stacks” de recuperación y de formación de músculos.
  • La potencia política del Presidente Trump se presenta representada por su singular “stack” de talentos: manejo de redes sociales, estrategia y persuasión.

En el artículo se aprovecha para desarrollar la definición de stack y para hablar sobre el cómo seleccionar el stack de tecnología apropiado para una solución.

Definición

En computación un stack de software o de  soluciones es el conjunto de subsistemas o componentes necesarios para crear una plataforma completa, donde no se requiere software adicional para soportar las aplicaciones. Un tiempo atrás el stack incluía el hardware, ahora se refiere más directamente a software. El concepto de “stack” está en plena evolución, de manera que hoy tenemos definiciones donde el stack técnológico incluye la combinación de productos de software y de lenguajes de programación utilizados para crear una aplicación web o móvil. Algunos ejemplos de stack son:

  • El stack de un teléfono inteligente – Incluye el código de bajo nivel que controla el dispositivo, el sistema operativo y el software que la persona usa para enviar un mensaje o para jugar un juego.
  • El stack de una aplicación – Puede incluir los lenguajes de programación utilizados para su desarrollo, los servicios que lo conectan a otras apps y el servicio que lo hospeda en-línea.
  • Un desarrollador “full stack”- Es alguien competente para el trabajo de todas y cada una de las capas del sistema.

Cómo seleccionar el stack de tecnología apropiado

Para desarrollar una solución de tecnología es necesario escoger el stack de tecnología que se utilizará. Esto resulta ser un poco arte y un poco ciencia. No alcanzar el balance apropiado puede tener un impacto significativo en un proyecto, por lo tanto es crucial evaluar todos los posibles riesgos. Las grandes preguntas que se deberían responder para escoger las tecnología que componen el stack incluyen:

  • Cuál es el panorama de talento para la tecnología? – Cuán fácil es conseguir un desarrollador que conozca el stack tecnológico? Como cada stack tecnológico tiene su comunidad, es importante conocer la cultura alrededor de la misma.
  • Qué respaldo tiene la tecnología y las razones para ello? – este puede provenir de una corporación privada o de una organización sin fines de lucro y es necesario confirmar que los intereses del que la respalda coinciden con los de quién los va a utilizar.
  • Cuán madura es la tecnología? – Mientras más temprano esté la tecnología en su ciclo de vida, menos confiable tiende a ser. Las tecnologías maduras tienen un ecosistema completo de herramientas.
  • Cuán fácil es construir y compartir soluciones? – Madurez también implica un gran conjunto de paquetes de terceros.
  • Cuáles son los requerimientos de mantenimiento? – Es necesario considerar todos los costos asociados.
  • Cuáles dependencias tecnológicas existen? – Esto debido a que las mayoría de las tecnologías están construidas una sobre la otra.

Se hace referencia a “New Technology Is Built on a ‘Stack’, “Is That the Best Way to Understand Everything Else, Too?” http://nyti.ms/2omn3W9 y “How to Choose Your Tech Stack” http://bit.ly/2swr5y9 y “Seven Questions To Ask Before Choosing Your Technology Stack” http://bit.ly/2sK1wZM.