Programar dentro de Jira ya es oficialmente posible: un desarrollador demuestra que es "Turing-completo"

Un desarrollador acaba de demostrar que Jira, la conocida herramienta de gestión de tareas, es, en realidad, un lenguaje de programación con el que se puede hacer casi cualquier cosa.
Si te dedicas o te has dedicado de alguna forma al desarrollo de software, seguramente conoces Jira. Hablamos, para el resto, de un programa de Atlassian que sirve para organizar proyectos, mover tarjetas de tareas de una columna a otra y, siendo sinceros, dar algún que otro problema cuando no funciona como uno quiere.
Pero más allá de sus funcionalidades, en este programa existe desde hace años un mito, una leyenda urbana que decía que Jira era tan complejo que, si alguien se lo proponía, podría utilizarlo como un lenguaje de programación para calcular cualquier operación matemática.
Esto es precisamente lo que un desarrollador ha querido comprobar. Nicolas Seriot ha publicado un estudio en el que demuestra de forma empírica y real que las automatizaciones de Jira son "Turing-completas".
Esto quiere decir que Jira tiene la capacidad de resolver cualquier problema matemático o ejecutar cualquier algoritmo que pueda hacer un ordenador normal. Para demostrarlo, ha configurado una cuenta real en la plataforma y ha conseguido que el programa sume números y calcule la famosa sucesión matemática de Fibonacci utilizando solo tickets de tareas y flujos de trabajo.
Para conseguirlo, el desarrollador ha recurrido a un modelo matemático llamado la Máquina de Minsky.
Este demuestra que para que un sistema pueda programar cualquier cosa, solo necesita dos elementos: unos contadores que guarden números y la capacidad de hacer dos acciones con ellos: sumar uno o restar uno y comprobar si el contador ha llegado a cero para cambiar de tarea. Si un sistema puede hacer eso, puede programarlo absolutamente todo.
El gran reto de Nicolas Seriot: conseguir que Jira sume dos números
Para demostrar que realmente todo esto funciona, creó una prueba en una cuenta real de Jira Cloud. Consistía en programar el sistema para que sumase dos números. El objetivo era hacer la operación de sumar 2 + 3.
Para empezar, creó una tarea principal en el estado de salida (Backlog) y le enlazó dos tareas de tipo Bug, que representaban el número 2, y tres tareas de tipo Task, que eran el número 3. A partir de ahí, creó un par de reglas de automatización muy simples que se activaban entre sí.
La primera regla decía: "Si la tarea principal pasa al estado TODO, mira si queda algún Bug. Si queda al menos uno, bórralo y pasa la tarea a DEV. Si no queda ninguno, termina el programa". La segunda regla decía: "Si la tarea pasa al estado DEV, crea una nueva tarea de tipo Task y vuelve a mandar la tarea principal a TODO". Al activar todo este proceso cambiando manualmente el estado de la tarea a TODO, el sistema empezó a funcionar por sí solo.
Como resultado, y tras cinco transiciones automáticas que quedaron registradas en el historial de Atlassian, la máquina se detuvo por completo. El contador de Bugs se quedó a cero y el contador de Tasks terminó con exactamente cinco elementos (recordemos que tenía que sumar 3 + 2).
Pero esto no es todo y quiso ir más allá. El desarrollador decidió llevar el sistema al límite y programó la sucesión de Fibonacci (una serie de números donde cada uno es la suma de los dos anteriores: 1, 1, 2, 3, 5, 8, 13...).
Para ello, usó una función de Jira que permite cambiar el tipo de una tarea al momento (por ejemplo, transformar un Bug en una Historia). Al encadenar tres estados de flujo de trabajo (TODO, QA y DEV), el sistema empezó a calcular la secuencia numérica de forma infinita.

Carolina González
Redactora
Carolina González, redactora de actualidad, reportajes a fondo, análisis de todo tipo de productos y vídeos para el canal de Youtube.

