Tradicionalmente hemos pensado en los sistemas en términos de cosas o de los nombres que incorpora el sistema. Cuando pensamos en los eventos que se producen, en su efecto causal y en las reacciones, surgen naturalmente los sustantivos que participan en el evento. Una de las críticas a los antiguos estilos de diseño es que empezamos a diseñar un modelo de datos demasiado pronto, antes de comprender la interacción de los elementos del sistema. Vamos a ver que es el pensamiento Event-First.
¿Qué es el pensamiento Event-First?
La Modelación y Análisis de Procesos Empresariales (BEAM, por sus siglas en inglés) se utiliza desde hace algunos años en el ámbito de almacenamiento de datos como una metodología más adecuada para la elaboración de esquemas de inicio ágiles. Lawrence Corr y Jim Stagnitto describen BEAM en su libro Agile Data Warehouse Design. Se refieren a las 7 W en inglés como un medio para entender un evento dimensionalmente:
7 W en inglés como un medio para entender un evento dimensionalmente
- Who? (¿quién): personas y organizaciones
- What? (¿qué): cosas, como producto o servicio
- When? (¿cuándo?): tiempo
- Where? (¿dónde?): localización
- Why? (¿por qué?): razones y causalidad, como una promoción de
marketing o el clima - HoW? (¿cómo?): ID de las transacciones y códigos de estado
- HoW Many? (¿cuántas?): medición e indicadores clave de rendimiento
– Quizás este artículo te interese: ¿Cuándo y por qué debo adoptar la arquitectura Event-Driven? –
Es una gran manera de sacar a la luz cosas, eventos y la historia del evento. El Event storming (Alberto Brandolini) es un método basado en un taller de trabajo más específico para el desarrollo de aplicaciones que permite obtener la historia de los eventos dentro de un sistema. Está estrechamente vinculada al diseño orientado al dominio, en el que se crean modelos de dominio para representar los dominios y subdominios empresariales. Sin entrar en detalles, podemos pensar que se trata de dividir el problema en trozos mucho más manejables. Este método nos ayuda a sacar a la luz esa información, y es una consideración fundamental para cualquiera que quiera incorporar la arquitectura Event-Driven.
Para el CIO o líder de informática puede empezar a posicionarse en su organización en función de los eventos si empieza a pensar en los sistemas que proporciona como apoyo a los eventos que se producen en cualquier área funcional o proceso. Puedes empezar a buscar valor en los eventos que impulsan los resultados transaccionales que soportan sus sistemas actuales. Cuando pensamos en términos de «si pudiéramos hacer tal cosa mejor», los eventos que representan los comportamientos que hacen que esa cosa se manifieste pueden ser muy valiosos en cualquier búsqueda de mejora. Esto puede poner de manifiesto oportunidades en la organización para desplegar o incorporar un enfoque Event-Driven.
Una cosa que aprendemos de BEAM en el modelado dimensional es que el enfoque Event-Driven produce un modelo de datos mucho más flexible. Tradicionalmente, los almacenes de datos se vuelven poco manejables porque a menudo se diseñan de forma inversa a partir de un conjunto de informes que necesita la empresa. Son una respuesta a una serie de preguntas muy concretas. Cuando nos centramos en los eventos que ocurren dentro de un negocio o área funcional, terminamos con un modelo de datos que es capaz de responder a cualquier pregunta que la empresa quiera hacer sobre su actividad. Cuando la empresa es capaz de obtener respuesta a sus preguntas iniciales, a menudo son las preguntas que puede hacer después las que aportan el verdadero conocimiento o valor.
Lo mismo ocurre con un enfoque de Event Storming para el diseño del sistema. Cuando nos centramos en los eventos que ocurren, su causalidad y las reacciones a estos, acabamos teniendo algo mucho más flexible que lo que teníamos con los enfoques más tradicionales del diseño de aplicaciones. El valor de esos eventos a menudo se magnifica más adelante en el recorrido, cuando hemos satisfecho nuestras necesidades iniciales de aplicación. No debemos esperar necesariamente ver eso desde el principio, y debemos asegurarnos de que la declaración de valor al inicio se apila antes de invertir. Si vendemos una promesa, es muy probable que acabemos rompiéndola. Piensa a lo grande, pero mira las cosas al alza a medida que avanza tu recorrido en la arquitectura Event-Driven.
Si quieres saber cómo Chakray puede ayudarte a adoptar el pensamiento Event-First, ¡contáctanos!