Automatización hacia la modularidad
En los últimos años, un tema ha sido universal independientemente de la industria, el tamaño de la empresa o la geografía: cada organización intenta acelerar la innovación mientras mantiene la seguridad y estabilidad. ¿Cómo equilibrarán las empresas la necesidad de innovación acelerada con la necesidad de una mayor gobernanza sobre el trabajo de equipos distribuidos con diferentes cadenas de mando?
Con la tecnología de democratización masiva convirtiéndose en algo común y los equipos de entrega alineados con la corriente (como los equipos de fusión) convirtiéndose en la norma, esta pregunta se ha convertido en una preocupación principal para los CIOs y CTOs en todo el mundo.
Un área que está incrementando estas preocupaciones es el auge de las tecnologías de automatización. Las tecnologías de automatización son un excelente ejemplo de tecnología democratizada que entusiasma a los equipos empresariales. Los equipos de TI son escépticos debido a las limitaciones de las generaciones anteriores de tecnología de bajo código, combinadas con historias de advertencia de esfuerzos de TI en la sombra que dejan a los equipos de TI responsables de mantener soluciones que no diseñaron. ¿Quedará IT nuevamente a cargo?
Los líderes de TI empresarial se enfrentan a un conjunto de decisiones complejas. ¿Estamos cómodos con el riesgo de correr a toda velocidad hacia el desarrollo distribuido y liberar la automatización de bajo/cero código a las masas para propósitos de innovación acelerada? ¿Sería mejor centrarnos en la gobernanza y el control para asegurarnos de no «correr con tijeras» y herirnos con componentes que podrían violar las reglas de gobernanza de datos o potencialmente causar una interrupción?
Antes de enviar a tus arquitectos y estrategas a un análisis detallado de coste-beneficio para elegir entre los dos caminos de velocidad o gobernanza, quizás haya surgido una nueva forma que permite a las empresas tener su pastel (innovación desatada) y comérselo también (con controles de gobernanza razonables).
La automatización del proceso de TI es la automatización empresarial
Como muchas cosas en la vida de las personas y los equipos, no es lo que haces, sino cómo lo haces. En el caso de democratizar las tecnologías de automatización en toda una organización, el secreto para liberar la innovación sin sacrificar la seguridad y la calidad radica en aprovechar una estrategia de plataforma que incluye capacidades de gobernanza por diseño desde el principio.
Un problema genérico con la habilitación de la gobernanza dentro de las empresas es la cantidad de trabajo y coordinación necesarios para hacerlo eficazmente. Cualquiera que haya trabajado en los procesos de gobernanza centrados en las reuniones de la junta puede decirte que tiene que haber una mejor manera.
La buena noticia aquí es que no solo hay una mejor manera, sino que esa mejor manera es un camino completamente pavimentado gracias al movimiento DevOps. Para los no iniciados, DevOps es una metodología conceptual similar a Agile. La mayor diferencia aquí es que, mientras que Agile tiene como objetivo acelerar la toma de decisiones y la rapidez en el mercado al reunir a los equipos empresariales y de TI en nuevas formas de trabajar, DevOps apunta a muchos de los mismos resultados al reunir a los equipos de desarrollo y operaciones.
Una verdad revelada por el movimiento DevOps es que «los problemas de TI son problemas empresariales». Esta conexión lineal y demostrable entre el rendimiento de TI y el rendimiento empresarial fue quizás mejor expuesta por el libro «Accelerate», donde los autores recopilan y analizan montones de datos de rendimiento de organizaciones globales para identificar y probar las relaciones correlativas y causales entre las prácticas de DevOps y el rendimiento empresarial.
Mientras que muchos veteranos de DevOps reconocen que la automatización del SDLC o ciclo de vida del desarrollo de sistemas (se extiende mucho más allá del CICD o integración continua/entrega o implementación continuas, no todos se dan cuenta de que para optimizar realmente el flujo rápido, la automatización del proceso de extremo a extremo dentro de TI debe ser una parte fundamental de las iniciativas de transformación. Esto incluye actividades de calidad, rendimiento, seguridad y gobernanza. Cuando los equipos alineados con la corriente/fusión se alinean para automatizar suficientemente el proceso de producción de valor, surge un nuevo modelo conceptual para la empresa: el negocio como plataforma.
El término «plataforma» en conversaciones empresariales y técnicas ha crecido significativamente en la última década y, como muchos términos de jerga, el significado y la aplicación del término se han vuelto un poco confusos. En el contexto de negocio como plataforma, nos referimos al estado que surge cuando se operacionalizan y escalan dos prácticas internas:
- Automatización masiva de procesos y algoritmos que las empresas utilizan para dirigir su negocio (por ejemplo, incorporación, marketing programático, cumplimiento de pedidos, operaciones financieras, gobernanza y seguridad, etc.)
- Creación de plataformas tecnológicas internas que permiten actividades y operaciones desacopladas entre equipos centralizados que suministran valor (TI) y equipos distribuidos que consumen ese valor (marketing, producto, finanzas).
El concepto es separado y distinto de un negocio de plataforma, donde las empresas crean y conectan redes de proveedores y consumidores externos de terceros.
Antes de que las empresas envíen a sus equipos de TI a iniciativas masivas de automatización y plataforma en busca de una entrega optimizada de nuevas capacidades, es importante retroceder y comprender cómo funcionan las estrategias de plataforma en el contexto de la entrega de software.
Plataformas como base para la gobernanza automatizada
Un desafío fundamental para los líderes de TI en empresas escaladas es cómo poner guardias apropiados y efectivos para una empresa políglota. Los tiempos en que un CIO o CTO puede mandatar un único stack tecnológico o metodología de desarrollo han pasado y las empresas no solo deben aceptar que los equipos estarán construyendo software con una variedad de herramientas, sino que deben ir más allá y abrazarlo con una estrategia tecnológica que aliente a los equipos a usar conjuntos de herramientas contextualmente apropiados para los trabajos que tienen en mano.
Este contexto es donde entran en juego las plataformas compartidas. Una distinción clave aquí es que «las plataformas compartidas no necesariamente significan que todos los equipos deben usar un stack tecnológico». Para que las empresas resuelvan el enigma de la innovación frente a la gobernanza, las plataformas que utilizan deben tener en cuenta el concepto de universalidad. Aunque el término «universalidad» puede ser desconocido para ti, vale la pena señalar que estás experimentando sus beneficios en este momento, dado que estás usando un navegador web para leer este artículo.
Tim Berners Lee (inventor de la WWW) aprovechó específicamente el concepto de universalidad para hacer de la web la herramienta más robusta e impactante de nuestra era. La universalidad es el concepto más crítico que ha permitido la adopción global no solo de navegadores web, sino también de casi cualquier tecnología que use la web, incluidos dispositivos móviles y computación en la nube en general.
La universalidad como principio organizador puede actuar como combustible para potenciar el valor de las plataformas, ya que la universalidad permite que una plataforma cumpla con los creadores empresariales donde se encuentren, al tiempo que permite que las capacidades «por diseño» se aprovechen en todo el espectro de aplicaciones y capacidades que la plataforma proporciona acceso.
Para lograr este efecto, la universalidad debe aplicarse en múltiples dimensiones:
- Independencia del protocolo: Apoyar una amplia gama de paradigmas de comunicación, en lugar de un protocolo singular, es un principio fundamental de la universalidad. En un contexto de integración y automatización, las API RESTful son uno de los muchos protocolos a los que una plataforma puede aplicar conjuntos de reglas de gobernanza. Desde AsyncAPI hasta GraphQL, una plataforma que permite a los desarrolladores utilizar el protocolo que tiene más sentido para su caso de uso sentará las bases para un repositorio robusto de componentes reutilizables en los que los desarrolladores y arquitectos de soluciones pueden confiar porque las reglas de gobernanza de apuestas de mesa se han aplicado por diseño.
- Independencia del stack tecnológico: La universalidad requiere un sesgo hacia la apertura y no solo en la capa de comunicaciones. Para permitir que las empresas apliquen la gobernanza en todo el lienzo de las API dentro de la infraestructura de una empresa, independientemente de si estos componentes se construyeron en la plataforma compartida o no, la plataforma debe poder admitir los componentes construidos con el stack tecnológico de elección del desarrollador, de ahí la aplicabilidad del término UAPIM (Gestión de API Universal).
- Independencia del tipo de componente: Para que una solución se considere «universal» en su naturaleza, no solo debe ser abierta en su enfoque hacia la tecnología, sino que también debe ser accesible para diferentes audiencias. Para llevar la universalidad y la democratización al siguiente nivel en una plataforma de integración y automatización, contribuir a la plataforma no puede estar restringido solo a los equipos de TI. Los equipos distribuidos deben poder aprovechar la plataforma para conectar y operar componentes diversos con poca o ninguna fricción. Esta es la esencia de la composabilidad.
En este modelo, el poder de la plataforma no solo es visible cuando se agregan nuevas API a la plataforma, sino que ese mismo poder también es visible cuando:
- Se necesitan nuevos protocolos para necesidades de integración específicas para habilitar casos de uso complejos.
- Se agregan nuevas tecnologías a la mezcla a través de fusiones y adquisiciones o empleados innovadores que utilizan las herramientas de desarrollo con las que se sienten más cómodos.
- Los equipos distribuidos están utilizando tecnología de no/bajo código para automatizar la administración de procesos empresariales repetitivos.
Enfoque centrado en plataforma
Antes de que los enfoques y tecnologías para la automatización y las plataformas hubieran madurado, las organizaciones de todo el mundo tenían que elegir entre velocidad y seguridad, flexibilidad y usabilidad, innovación y gobernanza. Solo en la última década estas dicotomías han comenzado a erosionarse, permitiendo a las empresas lograr múltiples objetivos que antes se consideraban mutuamente excluyentes.
El avance más reciente en la evolución de las plataformas es cómo pueden abrazar la universalidad como principio central. La unificación del diseño para la reutilización y el ajuste para el propósito radica en este principio, ya que la universalidad se basa en los avances en plataformas y automatización para permitir la rápida creación de soluciones políglotas mientras aún permite a los equipos conservar la simplicidad y velocidad deseadas que «ajuste para el propósito» tiene la intención de entregar.
Cuando tus componentes de API, integración y automatización se aprovechan dentro de una plataforma que comprende y muestra cada uno de los diferentes tipos de activos y cómo tejerlos juntos, tus equipos de entrega ya no tienen que preocuparse por los detalles auxiliares del desarrollo de soluciones.
Este enfoque centrado en la plataforma es la palanca que permite la lente BaaP/composabilidad. Todas las características que ahorran tiempo y apoyan la gobernanza se aprovechan a través de una combinación de automatización y convenciones de plataforma a medida que los componentes, independientemente del protocolo, stack tecnológico o tipo, se colocan en el tejido de la plataforma. En otras palabras, todos los eventos de la cadena de valor, desde el descubrimiento hasta la gestión operativa, están completamente integrados en la plataforma, liberando finalmente a tus equipos de entrega de la carga de la administración y el cambio de modo/contexto.