En los últimos años, se ha mencionado cada vez más a Trello como una excelente herramienta para organizar y planificar. Durante 3 años, hemos estado utilizando Trello en nuestra empresa para planificar muchos procesos, desde vacaciones, viajes de negocios y aprobaciones de acuerdos hasta la gestión de proyectos.
Desafortunadamente, no todo es tan hermoso en Trello. No puede hacer un flujo de trabajo personalizado en él. Es decir, necesitamos ocupar a un empleado que arrastre tarjetas con sus manos en varios tableros. ¿Cómo se puede transferir a este empleado a otro trabajo más interesante y creativo?
Por supuesto, usted dice que puede escribir un guión que hará todo esto por nosotros. Pero hay un problema. Un guion solo puede ser escrito por un programador o una persona que entienda cómo hacerlo. Tendrá que mantener el guión. Encontramos una solución más simple y lógica: este es el modelado semántico.
El modelado semántico le permite escribir toda la lógica de la pizarra en Trello en lenguaje natural.
Coordinación de viajes y vacaciones.
Tome el proceso más simple: combinar viajes y vacaciones. De acuerdo con nuestras regulaciones, cada empleado que planea tomar vacaciones o ir de viaje de negocios publica una solicitud a Trello. La solicitud se incluye en la hoja "Para aprobación".

Tan pronto como se aprueba la solicitud (de hecho, esto significa que el jefe del empleado y / o el representante del departamento financiero marcó la casilla de verificación), pasan a la lista de "Viajes acordados". Una solicitud de licencia cae respectivamente en "Licencia acordada", etc. Después de eso, debe notificar al empleado que su solicitud ha sido aceptada.
Supongamos que queremos automatizar este proceso para que, después de la aprobación, la aplicación se mueva automáticamente a la hoja deseada y el empleado reciba una notificación sobre el cambio en el estado de la aplicación. Considera lo que necesitamos para esto.
Herramientas necesarias
Para desarrollar el modelo, elegimos ide del Jetbrains MPS (Meta Programming System). Como lenguaje para modelar, se
utiliza el lenguaje
d0SL: lenguaje semántico Delta0, creado sobre la base de modelos semánticos (lógicos).
El proceso completo de instalación de Jetbrains MPS y los complementos necesarios se describe completamente aquí:
https://d0sl.imtqy.com/en/quick/installation/ .
Puede instalar el modelo de placa Trello terminado en el enlace:
https://d0sl.imtqy.com/en/quick/trello/ .
Modelo semántico. Que paso
Veamos cómo se ve el modelo semántico resultante de las tablas Trello. Contiene nuestras reglas:
- ¿Está marcada la casilla de verificación ? Comprueba si la casilla de verificación llamada requiredCheckBoxName está marcada en la tarjeta con id cardId. De esta forma podemos verificar si nuestra Aplicación está aprobada o no.
- moveCard : mueve la tarjeta cardId a la lista y agrega un comentario a la aplicación para el usuario

El modelo tiene un predicado checkBoard, que se llama para cada tarjeta en el tablero. El identificador de la tarjeta, el nombre del usuario que realizó la última operación con la tarjeta, la hoja desde la que se movió la tarjeta y la hoja en la que se encuentra actualmente, se transfieren a ella. Además, en checkBoard podemos establecer las reglas por las cuales planeamos procesar nuestras aplicaciones.

Tenga en cuenta que el modelado semántico le permite poner todas las reglas comerciales lógicas en un documento y escribir estas reglas en el idioma del área temática, el "idioma nativo" para los usuarios del modelo.
La capacidad de hacer algo con la tarjeta es proporcionada por el modelo base TrelloBoard, que se ve así:

Si ejecutamos el modelo, tan pronto como la solicitud en la hoja "Para aprobación" pase el proceso de aprobación,

El sistema lo moverá a la sección correspondiente y notificará al fabricante de la tarjeta el cambio en el estado de la aplicación.

Sin embargo, si una aplicación que no se ha acordado se intenta mover manualmente, el sistema la enviará al lugar y escribirá un comentario enojado.
¿Y qué hay debajo del capó?
El modelo básico de TrelloBoard es esencialmente una interfaz que implementamos en Java (en este caso, en la clase com.gav.semanticTrelloBoard.TrelloBoardDSL).
Se ve así:

Definimos nombres de funciones usando decoradores y los implementamos.
También tenemos la clase AiTrelloBoard, que nos permite trabajar con Trello. Contiene implementaciones java de funciones como inicio:

En el archivo trelloBoard.properties, guardamos todos los parámetros de la API de trello (como application_key, board_id, etc.) y last_update_timestamp: fecha y hora de la última actualización.
Por lo tanto, a costa de no demasiado esfuerzo, podemos automatizar los procesos comerciales necesarios en Trello. Usar y mantener esta solución es mucho más conveniente que el código del programa.
Obviamente, las posibilidades del modelado semántico no se limitan a resolver este problema. De hecho, si en el enfoque clásico para resolver problemas el analista primero crea especificaciones, sobre la base de las cuales los desarrolladores implementan posteriormente la arquitectura y escriben el código, luego, cuando utiliza el lenguaje de modelado semántico d0sl, el analista puede crear especificaciones para tareas en un lenguaje lógico formal que se transforman en código ejecutable sin intervención humana. Esto puede reducir significativamente el costo de desarrollar, implementar y probar nuevos servicios.
Abrimos la solución para trabajar con Trello y la pusimos en
github .
Queríamos no solo proporcionar una herramienta para la modernización de procesos en Trello, sino también demostrar con este simple ejemplo las ventajas de utilizar un enfoque tan moderno como el modelado semántico. Nos complacerá si puede agregar algo propio a este caso y compartir su experiencia al usar nuestra solución.
Enlaces utiles
Lea más sobre el lenguaje de modelado semántico d0sl
aquí .
Los fundamentos matemáticos del modelado semántico se describen
aquí .