Nuestro hijo menor tiene nueve años (¡Y MEDIO!) ¡NO OLVIDES LA MITAD!) y actualmente está fascinado con los robots. No sólo jugar con ellos, sino programarlos. Dado que ambos padres tienen títulos avanzados en informática, puedes imaginarte que estamos entusiasmados y alentados por esta tendencia particular.
Por supuesto, los robots que ofrecen modelos de programación fáciles de aprender son algo que ya tenemos en casa. Uno de los juguetes para este verano fue de Wonder Workshop , cuyos robots pueden programarse a través de un lenguaje tipo “bloque”.
Esta es la norma para los niños de hoy. Este niño juega con varios “juegos” en sus distintos dispositivos, todos los cuales utilizan el mismo modelo de “bloque” para construir programas. Incluso su robot Lego Mindstorms Ev3 utiliza un mecanismo similar, donde los constructos de programación son bloques que se conectan entre sí. Las variables y condiciones se establecen seleccionándolas y no se muestra ningún “código” real en la pantalla.
Pero sabes que está ahí.
En el pasado, cuando evaluaba soluciones BPM (Business Process Management), utilizaban un paradigma similar para permitir a las partes interesadas del negocio definir procesos. Su interfaz reflejaba la naturaleza de los procesos, es decir, se construía un diagrama de flujo usando un modelo de arrastrar y soltar, pero gran parte de la construcción de la orquestación se lograba a través de una interfaz más fácil de aprender. Igual que los que usa mi hijo más pequeño hoy, sólo que más parecidos a Visio. Mucho más parecido a Visio ahora que lo pienso.
Olvídate de los niños. Ésta es la dirección que debe tomar la automatización de TI. No hay razón para la complejidad inherente a la automatización de TI hoy en día, excepto que nadie aún ha reconocido que, si queremos fomentar más de esto (y por parte de personas que no son programadores por naturaleza), necesitamos encontrar una mejor forma de construir los flujos de trabajo que representan los procesos de TI utilizados para implementar, administrar y configurar la infraestructura de TI.
Lo primero en lo que debemos estar de acuerdo es que programático no significa necesariamente “puedes hacer lo que quieras con código”. Eso es cierto, en el sentido más liberal de la palabra, pero también significa la capacidad de cambiar o definir el comportamiento programáticamente. Hay un conjunto limitado de acciones necesarias para ejecutar un flujo de trabajo en TI, y la mayoría de ellas están habilitadas hoy en día por la (otra) economía API. Al proporcionar una interfaz que encapsule ese conjunto limitado de acciones y proporcione construcciones lógicas claras y fáciles de entender (si/entonces, mientras, funciones iterativas), podríamos eliminar ostensiblemente la tendencia hacia los mecanismos de scripting no estructurados que introducen mucha más deuda técnica en las operaciones de TI que la mayoría del software desarrollado en las empresas en el pasado. Este nivel de abstracción restringida también permitiría a los codificadores no nativos (ingenieros y arquitectos de redes y almacenamiento) producir flujos de trabajo bien construidos y altamente mantenibles (un impulsor importante de la estandarización). Cuando se combina con una red troncal sin servidor para ejecutar flujos de trabajo , este modelo reduce la inversión necesaria para crear, mantener y ejecutar flujos de trabajo adecuados para las operaciones de TI.
Esto es importante porque debemos abordar la automatización de TI teniendo en cuenta la sostenibilidad. Un script hoy funciona muy bien, pero ¿podrá escalar junto con las personas y los procesos en el futuro?
Ahora bien, tal vez no necesitemos una solución tan simple (o colorida), pero creo que la premisa sobre la que está diseñada la interfaz es importante para adaptarla a medida que miramos hacia el futuro de la automatización de TI y cómo construimos (y mantenemos) el código que eventualmente hará que la TI funcione. Lamentablemente, tendemos a transferir la complejidad de los sistemas subyacentes al diseño de sistemas (y, por lo tanto, de interfaces) que interactúan con ellos y los controlan. Queremos exponer todos los botones y perillas posibles. Como mínimo, un agente de API que proporcione una forma de agregar la complejidad natural de las CLI convertidas en API en tareas operativas más comprensibles sería una bendición para aquellos encargados de automatizar redes de TI y servicios de aplicaciones. Iniciar sesión puede ser un proceso complejo que consta de múltiples pasos que se repiten cada vez. Al componerlos en un único “servicio” los hace repetibles e infinitamente más auditables, además de consistentes. Combine eso con una interfaz (más) intuitiva y tendremos un ganador en automatización de TI.
Las interfaces para aplicaciones de “codificación” para niños actuales demuestran que es posible hacerlo sin que los usuarios sientan que están mirando un ENIAC sin un manual que los guíe. Podemos hacerlo mejor, y si vamos a escalar la transformación digital interna para mantenernos al día con el negocio, debemos hacerlo.