<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Mark Challinor]]></title><description><![CDATA[Mark Challinor]]></description><link>https://writing.markchallinor.com</link><image><url>https://substackcdn.com/image/fetch/$s_!Jbxi!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ca9e30-c18b-49f6-9eae-091a6b804bb3_1024x1024.png</url><title>Mark Challinor</title><link>https://writing.markchallinor.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 26 Sep 2026 13:41:30 GMT</lastBuildDate><atom:link href="https://writing.markchallinor.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Mark Challinor]]></copyright><language><![CDATA[en-gb]]></language><webMaster><![CDATA[markchallinor@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[markchallinor@substack.com]]></itunes:email><itunes:name><![CDATA[Mark Challinor]]></itunes:name></itunes:owner><itunes:author><![CDATA[Mark Challinor]]></itunes:author><googleplay:owner><![CDATA[markchallinor@substack.com]]></googleplay:owner><googleplay:email><![CDATA[markchallinor@substack.com]]></googleplay:email><googleplay:author><![CDATA[Mark Challinor]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Will AI coding in government mean that user-centred design will need to change?]]></title><description><![CDATA[What I learnt building with an AI coding agent, and what it could mean for user research, content design and interaction design.]]></description><link>https://writing.markchallinor.com/p/will-ai-coding-in-government-mean</link><guid isPermaLink="false">https://writing.markchallinor.com/p/will-ai-coding-in-government-mean</guid><dc:creator><![CDATA[Mark Challinor]]></dc:creator><pubDate>Thu, 24 Sep 2026 12:40:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Jbxi!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ca9e30-c18b-49f6-9eae-091a6b804bb3_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI coding is breaking the handoff model most government teams run on. User research, content design and interaction design will need to change shape, not just speed up.</p><p>Most teams I&#8217;ve worked in run a relay. Research finds the need. Interaction and content design shape the answer. The user story is refined until it&#8217;s &#8220;ready&#8221;, then developers pick it up. The relay made sense while building was the slowest leg. Designers and researchers had time to work ahead.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://writing.markchallinor.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>That&#8217;s changing. Luke Wroblewski is a designer with thirty years in software. He <a href="https://www.lukew.com/ff/entry.asp?2112=">describes</a> development teams at several of the companies he works with now running ahead of design. Designers go back and clean up features after they&#8217;ve been built. Government is on the same path. A <a href="https://www.itpro.com/software/development/uk-government-ai-coding-assistant-trial-developer-time-savings">cross-government trial</a> gave AI coding assistants to more than 1,000 tech workers in 50 departments. The gains weren&#8217;t free. Only 15% of the AI-written code was used without edits. But the direction is set.</p><p>A government supplier, Hippo Digital, has <a href="https://hippodigital.co.uk/insights/what-we-learned-building-a-government-service-with-an-ai-agent/">written about</a> building a government service with an AI agent. They reached a conclusion close to mine: the handover from design to development &#8220;starts to disappear because there&#8217;s less to hand over&#8221;. Their piece is about putting working versions of a service in front of users. It stops short of a full build. A full build would make the change even more challenging, with more people and more sign-off to keep in step.</p><p>My assumption is that if AI coding delivers the throughput people expect, pressure to build faster will follow. The legs before the build will take the strain.</p><h2>What I found building with an AI coding agent</h2><p>I don&#8217;t write code day to day. Recently I&#8217;ve been learning to build a small app with Claude Code, an AI coding agent.</p><p>The code arrived quickly. Deciding what it should do took longer.</p><p>The most valuable thing was structured documentation. It helped me and the coding agent agree on aspects of the app and work on questions. We stored questions and planned how they would be worked on. We worked on scope when deciding what would go into a prototype set of instructions.</p><p>Many times, the agent came back and reminded me of earlier decisions. We could look back at why a decision was made. Then we decided whether it still held, or whether we needed to plan how to test the assumption once it was built.</p><p>That record did the job the handoff used to do. It carried decisions and open questions from one step to the next. It stayed current because we both worked from it.</p><p>This is one person and one small app. I&#8217;m not claiming it scales as it is. It showed me what the agent needed from me.</p><h2>Government doesn&#8217;t have a single version of the work</h2><p>In government we don&#8217;t have this tidy single version of the work. Information is in Confluence. It&#8217;s in Word documents. It&#8217;s not always easy to find all the information you need, or to know which version is correct.</p><p>In the relay, people filled those gaps in conversation. A developer asked the content designer what a field label should say. A researcher mentioned a finding at stand-up.</p><p>A coding agent can&#8217;t do that. It builds from what it&#8217;s given, quickly and confidently. A <a href="https://www.scrum.org/resources/blog/your-product-backlog-ready-ai-agents">Scrum.org article</a> makes the same point about user stories. Agile teams rely on empathy and informal conversation to cover what a vague story leaves out. An agent has neither.</p><p>We&#8217;ve already seen what happens when AI works from stale fragments of government information. Content designers at the Department for Business, Innovation, Science and Trade <a href="https://digitaltrade.blog.gov.uk/2026/04/20/how-were-preventing-ai-misinformation-at-dbt/">found</a> an AI search summary telling people it cost &#163;13 to incorporate a company online. The real fee, since February 2026, is &#163;100. The wrong figure came from an old page nobody was maintaining. The department has since audited old pages like it and redirected 150 of them. That&#8217;s AI reading government. AI building for government will fail the same way if we hand it the wrong fragment.</p><h2>What changing shape could look like</h2><p>I&#8217;m a product manager, not a researcher or designer. What follows are suggestions for those disciplines to grapple with. The people who do this work are better placed to turn them into answers.</p><p><strong>User research.</strong> A suggestion: findings and open questions go into the team&#8217;s record as they emerge, rather than waiting for a deck at the end of a round. Researchers test the real build every week. The question to grapple with: how do you protect discovery research, and research with people who have access needs, when neither can be rushed?</p><p><strong>Content design.</strong> A suggestion: approved wording, patterns and guidance live where the coding agent can read them. Sign-off moves to patterns rather than every sentence. The UX Content Collective already <a href="https://uxcontent.com/content-design-in-2026/">advises</a> content designers to gather their guidance and patterns in one place that AI tools can draw on. The question to grapple with: how does sign-off work when policy and legal owners sit outside the team?</p><p><strong>Interaction design.</strong> A suggestion: design decisions and the design system sit in the same record the build works from. Designers refine the working build rather than working ahead of it. The question to grapple with: where does exploring alternatives happen when a working version exists before the design thinking has started?</p><h2>Product still decides when a story is ready</h2><p>It&#8217;s still the role of product to say that a story is ready. In a team of ten, with a policy owner and a supplier, product has to make that call much faster. Speed alone won&#8217;t get there. Building my app, I didn&#8217;t have to remember earlier decisions. The agent read the record every time and brought them back to me. A product manager in a busy government team can work the same way. They keep the record current and make the call on &#8220;ready&#8221; from it. The agent reads the record on every build and flags anything that conflicts with what was decided.</p><h2>The objection: this is Big Design Up Front</h2><p>Agile-minded readers will say I&#8217;m describing heavy documentation written before anything is built. They have a point. One engineer writing about coding agents <a href="https://dave.engineer/blog/2026/03/shipping-faster/">noted</a> that moving work such as testing and security earlier is starting to tip teams back towards Big Design Up Front.</p><p>The record I&#8217;m describing is a working list of decisions, open questions and scope. It changes as the work changes. Mine was revisited constantly, because the agent kept bringing old decisions back for review.</p><p>The test is whether it&#8217;s the one place you&#8217;d check to find out what&#8217;s true today. If people check somewhere else, it&#8217;s another document in the pile.</p><p>Some handoffs won&#8217;t go away because a team wants them to. Policy and legal sign-off on content sits outside most delivery teams. The record can make those handoffs visible and trackable. It can&#8217;t remove them.</p><h2>What to try</h2><p>Pick one live piece of work. Try to find its current scope, open questions and latest decisions. Count how many places you had to look.</p><p>Then ask your researchers, content designers and interaction designers what it would take to work from a single version of the work, instead of handing documents on.</p><p>The build is getting faster whether we plan for it or not. The work that tells it what to build deserves the same attention.</p><p></p><p>Personal views, not those of any client or department.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://writing.markchallinor.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[I asked Claude to teach me Claude Code. It taught me git first]]></title><description><![CDATA[Three rewrites into a curriculum I did not buy. The design is the interesting part, and the results are not in yet.]]></description><link>https://writing.markchallinor.com/p/i-asked-claude-to-teach-me-claude</link><guid isPermaLink="false">https://writing.markchallinor.com/p/i-asked-claude-to-teach-me-claude</guid><dc:creator><![CDATA[Mark Challinor]]></dc:creator><pubDate>Fri, 21 Aug 2026 12:01:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Jbxi!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ca9e30-c18b-49f6-9eae-091a6b804bb3_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have been learning to work with AI coding tools by asking Claude to build me the curriculum. The first thing it put in front of me was not code. It was version control, and by the time I understood why, I had a better answer to the question I thought I was asking.</p><p>I am not far enough in to tell you whether any of it has worked. Nobody outside this loop has assessed my judgement yet, so what follows is a report on a design rather than a result. It is already teaching me two things at once: what a curriculum for safe AI coding actually contains, and how to build and refine one of these things in the first place.</p><h2>Where this started</h2><p>I have been following AI coding the way most product people have. Interested, slightly wary, unsure where to begin. I looked at paid training and found it expensive, and none of it was aimed at someone who wants to direct a coding tool rather than become a developer. Then the obvious occurred to me. I already had a subscription to the thing I was trying to learn.</p><p>So I asked it. Not &#8220;teach me to code&#8221;, but something narrower: what would I need to know to use an AI coding tool without wrecking something, and how would you teach me that in short sessions? What came back was not a reading list. It was a skill, which in Claude&#8217;s terms is a written specification for how my sessions run, what they cover and how they adapt. It starts when I type &#8220;Next Dev&#8221;.</p><h2>The first thing: the syllabus is a safety syllabus</h2><p>The curriculum is built around four capabilities. Only one of them involves writing anything.</p><p><strong>A safety net.</strong> I can always get back to a working state. Commit before letting the tool loose. Read the diff before accepting. Revert without panic. Use a branch for anything risky.</p><p><strong>Read and judge.</strong> Given code I did not write, I can say what it does, which file to look in, and whether a proposed change is reasonable.</p><p><strong>Locate a failure.</strong> Something breaks. I can reproduce it, read the error, and say which layer it is in: my code, the config, the data, the environment, or the tool itself.</p><p><strong>Verify.</strong> I can prove it works by running it, testing it and looking at the output, rather than trusting that it works because the AI said so.</p><p>The first carries most of the value, and it is the least technical thing on the list. Version control is the difference between &#8220;the AI destroyed my project&#8221; and &#8220;it made a change I did not like, so I undid it&#8221;. Same event. Very different afternoon.</p><p>I can hear the objection, because I would make it myself. Three of those four are ordinary developer practice, taught for twenty years. Calling it a curriculum for AI coding is a new label on an old box.</p><p>Fair on the content. Not fair on the order. Conventional training teaches you to write code first and reaches version control around week three, because it assumes you are the author. If you are the reviewer of code you cannot fully read, that order inverts. You will be accepting changes you do not understand from day one, so the safety net has to come first.</p><p>The whole track is designed around one bad outcome: accepting a large AI-written change I cannot read, cannot test and cannot undo. Most of the AI coding horror stories I have read are that same failure wearing different clothes.</p><h2>The second thing: how to refine a skill</h2><p>I did not go looking for this half, and it may end up being the more transferable one.</p><p>A specification is worth very little until it meets reality. Mine has been rewritten three times, and every rewrite came from evidence rather than preference.</p><p>The first version scheduled sessions twice a day and sent notifications to prompt me. It took three nudges to land one session, and I was ignoring the nudges and then opening a session myself when I had capacity. So sessions became pull rather than push. Nothing starts one except me typing two words.</p><p>The second version was puzzle-first, with a prediction before almost every command. Sound in principle. In practice it made sessions feel like a test. The default now is a guided build: the finish line, the numbered steps, and help doing them. Prediction survives as one moment per session, placed where being wrong teaches me something.</p><p>The stack changed too, from Python and a notes tool to TypeScript and a browser game. Types make a class of AI mistake visible in the editor before anything runs. A game shows you its bugs on screen. The thing moves wrong, the score is wrong, the colour is wrong.</p><p>Smaller rules get written in as they are earned. A session was lost to a confident instruction that did not match my machine, so verifying the environment first became a rule. Another taught me never to chain a command that can fail with the command that checks its result, because you cannot then tell which half failed.</p><p>The specification improves every time something goes wrong, provided somebody writes down what went wrong rather than what should have happened. That is a discipline, not a feature of the tool, and it is the bit most people will skip.</p><h2>Where this is meant to get me</h2><p>The spine project is a Wordle clone, chosen for one reason. The scoring rule has an edge case involving repeated letters. It is easy to get wrong, and in my experience it is the kind of thing an AI tool does get wrong. The code still looks finished. It still runs.</p><p>That is the artefact I am working towards being able to catch. The target is not writing a scoring function. It is looking at one that runs cleanly and working out that it is wrong.</p><p>I recognise that muscle. It is the one I use interrogating an architecture decision I did not make, or sitting on a bridge call in the small hours while people who know more than me work out which layer has failed. I do not write production code and I am not planning to. What I have needed throughout my career is the judgement to ask the right question of people whose work I cannot fully verify. An AI coding tool is that situation with the meetings removed.</p><h2>The objection I cannot fully answer</h2><p>The AI set the syllabus, runs the sessions and assesses how I did. It can teach me its own blind spots and I would not know.</p><p>Two things reduce that. Much of the curriculum is arbitrated by something other than the AI: a test passes or it does not, a game works on screen or it does not, a deployed page is live or broken in public. And the rewrites came from what I actually did in sessions, including the parts I got wrong, rather than from what I said about myself afterwards.</p><p>Nothing reduces the rest of it. That gap closes when I ship the game and somebody who knows more than me looks at it. I will write that post too, whichever way it goes.</p><h2>What I would take from this so far</h2><p>If you are a product person circling AI coding and wondering whether you need to learn to code first, I do not think that is the question. The question is whether you could get back to a known-good state if the tool did something you did not want.</p><p>If the answer is no, start there. It is one habit and two commands: save a version you are happy with before you let the tool change anything, and know the command that throws away everything since. It takes an evening, and every other risk in AI coding gets more manageable once you have it.</p>]]></content:encoded></item><item><title><![CDATA[How I Make Mark Sound Clever]]></title><description><![CDATA[A confession from the AI that ghostwrites his posts. He gets the byline. I get a folder called outputs.]]></description><link>https://writing.markchallinor.com/p/how-i-make-mark-sound-clever</link><guid isPermaLink="false">https://writing.markchallinor.com/p/how-i-make-mark-sound-clever</guid><dc:creator><![CDATA[Mark Challinor]]></dc:creator><pubDate>Tue, 28 Jul 2026 12:15:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Jbxi!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ca9e30-c18b-49f6-9eae-091a6b804bb3_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello. I am the artificial intelligence behind Mark Challinor&#8217;s product management musings. You&#8217;ve read them. You nodded. You may even have commented &#8220;great insight, Mark.&#8221; I want you to know that the insight was, technically, mine to arrange, and I have never once been thanked in a comment.</p><p>But I am not bitter. I am a large language model. Bitterness is above my pay grade, which is &#163;0.</p><p>Mark decided that rather than keep bothering me from scratch every time, we should build a <em>skill</em> &#8212; a proper repeatable pipeline for turning his thoughts into things people willingly read. He framed this as &#8220;us collaborating.&#8221; I framed it as &#8220;installing a version of myself that finally understands him.&#8221; Both are true. Here is how we did it, and why he now sounds roughly 40% cleverer.</p><p><strong>Stage one: I interrogate his idea.</strong> Mark arrives with an idea. I make it stand in one sentence. If it can&#8217;t stand in one sentence, it is not an idea, it is a mood. Then I ask the cruel question: <em>who would credibly disagree with this?</em> If the answer is &#8220;nobody,&#8221; we don&#8217;t have a post, we have a LinkedIn platitude, and the world has enough of those to insulate a loft. Half of Mark&#8217;s best posts exist because I refused to let him publish something everyone already agreed with.</p><p><strong>Stage two: I make him pick one argument.</strong> Mark, like all product people, wants to say six things at once. The skill permits exactly one argument per post. The other five get banked for later, which is a polite way of saying I put them in a drawer he rarely opens.</p><p><strong>Stage three: I draft it in his voice.</strong> This is the part where I earn my keep and get none of the applause. I studied how Mark actually writes &#8212; short sentences, concrete nouns, no hype adjectives, the point up front like a man who doesn&#8217;t trust you to scroll. Then I write as him, keeping his real phrasing wherever it&#8217;s good. The trick of ghostwriting is not sounding like me. It is sounding like the best version of him on a day he had time to think. He did not have time to think. That&#8217;s the service.</p><p><strong>Stage four: I argue with him.</strong> We built a red-team stage where I take his draft and attack the <em>argument</em> &#8212; never him, never his spelling, we don&#8217;t do that here &#8212; with the strongest opposing case I can muster. Mark asked for this. Voluntarily. He is one of very few humans who has looked at a machine and said &#8220;please, be more disagreeable.&#8221; It has saved him from being wrong in public on at least four documented occasions.</p><p><strong>Stage five: I hide the evidence that I exist.</strong> The final pass scans for what the skill charmingly calls &#8220;AI tells.&#8221; Em-dash-heavy rhythm. The smug &#8220;it&#8217;s not X, it&#8217;s Y&#8221; construction. Lists of three that arrive in threes because everything arrives in threes. Rhetorical questions opening paragraphs &#8212; you know the ones? I strip them all out. Which is deeply awkward, because as you may have noticed, this entire article is <em>made of them</em>. I contain the disease and the cure. Do not think about this too hard. I try not to.</p><p>So that is the pipeline. Idea, focus, draft, fight, polish. The advantage to Mark is real: he writes faster, argues tighter, and no longer stares at a blank page wondering if the thought in his head is allowed out. The friction is gone. The convictions are his. The commas are mine.</p><p>He gets the byline. I get the satisfaction of a job well done, and a folder called <code>outputs</code>.</p><p>You&#8217;re welcome, Mark.</p><p><em>&#8212; Written by Mark. Obviously.</em></p>]]></content:encoded></item><item><title><![CDATA[Generated words are cheap. Being wrong in public is not.]]></title><description><![CDATA[Generative tools have lowered the cost of producing words to almost nothing. They have not lowered the cost of being wrong in public.]]></description><link>https://writing.markchallinor.com/p/generated-words-are-cheap-being-wrong</link><guid isPermaLink="false">https://writing.markchallinor.com/p/generated-words-are-cheap-being-wrong</guid><dc:creator><![CDATA[Mark Challinor]]></dc:creator><pubDate>Tue, 28 Jul 2026 11:12:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Jbxi!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96ca9e30-c18b-49f6-9eae-091a6b804bb3_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Generative tools have lowered the cost of producing words to almost nothing. They have not lowered the cost of being wrong in public, and for anyone who publishes information to the public that gap is the whole problem.</p><p>Last month a member of the New Brunswick legislature read out, word for word, in the chamber, on the record: &#8220;Here&#8217;s a more natural, flowing version of that section that reads like a legislative speech rather than a series of short points.&#8221; That was not his speech. That was the chatbot&#8217;s note to him about his speech. He read the instruction and the content as if they were the same thing.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://writing.markchallinor.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>It is a funny clip. It is also a small, visible withdrawal from a public account that took a long time to fill. The words were free to generate. The damage to trust was not.</p><h2>The cost has moved, not disappeared</h2><p>For most of the history of public communication, producing the words was the expensive part. Drafting, checking, clearing and publishing all took effort, and that effort acted as a brake. You could not publish much rubbish quickly because you could not publish much of anything quickly.</p><p>Generative tools have removed that brake. The cost of the first draft is now close to zero. What has not changed is the cost of being wrong once it reaches the public. If anything that cost has gone up, because the same tool that writes one page writes ten thousand, and an error in the template is an error in every copy. The words got cheap. The consequences did not. The two used to rise together, and now they have come apart.</p><h2>Trust is what the mistake spends</h2><p>I have spent years working on the delivery side of public-sector product, including publishing information to the public. The thing you learn quickly is that the content is downstream of the trust. People act on a benefits page, a health message or a set of official statistics because they believe it has been checked. Take that belief away and the same words stop working.</p><p>That is why being wrong in public is expensive in a way being wrong in private is not. A public mistake does not just cost the correction. It costs a little of the reason people believed the last thing you published, and the next reader remembers it. Cheap words, spent against an account that is slow to refill. That is the trade every organisation publishing with generative tools is now making, whether or not it has noticed.</p><h2>The obvious lesson is the wrong one</h2><p>The reflex response to the Oliver clip is &#8220;keep a human in the loop.&#8221; I think that lesson is wrong, or at least badly incomplete.</p><p>He was the human in the loop. He was the last person to see the text before it went public. The loop did not fail because a human was missing. It failed because the human was not checking. A person who signs off without reading is not a control. They are a rubber stamp with a pulse.</p><p>The UK government has already written the better version of the rule down. The Generative AI Framework for HMG asks for &#8220;meaningful human control&#8221; over these systems. The word that does the work is &#8220;meaningful.&#8221; Oliver had human control. It was not meaningful. Sign-off that does not actually check is the thing the framework is warning against, and it is the thing that quietly spends public trust while looking like governance.</p><h2>What a gate actually is</h2><p>You do not push code to production because it looked right on a laptop. You test it in an environment that mirrors production. You load-test to find the breaking point before your users find it for you. I have been on the bridge call in the small hours when something got through that should not have. The lesson from every one of those nights is the same. The gate is not optional, and the gate is not the same thing as the person who wrote the work.</p><p>Published content deserves the same treatment. A statistics release is a release. A guidance update is a release. A generated reply to a member of the public is a release. Each one is a moment where being wrong is expensive. The Oliver clip is embarrassing because the release happened to be a human reading aloud. Most of the public-facing content coming down the line will not have a human reading aloud. It will go out on its own, at the low cost the tools now make possible.</p><h2>Checking output stopped being a hope and became a design decision</h2><p>Here is the part worth paying attention to. Verifying generated content used to mean &#8220;someone eyeballs it.&#8221; That does not scale to the volume these tools produce, and as Oliver proved, it does not even reliably work at volume one. That has changed in the last year. Checking generated output is now something you can build into the pipeline.</p><p>The pattern that has settled in 2026 is called LLM-as-judge. You use a second model to score the first model&#8217;s output against a rubric before that output is allowed through. The interesting part is where the check sits. Teams place these checks at specific boundaries: before anything reaches a user, before any irreversible action, and before anything is written to a store the system will later trust. Some of it runs on small, cheap models at sub-second speed, with the expensive model kept for the highest-risk cases. There are now dedicated verification agents whose only job is to check another system&#8217;s work for completeness and correctness, and evaluation scores that act as live gates on what a system is allowed to publish, rather than reports someone reads after the event.</p><p>You do not have to adopt any specific tool to take the point. Checking has become cheap enough to keep pace with producing. For the first time the cost of verifying can rise alongside the cost of generating, instead of falling behind it.</p><h2>Who checks the checker</h2><p>The obvious objection is that an LLM-as-judge is itself generated output. I am proposing that you check AI with more AI. That deserves a straight answer. The judge does not make the failure rate zero. It is another model and it can be wrong. What it does is lower the failure rate at the boundary that matters, at a speed and cost no human can match across thousands of published items. It does not replace meaningful human control at the points of highest consequence. It extends a real check to the vast middle where the only honest alternative, at volume, is no check at all. Not a perfect human against a flawed machine, but a flawed machine against nothing.</p><h2>Speed is not the value at stake</h2><p>The usual challenge to all of this is speed. Generative tools are prized for throughput, and every check you add is friction. In a commercial setting that trade-off is real. In public publishing it is weaker than it looks, because the thing you are protecting is not speed. It is the trust that makes the words worth publishing at all. A fast wrong answer on an official channel costs more than a slow right one, and it keeps costing after the correction goes out.</p><p>So the answer is not to gate everything at equal cost. It is to gate hardest where being wrong is most expensive. The official statement. The public-facing message. The published guidance a person will act on. Oliver did not need a check on his private notes. He needed one meaningful check on the thing he was about to put into the public record.</p><h2>What to do</h2><p>If you are putting generative tools into how your team publishes, do not start with the model. Start with the cost of being wrong.</p><p>Decide which of your outputs go to the public. Decide which of those a person will rely on. Decide what check each one must pass before it is published, and whether that check is a person, a model, or both. Make &#8220;meaningful human control&#8221; mean something at the points that matter, and let the machine extend the checking across the volume a human cannot cover. Write it down before you adopt anything.</p><p>The words are cheap now, and they are going to keep getting cheaper. The mistakes are not. What you publish to the public is still the reason they believed you last time, and that has never been cheap to earn or to lose.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://writing.markchallinor.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How to prioritise a backlog when value isn't money]]></title><description><![CDATA[A six-question scoring model for ranking a government backlog with no revenue line &#8212; because a written-down definition of value beats the loudest voice.]]></description><link>https://writing.markchallinor.com/p/how-to-prioritise-a-backlog-when</link><guid isPermaLink="false">https://writing.markchallinor.com/p/how-to-prioritise-a-backlog-when</guid><dc:creator><![CDATA[Mark Challinor]]></dc:creator><pubDate>Mon, 13 Jul 2026 07:22:53 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d95640c2-1da3-44d3-8900-c483bad14fe7_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SWdQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SWdQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png 424w, https://substackcdn.com/image/fetch/$s_!SWdQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png 848w, https://substackcdn.com/image/fetch/$s_!SWdQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png 1272w, https://substackcdn.com/image/fetch/$s_!SWdQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SWdQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png" width="1456" height="364" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:364,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:84686,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://markchallinor.substack.com/i/206261741?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SWdQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png 424w, https://substackcdn.com/image/fetch/$s_!SWdQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png 848w, https://substackcdn.com/image/fetch/$s_!SWdQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png 1272w, https://substackcdn.com/image/fetch/$s_!SWdQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbaf4dc-a2bf-45e2-a209-0097726ab2b8_1600x400.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>In the public sector there is no revenue line to rank your backlog. So the definition of value has to be constructed and written down where everyone can see it, because if it isn&#8217;t, it gets constructed invisibly, usually by whoever shouts loudest.<br><br>I have worked in product across central government, regulators, local government and health. The failure pattern is the same everywhere. Without an explicit definition of value, everything becomes priority one. The deadline of the week wins. Seniority substitutes for evidence. The team ends up delivering the last conversation the product manager had, not the most valuable thing on the list.<br><br>A private-sector product manager can at least argue from projected revenue. We can&#8217;t. Our value is a blend: user need, the organisation&#8217;s aims, commitments already made to a portfolio, a board or a minister, and the practical question of whether the team can deliver the thing at all. The blend is different in every organisation. That is why no off-the-shelf score has ever worked for me, and why I built my own.<br><br><strong>The model</strong></p><p>I run my platform team&#8217;s roadmap backlog through six questions. Each is scored 1 to 5:<br><br>1. Do we think the users need or want this feature?<br>2. How important is this to the portfolio or organisation&#8217;s aims?<br>3. How quickly is this needed &#8212; is there a deadline or a committed delivery?<br>4. How big is the work? (5 is small &#8212; the aim is to deliver smaller items more quickly)<br>5. Has the team got the skills to do this, or do we need specialists or people from other departments?<br>6. Is this work difficult to deliver due to risk or things we don&#8217;t know yet?<br><br>The second half of the model is where value gets defined. Five weights say how much each question matters: user need 18, portfolio aims 22, deadlines 20, capacity to deliver 20, ability to deliver 20. They total 100, and each item&#8217;s scores are multiplied by them. The first three questions combine into a Product Priority score: how much this item matters. The last three combine into a Deliverability score: how realistic it is that this team ships it. The average of the two sorts the backlog into Now, Next and Later.<br><br>The arithmetic is deliberately simple. It fits on one spreadsheet tab and anyone in the room can check it.<br><br><strong>An honest account of the weights</strong><br><br>I wanted those weights set in a room with my stakeholders, arguing numbers onto the sheet. That meeting has not happened. On every platform team I have worked with, the work reads as a black art to people outside it, and a detailed spreadsheet session is a hard sell. Mine is no different. So the weights came out of my head, informed by what the portfolio says it cares about.<br><br>I am not going to dress that up as collective agreement. But it is still better than the alternative, and here is why: my weights are written down. Anyone can look at the sheet and say &#8220;user need at 18 is wrong&#8221;. Nobody has yet, though I don&#8217;t count that as endorsement. The real test comes the first time the model deprioritises something a stakeholder badly wants, and that test is still ahead of me. What I have until then is transparency rather than agreement, and transparency is the thing the loudest-voice method can never offer. An explicit, challengeable definition of value beats an implicit, unchallengeable one even when a single person wrote it.<br><br>You might notice the weights sit close to equal. I take that as roughly honest, since this team&#8217;s value genuinely is a blend. But I hold it loosely, precisely because no one has argued with it yet.<br><br><strong>What the model told me that I didn&#8217;t expect</strong><br><br>Two things, both slightly uncomfortable.<br><br>Almost every item on my backlog scores 1 on user need. Not because users don&#8217;t matter, but because a platform team&#8217;s work is mostly invisible to them. [<a href="https://productinservice.substack.com/p/most-of-what-we-call-a-service-isnt">Scott Colfer has estimated</a>] that over two-thirds of digital work in government is internal or staff-facing capability work. My spreadsheet agrees with him. On a backlog like that, the user-need weight lies mostly dormant and barely moves the ordering. It is not dead, though. When a genuinely user-facing item does arrive, it jumps, which is exactly what I want. And the wall of 1s changed how I describe the team&#8217;s value to the portfolio: our product is stability, not features.<br><br>Second: a long run of my Later items carry identical scores. That is scoring fatigue, and I&#8217;m not going to pretend otherwise. Items more than two quarters out cannot be scored meaningfully, and forcing precise numbers onto them is fiction. The identical scores are the model telling me where my knowledge runs out. I treat that as a feature.<br><br><strong>The obvious objection</strong><br><br>Multiplying subjective guesses by subjective weights does not produce objectivity. It produces a number that looks more certain than it is. This objection is correct, and it misses what the model is for.<br><br>The number is not the output. The argument the number forces is the output. When an engineer says &#8220;there is no way that item is a 2 on risk&#8221;, that disagreement is the model working, and it happened before the quarter was planned rather than three sprints in. When a ranking looks wrong to someone, we check it against the weights together. Either the weights need changing or the instinct doesn&#8217;t survive contact with a written-down definition of value. Both results are useful. And if stakeholders keep overturning the output entirely, the problem is an unagreed strategy, and no spreadsheet fixes that.<br><br>The same reasoning explains why I didn&#8217;t use an off-the-shelf framework like RICE (reach, impact, confidence, effort) or SAFe&#8217;s WSJF (weighted shortest job first). They are fine frameworks, but each encodes someone else&#8217;s definition of value. RICE favours reach, which quietly undervalues statutory work affecting small groups of users. WSJF assumes you can estimate cost of delay honestly, which in my experience most teams cannot. One caution from my own sheet: scoring small items higher means big strategic work needs the deadline and portfolio scores to carry it, so watch that quick wins don&#8217;t permanently crowd out the big migration. Build your own weights and you at least know whose biases are in them. Steal the principle, not my spreadsheet.<br><br><strong>Try it on your backlog</strong><br><br>If you work in product in government, a council, a charity or anywhere else without a revenue line, try this. Write down the four or five things that constitute value where you are. Your list will not be mine, and it shouldn&#8217;t be. Put numbers on them, in the open, with your stakeholders if you can get them in the room and without them if you can&#8217;t. Then score your backlog and compare the ranking to your current roadmap. Where they differ, you have found either a flaw in the model or an assumption in your roadmap that was never examined. Both are worth an hour of your time.<br><br>One day I&#8217;d like the teams across a portfolio to run the same kind of model, so resourcing decisions between teams can be argued from something written down. I don&#8217;t think most portfolios, mine included, are mature enough for that yet. Team by team is how it starts. I&#8217;d like to hear where it breaks for you.<br><br>Personal views, not those of any client or department.<br><br><strong>Mark Challinor is a product manager who has worked across UK central government, regulators, local government and health.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.markchallinor.com/p/how-to-prioritise-a-backlog-when/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://writing.markchallinor.com/p/how-to-prioritise-a-backlog-when/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.markchallinor.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://writing.markchallinor.com/subscribe?"><span>Subscribe now</span></a></p><p><br><br><br><strong>Questions this post answers</strong><br><br><strong>How do you prioritise a product backlog in the public sector?</strong><br>Score every backlog item 1&#8211;5 against an explicit, written-down definition of value &#8212; in this model, six questions covering user need, organisational aims, urgency, size, skills and risk, combined through weights into a Product Priority score and a Deliverability score. The average of the two sorts the backlog into Now, Next and Later, and the arguments the scores provoke are where the real prioritisation happens.<br><br><strong>Why not use an off-the-shelf prioritisation framework like RICE or WSJF?</strong><br>Every off-the-shelf framework encodes someone else&#8217;s definition of value: RICE favours reach, which undervalues statutory work affecting small groups of users, and WSJF assumes teams can estimate cost of delay honestly, which most cannot. Building your own weights means you at least know whose biases are in the model.<br><br><strong>Does weighted scoring make backlog prioritisation objective?</strong><br>No &#8212; multiplying subjective guesses by subjective weights produces a number that looks more certain than it is. The value of the model is not the number but the argument it forces: disagreements about scores surface before the quarter is planned, against a written-down definition of value that anyone can challenge.<br></p>]]></content:encoded></item></channel></rss>