<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Turnado — blog</title>
    <link>https://turnado.eu/blog</link>
    <atom:link href="https://turnado.eu/blog/rss.xml" rel="self" type="application/rss+xml" />
    <description>Writing about AI-native software delivery: agents on the board, what they cost, and which decisions stay with people.</description>
    <language>en-GB</language>
    <item>
      <title>Our European vision: sovereignty is a setting, not a sticker</title>
      <link>https://turnado.eu/blog/european-ai-sovereignty-in-practice</link>
      <guid isPermaLink="true">https://turnado.eu/blog/european-ai-sovereignty-in-practice</guid>
      <pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate>
      <description>Digital sovereignty has become a logo on a website. We think it is a property of a configuration: where inference runs, who can be compelled to disclose, and whether a rule refuses a call or merely disapproves of it. This is what we are building in Europe, what we can point at in code today, and the three claims we deliberately do not make — including that our own process model has its own weights.</description>
    </item>
    <item>
      <title>Bring your own coding agent: what an ops layer adds to Claude Code, Cursor and Copilot</title>
      <link>https://turnado.eu/blog/ops-layer-for-your-ai-coding-tools</link>
      <guid isPermaLink="true">https://turnado.eu/blog/ops-layer-for-your-ai-coding-tools</guid>
      <pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate>
      <description>Teams do not want a second assistant; they want the one they already pay for to produce work somebody can account for. So the ops layer is deliberately tool-agnostic: it hands out a brief and a branch name, reads back what git and CI report rather than what a model claims, takes one HTTP call from any pipeline, and books every run against the work item it was made for. Six connection points, none of which require a plugin in anyone’s editor.</description>
    </item>
    <item>
      <title>Turnado vs Claude Code, Cursor and Copilot: what changes when a second person joins</title>
      <link>https://turnado.eu/blog/turnado-vs-claude-code-cursor-copilot</link>
      <guid isPermaLink="true">https://turnado.eu/blog/turnado-vs-claude-code-cursor-copilot</guid>
      <pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate>
      <description>Claude Code, Cursor and GitHub Copilot are strong at writing code inside one session for one person. Turnado does not try to win that ground — the code work here runs on the model you choose. What it adds is what an assistant has no reason to have: a memory that outlives the session, one board two people share, and calculated conditions that separate “the model says it is done” from a tested release.</description>
    </item>
    <item>
      <title>How to write a functional design an AI can decompose</title>
      <link>https://turnado.eu/blog/writing-a-functional-design-an-ai-can-decompose</link>
      <guid isPermaLink="true">https://turnado.eu/blog/writing-a-functional-design-an-ai-can-decompose</guid>
      <pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate>
      <description>A functional design that decomposes well into user stories is not written in a special format for machines. It is written the way good analysis has always been written — numbered sections, behaviour instead of screens, exceptions included, actors named — and left with its contradictions intact so the agent can report them instead of silently resolving them.</description>
    </item>
    <item>
      <title>Jira and Azure DevOps in the agent era: what a board needs when half the team is AI</title>
      <link>https://turnado.eu/blog/jira-azure-devops-in-the-agent-era</link>
      <guid isPermaLink="true">https://turnado.eu/blog/jira-azure-devops-in-the-agent-era</guid>
      <pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate>
      <description>Jira and Azure DevOps are mature, configurable and excellent at what they were designed for: coordinating people. Put autonomous agents on the same board and four built-in assumptions start to leak — that a status change reflects reality, that fields are optional, that work costs only time, and that inaction is visible. This is what each of those needs to become instead.</description>
    </item>
    <item>
      <title>Measuring AI autonomy: five metrics that tell you whether your agents actually help</title>
      <link>https://turnado.eu/blog/measuring-ai-autonomy</link>
      <guid isPermaLink="true">https://turnado.eu/blog/measuring-ai-autonomy</guid>
      <pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate>
      <description>Most AI productivity reporting measures activity: tasks completed, code generated, suggestions accepted. None of those tell you whether delivery improved. Five metrics do — autonomy rate, waiting time on people, cost per finished story, rework rate, and time from analysis to first tested increment — and each has a specific failure it is designed to expose.</description>
    </item>
    <item>
      <title>Human in the loop: which decisions must stay with people when agents do the work</title>
      <link>https://turnado.eu/blog/human-in-the-loop-decisions</link>
      <guid isPermaLink="true">https://turnado.eu/blog/human-in-the-loop-decisions</guid>
      <pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate>
      <description>“Human in the loop” degrades into rubber-stamping unless you are specific about which decisions stay human and why. Three questions decide it: how reversible is the action, who is accountable if it is wrong, and could the agent have manufactured the evidence for it. Everything that fails those goes to a person; everything else should not, because approvals that mean nothing teach people to click.</description>
    </item>
    <item>
      <title>GEO: how to get your product cited by ChatGPT, Claude and Perplexity</title>
      <link>https://turnado.eu/blog/geo-getting-cited-by-chatgpt-and-claude</link>
      <guid isPermaLink="true">https://turnado.eu/blog/geo-getting-cited-by-chatgpt-and-claude</guid>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      <description>Assistants answer questions by lifting passages, not by ranking pages. That changes what a page has to be: a self-contained, verifiable, quotable answer under a heading that matches the question. Eight practices follow from that — including the unglamorous ones like giving every page a real URL, prerendering it, and writing the number instead of the adjective.</description>
    </item>
    <item>
      <title>What does an AI coding agent actually cost per user story?</title>
      <link>https://turnado.eu/blog/what-does-an-ai-coding-agent-cost</link>
      <guid isPermaLink="true">https://turnado.eu/blog/what-does-an-ai-coding-agent-cost</guid>
      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>
      <description>Nobody can tell you what an AI agent costs per user story, because it depends on your model choice, your story size and how often the agent has to guess. What you can do is make the number measurable: attach every run to the work item it was made for, put four ceilings in place before you need them, and read your own figure after one sprint instead of trusting anyone’s benchmark.</description>
    </item>
    <item>
      <title>EU-hosted AI for software teams: what “European” actually has to mean</title>
      <link>https://turnado.eu/blog/eu-hosted-ai-for-software-teams</link>
      <guid isPermaLink="true">https://turnado.eu/blog/eu-hosted-ai-for-software-teams</guid>
      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>
      <description>“EU-hosted” is claimed far more often than it is enforced. Six questions separate a policy sentence from a control: where does inference run, where does the data rest, who can be compelled to hand it over, what happens on fallback, can the rule be enforced at call time, and can you prove it afterwards. A configuration that refuses a non-EU model at the moment of the call is worth more than any paragraph in a privacy statement.</description>
    </item>
    <item>
      <title>The eighteen conditions an AI agent should never be able to skip</title>
      <link>https://turnado.eu/blog/gates-an-ai-agent-cannot-skip</link>
      <guid isPermaLink="true">https://turnado.eu/blog/gates-an-ai-agent-cannot-skip</guid>
      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>
      <description>Guardrails for autonomous agents are usually described as prompts and policies. Neither survives contact with an agent that reads untrusted input. The alternative is boring and effective: conditions that are pure functions of the work item’s state, evaluated outside the model, on every transition that matters — plus a set of permissions that are unreachable regardless of role.</description>
    </item>
    <item>
      <title>Vibe coding works alone and breaks in a team — here is exactly where</title>
      <link>https://turnado.eu/blog/vibe-coding-in-a-team</link>
      <guid isPermaLink="true">https://turnado.eu/blog/vibe-coding-in-a-team</guid>
      <pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate>
      <description>Vibe coding — building software by describing it to a model and steering the result — is real, fast and undersold by its critics. It breaks on three specific things: memory that ends with the session, agreements that exist in one person’s chat history, and a definition of done that is whatever the model said. Each has a concrete replacement, and none of them require giving up the conversation.</description>
    </item>
    <item>
      <title>What is AI-native DevOps? A working definition</title>
      <link>https://turnado.eu/blog/what-is-ai-native-devops</link>
      <guid isPermaLink="true">https://turnado.eu/blog/what-is-ai-native-devops</guid>
      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>
      <description>AI-native DevOps is a delivery process in which autonomous agents are first-class actors on the board — with roles, permissions, recorded runs and a cost per work item — rather than tools a developer invokes inside their editor. The practical test is simple: if removing the AI would leave your process unchanged, you are AI-assisted; if your process has statuses, conditions and budgets that only make sense because non-human actors execute work, you are AI-native.</description>
    </item>
  </channel>
</rss>
