Någon byggde en räknemaskin i Jira och bevisade att buggtrackern är Turing-komplett
- Vad Turing-komplett faktiskt betyder
- Från buggtracker 2002 till beräkningsmotor
- Så fungerar maskinen i praktiken
- Vilka Jira-funktioner som gör tricket möjligt
- Varför detta inte bara är en kuriositet
- Du kommer inte bygga din nästa app i Jira
- FAQ
- Vad betyder det att Jira är Turing-komplett?
- Vem bevisade att Jira är Turing-komplett?
- Vad är en Minsky-maskin?
- Kan jag använda Jira för att köra riktiga program?
- Vilka andra oväntade saker är Turing-kompletta?
- Påverkar det här hur jag bör hantera Jira på jobbet?
Jira kan köra vilken beräkning som helst. Det visade utvecklaren Nicolas Seriot den 22 maj 2026, genom att bygga en fungerande Minsky-maskin med inget annat än Jiras inbyggda automation. Med epics, länkade issues och automationsregler simulerade han addition, Fibonacci-tal och i princip vilket program du vill. Slutsatsen: ett verktyg som tusentals svenska företag använder för att hålla ordning på buggar är i grunden en fullvärdig dator.
Det låter som ett skämt. Det är det inte. Att Jira är Turing-komplett betyder att systemet teoretiskt kan utföra samma beräkningar som vilket programmeringsspråk som helst. Långsamt, opraktiskt och omöjligt att underhålla men matematiskt komplett.
Vad Turing-komplett faktiskt betyder
Ett system är Turing-komplett om det kan simulera en Turing-maskin, alltså utföra vilken beräkning som helst som en dator kan göra. I praktiken krävs tre saker: villkorlig logik (om X, gör Y), möjlighet att lagra och ändra data och loopar eller upprepning.
Python är Turing-komplett. JavaScript är det. Men även sådant som inte är byggt för programmering hamnar ofta där av misstag. Excel-formler, Minecrafts redstone och till och med Magic: The Gathering har visat sig vara Turing-kompletta. När ett system blir tillräckligt flexibelt med villkor och minne, dyker den här egenskapen upp nästan oavsiktligt.
Jira är det senaste tillskottet i den listan. Och det säger något om hur långt verktyget har glidit från sin ursprungliga uppgift.
Från buggtracker 2002 till beräkningsmotor
Jira lanserades 2002 som ett ganska enkelt verktyg för att spåra buggar. Skapa ett ärende, tilldela det någon, flytta det genom statusar som ”Att göra” och ”Klar”. Inget märkvärdigt.
Det som hände sedan var en gradvis utbyggnad. Atlassian la till anpassade fält, arbetsflöden med villkor och framför allt ett automationssystem som kan reagera på händelser och utföra åtgärder. Idag kan en automationsregel skapa nya ärenden, uppdatera fält och trigga andra regler i kedja.
Det var precis den utvecklingen som gjorde beviset möjligt. Varje funktion lades till för att lösa ett verkligt problem för team. Tillsammans råkade de bilda byggstenarna för en universell dator.
Så fungerar maskinen i praktiken
Seriot byggde en Minsky-maskin, en av de enklaste modellerna för universell beräkning. Marvin Minsky beskrev den 1967 och den behöver bara två saker: räknare som kan räknas upp och ner och en uppsättning instruktioner som styr flödet.
I Jira översätts det så här:
- Statusar blir maskinens tillstånd. En status som BACKLOG, TODO eller DEV motsvarar var i programmet exekveringen befinner sig.
- Länkade ärenden blir räknare. Att skapa ett ärende räknar upp (+1), att ta bort ett räknar ner (-1). Antalet länkade issues är värdet i registret.
- Automationsregler blir instruktionerna. Varje regel kollar ett villkor och bestämmer vad som ska hända härnäst, inklusive att trigga nästa regel.
Det konkreta exemplet var addition. Två register, A med värdet 2 (representerat av Bug-ärenden) och B med värdet 3 (Task-ärenden). Efter att maskinen kört klart stod A på 0 och B på 5. Två plus tre blev fem, uträknat helt i en projektledningsplattform.
Seriot demonstrerade även Fibonacci-talen med tre tillstånd (TODO, QA, DEV) och tre register (Bug, Task, Story). Det är samma princip, bara med mer logik. Vill du se ett liknande mönster av oväntad komplexitet i ett litet system finns det paralleller i en kodningsagent byggd på 400 rader shell.
Vilka Jira-funktioner som gör tricket möjligt
Fyra komponenter är det som tillsammans gör Jira beräkningsmässigt komplett. Tar du bort någon av dem faller hela konstruktionen.
| Komponent | Roll i beräkningen |
|---|---|
| Conditions (JQL-villkor) | Villkorlig logik, alltså IF/ELSE |
| Custom fields och status | Persistent minne som överlever mellan steg |
| Automationer som triggar automationer | Loopar och iteration |
| Länkade ärenden | Räknare som kan inkrementeras och dekrementeras |
Nyckeln är att automationer kan trigga varandra. Det skapar möjlighet till upprepning och upprepning kombinerat med villkor och minne är exakt det som krävs. Saknades den biten skulle Jira bara vara en avancerad regelmotor, inte en dator.
Varför detta inte bara är en kuriositet
Det roliga beviset pekar på något allvarligare för alla som administrerar Jira på en svensk arbetsplats. Om systemet är ett programmeringsspråk, så har många team redan skrivit program i det utan att inse det.
Komplexa automationskedjor med dussintals regler som triggar varandra är inte längre ”konfiguration”. Det är kod. Och kod borde behandlas som kod, med dokumentation, testning och någon form av granskning innan den driftsätts.
Problemet är att Jira-automationer saknar det mesta av detta. Det finns ingen versionshantering inbyggd, ingen kodgranskning, ingen enkel väg att se vad som ändrats och av vem. När en automationskedja går snett kan det vara genuint svårt att felsöka var i flödet det brast. Det här är samma utmaning som drabbar komplexa kodbaser och beroenden, fast utan verktygen som utvecklare normalt har.
Insikten är alltså praktisk: ju mer logik du lägger i Jira-automationer, desto mer bör du behandla dem som ett mjukvaruprojekt. Inte som inställningar du klickar dig fram till.
Du kommer inte bygga din nästa app i Jira
Att något är möjligt betyder inte att det är klokt. Jira som dator är hopplöst opraktiskt av flera skäl.
Atlassian sätter tak för hur många gånger automationer får trigga varandra i en kedja, så kallade chain caps. Det finns timeouts för exekveringstid. Och ett program som hade tagit en millisekund i Python kan i Jira ta sekunder eller minuter, om det ens kör klart innan gränserna sätter stopp.
Så nej, ingen kommer ersätta sina riktiga system med Jira-automation. Beviset är intellektuellt elegant, inte ett produktionsverktyg. Vill du leka med universell beräkning på riktigt finns det betydligt smidigare vägar, som att skriva några rader JavaScript i webbläsaren. Hur AI förändrar just det arbetet beskrivs i hur AI gör kodning billigare och förändrar utvecklarnas arbetsuppgifter.
Men som tankeställare är det skarpt. Det påminner om hur verktyg vi tar för givna ofta är kraftfullare och rörigare än vi tror.
FAQ
Vad betyder det att Jira är Turing-komplett?
Det betyder att Jira teoretiskt kan utföra vilken beräkning som helst som en vanlig dator kan, genom att kombinera villkorlig logik, minne och loopar. I praktiken är det extremt långsamt och opraktiskt men matematiskt är systemet lika kapabelt som ett programmeringsspråk.
Vem bevisade att Jira är Turing-komplett?
Utvecklaren Nicolas Seriot publicerade beviset den 22 maj 2026. Han byggde en fungerande Minsky-maskin i Jiras automationssystem och demonstrerade addition och Fibonacci-tal med hjälp av epics, länkade ärenden och automationsregler.
Vad är en Minsky-maskin?
En Minsky-maskin är en av de enklaste modellerna för universell beräkning, beskriven av Marvin Minsky 1967. Den behöver bara två obegränsade räknare och en uppsättning märkta instruktioner för att kunna simulera vilken beräkning som helst.
Kan jag använda Jira för att köra riktiga program?
Nej, det är inte praktiskt. Atlassian sätter gränser för hur många gånger automationer får trigga varandra, det finns timeouts och exekveringen är väldigt långsam. Beviset är intressant teoretiskt men oanvändbart för verkligt bruk.
Vilka andra oväntade saker är Turing-kompletta?
Flera system som inte alls byggts för programmering har visat sig vara Turing-kompletta, däribland Excel-formler, kortspelet Magic: The Gathering och redstone-mekaniken i Minecraft. Det händer ofta när ett system får tillräckligt med villkorslogik och minne.
Påverkar det här hur jag bör hantera Jira på jobbet?
Ja, indirekt. Om dina automationskedjor blivit komplexa bör du behandla dem som kod, med dokumentation och granskning, inte som enkla inställningar. Jira saknar inbyggd versionshantering, vilket gör avancerade flöden svåra att felsöka när något går fel.
Källor
- Turing-kompletta esolangs.org
- automationsregel support.atlassian.com
