<?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[Game Production Alchemist]]></title><description><![CDATA[Prepare to encounter unconventional perspectives on game production, LiveOps, leadership and transmutation.]]></description><link>https://www.productionalchemist.com</link><image><url>https://substackcdn.com/image/fetch/$s_!0_I_!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c8fe75-257b-4ce8-a63c-db3bd0401a49_256x256.png</url><title>Game Production Alchemist</title><link>https://www.productionalchemist.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 20 Jul 2026 17:33:08 GMT</lastBuildDate><atom:link href="https://www.productionalchemist.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Rob Sandberg]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[gameproductionalchemist@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[gameproductionalchemist@substack.com]]></itunes:email><itunes:name><![CDATA[Rob Sandberg]]></itunes:name></itunes:owner><itunes:author><![CDATA[Rob Sandberg]]></itunes:author><googleplay:owner><![CDATA[gameproductionalchemist@substack.com]]></googleplay:owner><googleplay:email><![CDATA[gameproductionalchemist@substack.com]]></googleplay:email><googleplay:author><![CDATA[Rob Sandberg]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Reading Bruno Baketarić Fixed the One Kanban Problem I Never Solved in Decades]]></title><description><![CDATA[Why I stopped mapping activities and started naming states]]></description><link>https://www.productionalchemist.com/p/state-space-kanban-reframe</link><guid isPermaLink="false">https://www.productionalchemist.com/p/state-space-kanban-reframe</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 15 Jul 2026 12:11:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!36N9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ul><li><p>Value stream mapping breaks on creative work because the route is never linear</p></li><li><p>The bucket column problem that no amount of extra columns ever fixed</p></li><li><p>Bruno Baketari&#263;&#8217;s state-space reframe: name the condition, not the activity</p></li><li><p>What his idea unlocked for art co-development and client-owned flow</p></li></ul><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qb8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" width="1024" height="207" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:207,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158576,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/203088136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leanpub.com/outlast-the-tools&quot;,&quot;text&quot;:&quot;Read the first few chapters. No strings.&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://leanpub.com/outlast-the-tools"><span>Read the first few chapters. No strings.</span></a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!36N9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!36N9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!36N9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!36N9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!36N9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!36N9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2408664,&quot;alt&quot;:&quot;Flat mid-century illustration: a single card in one central bucket with many looping paths passing through it, beside a receding row of empty columns.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/207138315?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Flat mid-century illustration: a single card in one central bucket with many looping paths passing through it, beside a receding row of empty columns." title="Flat mid-century illustration: a single card in one central bucket with many looping paths passing through it, beside a receding row of empty columns." srcset="https://substackcdn.com/image/fetch/$s_!36N9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!36N9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!36N9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!36N9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b38f3b0-8cfd-425d-a21c-d39ae93290ef_1478x1064.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Here is a scene I have played out more times than I would like to count. I am at a whiteboard with a marker, mapping a creative pipeline for a team, and I am doing value stream mapping on work that will not hold a line. Concept, model, texture, rig, review. It looks clean on the wall. Then I present it, and within about four minutes somebody in the room finds the asset that skipped three of those stages, or the one that looped back into concept after texturing, or the one that was in review and development at the same time. And the fix, every single time, was the same fix. Another column. Another queue state. Another lane.</p><p>I have thirty years in game production and I kept reaching for the same tool to solve a problem the tool was built to create.</p><div class="callout-block" data-callout="true"><p>If this is useful, there's more where it came from. Multiple free posts a week on game production, applied AI, leadership and how the sausage actually gets made.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p>The board always grew. It grew to chase a process that has no fixed process. Creative work bounces around by nature: the route is discovered in the doing, and the path of the next asset cannot be read off the last one. I knew that. I would say it out loud in the very session where I was drawing a fixed left-to-right sequence on the wall and pretending it described the work. The contradiction did not register, because I had been trained, like most of us, to see a board as a picture of the steps.</p><div><hr></div><p>The frustrating part is that I was not doing anything unusual. Column sprawl is a documented anti-pattern. The advice you will find everywhere is that teams <a href="https://kanbantool.com/blog/the-kanban-minimalist">inflate their boards with columns like Analysis, Testing, Approval, and Waiting on Feedback</a> until flow goes sluggish, and that once you pass ten or so states the <a href="https://tallyfy.com/engineering-kanban-vs-table-views/">card metaphor starts to fall apart entirely</a>. I was living inside that failure mode and I thought the problem was discipline. If I just mapped harder, interviewed the team more carefully, found the true sequence, the board would settle. It never settled, because there was no true sequence to find.</p><p>I want to be fair to myself here, because I did not stand still. I spent decades attempting value stream mapping on knowledge work and getting nowhere useful with it. Then I read <a href="https://www.mheducation.com/highered/product/value-stream-mapping.html">Karen Martin and Mike Osterling&#8217;s </a><em><a href="https://www.mheducation.com/highered/product/value-stream-mapping.html">Value Stream Mapping</a></em>, the first book I found that was written for service and office work rather than the factory floor, and it was a real step forward. Later I adopted the flavour in <em><a href="https://itrevolution.com/product/flow-engineering/">Flow Engineering</a></em><a href="https://itrevolution.com/product/flow-engineering/"> by Steve Pereira and Andrew Davis</a> soon after it came out in 2024, which took the practice further still: lightweight, iterative, built for collaborative mapping conversations rather than a static diagram. Two genuine upgrades, each moving me further from the crude version, each honest that knowledge work is messier than a production line.</p><p>Here is the thing neither book could fix, because it sits one level below both of them. However modern the mapping gets, it is still mapping the flow as a route. It still lays the work out as a stream with a direction, and it never questions the one assumption underneath all of it: that the work has a shared path worth drawing. Even the friendliest advocates admit that when a process involves <a href="https://agilemania.com/steps-to-complete-value-stream-mapping">creativity, judgment calls, or heavy variability, a static map oversimplifies to the point of being misleading</a>. For creative work there is no shared path. The map was always wrong the moment I finished drawing it, and a better mapping method could not save it, because the problem was in the shape of the tool, not the quality of the map.</p><p>So the frustration had two layers. I was applying a route-shaped tool to work that has no shared route, and I was blaming myself for the tool not settling.</p><h2>The reframe I did not have a word for</h2><p>The fix came from reading, of all things, a run of essays on Medium by <a href="https://medium.com/@__bbak">Bruno Baketari&#263;</a>, who works on flow at SAP and writes about Kanban with more care than almost anyone I have read on the subject. I want to be precise about what he did to my thinking, because it was not a technique and it was not a template. It was one distinction, stated cleanly, that reorganised a problem I had been carrying around for decades.</p><p>The foundational piece is called <a href="https://medium.com/@__bbak/the-board-is-a-state-space-3432c083c41b">The Board Is a State Space</a>. The claim at its centre is this: a Kanban board models the state space of the work items, not the action space of the people working on them. A state is a condition the work item is in. An activity is something a person does. They are different kinds of thing, and putting the second one on the board is a category error that no amount of practice discipline can clean up, because the error is baked into the model.</p><blockquote><p>A state is a property of the work item. An action is something a person does. The two are not the same kind of thing, and confusing them produces exactly the dysfunctions this essay is about.</p></blockquote><p>Read that and then look again at every board I ever drew. My columns were activities. Concept is not a state, it is what a concept artist does for a living. Texturing is not a state, it is a job. I had built board after board out of the wrong unit, and then I had spent years patching the consequences.</p><div class="callout-block" data-callout="true"><p>Thirty-plus years of production work went into this. Most of it didn&#8217;t make the post. New posts every week. Free to read, free to subscribe.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p>A second essay, <a href="https://medium.com/@__bbak/the-flow-in-workflow-e59b7221d752">The Flow in Workflow</a>, takes the argument down to the word itself. Workflow is work and flow, and flow, on the tradition&#8217;s own definition, is the movement of work through a system. So a workflow is the structure through which work moves: a space of states, with the transitions between them. The activities are the labour that carries an item from one state to the next, and they matter, but they are not the workflow. That is why the same field defines flow in terms of items and then, a paragraph later, defines workflow as a series of activities, and never notices the switch. I had inherited the switch and never noticed it either.</p><h2>Why it dissolved the problem instead of solving it</h2><p>Here is the mechanism, and it is the thing I wish someone had told me in 2005.</p><p>When your columns name activities, every new way of working needs a new column. You are modelling what people do, and people keep doing new things, so the board has to keep growing to keep up. That is the treadmill. That is why the edge case in the room always cost me a column. The asset that looped, the asset that skipped a stage, the asset worked in parallel: each one was a new action pattern, and an action-based board has to represent each new pattern with new structure.</p><p>When your columns name states, varying routes share one space. An asset in a given state has told you what is true of it, and it does not matter which of fifteen different paths it took to get there. The loop, the skip, the parallel work, all of it happens inside the states, and the states do not multiply, because a condition like &#8220;in production&#8221; or &#8220;awaiting review&#8221; holds true regardless of the sequence that produced it. The edge case that used to cost me a column now just traces its own path through states that already exist.</p><blockquote><p>I was modelling the action space. That is why the board never stopped growing.</p></blockquote><p>The same reframe quietly killed a second argument I had refereed a hundred times: the backflow fight. You know the one. Development calls something done, QA finds a problem, the card goes &#8220;back&#8221; to development, and the team spends the standup arguing whose fault the backward move was. Baketari&#263;&#8217;s answer is that there is no backward move, because the item never left its state. If a finding surfaces in verification, that finding is information produced in the verification state, and the item stays in verification while somebody acts on it, even if acting on it means writing more code. State transitions go forward, or the item leaves the flow entirely. Nothing moves back, because the previous states no longer exist for that item. Once I saw that, an entire genre of team conflict I had learned to manage turned out to be an artefact of a mislabelled board.</p><h2>The essay that explained my specific pain</h2><p>There is a third piece in the run, <a href="https://medium.com/@__bbak/the-family-the-board-assumes-51f9b4ec7a8c">The Family the Board Assumes</a>, and it named the exact thing that had been happening to me for as long as I had been drawing these boards.</p><p>Value stream mapping works on a factory floor because every product in a family shares a route: press, then weld, then paint, same stations in the same order for every part. The order of activities is a faithful portrait of the work because the work is a fixed order. That shared route is a precondition, and on the factory floor it is so obviously met that nobody writes it down. When the technique crossed into knowledge work, the shape came along and the precondition got left behind. Creative work forms no families. Each asset finds its own path, so there is no shared route for the columns to portray.</p><p>That is my whiteboard, explained. I had been mapping design-flow work with route-shaped instruments for a long time, and feeling the precise pain of a missing precondition without ever being able to name it. Better mapping methods, Martin and Osterling then <em>Flow Engineering</em>, moved me along the surface of the problem without ever reaching the floor of it. The tool was not failing me. I was asking a route to describe work that has no shared route, which is a thing no mapping method can be scoped to fix.</p><h2>What the reframe unlocked</h2><p>The satisfying part is that this did not just retire an old irritation. It opened up something new in the work I do now.</p><p>I run production for a co-development studio, which means my teams make assets that flow into someone else&#8217;s pipeline, on someone else&#8217;s approval, on someone else&#8217;s timeline. Once I stopped carving boards by activity and started carving them by the condition the asset is in, a distinction fell out that I had never been able to see before: the difference between the time my team controls and the time the client controls.</p><p>On an activity board, a client&#8217;s three-week wait for a licensing sign-off is buried inside whatever column the card happened to be sitting in, and it quietly drags down every metric I report. On a state board, I can make &#8220;awaiting client review&#8221; its own state, sitting right next to the states my team owns. Now the flow data splits cleanly. Here is the time we held. Here is the time they held. For a service business that runs on trust and renewal, that split is not a reporting nicety. It is the argument I make in the quarterly review when delivery slipped and it was not my team&#8217;s doing.</p><p>The state framing also sat neatly on top of a position I had already held for years. I used to run Blocked columns like everyone else, until Daniel Vacanti&#8217;s <em><a href="https://www.amazon.com/When-Will-Done-Lean-Agile-Forecasting/dp/0986436372">When Will It Be Done?</a></em> sent me down <a href="https://www.productionalchemist.com/p/game-production-forecasting-flow-metrics-vs-pert-estimates">the flow-metrics rabbit hole</a>, and I came out the other side convinced they were a mistake. A Blocked column is its own <a href="https://www.linkedin.com/pulse/blocked-bad-brett-maytom">well-known anti-pattern</a>: it lets cards drift sideways and quietly inflates your work-in-progress limits. I have argued against them in almost every studio I have worked in since, and I have long preferred a tag. Blocked is a flag on the card, timestamped in place, and the asset never moves. It stays in the state it is genuinely in, carrying a marker that says what it is waiting on, and your data separates active time from waiting time without anyone editing a clock. What the state-space reframe did was explain why the tag was right all along. A block is a condition, not a place, so it was never a column to begin with.</p><p>None of the co-development material was in Baketari&#263;&#8217;s essays. His work is about a single team&#8217;s internal board. The client-owned split, the application to art co-development, those are mine, built on top of his frame. And the blocked-as-tag habit I brought with me from Vacanti. Which is rather the point. A good idea is generative. It does not just fix the thing the author aimed it at. It hands you a unit to think with, and it clicks into the things you already believed and shows you why they were right.</p><h2>An old dog, a new trick</h2><p>I have been doing this a long time, and I do not change how I work very often, because most of what gets sold as a new method is an old method with new vocabulary. This was different. Three careful essays gave a precise name to a thing I had been fumbling at for most of my career, and the name did real work: it dissolved a frustration, retired a recurring team fight, and opened a way to run a co-development board that I could not have designed the week before.</p><p>If you build boards for creative work and you have felt that same treadmill, the columns multiplying to chase a process that never holds still, go and read <a href="https://medium.com/@__bbak">Baketari&#263;&#8217;s essays</a>. Start with the state space one. I have been at this since before some of my producers were born, and he taught me something. That is worth saying out loud.</p><div class="callout-block" data-callout="true"><p>If this changed how you think about even one thing, the next post might too.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Nobody Decided Godot Had an AI Problem for Months. Then Somebody Finally Did.]]></title><description><![CDATA[The line between a risk and a rule]]></description><link>https://www.productionalchemist.com/p/godot-ai-policy-decision</link><guid isPermaLink="false">https://www.productionalchemist.com/p/godot-ai-policy-decision</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 08 Jul 2026 07:01:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4TB4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ul><li><p>Godot&#8217;s new AI contribution policy was not an ethics decision. It was a decision about who owns a boundary that had been drifting since February.</p></li><li><p>Reviewer bandwidth was already an issue months before anyone treated it as one</p></li><li><p>A decision log has four fields: what was decided, why, who decided it, when</p></li><li><p>The same drift is available to a two-person team, just quieter and slower to show up</p></li></ul><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qb8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" width="1024" height="207" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:207,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158576,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/203088136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leanpub.com/outlast-the-tools&quot;,&quot;text&quot;:&quot;Read the first few chapters. No strings.&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://leanpub.com/outlast-the-tools"><span>Read the first few chapters. No strings.</span></a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4TB4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4TB4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!4TB4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!4TB4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!4TB4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4TB4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2412471,&quot;alt&quot;:&quot;Flat illustration of a figure standing at an open gate beside a conveyor belt, letting an overflowing stream of paper slips pile up unchecked.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/205738722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Flat illustration of a figure standing at an open gate beside a conveyor belt, letting an overflowing stream of paper slips pile up unchecked." title="Flat illustration of a figure standing at an open gate beside a conveyor belt, letting an overflowing stream of paper slips pile up unchecked." srcset="https://substackcdn.com/image/fetch/$s_!4TB4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!4TB4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!4TB4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!4TB4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f2bd15a-b5a8-4438-847a-61157ea34f26_1456x1048.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Earlier this week I <a href="https://www.productionalchemist.com/p/ai-wrong-question-games">picked apart a framework for classifying AI-touched work after it ships</a>. Where the model touched the pipeline, how much it drove the output, what it was trained on, who stopped getting paid. Useful questions, all of them. All useful after the fact.</p><p>This one is about before the fact. About the version of this problem that shows up as a policy, or doesn&#8217;t, months before it shows up as a headline.</p><p>On 30 June, <a href="https://godotengine.org/article/contribution-policy-2026/">the Godot Foundation published a new contribution policy</a>. The headlines called it an AI ban. It is not that, and the difference is the entire post.</p><div class="callout-block" data-callout="true"><p>If this is useful, there's more where it came from. Multiple free posts a week on game production, applied AI, leadership and how the sausage actually gets made.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p>Godot has been drowning in pull requests for years. Some of that is a good sign: more people using the engine, more people willing to contribute, a maintainer team cautious enough to resist feature creep. The Foundation says as much in its own announcement. But the backlog was never just enthusiasm. The number of qualified reviewers has stayed roughly flat while the number of PRs kept climbing, and reviewing a pull request has never gotten any cheaper. Writing one has.</p><p>That is the whole mechanism, and it is not specific to Godot. <a href="https://www.coderabbit.ai/blog/github-gives-maintainers-a-throttle-for-the-ai-pull-request">GitHub itself has shared figures showing site-wide merged pull requests growing from 25 million a month in January 2023 to 90 million a month in March 2026</a>, a 3.6x increase in three years, and it just added PR rate caps of its own to cope with the same imbalance. Nobody&#8217;s reviewing capacity grew 3.6x in that time. The cost of submission collapsed. The cost of review did not move. Every open source project running on volunteer maintainers is sitting on the same unbalanced ledger, whether or not they have written a policy about it yet.</p><p>Godot&#8217;s maintainers noticed the imbalance long before June. <a href="https://www.theregister.com/ai-and-ml/2026/07/01/godot-says-bye-bye-ai-bans-vibe-coded-contributions/5265344">Maintainer R&#233;mi Verschelde said publicly earlier this year that AI pull requests were becoming, in his words, increasingly draining and demoralising</a>. That is not a throwaway complaint. That is a maintainer naming a problem out loud, in public, months before the organisation did anything structural about it.</p><p>Here is the line from the Foundation&#8217;s own announcement that the whole post turns on.</p><blockquote><p>&#8220;This reviewer shortage was already a problem, but it was one that we successfully ignored. We can no longer ignore it.&#8221; <a href="https://godotengine.org/article/contribution-policy-2026/">Godot Foundation</a></p></blockquote><p>Read that again slowly. They are not saying the problem appeared in June. They are saying it existed earlier, they knew, and the organisation&#8217;s response for however many months was to successfully not deal with it. Successfully ignoring a problem is not the same as it not being a problem. It just means nobody paid the cost yet.</p><div><hr></div><p>I&#8217;ve written before about the difference between a risk and an issue. A risk is something that might happen and needs mitigation. An issue is something that has already happened and needs a response now. Confusing the two is not a rare failure mode. It is close to the default setting for any team, studio, or foundation that would rather keep monitoring something than admit it needs a decision.</p><p>Godot&#8217;s own language gives away exactly when the crossover happened. A rising backlog you are cautiously optimistic about is a risk. A backlog that maintainers are calling draining and demoralising, in public, is not a risk any more. It is an issue wearing a risk&#8217;s clothing because issue means somebody has to act and risk means you can keep watching a little longer.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bJsp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bJsp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png 424w, https://substackcdn.com/image/fetch/$s_!bJsp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png 848w, https://substackcdn.com/image/fetch/$s_!bJsp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!bJsp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bJsp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png" width="438" height="438" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:438,&quot;bytes&quot;:1987088,&quot;alt&quot;:&quot;Line chart showing GitHub pull requests merged per month rising from 25 million in January 2023 to 90 million in March 2026, a 3.6x increase, while reviewer capacity stayed flat the entire period.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/205738722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Line chart showing GitHub pull requests merged per month rising from 25 million in January 2023 to 90 million in March 2026, a 3.6x increase, while reviewer capacity stayed flat the entire period." title="Line chart showing GitHub pull requests merged per month rising from 25 million in January 2023 to 90 million in March 2026, a 3.6x increase, while reviewer capacity stayed flat the entire period." srcset="https://substackcdn.com/image/fetch/$s_!bJsp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png 424w, https://substackcdn.com/image/fetch/$s_!bJsp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png 848w, https://substackcdn.com/image/fetch/$s_!bJsp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!bJsp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5499d3c-97fb-4ce3-a9c4-87aa9ef352e3_1920x1920.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The gap between those two states, Verschelde&#8217;s comment earlier in the year and the Foundation&#8217;s policy in June, is the gap where the actual damage happens. Not the code quality damage, though that&#8217;s real too. The damage is to whoever was doing the reviewing during those months, absorbing a cost the organisation had not yet agreed to name.</p><p>This reads closer to a compliment than a criticism. Most projects never get to the point of writing the policy at all. They stay in the successfully ignored phase indefinitely, because naming an issue means somebody owns the response, and an unnamed risk requires nothing from anyone.</p><p>The thresholds that separate the two are not exotic. A backlog that has been growing for more than a quarter without a change in reviewer capacity has already failed the assumption it was going to resolve itself. A maintainer publicly describing the work as demoralising is not a mood, it&#8217;s a data point with a date on it. A concern raised in three separate maintainer discussions without a resulting decision has demonstrated, empirically, that discussion alone was never going to produce one. None of those thresholds are precise to the day. What they do is convert a feeling, this seems to be getting worse, into a trigger: when the condition is met, the conversation stops being optional.</p><div class="callout-block" data-callout="true"><p>Thirty-plus years of production work went into this. Most of it didn&#8217;t make the post. New posts every week. Free to read, free to subscribe.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p>What actually shipped on 30 June is worth reading as a decision, not a stance. Strip the headline framing and you get four things Godot&#8217;s maintainers actually decided.</p><p>Who counts as a new contributor. Anyone with three or fewer merged pull requests. Below that threshold, no new features or significant refactors without explicit maintainer permission. That is a specific, checkable line, not a vibe about trust.</p><p>What is still allowed. Code completion, regex help, debugging lookups, translation. All still fine. What changed is the requirement to disclose AI assistance in the pull request discussion itself, not bury it.</p><p>What is not allowed at all. Autonomous agents submitting PRs directly, and anything that reads as heavy AI generation the submitter cannot explain or defend under review. Violating the agent rule triggers an automatic ban, no appeal mentioned.</p><p>Human to human, always. AI-generated text in conversations with maintainers is out, on the basis that machine translation of something a human actually wrote is fine, but an AI standing in for the conversation itself is not.</p><p>Four decisions. Every one of them answers a specific question rather than gesturing at a value. That is what separates a decision from a stance, and it is the same distinction that matters on a project with two people instead of two hundred maintainers.</p><p>I&#8217;ve written about the decision log before: four fields, what was decided, why, who decided it, when. Run Godot&#8217;s policy through those four fields and it holds up cleanly. What: no autonomous agent PRs, disclosure required for assisted code, a new contributor threshold. Why: reviewer capacity has not scaled with submission volume, and it is undermining the mentorship pipeline the project depends on for future maintainers. Who: the Foundation board and maintainers, named as the decision owner in their own post. When: 30 June 2026, with an explicit note that the policy will be revisited as tools change.</p><p>That last part matters more than it looks. They did not write a permanent commandment. They wrote a decision with a date on it and an acknowledgement that the date might need revisiting. That is exactly what a decision log entry is supposed to look like, and it is exactly what most teams skip, because writing &#8220;we will revisit this&#8221; feels like admitting the decision might be wrong. It&#8217;s admitting the decision was made under current conditions, which is the only honest way to make one.</p><blockquote><p>&#8220;Things change every day with respect to the current suite of AI tools available. We will continue taking a conservative approach in our policies towards them, but we will re-evaluate as things evolve.&#8221; <a href="https://godotengine.org/article/contribution-policy-2026/">Godot Foundation</a></p></blockquote><p>That sentence is doing quiet, useful work. It converts a decision into a monitored condition rather than a fixed law, without letting the condition drift back into being nobody&#8217;s job to watch.</p><div><hr></div><p>None of this requires two hundred maintainers or a foundation board to translate down to a two or five person team. The mechanism is identical at a smaller scale, just quieter, and quieter is exactly why it&#8217;s more dangerous.</p><p>Nobody on a three person indie team is going to write a formal contribution policy. What you actually need is one written line: what is AI allowed to touch on this project, and what is off limits. Not a philosophy. A specific answer for concept art, for dialogue, for code, for anything that ships. Dated. Owned by a named person, even if that person is you. Revisited when something changes, the same way Godot&#8217;s policy explicitly leaves room to.</p><p>Run it through the same four fields. What: AI-assisted concept work is fine for exploration, nothing generated ships without a named person redrawing or substantially reworking it by hand. Why: the team wants to be able to stand behind the art as authored, and a generated asset shipped with a light edit is a legal and reputational question nobody has actually answered yet. Who: the two of you, agreed on a specific Tuesday, not assumed. When: today&#8217;s date, with a note to revisit once either of you actually tests a shipping pipeline that changes the calculation. Four lines. It takes less time to write than this paragraph took to read, and it is the difference between a decision and an assumption nobody remembers making.</p><p>Without that line, the same drift Godot experienced happens by default, just without anyone noticing until it costs something. Someone generates a placeholder asset that quietly becomes the shipped asset because nobody said it couldn&#8217;t. Someone uses an agent to write a system nobody else on the team fully understands, and six months later the person who prompted it has moved on and nobody can maintain what&#8217;s left. The team was never against using AI. Nobody ever decided anything either way. The decision happened by accretion, the same way scope creep happens, one reasonable-seeming choice at a time, with nobody holding the line because nobody knew holding it was a job.</p><p>The Godot story is useful precisely because it is not about AI. It is about a review bottleneck that existed for months before anyone treated it as something requiring a decision rather than continued observation. Swap &#8220;reviewing pull requests&#8221; for &#8220;deciding what AI is allowed to touch on your project&#8221; and the shape is identical. The risk was there earlier than the response. It always is. The only real choice a team has is how long the gap between those two points is allowed to run.</p><p>Godot&#8217;s gap ran from at least February to the end of June. That is not a long gap by the standards of most projects that eventually address something like this. Most teams never write the policy at all. They keep calling it a concern, worth watching, until the cost shows up somewhere they can no longer pretend not to see it.</p><p>Write the line before that happens. It costs less now than it will later, and it will cost something either way.</p><div class="callout-block" data-callout="true"><p>If this changed how you think about even one thing, the next post might too.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[The AI Question in Games Needs a Second Axis, and Then a Third]]></title><description><![CDATA[Josh English built a good ladder. Here is the map it belongs to.]]></description><link>https://www.productionalchemist.com/p/ai-wrong-question-games</link><guid isPermaLink="false">https://www.productionalchemist.com/p/ai-wrong-question-games</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 06 Jul 2026 07:38:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eRtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ul><li><p>Why &#8220;was AI involved&#8221; fails as a disclosure question and what replaces it</p></li><li><p>The five-layer AI stack quietly measures two different things at once</p></li><li><p>Provenance and licensing sit across every layer, not inside one</p></li><li><p>The labour cost of AI hides in the exact tier the framework tells you to ignore</p></li></ul><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qb8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" width="1024" height="207" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:207,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158576,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/203088136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leanpub.com/outlast-the-tools&quot;,&quot;text&quot;:&quot;Read the first few chapters. No strings.&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://leanpub.com/outlast-the-tools"><span>Read the first few chapters. No strings.</span></a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eRtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eRtR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!eRtR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!eRtR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!eRtR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eRtR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2032360,&quot;alt&quot;:&quot;A lone figure stands at the foot of a tall ladder on the left; on the right, an empty two-axis grid. The ladder's single line of rungs gives way to a two-dimensional plotting frame.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/205465364?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A lone figure stands at the foot of a tall ladder on the left; on the right, an empty two-axis grid. The ladder's single line of rungs gives way to a two-dimensional plotting frame." title="A lone figure stands at the foot of a tall ladder on the left; on the right, an empty two-axis grid. The ladder's single line of rungs gives way to a two-dimensional plotting frame." srcset="https://substackcdn.com/image/fetch/$s_!eRtR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!eRtR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!eRtR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!eRtR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94da779e-6bfc-42cc-87da-54339653dd67_1477x1065.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://www.linkedin.com/in/joshua-s-english/">Josh English</a> wrote the best thing I have read on AI in games, and I want to argue with it.</p><p>His piece, <a href="https://medium.com/@jengas/was-ai-involved-is-the-wrong-question-for-games-3e613619f9a5">&#8220;&#8217;Was AI Involved?&#8217; is the Wrong Question for Games,&#8221;</a> makes a case I have been trying to make in the C-suite for two years and doing worse. The blunt question, <em>did AI touch this game</em>, sweeps a code assistant fixing a build script into the same bucket as a store page full of generated portraits, and once everything is in one bucket the bucket tells you nothing. His fix is a vocabulary. He lays out five layers, from ambient AI in the background of the toolchain, through disposable internal drafts, through shipped generated content, through runtime systems, up to games built around AI as a design pillar. Each layer carries a different creative burden, a different legal exposure, a different obligation to the player. The right question, he says, is not whether AI was involved but how.</p><div class="callout-block" data-callout="true"><p>If this is useful, there's more where it came from. Multiple free posts a week on game production, applied AI, leadership and how the sausage actually gets made.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p>He is right. I have shipped work using cruder frameworks than his, and I would use his tomorrow. So this is not a takedown. It is the thing you do to a good framework, which is push on it until you find where it bends.</p><p>It bends in one specific place, and the place tells you something.</p><div><hr></div><h4>He wrote the list himself</h4><p>Before English builds anything, he tells you what a good framework would have to hold. A single label, he says, cannot responsibly cover all of the following: production tooling, internal drafts, shipped assets, runtime behaviour, legal provenance, labour substitution, creative authorship, player data, and design intent.</p><p>Nine things. Now count the rungs he builds.</p><p>Ambient AI is production tooling. Internal drafts is internal drafts. Shipped content is shipped assets. Runtime AI is runtime behaviour. The fifth, AI as a design pillar, takes creative authorship and design intent together.<br><br>Five rungs. Nine items. Legal provenance, labour substitution, and player data get no rung at all.</p><p>I think this is what happens when you build a framework around one question, in this case what a player is owed, and then find it will not hold the things that never reach the player. The list is the honest inventory. The ladder is what survived the design.</p><p>This piece finishes his list.</p><div><hr></div><h3>Two rulers, one label</h3><p>Start with the five that did make it, because even those measure two different things.</p><p>The layers look like a ladder. English calls ambient the lowest layer and design pillar the highest category, and everything else ranks in between by how seriously you should take it. Read them again and the ladder comes apart in your hands, because the bottom three rungs and the top two are measuring different things.</p><p>Ambient AI, internal drafts, shipped content. Those three answer one question: where does AI sit in the production pipeline. Background, upstream, or in the box the player buys. That is a location.</p><p>Runtime AI, AI as a design pillar. Those two answer a different question: how much does AI determine what the player actually experiences. A live model generating dialogue is not further along the same line as a shipped texture. It is on a different line. &#8220;Design pillar&#8221; is not a place in the pipeline at all. It is a statement about ambition, about whether intelligence is the point of the game or a way of making the game.</p><p>You cannot rank a location and an intensity on the same axis. Try it and you get the exact ambiguity English spends the piece trying to escape. Is a game with one AI-voiced side character &#8220;runtime AI&#8221; or &#8220;shipped content&#8221;? Both. Is a procedural quest system a design pillar or a production shortcut? Depends entirely on how much of the game leans on it, which is a question his ladder has no rung for.</p><blockquote><p>A single label cannot hold the disagreement. Neither can a single axis. A ladder with two different rulers welded end to end is still a slogan, just a longer one.</p></blockquote><p>Split them and the framework stops fighting itself. One axis for pipeline location: where did AI touch the work. A second axis for output intensity: how much did AI determine what shipped. Now you have a grid, and the grid has cells the ladder could not name. A generated image repainted so heavily that nothing of the original survives sits in one cell. A generated image shipped with a colour tweak sits three cells away. English names both of those cases and then cannot place them, because on a single line they look adjacent. On a grid they are nowhere near each other, which is the truth.</p><p>The messy middle he keeps gesturing at is not messy. It is two-dimensional, and he was trying to read it with a ruler.</p><div><hr></div><h3>The axis he keeps rediscovering</h3><p>Watch what English does across the piece with the question of where a model came from.</p><p>In the shipped-content section: a licensed commercial model trained on cleared data is not the same as an unknown tool with murky provenance. In the same section: a vendor asset under contract is not the same as a marketplace pack nobody verified. In the artist section: model training and consent are real questions that deserve direct discussion. Three times he raises the origin of the model, and three times he raises it as an aside inside a layer that is really about something else.</p><p>Once, at the top of the piece, he raises it properly. Legal provenance is item five on his own list of what a label cannot hold. It spends the rest of the essay as a footnote to other people's tiers.</p><p>When a thing keeps surfacing in every section as a side note, it is not a side note. It is a dimension you have not drawn yet.</p><p>Provenance cuts across every layer he has. Same pipeline location, same output intensity, wildly different exposure depending on whether the training data was licensed, whether the vendor indemnifies you, whether the actor consented. Two studios can ship the identical generated portrait at the identical level of human editing. One licensed a model trained on cleared data with a contract behind it. The other pulled a marketplace pack of unknown origin. English&#8217;s framework files those two acts in the same cell. A court would not.</p><p>There is a fair objection to compressing this into one question, and Edvard Toth made it to me directly, with English agreeing. Most training data is scaffolding, the statistical substrate that lets a model generalise at all, and it rarely surfaces in any particular output. The specific dataset, the fine-tune, the reference image handed to the model at generation time, sits much closer to the work. Asking what a model was trained on flattens those together.</p><p>They are right, and it is the charge I have just laid against the ladder. One question doing several jobs.</p><p>So the axis has four fields. The pretraining corpus. The fine-tune or reference set. Consent, where a likeness or a voice is involved. Indemnity, which decides who absorbs the loss. A model can be clean on the first and catastrophic on the third.</p><p>What survives the objection is the part a producer needs. Scaffolding describes how a model generalises. Licensing describes how the data was obtained. Those are separate questions, and the second does not dissolve because the first is interesting. Every image in that substrate was acquired from somewhere. A court will not ask whether a JPEG contributed to abstract capability or to the final render, and neither will an actor whose voice was cloned.</p><p>Steam has already run into this wall in public. Valve&#8217;s <a href="https://legalmoveslawfirm.com/steam-ai-policy/">January 2026 rewrite</a> split efficiency tools from shipped content, which is English&#8217;s distinction almost exactly, and it works. But Valve publishes no threshold for how much human editing removes the disclosure obligation, and it will not rule on where your training data came from. Their own guidance lands on: keep the original output, keep your revision history, and if generated material is still recognisable in the final product, disclose. That is an honest admission that the platform can see pipeline location and can roughly see intensity, and cannot see provenance at all. It has outsourced the axis it cannot measure back to the developer.</p><p>The market is pricing that missing axis whether or not anyone charts it. <a href="https://www.gamingbible.com/news/steam-ai-statistics-harm-video-game-sales-921267-20260625">Research from Ross Burton at Game Oracle</a> found games carrying an AI disclosure drew around 53% fewer reviews than games without one, and almost a fifth got no reviews at all. Players cannot see your licensing paperwork. They see the badge, they assume the worst provenance, and they price it in. The absence of a provenance axis does not make provenance stop mattering. It just means everyone guesses, and the guess runs against you.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ygzp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ygzp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.png 424w, https://substackcdn.com/image/fetch/$s_!ygzp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.png 848w, https://substackcdn.com/image/fetch/$s_!ygzp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!ygzp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ygzp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1152431,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/205465364?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.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_!ygzp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.png 424w, https://substackcdn.com/image/fetch/$s_!ygzp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.png 848w, https://substackcdn.com/image/fetch/$s_!ygzp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!ygzp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1106cd71-ac63-4c18-9a35-0c2a493f1887_1500x1000.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>The axis the ladder is built to hide</h3><p>Here is the place the framework bends hardest, and the bend is structural. It follows from what the framework was built to measure.</p><p>English sorts the disposable material into its own layer: mood boards, rough concepts, graybox levels, placeholder dialogue, test audio, pitch images, the exploratory work that helps the team think and never reaches the player. He is careful about it. He says the tier still matters, that studios should care about vendor terms, licensing, provenance and contractor policy, and that &#8220;only for reference&#8221; is not a magic spell. He is right about all of it. <a href="https://artificialintelligenceact.eu/transparency-rules-article-50/">EU Artificial Intelligence Act</a></p><p>Read the risks he names in that tier again. Vendor terms. Licensing. Provenance. Contractor policy. Every one of them is a risk to the studio. Not one of them is a risk to a person.</p><p>Labour substitution was item six on his list. It never appears in the tier where labour substitution happens.</p><p>Job loss does not happen when the asset ships. It happens when the role gets automated. And the roles get automated upstream, in precisely the tier English marks as not the player&#8217;s business: the concept pass, the placeholder, the first-draft asset, the graybox. A framework that tracks only what reaches the player cannot see labour substitution by construction, because labour substitution is invisible on the pipeline axis. Nothing shipped. No badge required. A person is still gone.</p><blockquote><p>He named labour substitution in the sentence that set up the whole framework. Then he built five rungs and gave it none.</p></blockquote><p>The data is not subtle about who is standing there. Read against the <a href="https://www.gianty.com/gdc-2025-game-industry-report/">GDC State of the Game Industry survey</a>, artists are the group most opposed to generative AI, 64% viewing it negatively, with designers close behind at 63%. Visual arts also sat among the hardest-hit departments in the layoffs of the last two years, with <a href="https://kidscreen.com/2025/01/22/report-layoffs-and-ai-are-major-concerns-in-the-gaming-industry/">16% of survey respondents in the field reporting cuts</a>. <a href="https://industrifyai.com/gaming-layoffs-and-ai-what-the-numbers-actually-say-in-2026/">Analysis of the layoff patterns</a> finds junior staff targeted in greater numbers than senior, and the entry-level work now handed to AI, early-stage art, QA, basic programming, is exactly the foundational work people used to climb through to build expertise. Senior talent keeps its value because it can direct the model. The junior who would have become that senior never gets the reps. You automate the bottom of the ladder and then wonder, in five years, why there is nobody halfway up it.</p><div class="callout-block" data-callout="true"><p>Thirty-plus years of production work went into this. Most of it didn&#8217;t make the post. New posts every week. Free to read, free to subscribe.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p>None of this shows up if the only question you ask is what the player experiences. English&#8217;s framework asks a genuinely better question than &#8220;was AI involved.&#8221; It still asks the player&#8217;s question. The worker&#8217;s question runs on a different axis, and a framework built around disclosure to a buyer has no reason to draw that axis. This is not a charge against English. It is the natural blind spot of any model organised around what reaches the player: labour substitution is the one cost that leaves no trace in the finished product. The honest move is to add the axis, not to pretend the ladder already covered it.</p><div><hr></div><h3>Why this is a producer&#8217;s problem, not a critic&#8217;s</h3><p>I am not writing this to win a discourse point. I run production, and the grid matters to me because I cannot manage a risk I have collapsed into a slogan. Each axis is a different column in the register, and the columns do not trade off against each other. They accumulate.</p><p>Two of them English already handed me. Pipeline location is my disclosure exposure: where AI touched the work decides what I owe a platform, and getting it wrong delays a store page or invites a pile-on. Output intensity is my creative defensibility: how much a model drove the result decides whether I can stand behind the work as authored, or whether I have shipped a heap of generated output with no point of view, which players smell in a trailer and reviewers punish in week one.</p><p>The two the ladder cannot hold are the two that keep me up. Provenance is my legal exposure, and it runs on a delay timer. Where the model was pretrained, what it was fine-tuned on, whether the vendor indemnifies me, whether the actor consented, none of it shows in the shipped asset and all of it shows in discovery. And labour is the slow one, the cost that arrives years after the saving. Automate the concept pass and the graybox and the first-draft asset and you bank the money this quarter. You pay it back when the junior who would have learned the craft on that work was never hired, and the senior who could have trained them is directing a model instead. A studio can look efficient and be quietly eating its own future, and no disclosure form will ever flag it.</p><p>Four columns. The single label holds none of them. English&#8217;s ladder holds two and reaches for the third. Draw provenance and labour as their own axes and you have a register a producer can actually run, in place of a purity test a mob can run at you.</p><p>English says the industry needs a vocabulary instead of a purity test, and he is right. A vocabulary with one axis is a purity test with better manners.</p><p>So yes, AI was probably involved. The better question is how, and the producer&#8217;s version of how is four questions wearing a coat: where did it touch the work, how much did it determine what shipped, what was it trained on, and who is no longer getting paid. Answer all four and you have said something true. Answer only the first and you have swapped a blunt instrument for a quieter one.</p><div><hr></div><p><em><strong>Correction, 9-Jul.</strong> An earlier version of this piece attributed to Josh English a verdict on internal drafts that he did not make. His remark about not burdening the buyer with production detail refers to ambient tooling, such as build scripts and bug reports, and not to concept work. English says the internal-drafts tier still carries licensing, provenance and contractor-policy risk, and that calling something reference-only settles nothing. The argument here has been revised, and I think it is stronger for it: he names labour substitution himself, in the sentence that introduces his framework, then gives it no rung on the ladder.</em></p><p><em>The provenance section has also been extended, following a public exchange with Edvard Toth and Josh English about what "trained on" actually asks.</em></p><div class="callout-block" data-callout="true"><p>If this changed how you think about even one thing, the next post might too.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Production 101 - #4 Role of an External Producer]]></title><description><![CDATA[An introduction to the role of external producer in game publishing.]]></description><link>https://www.productionalchemist.com/p/production-101-4-role-of-an-external</link><guid isPermaLink="false">https://www.productionalchemist.com/p/production-101-4-role-of-an-external</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Fri, 03 Jul 2026 08:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RUUm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91e0969-31b1-49f3-838d-805e4b552fc0_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><a href="https://productionalchemist.com/">Game Production Alchemist</a> &#8250; <a href="https://productionalchemist.com/p/production-101">Production 101</a> &#8250; The External Game Producer Role Explained</em></p><blockquote><ul><li><p>External producers work on the publisher side, overseeing games built by outside development studios, from initial pitch through to launch.</p></li><li><p>The role spans pitching, developer selection, contract negotiation, milestone oversight, budget management, platform submissions, and commercial alignment.</p></li><li><p>It requires financial and legal literacy that surprises most people coming from a development background.</p></li><li><p>The defining structural challenge is influence without authority: you are accountable for outcomes you cannot directly control.</p></li></ul></blockquote><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qb8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" width="1024" height="207" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:207,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158576,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/203088136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leanpub.com/outlast-the-tools&quot;,&quot;text&quot;:&quot;Read the first few chapters. No strings.&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://leanpub.com/outlast-the-tools"><span>Read the first few chapters. No strings.</span></a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0T7v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0T7v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!0T7v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!0T7v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!0T7v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0T7v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2732818,&quot;alt&quot;:&quot;External game producer thumbnail with client and partner buildings connected by a bridge, contract, and handshake icon.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://gameproductionalchemist.substack.com/i/142143059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="External game producer thumbnail with client and partner buildings connected by a bridge, contract, and handshake icon." title="External game producer thumbnail with client and partner buildings connected by a bridge, contract, and handshake icon." srcset="https://substackcdn.com/image/fetch/$s_!0T7v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!0T7v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!0T7v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!0T7v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa45c7c23-9c43-4f4a-b04e-3b92dc9eb33d_1456x1048.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In the <a href="https://gameproductionalchemist.substack.com/p/production-101-3-role-of-an-internal">previous post</a> I covered the internal producer, the person running the team from inside the studio. This post is about the other side of that relationship: the external producer, sitting at the publisher, managing a game being built by someone else.</p><div class="callout-block" data-callout="true"><p>If this is useful, there's more where it came from. Multiple free posts a week on game production, applied AI, leadership and how the sausage actually gets made.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p>It&#8217;s a role that gets less airtime than internal production, partly because fewer people do it and partly because the publisher side of the industry is less visible than the studios themselves. But it&#8217;s a genuinely distinct set of skills, and for some producers, it&#8217;s a much better fit than working inside a development team.</p><p>The external producer works for the publisher. The studio making the game is not your employer. You&#8217;re the bridge between what the publisher has agreed to fund and what the studio is actually building. That gap is where the job lives.</p><p>What &#8220;publisher&#8221; means varies. It could be a traditional game publisher like EA, Ubisoft, or Paradox. It could be a platform holder commissioning an exclusive. It could be a mobile publisher licensing a brand and funding a developer to build around it. The shape of the relationship changes, but the external producer&#8217;s function stays roughly the same: represent the publisher&#8217;s interests while keeping the development partnership healthy enough to ship something good.</p><div><hr></div><h2>What an external producer actually does</h2><p>The external producer works for the publisher. The game is being built by a development studio that is separate from the publisher, sometimes across the country, sometimes across the world. The external producer is the publisher&#8217;s primary point of contact with that studio, and the primary conduit back.</p><p>That sounds simple. In practice, the role touches almost everything.</p><p>You&#8217;re involved from the beginning, assessing potential projects for market appeal, audience fit, and how they sit within the publisher&#8217;s existing portfolio. You help evaluate which studios are right for which projects, looking at their skills, their creative approach, and their track record. Once a deal is struck, you own the relationship from that point through to submission and launch.</p><p>What you&#8217;re managing is a set of obligations and expectations that run in both directions. The developer needs to understand what the publisher requires: the quality bar, the commercial positioning, the branding constraints, the platform requirements. The publisher&#8217;s leadership needs to understand what the developer is building, how it&#8217;s progressing, and what&#8217;s at risk. You&#8217;re the person who carries information across that gap accurately and without distortion.</p><blockquote><p>&#8220;You&#8217;re the person who carries information across that gap accurately and without distortion. Getting that wrong in either direction is how projects fall apart.&#8221;</p></blockquote><h2>The responsibilities in detail</h2><p>The scope of the external producer role is wider than most people expect when they first encounter it.</p><p>On the commercial side, you&#8217;re thinking about branding, audience fit, and market positioning. If the game involves licensed intellectual property, you&#8217;re managing the licensor relationship too, which means additional approval cycles, compliance obligations, and a set of relationship dynamics that sit entirely outside the development team itself.</p><p>Project management looks familiar to any producer: maintaining production plans, schedules, and roadmaps. The difference is that you&#8217;re doing it across multiple projects simultaneously. At any point you might be managing a game in early production with one studio, overseeing a game in full production with a second, and coordinating the submission process with a third.</p><p>Milestone oversight is one of the more formal parts of the job. When a developer submits a milestone, you review it against the milestone schedule and the Statement of Work. You decide whether to approve it, which means sending the approval email and processing the invoice, or to document the shortfall, describe what&#8217;s missing, and begin the formal discussion about remediation before any rejection is issued. This is consequential work. Milestone approvals trigger payment. Formal rejections have legal weight. You need to be precise.</p><p>Budget management at this level involves predicting costs from early in the project, often before the final game is fully defined. External expenses, travel, licensing fees, QA costs, certification fees: you&#8217;re estimating and tracking all of these from a publisher perspective, which is a different set of numbers from the developer&#8217;s own budget.</p><p>Contract work is a constant thread. You&#8217;re involved in negotiating milestone achievements, payment schedules, and scope of work details. When scope changes, the contract has to change with it, and that means working with legal, negotiating with the developer, and documenting the agreement correctly. If you&#8217;ve come from a purely creative or development background, this part of the job may require more adjustment than anything else.</p><p>Platform submissions are the path from a finished game to a game that&#8217;s actually available. The external producer guides the developer through first-party requirements, certification, and the approval processes specific to each platform. The certification requirements for PlayStation, Xbox, Nintendo, and mobile storefronts are different in their detail and different in how they&#8217;re enforced. Knowing them, and knowing the people at the platform holders, matters.</p><p>Risk management runs through everything. The external producer is supposed to identify risks before they become problems, which means maintaining enough understanding of the project&#8217;s real status that early signals don&#8217;t get missed.</p><div><hr></div><h2>Working with other teams and partners</h2><p>The external producer&#8217;s role extends well beyond the studio relationship. A significant part of the job involves coordinating with departments inside the publisher&#8217;s organisation and with third parties outside it.</p><p><strong>Marketing.</strong> The external producer is typically the link between the studio and the marketing team. That means sharing game features and content at the right time, providing game assets (screenshots, trailers, builds for review), and overseeing the creation and approval of marketing materials in collaboration with the studio. Getting this right requires discipline on both sides: marketing needs assets on time to plan campaigns, and the studio needs enough notice to produce them without disrupting development.</p><p><strong>First-party platform holders.</strong> If your game is shipping on console or mobile storefronts, you have a formal relationship with Sony, Microsoft, Nintendo, Apple, Google, or Amazon, depending on the platforms. Each has its own submission, certification, and approval processes. The external producer shepherds the project through these processes: managing the submission schedule, responding to certification failures, and maintaining the relationship with the platform representative. First-party processes have their own timelines that don&#8217;t bend for development slippage, so planning these carefully is non-negotiable.</p><blockquote><p>&#8220;First-party certification timelines don&#8217;t bend for development slippage. Plan them carefully or they become a crisis.&#8221;</p></blockquote><p><strong>QA and localisation.</strong> The external producer liaises with the publisher&#8217;s QA and localisation managers to ensure proper resource allocation and task prioritisation throughout the project. In the final stages of production, this means managing bug prioritisation and waiver decisions: which bugs get fixed before ship, which get deferred, and which get waived as known issues. These are often high-stakes calls made under time pressure, and the external producer owns the process.</p><div class="callout-block" data-callout="true"><p>Thirty-plus years of production work went into this. Most of it didn&#8217;t make the post. New posts every week. Free to read, free to subscribe.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p><strong>Legal and licensors.</strong> If the game involves licensed IP, whether a sports licence, a film tie-in, or a brand partnership, the external producer manages that relationship on the publisher side. This includes coordinating approvals, managing licensor feedback on builds, and ensuring the studio has what it needs to satisfy the licence terms. Legal sits alongside this: contract compliance, amendments, milestone approval language. It&#8217;s not glamorous, and a lot of it is slow-moving, but failures here can hold up a release.</p><p><strong>User research, consumer insights, and analytics.</strong> On larger projects, the external producer will bring in consumer insight and user research teams to run playtests or surveys on studio builds. The findings then need to be communicated back to the studio in a way that&#8217;s useful, not demoralising. This is a genuine skill. A user research report that lands badly with a development team can create friction that lasts for months.</p><div><hr></div><h2>The skills this role actually requires</h2><p>[PERSONAL EXPERIENCE] I&#8217;ve talked to a lot of producers who moved from internal to external production and said some version of the same thing: they didn&#8217;t expect how much financial and legal literacy the role required.</p><p>That&#8217;s not because the financial concepts are complicated. It&#8217;s because internal production rarely puts them in front of you directly. An internal producer might know the project&#8217;s budget in broad terms; the external producer is managing the publisher-side P&amp;L, forecasting costs before the scope is settled, and communicating budget and scope implications to executive management. Those are different demands.</p><p>The legal side is similar. Understanding the difference between a fixed-price contract and a time-and-materials contract, knowing what a Statement of Work needs to contain, understanding what happens when a milestone is formally rejected: these things matter, and not knowing them creates real exposure.</p><p>The interpersonal side is substantial too. You&#8217;re managing relationships with developers, with vendors, with internal teams across the publisher, and with platform holders and licensors. Each of those relationships has different dynamics, different expectations, and different communication norms. The ability to read those differences and adapt accordingly is something you develop over time.</p><blockquote><p>&#8220;An internal producer might know the project&#8217;s budget in broad terms. The external producer is managing the publisher-side P&amp;L, forecasting costs before the scope is settled, and communicating budget implications upward. Those are different demands.&#8221;</p></blockquote><p>Prior experience in internal or external game development is the practical foundation. You need to have shipped console, PC, or mobile titles. You need to understand how development teams actually work, because you can&#8217;t evaluate a studio&#8217;s progress or flag risks in their delivery if you don&#8217;t know what healthy development looks like from the inside. The external producer who has only ever been on the publisher side is at a real disadvantage.</p><p>The other thing worth naming is comfort with independence. On a publisher team, you&#8217;re often working without the day-to-day peer support structure that exists inside a development studio. You&#8217;re expected to make judgements, manage your own time across multiple projects, and escalate when escalation is appropriate, rather than doing it reflexively.</p><div><hr></div><h2>What does a day actually look like?</h2><p>[PERSONAL EXPERIENCE] This is the question I get most often, and I think it&#8217;s the right one to ask. Job descriptions and responsibility lists are useful, but they don&#8217;t tell you what it feels like to do the job.</p><p>So here&#8217;s a specific day. Not a representative average. A real one.</p><p>The morning starts with email and project management tools. Bug reports have come in overnight from QA on Developer A&#8217;s game, and I scan them for anything urgent. I check in with the associate producer: what do they need from me today, and do they have any blockers?</p><p>The latest build from Developer A has landed on the FTP. I pull it down and verify it runs on the dev kit, then coordinate with QA to confirm they have the same build and are working through the test plans.</p><p>The QA lead wants to discuss a set of bugs the developer has asked to be waived. Some waiver requests are straightforward; others need a harder look, because waiving a bug that later becomes a certification failure is a problem that comes back to you. That conversation takes focus.</p><p>Then there&#8217;s a separate issue to investigate: dev kits that were supposed to be delivered to Developer B for a different project haven&#8217;t arrived. I need to find out where they are and what that means for the developer&#8217;s schedule this week.</p><p>Mid-morning shifts to milestone review. Developer C has submitted their latest milestone. I sit down with the milestone schedule and the Statement of Work and go through the submission methodically: what was promised, what was delivered, where the gaps are. Either the milestone passes and I send the approval and process the invoice, or I need to document the shortfall clearly before any formal conversation about rejection begins. This documentation isn&#8217;t bureaucracy; it&#8217;s what protects both parties.</p><p>Between that and a status report that needs to go out later, I&#8217;m also working on a concept approval deck for a new game in early consideration. Consumer insights and product teams have provided feedback, and I&#8217;m folding that in. The deck is trying to make the case for a game that doesn&#8217;t exist yet, to an audience who will fund it or not, based on what I can show them about the opportunity.</p><p>Lunch exists. I eat it, talk to people informally, and if I have the time, play a game. This is not optional. You cannot represent games you haven&#8217;t played.</p><p>The afternoon brings a marketing request: screenshots from Developer A&#8217;s game for upcoming promotional use. Some of the assets in the current build are placeholder, so I work with the associate producer on how to compose and frame shots that capture what the game actually does without featuring assets that aren&#8217;t final. It requires knowing the game well enough to make those calls.</p><p>I check in on the associate producer&#8217;s development. Their Individual Development Plan needs attention, and they should have a mentor meeting scheduled. I make sure that&#8217;s happening.</p><p>Then I demo the latest working build from Developer A to the head of sales and marketing. I hand them the controller. I let the game speak for itself. After the demo, I float the new game concept to gauge early interest from someone whose read of the market I trust.</p><p>Late afternoon is meetings and calls. First, a meeting with the licensor about improving approval cycle times: the current cycle is adding weeks to the schedule and nobody is happy about it. Then a call with legal about a development agreement amendment covering a scope change with Developer B. The scope change affects the payment schedule and the delivery timeline, and the amendment has to reflect both accurately.</p><p>After that, I negotiate the scope and schedule impact directly with Developer B. We&#8217;re trying to find an arrangement that works for the developer&#8217;s team without undermining the publisher&#8217;s release calendar. Neither side will get everything they want.</p><p>A call with the first-party developer rep to get a status update on a submission that&#8217;s been in certification longer than expected. I want to understand whether there&#8217;s any willingness to waive specific bugs that are holding things up, and how much of that is a negotiation versus a hard requirement.</p><p>I check in with the QA lead to hear how the day&#8217;s testing went and get an early view of the bug report before it&#8217;s finalised. Then I pick up Developer A&#8217;s game again and try to get further than I did yesterday.</p><blockquote><p>&#8220;You cannot represent games you haven&#8217;t played. That&#8217;s not a peripheral observation. It&#8217;s part of the job.&#8221;</p></blockquote><div><hr></div><h2>The structural challenge: influence without authority</h2><p>[UNIQUE INSIGHT] Everything about this role flows from one central fact: you are responsible for a game that you do not control. You can ask the developer to do something. You cannot make them. You can document a shortfall and withhold a milestone payment. You cannot walk across the floor and fix it yourself.</p><p>That distinction is the structural reality of external production. Authority over the development team sits with the studio&#8217;s own leadership. Your authority runs through the contract, through the relationship, and through the quality of your judgement. If the developer respects your read of things, your calls carry weight. If they don&#8217;t, the legal tools are the last resort, not the first.</p><p>This creates a set of practical tensions. The developer is a partner, and you want that relationship to work. But the developer is also a contracted party with legal obligations. Balancing genuine rapport with the readiness to enforce those obligations, when necessary, is one of the skills that separates experienced external producers from people who are still learning what the role requires.</p><p>The same tension appears with internal stakeholders. Senior leadership at the publisher has priorities and preferences. Sometimes those priorities are well-calibrated to what the developer can actually deliver; sometimes they&#8217;re not. Part of your job is translating between what leadership wants and what the developer can do, managing expectations accurately in both directions, and protecting the developer from scope requests that would derail production, while also making sure leadership&#8217;s genuine requirements are heard and acted on.</p><p>Time zones complicate all of this. If you&#8217;re managing studios across multiple regions, every conversation requires scheduling discipline and asynchronous communication practices that hold up when you can&#8217;t talk in real time. Cultural differences across international teams add another layer: the norms around how disagreement is expressed, how bad news is delivered, and how commitments are made vary considerably, and misreading those norms creates friction that&#8217;s hard to trace back to its source.</p><blockquote><p>&#8220;Your authority runs through the contract, through the relationship, and through the quality of your judgement. If the developer respects your read of things, your calls carry weight.&#8221;</p></blockquote><div><hr></div><h2>The part of the job nobody talks about</h2><p>The formal structure of the role is teachable: milestone reviews, marketing coordination, first-party management. The hard part isn&#8217;t.</p><p>The hard part is maintaining an honest relationship with a studio team you don&#8217;t manage, who may feel scrutinised or second-guessed by everything you do. You&#8217;re there on behalf of the publisher, which means you sometimes have to deliver bad news, push back on deliverables, or escalate risks that the studio would prefer to handle quietly. Done badly, this creates an adversarial dynamic that makes the project worse. Done well, the studio sees you as an extension of their own production capability: someone who has their back with the publisher and who surfaces problems early rather than waiting for them to become contractual disputes.</p><p>The external producers I&#8217;ve seen struggle most are the ones who default to process: they do the milestone reviews, write the reports, attend the meetings, and still somehow miss the fact that the project is in trouble. The role requires you to read the room, notice when a studio&#8217;s communication pattern changes, and ask the questions that aren&#8217;t comfortable. Process supports that work. It doesn&#8217;t replace it.</p><blockquote><p>&#8220;The external producers who struggle most default to process. The role requires you to read the room.&#8221;</p></blockquote><p>Building commercial value into the project is also part of the brief. External producers look proactively for opportunities to expand a project&#8217;s commercial footprint: consumer and trade marketing initiatives, demos, downloadable content (DLC), OEM deals, platform extensions, territory-specific localisation. These aren&#8217;t afterthoughts. An external producer who only manages what&#8217;s already agreed isn&#8217;t doing the full job.</p><div><hr></div><h2>How to get into external production</h2><p>There&#8217;s no single route. Some external producers come up through internal production at studios, move to the publisher side, and bring that development-facing credibility with them. Others start in QA or production coordination at a publisher and build outward from there.</p><p>What the role selects for, regardless of background, is the ability to manage relationships across organisational boundaries and to stay calm when the information you&#8217;re getting doesn&#8217;t add up.</p><p>I&#8217;ve rarely seen anyone succeed in external production without having spent meaningful time first inside a development studio. The reason is practical. If you haven&#8217;t been inside a development team, you don&#8217;t have a reliable mental model of what healthy development looks like. You can learn the publisher-side processes without that model. What you can&#8217;t do reliably is evaluate a studio&#8217;s real status, identify when they&#8217;re struggling versus when they&#8217;re just in a difficult phase, or read the difference between a team that&#8217;s behind and one that&#8217;s in trouble. Those distinctions matter enormously in this role.</p><p>The most useful thing you can do early is understand both sides of the relationship. If you&#8217;ve only ever worked at a publisher, try to get close to a studio-facing project. If you&#8217;ve only worked at studios, understanding what a publisher&#8217;s internal approval chain looks like will help you enormously when you&#8217;re trying to get decisions made quickly.</p><p>The more common path is to work as an internal producer first, often at the associate or producer level, ship one or more titles, and then move to the publisher side. Some people make that move deliberately, because they&#8217;re drawn to the portfolio scope, the commercial and legal dimensions, or the variety of working with multiple studios. Others find themselves in it because an opportunity came up and they took it.</p><p>Live game experience is increasingly valued in these roles, partly because publishers are increasingly in the business of operating live titles rather than just shipping them. Understanding how live games work operationally, and what the post-launch support relationship between a developer and publisher looks like, gives you a more complete picture of what you&#8217;re managing.</p><p>The role tends not to have a formal career ladder. At larger publishers, there are often associate, producer, and senior producer levels with defined scope. At smaller publishers, a single external producer might own three or four projects simultaneously. That breadth can be a feature, not a limitation, if you&#8217;re the kind of person who needs variety to stay sharp.</p><div><hr></div><div class="callout-block" data-callout="true"><p>If this changed how you think about even one thing, the next post might too.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><h2>How the role is changing</h2><p>The publisher-developer model has shifted considerably in the past decade. More studios are self-publishing than before, which means fewer games have a traditional external producer relationship. For the ones that do, the role has grown in complexity: more platforms, more certification requirements, more marketing surface area, and greater pressure on milestone quality as publishers have become more risk-averse since the economic contractions of 2023-2024.</p><p>Remote work has changed the day-to-day. When I started working in this area, visits to the development studio were routine. You sat with the team, walked the floor, got a read on morale and momentum. That&#8217;s harder to do at a distance. Video calls compress the relationship. You need to be more deliberate about maintaining it.</p><p>The role also intersects increasingly with data and analytics. Publishers want to see player research baked into development earlier, and external producers are often the ones pushing for that: arranging playtests, commissioning surveys, getting early builds in front of players and feeding the results back usefully. Studios that resist this tend to struggle commercially, regardless of how well they execute technically.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-4-role-of-an-external/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://www.productionalchemist.com/p/production-101-4-role-of-an-external/comments"><span>Leave a comment</span></a></p><p>The next post in this series covers a different production context entirely: <a href="https://gameproductionalchemist.substack.com/p/production-101-5-free-to-play-game">Production 101 #5 looks at Free-to-Play game economics</a> and what producers need to understand about how those games are designed to make money. The full series index is <a href="https://gameproductionalchemist.substack.com/p/production-101">here</a>.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;da8ccd0f-46bb-4672-981a-77f0875acfac&quot;,&quot;caption&quot;:&quot;What game production actually is, without the jargon&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Production 101 - Start Here&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124206240,&quot;name&quot;:&quot;Rob Sandberg&quot;,&quot;bio&quot;:&quot;Seasoned game producer with 30 years in the field. I blend insight with fun, mentor teams, and champion agile, efficient game production. Focused on player experience, I build consensus and value adaptability in this ever-evolving industry.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72cb7a5b-f489-4eab-9035-6339bf2007fa_457x573.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-06-05T06:49:18.407Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10692eed-dabd-4e78-8ad1-eef924b77fe5_1734x907.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.productionalchemist.com/p/production-101&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:141459520,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2231603,&quot;publication_name&quot;:&quot;Game Production Alchemist&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0_I_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c8fe75-257b-4ce8-a63c-db3bd0401a49_256x256.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-4-role-of-an-external?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-4-role-of-an-external?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-4-role-of-an-external?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[North was perfect. South was a different room.]]></title><description><![CDATA[What 90 image generations taught me about AI concept art at production scale]]></description><link>https://www.productionalchemist.com/p/ai-concept-art-production-scale-consistency</link><guid isPermaLink="false">https://www.productionalchemist.com/p/ai-concept-art-production-scale-consistency</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 01 Jul 2026 07:02:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZzGG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ul><li><p>Developer sentiment on AI has gone from 18% negative to 52% in two years, and asset generation sits near the bottom of actual use at 19%</p></li><li><p>gpt-image-2 produces remarkable single images but cannot hold a 3D space consistent across viewpoints, scale, or attempts</p></li><li><p>The seed that once gave a handhold on reproducibility is gone, and across 90+ generations every seed field came back null</p></li><li><p>At production scale the work moves from art direction to writing 900-word specifications by hand for a system with no memory</p></li></ul><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qb8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" width="1024" height="207" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:207,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158576,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/203088136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leanpub.com/outlast-the-tools&quot;,&quot;text&quot;:&quot;Read the first few chapters. No strings.&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://leanpub.com/outlast-the-tools"><span>Read the first few chapters. No strings.</span></a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZzGG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZzGG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!ZzGG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!ZzGG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!ZzGG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZzGG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2088020,&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;:false,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/204276655?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.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_!ZzGG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!ZzGG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!ZzGG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!ZzGG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb7580d3-077b-4fa3-9d32-5712fd7a1ff8_1477x1065.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The first prompt was 147 words, and I thought that was a lot.</p><p>It described a lane, two flanking blocks, a balcony platform, a horizontal beam, a back wall, two cover primitives. Matte white, grey ground, no characters. A whitebox, the kind of greybox blockout any environment artist would build in-engine before a single texture goes down. The image came back in sixty seconds and cost five cents. The proportions were off. The platform read as a window ledge. The lane felt like a corridor.</p><p>So I wrote another 147 words, more specific this time. A flat walkable balcony platform at upper-storey height, roughly four metres wide by two deep, projecting horizontally from the inner face of the upper storey, large enough for a person to stand on. Closer. Still wrong. On the third attempt I gave up on the lane entirely and rethought the whole thing as an interior arena. Another sixty seconds. Another five cents.</p><p>Then I did what I should have done first. I had a reference image: a 3D blockout I&#8217;d built myself, colour-coded, labelled, with human-scale figures and storey-line annotations. The real spatial ground truth, straight from the engine. I fed it to the edit endpoint and asked the model to clean it into a matte white whitebox, strip the figures, strip the labels.</p><div class="callout-block" data-callout="true"><p>If this is useful, there's more where it came from. Multiple free posts a week on game production, applied AI, leadership and how the sausage actually gets made.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p>It removed most of the labels. Not all. The scale came back wrong. The purple wall, the one that was meant to be the tall dominant surface at the back right, came back medium height like everything around it. So I added the sentence I&#8217;d assumed the model would infer from a reference image that literally showed it: the back-right wall is dramatically taller than the others, roughly two to three times their height, soaring above and dominating the back-right portion of the arena.</p><p>That worked. After four attempts and twenty-three minutes I had a clean whitebox. Cost: nineteen cents.</p><p>I want to be clear about what nineteen cents and twenty-three minutes had actually bought me. Not a concept. Not a piece of art. A starting line. A grey box I could now begin to detail. And reaching even that had taken a fight with a tool that was looking at my own geometry the entire time.</p><p>None of this was a chatbot, by the way. We were driving the model through API-level controls, prompting in structured JSON for the extra fidelity it buys you over typing prose into a text box. This was the tool operated near its ceiling, by people who build production pipelines for a living. Hold onto that, because it matters for everything that follows.</p><div><hr></div><h2>The thing the surveys won&#8217;t tell you straight</h2><p>If you read the trade press you&#8217;d think concept art was the settled, obvious win for AI in game development. The practical application. The one nobody argues about.</p><p>The data says something quieter. The <a href="https://reg.gdconf.com/2026-SOTI">GDC State of the Game Industry survey</a>, 2,300 developers, breaks AI use down by task, and asset generation, the thing my team was doing, sits near the bottom. Eighty-one percent of the developers who use AI use it for research and brainstorming. Thirty-five percent for prototyping. Asset generation comes in at 19%, and only 5% will put it anywhere near a player-facing feature. The pattern is plain: the further you move from idle ideation toward something that ships, the faster the hands come off the tool.</p><p>Sentiment is moving the same direction, hard. The share of developers who think generative AI is bad for the industry <a href="https://www.techbuzz.ai/articles/game-developers-turn-on-ai-52-now-call-it-bad-for-industry">went 18% in 2024, 30% in 2025, 52% now</a>. It tripled in two years and crossed into the majority. Only 7% call it positive. That&#8217;s not a wobble, it&#8217;s a curve, and it&#8217;s pointing down.</p><p>Part of that is the job market underneath it. Seventeen percent of those surveyed were laid off in the last year, 28% within two, and the people on the floor watching colleagues go while executives talk efficiency are not the same people writing the AI-first press releases. The <a href="https://www.deconstructoroffun.com/blog/2026/2/9/designing-games-in-the-age-of-ai">gap between leadership enthusiasm and artist buy-in</a> is wide and well documented. The &#8220;most practical application&#8221; story is, to a large degree, a story told from above the work.</p><p>One honest caveat, since I work in India and this matters to me: the GDC sample skews US-based, white and male, and GDC says so itself. It is not the whole world. <a href="https://www.gamedeveloper.com/production/developer-use-of-generative-ai-may-be-declining">Japanese studios, for one, report far higher adoption</a>. Read the numbers as a strong Western signal, not a global verdict.</p><p>But here&#8217;s the easy misreading I want to head off. The tempting conclusion is that this is pure ideology, artists resisting the future on principle. I don&#8217;t buy it. I think a lot of those developers tried the tool on real work, at the scale real work demands, and quietly concluded the maths didn&#8217;t close. The 19% isn&#8217;t squeamishness. It&#8217;s a verdict. And the rest of this is the mechanism behind the number, told from inside one engagement where the client was fully aligned on using AI and we still walked into every wall there is.</p><div><hr></div><h2>Null going in, null coming back</h2><p>Here is the part that took me a while to understand, because it sits underneath the craft and only shows up when you read your own logs.</p><p>There&#8217;s a feature in image generation called a seed. The idea is simple. The random starting point that produces an image is just a number, and if you know the number you can run the same prompt again and get the same image back. When something almost works, you fix the seed and change only the words. The composition holds still while you adjust. It&#8217;s the one handhold the medium offers.</p><p>It doesn&#8217;t exist here. Not &#8220;it&#8217;s hard to use.&#8221; It isn&#8217;t there.</p><p>I went back through the records. More than ninety generations across four projects. Every seed field in every log entry, null. Null going in, null coming back. A slot in the schema that was wired up and never carried a value.</p><p>The reason is structural, and it comes in two layers. The first is the endpoint. Text-to-image on gpt-image-2 will at least nominally accept a seed. But every style pass we ran went through the image <em>edit</em> endpoint, because we were transforming an existing reference. That endpoint doesn&#8217;t expose seeds. You can pass one. The API ignores it. Nothing comes back.</p><p>The second layer is worse, and it would bite even if the endpoint behaved. Our canonical whitebox, the grey box that cost nineteen cents, was itself the output of a non-deterministic edit. Every style we generated downstream used that image as its reference. So even if I could have locked a seed on a given style pass, I&#8217;d have locked one link of a chain whose very first link was already a roll of the dice. There was no point in the pipeline where reproducibility was even theoretically available.</p><p>This is not an oversight someone will patch. The newer image models, gpt-image-2 among them, work autoregressively. They build an image the way a language model builds a sentence, predicting the next piece from everything before it, rather than starting from a fixed field of seedable noise and denoising it. There&#8217;s no seed because there&#8217;s no noise origin to seed. And here&#8217;s the cruel symmetry: that same architecture is exactly what makes these models so good at following instructions, so good at the 147-word prompt, so good at the thing that made me want to use one. The instruction-following I loved and the determinism I lost are the same design decision. You cannot keep one and recover the other.</p><p>The seed field in every schema file says null. That single null is the whole problem written in one character.</p><div><hr></div><h2>Thirty styles, ninety minutes, one sentence I had to keep retyping</h2><p>With the whitebox locked, the real work started, and for about an hour it felt like flying.</p><p>I wanted to know what the space could become. The first style was a Tadao Ando raw concrete interior: form-tie holes, board-formed surfaces, tall narrow windows throwing raking daylight. Fifty-six seconds. Then a variant with a warmer concrete palette. Then a third that added formwork reveals and a shadow gap where wall meets floor. By the third Ando prompt I was writing six hundred words for a single image.</p><p>Then I opened the throttle. Between roughly eleven and noon I ran a dozen more directions in parallel. Retro-futurist seventies in three lighting moods. Space-age with op-art murals. Frank Lloyd Wright Prairie across five variations, from hearth glow to rain-grey cedar. The afternoon went to Mexico: hacienda, Barrag&#225;n, Tulum, Spanish Mission, Pueblo. Then a run of Western Gothic, modernist through to border desolation. By the end I had something like thirty fully realised interiors, all grown from that one whitebox.</p><p>Some were extraordinary. The Barrag&#225;n marigold came back exactly right. The Wright hearth glowed with the precise warm weight I&#8217;d asked for. The op-art read with Vasarely sharpness.</p><p>But look at what closed every single one of those prompts, thirty times over:</p><blockquote><p>The space is entirely empty. The back-right wall is dramatically taller than the other back walls, roughly three times their height, soaring above and dominating the back-right portion of the space. Maintain the existing camera angle, composition, and spatial layout.</p></blockquote><p>I typed that, or a version of it, every time. Not because I forgot the geometry. Because the model did. There was no persistent space for it to remember. Each generation was the first time it had ever seen the room, so each time I had to rebuild the room in words before I could change its lighting.</p><div><hr></div><h2>A different room every time you turn around</h2><p>The single clearest failure was the one I opened with: move the camera, lose the room.</p><p>It&#8217;s worth sitting with why, because it isn&#8217;t a glitch you can prompt around. North gave us a beautiful, coherent image. South gave us another beautiful image of somewhere else. The walls didn&#8217;t agree with the first render, the proportions had wandered, and the reference images didn&#8217;t save us, because they pin down style and rough content, not a stable three-dimensional truth you can walk around.</p><p>This is object permanence, and the model hasn&#8217;t got any. It was never holding a room. It was producing, each time, a plausible picture conditioned on some tokens. &#8220;The same arena from behind&#8221; is not a question it can answer, because there is no arena in there to turn around. There is only the next plausible image.</p><p>Scale broke the same way, and at production it broke worse, because we had several artists working several versions of the same scene at once. Each one of them was rolling their own dice. We&#8217;d built proxies, we had a defined human scale, and still the sizes drifted across the set, person to person, version to version, with no shared anchor to hold any of it together. That&#8217;s the part the single-image demos never show you. The trouble isn&#8217;t one image. It&#8217;s coherence across a set, and the set is the actual unit of work in real development.</p><div class="callout-block" data-callout="true"><p>Thirty-plus years of production work went into this. Most of it didn&#8217;t make the post. New posts every week. Free to read, free to subscribe.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><h2>Writing legal disclaimers to an image model</h2><p>The exterior work, an outdoor plaza built from a different blockout, produced my favourite absurdity of the whole job.</p><p>The reference had three back walls at different heights. I wanted them read as one continuous flat surface, the enclosing back wall of a plaza. The model kept turning them into three separate buildings. Which is, to be fair, a reasonable thing for something trained on architectural photography to assume: three wall segments at two, two and three storeys look like three structures with depth and passages between them. So the second-attempt prompt opened like this:</p><blockquote><p>Critical geometric constraint: the back walls are continuous flat planar surfaces forming the enclosing back wall of an outdoor plaza. They are NOT separate building masses and NOT volumetric structures extending forward or behind. The height difference is a difference in wall height only, not a difference in building footprint.</p></blockquote><p>I was writing a legal disclaimer to an image model. And then, underneath it, instructions to strip out the magenta dashed lines and the storey labels reading GROUND, FIRST, SECOND, because the model was rendering my annotation scaffolding as actual architecture. The very marks I&#8217;d drawn to communicate intent, it was building as structure.</p><p>By the third environment I&#8217;d developed a whole private vocabulary. A &#8220;Rest Area,&#8221; the central eighty percent of each wall kept smooth, because if I left it open the model filled it with detail that would bury a character silhouette. A rendering manifesto pinned to every prompt: flat matte painted pipeline, no specular, no reflection, no wet sheen, no engine-cast shadow. Precise placement rules: form-tie holes and joint lines clustered at the top corners and base edges only, never the centre.</p><p>Those prompts reached nine hundred words each.</p><div><hr></div><h2>The conversation only goes one direction</h2><p>Read the logs end to end and you can see the shape of the thing. Every prompt contains the whole of the previous prompt, plus the corrections for whatever went wrong last time. The language only accumulates. Each failure leaves a scar in the text, and the text is the only place a scar can live, because the model keeps none of them.</p><p>By the end I wasn&#8217;t writing art direction. I was writing annotated specifications. The creative brief and the technical correction had fused into one unwieldy document, rewritten from scratch for every image, hand-delivered to a system with no memory of the thirty attempts before it.</p><p>And there was a tax for trying to fix things in place. Push too hard on a near-perfect image, prompt and prompt and prompt to correct the one object that&#8217;s wrong, and the output starts to degrade. Context rot. The thing you were refining gets worse because the context you&#8217;ve piled up has turned against you. A diffusion re-roll doesn&#8217;t punish persistence like that. This pipeline does.</p><p>So where was the constraint infrastructure, the seed-locking and control nets and trained adapters that are supposed to claw determinism back out of these tools? We didn&#8217;t have it on this job. Our only instrument of control was the prompt itself, swelling from 147 words to 900 as it absorbed every lesson. The determinism I recovered, I recovered by hand, in language, one generation at a time, and none of it persisted past the single image it produced.</p><div><hr></div><h2>The speed that wasn&#8217;t</h2><p>Speed is the whole case for this. Strip it out and &#8220;most practical application&#8221; collapses. So count it honestly.</p><p>The generation cost four cents and took under a minute. That&#8217;s the number everyone quotes. But that was never the cost. The cost was the nine-hundred-word prompt in front of it, the four attempts to reach a usable whitebox, the time spent choosing among near-misses, the re-rolls that fixed one wall and broke another, and the simple fact that the artist I was supposedly replacing was still right there, now doing forensic correction instead of authorship. The four cents is real. It&#8217;s also the smallest line on the invoice.</p><p>What the tool actually did was move the labour, not remove it. It shifted the work from the front of the process, where an artist makes decisions from intent in a more or less straight line, to the back, where a producer reverse-engineers a machine&#8217;s near-misses inside a composition it chose. Reactive correction is slower and grimmer than authorship, and it fights you with sunk cost the whole way, because the image is <em>so close</em> and surely one more prompt does it.</p><p>That 19% is a room full of people who did this arithmetic on their own work and walked away from it as a shipping tool. Not because the pictures are bad. Because the fully-loaded path to a consistent set of them isn&#8217;t faster than the thing it was meant to replace. The studios that do use it well, <a href="https://inkration.com/ai-art-tools-for-game-studios-in-2026-what-actually-works-for-production/">by the reporting that exists</a>, have all landed in the same place: AI for pre-production exploration and pitch decks, artist-led pipelines, mandatory human paintover as a standard stage, consistency held together by curated prompt libraries and trained style anchors rather than by the base model. They didn&#8217;t find a shortcut. They built a frame strong enough to contain the tool, and kept the artist at the centre of it. That frame is a thing you build deliberately, and I&#8217;ve written before about <a href="https://open.substack.com/pub/gameproductionalchemist/p/the-production-context-stack?r=21y65c&amp;utm_campaign=post-expanded-share&amp;utm_medium=web">the configuration layer a production has to put around an AI model</a> before it behaves. The lesson from this job is that concept art needs one too.</p><div><hr></div><h2>What you can&#8217;t buy twice</h2><p>Here&#8217;s what keeps you pulling anyway. The first shot was eighty percent there. The model showed you, on day one, that it can deliver, so every miss after that feels like luck rather than a ceiling. The near-perfect image is stickier than a clean failure, because it reads as almost yours. And there&#8217;s never a moment the tool tells you to stop. It will always make one more.</p><p>And the hook doesn&#8217;t stop at the person holding the mouse. A dozen working concept artists <a href="https://www.creativebloq.com/3d/video-game-design/ai-was-supposed-to-make-artists-work-easier-its-doing-the-opposite">told Creative Bloq that AI made their jobs harder, not easier</a>, and the mechanism they named is the same one, scaled up the chain. Art directors anchor on the first AI image they&#8217;re shown, even when it&#8217;s spatially wrong or incoherent, and stronger human concepts then get measured against that first hit and rejected. The honeymoon pull doesn&#8217;t just trap the operator. It quietly resets the taste of the person approving the work. That&#8217;s the part that should worry a production lead more than any wasted afternoon: the tool isn&#8217;t only slow, it bends judgement toward whatever it happened to produce first.</p><p>The null seed is where the slot machine turns cruel. When the Barrag&#225;n marigold came back exactly right, when the Wright hearth got the glow, there was no way to keep it. No seed to bank, no coordinates to return to. A winning ticket I couldn&#8217;t photograph, in a lottery I couldn&#8217;t re-enter. All I could carry from one roll to the next were words, which is exactly why the prompts swelled into incantations describing outputs rather than inputs. &#8220;The back-right wall soars three times their height.&#8221; &#8220;Warm interior, like a Mexican hotel at dusk.&#8221; Those weren&#8217;t art direction. They were me trying to encode a result I&#8217;d already seen and lost, because language was the only thing the next roll would inherit.</p><p>The images at the end were genuinely remarkable. The dusk plaza with its lavender-to-amber sky over flat concrete exists because someone wrote nine hundred words exact enough to summon it. The prompts had become a strange new kind of technical writing, part fiction, part specification, part incantation, and the skill in them is precision, not creativity.</p><p>But remarkable and reproducible are different properties, and production runs on the second one. A commissioned artist holds the world in their head. They can give you the same helmet tomorrow, from the other side, after the note, in the marketing render, because the world persists in them between jobs. gpt-image-2 holds nothing between generations. So the job, the actual producer&#8217;s job in a pipeline like this, becomes supplying the memory and the determinism the tool refuses to keep. You are the seed it doesn&#8217;t have. This is the same problem I keep circling from other angles, <a href="https://open.substack.com/pub/gameproductionalchemist/p/ai-agentic-workflow-context-session-management-for-producers?r=21y65c&amp;utm_campaign=post-expanded-share&amp;utm_medium=web">how a producer carries state across sessions an AI model won&#8217;t remember</a>. Concept art turns out to be one more place where the human is the persistence layer.</p><p>The better these models get at making any single image, the less they hold of the one before it. We&#8217;ve built a tool that improves at everything except remembering what it just did, and handed the remembering back to the human who was told the tool would do it for them.</p><div class="callout-block" data-callout="true"><p>If this changed how you think about even one thing, the next post might too.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[The Artefact Arrived Before Anyone Was Ready to Review It]]></title><description><![CDATA[AI didn&#8217;t create the evaluation problem. It made ignoring it impossible to justify.]]></description><link>https://www.productionalchemist.com/p/ai-evaluation-shift-left-artefact-review</link><guid isPermaLink="false">https://www.productionalchemist.com/p/ai-evaluation-shift-left-artefact-review</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 29 Jun 2026 07:02:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-pbn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ul><li><p>Shift-left testing was coined in 2001. AI teams are discovering it the hard way in 2026.</p></li><li><p>A polished artefact arriving fast suppresses the review instinct in senior stakeholders.</p></li><li><p>AI multiplies transmission volume without expanding reception capacity.</p></li><li><p>Producers don&#8217;t just manage deliverables. They manage the channel.</p></li></ul><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qb8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" width="1024" height="207" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:207,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158576,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/203088136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leanpub.com/outlast-the-tools&quot;,&quot;text&quot;:&quot;Read the first few chapters. No strings.&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://leanpub.com/outlast-the-tools"><span>Read the first few chapters. No strings.</span></a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-pbn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-pbn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!-pbn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!-pbn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!-pbn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-pbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2168073,&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;:false,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/203675911?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.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_!-pbn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!-pbn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!-pbn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!-pbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc72a4-585a-46fa-bff3-d56b098ddd72_1477x1065.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://www.linkedin.com/in/pierry/">Cristiano Pierry</a> published <a href="https://www.linkedin.com/pulse/evaluation-layer-becoming-product-cristiano-pierry-6xdac/?trackingId=GT7nfbDgSq638aUsYJpjwg%3D%3D">a thoughtful piece last week</a> arguing that evaluation is becoming a product surface, not a back-office activity. He&#8217;s right about the problem. I want to push on the diagnosis.</p><p>The evaluation problem isn&#8217;t new. What&#8217;s new is the rate at which AI is making it impossible to ignore.</p><div class="callout-block" data-callout="true"><p>If this is useful, there's more where it came from. Multiple free posts a week on game production, applied AI, leadership and how the sausage actually gets made.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p>Larry Smith coined the term &#8220;shift left&#8221; in <a href="https://www.researchgate.net/publication/262216039_Shift-left_testing">a 2001 article in </a><em><a href="https://www.researchgate.net/publication/262216039_Shift-left_testing">Dr. Dobb&#8217;s Journal</a></em>. The idea is simple enough to fit on a Post-it: find defects earlier in the development lifecycle, because defects found late cost more to fix and cause more damage. Move quality gates left on the timeline, toward the work, rather than leaving them clustered at the end.</p><p>Game studios learned this expensively. I lived through the era when QA was something that happened after production, when the build was &#8220;done.&#8221; It wasn&#8217;t done. It was never done. It was just at a point where the team had run out of time to keep making it better. The bugs were always there. The only question was whether we found them in a sprint review or in a launch post-mortem.</p><p>The discipline eventually moved. Studios got better at involving QA earlier, at writing acceptance criteria before implementation, at treating a failed test in week three as cheaper than a failed launch in week forty. It required culture change, and culture change in studios is slow, but the direction was correct and the reasoning was sound.</p><p>What Pierry is describing, the need for evaluation to be continuous and structural rather than deferred and ritual, is shift-left applied to AI product work. The insight is good. The reason it keeps needing to be rediscovered is worth examining.</p><div><hr></div><p>The artefact is why.</p><p>In older workflows, the artefact moved slowly. A design review happened while sketches were still rough. A requirements review happened while the spec was still being written. The incompleteness of the thing in front of you was visible, and visibility triggers the review instinct. When something looks unfinished, people know to bring judgment to it.</p><p>AI collapses that gap. The first output is fluent and polished. It has the texture of something that has been through several iterations. It sounds confident. The UI renders. The copy flows. The prototype responds.</p><p>That texture short-circuits the review instinct in the people who most need to apply it.</p><blockquote><p>A fluent artefact does not mean a sound one. But it feels that way in the room, and feelings drive process.</p></blockquote><p>Senior stakeholders in a position of approval have a pattern I have seen repeatedly across studios and clients: they do not take early drafts seriously. They want to see it in situ. They want to see it on device. They resist forming a view until the thing feels real, which usually means until it looks finished.</p><p>This was already a problem before AI. With AI, it becomes a crisis, because the thing always looks finished. The prototype that takes forty minutes to build looks, to a distracted VP with fifteen minutes in their calendar, indistinguishable from the prototype that took four months. The review instinct never fires. The evaluation layer gets skipped.</p><p>Then ten more artefacts arrive the next day.</p><div><hr></div><p><a href="https://en.wikipedia.org/wiki/Shannon%E2%80%93Hartley_theorem">Shannon&#8217;s channel capacity theorem</a>, first published in 1948, describes the theoretical maximum rate at which information can be reliably transmitted over a communication channel given its bandwidth and signal-to-noise ratio. Exceed the capacity, and you don&#8217;t get a little degradation. You get overflow. The signal doesn&#8217;t slow down gracefully. It stops being received correctly.</p><p>Communication has two sides. Transmission and reception. Both sides matter, and they are not symmetrical.</p><p>AI has made the transmission side of product work effectively infinite. The cost of generating a prototype, a spec, a set of test cases, a visual variant, a conversation path has dropped so far that volume is no longer a practical constraint. A team that used to produce three artefacts a sprint can now produce thirty.</p><div class="callout-block" data-callout="true"><p>Thirty-plus years of production work went into this. Most of it didn&#8217;t make the post. New posts every week. Free to read, free to subscribe.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p>The reception side has not changed. Senior stakeholders have the same number of hours they always had. Their ability to process, evaluate, and form a judgment on what they are seeing has not increased. Their attention is a finite channel with a fixed capacity.</p><p>What happens when you transmit more information than the channel can receive? The buffer fills. The signal overflows. The receiver stops processing correctly, not because they are incompetent or disengaged, but because the incoming rate exceeds their capacity for reception.</p><p>This is not a stakeholder problem. It is a systems problem. And it is a producer problem.</p><div><hr></div><p>Producers are not just deliverable managers. They are communication channel managers. The job has always involved monitoring both sides of every information exchange: are we transmitting clearly, and is the receiving party actually receiving?</p><p>In practice, this means pacing. It means knowing that a stakeholder who has just reviewed six artefacts this week has a degraded capacity to usefully engage with a seventh. It means understanding that sending more is not the same as communicating more. It means recognising that an unanswered email chain with twelve attachments is a channel in overflow, not a team that is working hard.</p><blockquote><p>The temptation with AI is to celebrate throughput. The discipline is to regulate it.</p></blockquote><p>A team that uses AI to generate thirty artefacts and submits them all for review has not improved its output. It has created a reception problem. The evaluation that gets skipped is not a stakeholder failure. It is a production failure. Somewhere, someone chose to maximise transmission without accounting for what the receiving end could handle.</p><p>Shift-left does not solve this on its own. Moving the evaluation gate earlier helps when you have one artefact and a willing reviewer. When you have thirty artefacts and a reviewer whose buffer is already at capacity, shifting left just means the overflow happens sooner.</p><p>The producer&#8217;s job is to manage the flow rate. Decide what goes through the channel and when. Batch thoughtfully. Sequence for attention, not for volume. Give stakeholders the right thing to review at the right time, in a form that makes the review instinct fire rather than suppress.</p><div><hr></div><p>Pierry&#8217;s framing, that evaluation is becoming a product surface, is a useful provocation for teams that have not thought about it at all. For producers who have been doing this for any length of time, it is a restatement of something we already know: quality gates belong in the work, not at the end of it.</p><p>The part worth adding is this: when you can generate artefacts faster than your stakeholders can evaluate them, the constraint is no longer production. It is reception. And managing reception has always been part of the job.</p><p>The channel has a capacity. It always did. AI just made it possible to exceed that capacity so fast that no-one notices until the reviews stop happening, the sign-offs go quiet, and the artefacts keep coming. That is not a stakeholder attention problem. It is a production problem. And fixing it is the producer&#8217;s job.</p><div class="callout-block" data-callout="true"><p>If this changed how you think about even one thing, the next post might too.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Production 101 - #3 Role of an Internal Producer (Part 1)]]></title><description><![CDATA[The tools, relationships, and daily trade-offs that define the job]]></description><link>https://www.productionalchemist.com/p/production-101-3-role-of-an-internal</link><guid isPermaLink="false">https://www.productionalchemist.com/p/production-101-3-role-of-an-internal</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 24 Jun 2026 07:07:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wLP9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a43513c-7da9-4c9f-9c4f-f38e5fe27f92_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><a href="https://productionalchemist.com/">Game Production Alchemist</a> &#8250; <a href="https://productionalchemist.com/p/production-101">Production 101</a> &#8250; What Does an Internal Game Producer Do?</em></p><blockquote><ul><li><p>An internal producer is accountable to two things simultaneously: the schedule and the team. Those two accountabilities are not always in tension, but managing both honestly is what defines the role.</p></li><li><p>The responsibilities span schedule planning, cross-department coordination, budget management, scope control, <a href="https://productionalchemist.com/p/agile-risk-management-in-the-game">risk management</a>, and stakeholder communication.</p></li><li><p>There is no single correct path into internal production. QA, development roles, and product management are all common starting points.</p></li><li><p>The shape of the role depends heavily on studio size. A small studio&#8217;s internal producer is a generalist covering most of production; a large studio&#8217;s is typically a specialist owning one area deeply.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dWX0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dWX0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!dWX0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!dWX0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!dWX0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dWX0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2843943,&quot;alt&quot;:&quot;Production 101 thumbnail showing an internal game producer embedded inside a studio team and production workflow.&quot;,&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://gameproductionalchemist.substack.com/i/141606205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Production 101 thumbnail showing an internal game producer embedded inside a studio team and production workflow." title="Production 101 thumbnail showing an internal game producer embedded inside a studio team and production workflow." srcset="https://substackcdn.com/image/fetch/$s_!dWX0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!dWX0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!dWX0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!dWX0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25c5c3aa-de10-4e57-ab3a-2ff7f8148fc7_1456x1048.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is part of the <a href="https://productionalchemist.com/p/production-101">Production 101</a> series. <a href="https://productionalchemist.com/p/production-101-2-producers-job-roles">Post #2</a> covered the specific roles and levels in a studio&#8217;s production hierarchy. This post focuses on the internal producer specifically: what the role is structurally, what it requires of the person doing it, how people arrive at it, and what a working day looks like in practice.</p><div class="callout-block" data-callout="true"><p>If this is useful, there's more where it came from. Multiple free posts a week on game production, applied AI, leadership and how the sausage actually gets made.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><h2>What the Internal Producer Actually Is</h2><p>People often describe the internal producer as a project manager, and that description is accurate as far as it goes. The internal producer does manage the project. But the framing misses something that matters.</p><p>An internal producer carries two distinct accountabilities. The first is to the delivery: the schedule, the milestones, the deliverables, the expectations of everyone outside the team who has a stake in the outcome. This is the accountability most people think of when they think of production. It&#8217;s visible, it&#8217;s measurable, and when it goes wrong, everyone notices.</p><p>The second accountability is to the team: their capacity, their wellbeing, and the sustainability of their working environment. This one is less visible, but it shapes whether the team can keep functioning at a high level across the months and years a production actually takes. A producer who treats it as secondary tends to find that hitting short-term milestones comes at the cost of team stability, and that instability shows up in the work eventually.</p><blockquote><p>&#8220;An internal producer carries two distinct accountabilities. The first is to the delivery. The second is to the team.&#8221;</p></blockquote><p>The internal producer sits between the game&#8217;s vision and its execution. They don&#8217;t set the creative direction. They don&#8217;t write the code or build the assets or design the systems. What they do is create the conditions where all of those things can happen reliably, at a pace the team can sustain, to a standard the project requires.</p><p>That dual accountability is the structural truth of the role. Everything else in this post is detail that sits underneath it.</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qb8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" width="1024" height="207" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:207,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158576,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/203088136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leanpub.com/outlast-the-tools&quot;,&quot;text&quot;:&quot;Read the first few chapters. No strings.&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://leanpub.com/outlast-the-tools"><span>Read the first few chapters. No strings.</span></a></p><div><hr></div><h2>What the Role Requires Day to Day</h2><p>The responsibilities of an internal producer tend to fall into a set of recurring areas, though how much time any one of them takes depends on the phase of production and the studio&#8217;s size.</p><p>Schedule planning and milestone tracking are the foundation. The internal producer builds the production plan, maintains it as the project changes, and keeps track of whether the team is on course to hit the next milestone. This is not a static document updated once a week. It&#8217;s a living picture of where the project is, which requires constant input from every department.</p><p>Cross-department coordination is where much of the practical work lives. Art, design, and programming are all producing interdependent output, and the dependencies between them need active management. An artist can&#8217;t finish a character if the design specification is still in flux. A programmer can&#8217;t integrate a feature if the build is broken. The internal producer is the person monitoring those dependencies and moving things before they become blockers.</p><p>Budget management sits alongside the schedule. The internal producer owns the financial picture of the project: what was budgeted, what has been spent, what is committed, and where the gaps are. On smaller teams the producer may own vendor relationships and payments directly. On larger productions there&#8217;s usually finance involvement, but the producer remains accountable for knowing the numbers.</p><p><a href="https://productionalchemist.com/p/scope-management-for-game-development">Scope management</a> and risk management are related. Scope will change during any production. Features get added, features get cut, platform requirements shift, playtest feedback reveals something that needs rethinking. The internal producer&#8217;s job is to manage those changes in a way that doesn&#8217;t quietly move the goalposts for everyone else. Risk management is the forward-looking version of the same work: identifying what could go wrong before it does, and <a href="https://productionalchemist.com/p/game-production-forecasting-flow-metrics-vs-pert-estimates">building contingency into the plan while it&#8217;s still possible</a>.</p><p><a href="https://productionalchemist.com/p/steering-the-boat-towards-excellence">Stakeholder communication runs through everything.</a> Publishers, investors, studio leadership, and platform holders all need a picture of where the project is and where it&#8217;s going. The internal producer is typically responsible for that picture. Getting it wrong in either direction, by being too optimistic or too pessimistic, causes different problems but both are expensive.</p><blockquote><p>&#8220;Scope will change during any production. The internal producer&#8217;s job is to manage those changes in a way that doesn&#8217;t quietly move the goalposts for everyone else.&#8221;</p></blockquote><p><a href="https://productionalchemist.com/p/shifting-games-qa-left-building-better">Quality assurance</a> sits in a complicated relationship with production. The internal producer doesn&#8217;t run QA, but they do own the conditions that let QA do its job: making sure builds reach the testing team in a state worth testing, that defect tracking is integrated into the milestone picture, and that feedback from playtests gets into the development process in a form designers and engineers can act on.</p><p>Most productions of any size use some flavour of <a href="https://productionalchemist.com/p/agile-is-a-mindset-not-a-method">agile methodology</a>. <a href="https://productionalchemist.com/p/evolve-from-scrum-to-kanban-flow">Scrum and Kanban are the most common</a>, though studios frequently run hybrids adapted to game development&#8217;s particular rhythms. The internal producer needs to understand the methodology well enough to run it intelligently, to know when to hold the process and when to adapt it, and to explain to the team why the process serves the work rather than the other way around.</p><div class="callout-block" data-callout="true"><p>Thirty-plus years of production work went into this. Most of it didn&#8217;t make the post. New posts every week. Free to read, free to subscribe.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><h2>Who Becomes an Internal Producer?</h2><p>There is no degree that leads directly to internal production, and no single career path that defines it. I&#8217;ve seen people arrive in this role from every direction, and the variety is genuine rather than the result of a permissive industry.</p><p>The most common starting point is game testing. QA work builds familiarity with the full project across all disciplines, and a good QA lead is already doing a version of production work: tracking issues, coordinating responses, managing relationships with multiple teams. The step into production is a natural one for someone who has been paying attention to how the project works rather than just cataloguing defects.</p><p>Development roles are another path. Programmers, artists, and designers who find themselves drawn to the whole project rather than just their piece of it sometimes move across. They bring something that pure administrators don&#8217;t: a working understanding of how the craft actually happens, which makes them more credible in conversations about feasibility and risk.</p><p>Product management from outside the games industry has become more common as studios have grown and professionalised. The planning and stakeholder management skills transfer well. The gap is games knowledge, and that can be closed over time, though it takes longer than people expect.</p><p>Education backgrounds in the people I&#8217;ve worked with span game design, computer science, digital media, business, humanities, and several things I wouldn&#8217;t have predicted. What they have in common is less about what they studied and more about what they developed: the ability to organise complex work, communicate clearly across people with genuinely different working languages, and think about the project as a system.</p><blockquote><p>&#8220;The variety of routes into internal production is genuine rather than the result of a permissive industry.&#8221;</p></blockquote><p>One thing I&#8217;d add, based on what I&#8217;ve seen across thirty years: <a href="https://productionalchemist.com/p/good-producers-have-an-investigative">the people who do well in this role tend to be the ones who were always asking questions at whatever they did before</a>. The QA tester who wanted to know why a design decision was made that way. The programmer who noticed how the team&#8217;s morale changed when planning slipped. That curiosity about the whole, rather than the part, is usually already present in the people who go on to produce well.</p><h2>What the Job Actually Looks Like</h2><p>I&#8217;ll describe what a production day looks like for me, with the caveat that every project has its own rhythm and no two days are identical.</p><p>The morning starts with standup, and with checking whatever has come in overnight. On multisite projects or anything with partners in different time zones, overnight can mean anything. I want to know before standup whether anything has changed that affects what I&#8217;m going to say, so I&#8217;m reading messages and build reports before I&#8217;m in the room.</p><p><a href="https://productionalchemist.com/p/rethinking-daily-stand-up-meetings">Standup itself is a fifteen-minute read on the state of each department.</a> The goal is the team hearing each other&#8217;s blockers and making decisions about them. My job in that room is to ask the questions that don&#8217;t get asked without prompting, and to take note of the things that need follow-up.</p><p>The mid-morning is usually where the deeper work happens, before the afternoon fills with calls. This is when I&#8217;m in conversations with art about where a batch of assets is relative to where it needs to be, or with design about whether a feature has drifted from the original specification in ways that will cause downstream problems. These conversations are often shorter than I expect, and more useful than any written update I could have asked for.</p><p>Lunch is not a productivity opportunity. It&#8217;s the time I&#8217;ve found most useful for understanding how the team is actually doing, which is different from how the project is doing. Those two pictures sometimes diverge, and <a href="https://productionalchemist.com/p/feedback">you notice it earlier in an informal conversation than you do in any structured check-in</a>.</p><p>The afternoon shifts toward the outward-facing side of the role. This is typically when I&#8217;m putting together updates for whoever the project is accountable to externally: the publisher, the platform partner, studio leadership if that&#8217;s a separate relationship. <a href="https://productionalchemist.com/p/your-roadmap-is-a-lie">The discipline of preparing those updates is useful even on projects where nobody is watching closely, because it forces me to know whether the picture I&#8217;m presenting is the one I actually believe.</a></p><p>Late in the day is when I&#8217;m catching things that have slipped through the rest of it: tasks that have stalled without explanation, dependencies that have shifted, anything that looks like it needs to be in the plan but isn&#8217;t yet. I do most of my documentation at this point too, because <a href="https://productionalchemist.com/p/why-game-design-docs-still-matter">the decisions made during the day need a record</a>, and that record rarely exists without someone deliberately creating it.</p><blockquote><p>&#8220;The decisions made during the day need a record, and that record rarely exists without someone deliberately creating it.&#8221;</p></blockquote><p>The end of the day is preparation for the next one. Not the next week, not the next milestone. The next day.</p><div><hr></div><h2>How Studio Size Changes the Role</h2><p>One thing the job title doesn&#8217;t tell you is how much the role varies depending on where you&#8217;re doing it.</p><p>At a small studio, the internal producer is effectively covering all of production. You&#8217;re planning the schedule, managing the budget, running standups, coordinating with any external partners, handling stakeholder communication, and doing the administrative work that keeps the project moving. There may be no one else in the production function. You are it.</p><p>At a large studio, the same title describes something much more specific. You might own the schedule for one content track, or be the production lead for a single feature team, with other producers covering adjacent areas. The depth is greater and the scope is narrower. You&#8217;re a specialist, and the studio expects you to be.</p><p>Neither version of the role is better than the other. They develop different skills. The small studio producer develops range: the ability to pick up any production problem and address it. The large studio producer develops depth: a detailed understanding of how one part of the production machine works.</p><p>If you&#8217;re at the start of your career and trying to decide which environment to aim for, the honest answer is that both will teach you things the other won&#8217;t. What matters is being clear about which version of the job you&#8217;re actually taking on, because the gap between what the title implies and what the role requires is sometimes significant. A producer hired for a large studio&#8217;s specialist track who expects the breadth of a small studio producer will be frustrated. The reverse is equally true.</p><p>The other variable is methodology. Some studios are committed to Scrum. Some run Kanban. Most all use hybrid approaches that have developed over years to fit specific production contexts. The internal producer needs to be fluent enough in the underlying principles that they can work in any of these environments, because the studio&#8217;s process is a given by the time you arrive.</p><div><hr></div><p>Part 2 of this post covers the tools of the trade, how the internal producer works with each department, why communication is where most production problems start, and the longer-term challenges and rewards of the role. <a href="https://productionalchemist.com/p/production-101-3-role-of-an-internal">Production 101 #3: Part 2 - The Tools, Relationships, and Daily Trade-offs</a> picks it up from there.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a6dc6ef1-4574-4da8-8764-dd454c3733d4&quot;,&quot;caption&quot;:&quot;What game production actually is, without the jargon&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Production 101 - Start Here&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124206240,&quot;name&quot;:&quot;Rob Sandberg&quot;,&quot;bio&quot;:&quot;Seasoned game producer with 30 years in the field. I blend insight with fun, mentor teams, and champion agile, efficient game production. Focused on player experience, I build consensus and value adaptability in this ever-evolving industry.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72cb7a5b-f489-4eab-9035-6339bf2007fa_457x573.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-06-05T06:49:18.407Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10692eed-dabd-4e78-8ad1-eef924b77fe5_1734x907.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.productionalchemist.com/p/production-101&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:141459520,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2231603,&quot;publication_name&quot;:&quot;Game Production Alchemist&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0_I_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c8fe75-257b-4ce8-a63c-db3bd0401a49_256x256.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="callout-block" data-callout="true"><p>If this changed how you think about even one thing, the next post might too.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Rockstar Fired Thirty-Four People and Made the Union Stronger: What That Means for GTA 6]]></title><description><![CDATA[A labour dispute mid-final-crunch is a production risk nobody is modelling]]></description><link>https://www.productionalchemist.com/p/rockstar-union-gta6-crunch-tribunal</link><guid isPermaLink="false">https://www.productionalchemist.com/p/rockstar-union-gta6-crunch-tribunal</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 24 Jun 2026 06:55:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!apAP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ul><li><p>How Rockstar&#8217;s October 2025 mass firing triggered the opposite of its intended effect</p></li><li><p>Why the Rockstar Game Workers Union launched five months before GTA 6&#8217;s ship date</p></li><li><p>What a confirmed full employment tribunal hearing means for a studio in final production</p></li><li><p>The production risk hiding inside every labour story the industry is treating as HR news</p></li></ul><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qb8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" width="1024" height="207" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:207,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158576,&quot;alt&quot;:&quot;&quot;,&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://www.productionalchemist.com/i/203088136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leanpub.com/outlast-the-tools&quot;,&quot;text&quot;:&quot;Read the first few chapters. No strings.&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://leanpub.com/outlast-the-tools"><span>Read the first few chapters. No strings.</span></a></p><div><hr></div><p>On 30 October 2025, Rockstar Games fired 34 employees across its UK and Canadian offices. The reason given: gross misconduct, specifically the sharing of confidential information in what Rockstar characterised as a public forum. The IWGB, which had been quietly organising inside Rockstar for months, characterised it differently. Their workers had just reached the 10% membership threshold required under UK law to formally seek union recognition. The firings came two days later.</p><p>The union&#8217;s response, delivered on 28 May 2026, was a video timed to look exactly like a GTA 6 trailer drop.</p><p>It was not a trailer.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!apAP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!apAP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png 424w, https://substackcdn.com/image/fetch/$s_!apAP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png 848w, https://substackcdn.com/image/fetch/$s_!apAP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!apAP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!apAP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2093952,&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;:false,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/203088136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.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_!apAP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png 424w, https://substackcdn.com/image/fetch/$s_!apAP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png 848w, https://substackcdn.com/image/fetch/$s_!apAP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!apAP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c775c0-82a4-46cf-ace1-3e962449147e_1500x1000.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What happened, in sequence</h2><p>The <a href="https://gamedev.net/news/rockstar-vs-the-independent-workers-union-of-great-britain-a-timeline-of-events-so-far-r3661/">timeline documented by GameDev.net and confirmed across multiple sources</a> runs like this:</p><p>Workers at Rockstar&#8217;s UK studios began organising in early-to-mid 2025, using a private Discord channel set up by the IWGB. In October, they crossed the 10% density threshold. On 30 and 31 October, Rockstar dismissed 31 UK employees and 3 in Canada. All 31 UK workers fired were union members.</p><p>Rockstar&#8217;s stated position, per a spokesperson quoted by Bloomberg: the workers had been &#8220;discussing confidential information in a public forum,&#8221; which constituted gross misconduct. The forum in question was the private union Discord. <a href="https://www.techradar.com/gaming/new-ruling-in-rockstar-games-legal-battle-means-the-gta-6-studio-wont-be-forced-to-pay-fired-employees-interim-relief">Rockstar also alleged, per TechRadar</a>, that a union staff member may have been impersonated to gain access to the channel.</p><p>The IWGB filed unfair dismissal claims immediately. A preliminary tribunal in Glasgow on 5 January 2026 considered a request for interim relief, which would have reinstated the fired workers to Rockstar&#8217;s payroll while the full case proceeded. The tribunal declined to grant it. Interim relief carries a high legal bar. The IWGB&#8217;s position, per president Alex Marshall: &#8220;We&#8217;ve come out of last week&#8217;s hearing more confident than ever that a full and substantive tribunal will find Rockstar&#8217;s calculated attempt to crush a union to be not only unjust but unlawful.&#8221;</p><div class="callout-block" data-callout="true"><p>If this is useful, there's more where it came from. Multiple free posts a week on game production, applied AI, leadership and how the sausage actually gets made.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><p>Meanwhile, <a href="https://www.videogameschronicle.com/news/220-rockstar-north-staff-have-signed-a-letter-demanding-their-fired-colleagues-are-immediately-reinstated/">220 current Rockstar employees signed a letter demanding the immediate reinstatement of their colleagues</a>. <a href="https://www.computerweekly.com/news/366643401/MPs-call-out-Rockstar-Games-over-alleged-Union-busting">Three Scottish Labour MPs, Chris Murray, Tracy Gilbert, and Dr Scott Arthur, publicly accused the company of stonewalling legal proceedings</a>. <a href="https://www.videogameschronicle.com/news/uk-pm-keir-starmer-says-the-government-will-look-into-rockstars-recent-layoffs-amid-allegations-of-union-busting/">UK Prime Minister Keir Starmer called the case &#8220;deeply concerning&#8221; at Prime Minister&#8217;s Questions and committed ministers to investigate</a>. Protests ran in London, Edinburgh, Paris, and New York.</p><p>Union membership, briefly dropped below 10% by the firings, climbed back above the threshold. Then kept climbing.</p><p>On 28 May 2026, <a href="https://thisweekinvideogames.com/news/rockstar-games-workers-form-uk-union/">the Rockstar Game Workers Union publicly launched</a> under the IWGB, covering all five UK studios: Edinburgh, London, Leeds, Lincoln, and Dundee. The launch video hijacked the expectation of a GTA trailer by opening with the exact tone and pacing the community was waiting for, then pivoting to a seven-month account of firings, protests, and legal proceedings.</p><p>It has been watched by rather a lot of people.</p><div><hr></div><h2>This is a production story, not an HR story</h2><p>The game industry and its press have mostly covered this as a labour rights story. It is that. It is also a live production risk on the most expensive game ever made, and almost nobody is framing it that way.</p><p>GTA 6 is scheduled for November 19, 2026. The union launched on May 28. That is less than five months from public launch to ship date. In production terms, that is the period when crunch is at its peak, when milestone pressure is at its highest, when the team is most stretched and most dependent on institutional knowledge.</p><blockquote><p>&#8220;Behind every success story are tragedies such as layoffs, burnout, and broken promises. The industry must change, and together we will make it happen.&#8221; &#8212; Rockstar Game Workers Union launch statement, May 2026</p></blockquote><p>That statement was made by people currently building GTA 6. During crunch. While an employment tribunal is confirmed. While their colleagues are running a public fundraiser for the legal defense. While management has, per <a href="https://www.pcgamer.com/gaming-industry/6-months-before-the-launch-of-grand-theft-auto-6-rockstar-employees-in-the-uk-have-formed-a-union/">PC Gamer&#8217;s reporting</a>, not publicly responded to the union&#8217;s formation in any form.</p><p>The three demands are straightforward: pay transparency, flexible working, and an end to crunch. The flexible working demand connects directly to Rockstar&#8217;s 2024 return-to-office mandate, which <a href="https://spilled.gg/rockstar-developers-union-iwgb-gta-6-development/">per Spilled.gg</a> required staff in five days a week, citing productivity and security concerns following the major GTA 6 leak. The crunch demand is the direct subject of this series.</p><p>None of these demands have been recognised by Rockstar or Take-Two. The union is not yet formally recognised. What it has is a confirmed full tribunal hearing, granted this week, public political support in the UK, and a membership that grew after the company tried to eliminate it.</p><div id="youtube2-3KZCe7EvNbc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;3KZCe7EvNbc&quot;,&quot;startTime&quot;:&quot;5s&quot;,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/3KZCe7EvNbc?start=5s&amp;rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>The suppression playbook failed</h2><p>From a purely strategic standpoint, what Rockstar did in October 2025 was the standard union-suppression move: identify the organising cohort, find a legally defensible reason to terminate, act before the recognition threshold is formally crossed.</p><p>It did not work.</p><p>The reason it did not work, in the UK specifically, is that the legal environment is less forgiving than in the US. The Employment Rights Act gives workers meaningful protections. Unfair dismissal claims are relatively accessible. The burden of proving the dismissals were for genuine misconduct rather than union activity will fall on Rockstar in a full tribunal, and their barrister was already characterised as presenting a &#8220;smokescreen&#8221; during the interim hearing.</p><p>More practically: firing 34 people who are organising turns 34 private organisers into 34 public martyrs. The story that was previously invisible inside a private Discord became a parliamentary issue, a protest in four cities, and a globally covered launch video timed to the most anticipated game announcement window of 2026.</p><p><a href="https://www.gtaboom.com/gta-6-developers-go-public-with-first-rockstar-games-union-bd4a">As GTA Boom noted</a>, every action Rockstar took to suppress the organising produced the opposite of its intended effect. This is not a novel outcome. It is the documented pattern every time suppression tactics are applied to a workforce that has already committed to organising.</p><p>The <a href="https://www.theregister.com/offbeat/2026/06/19/rockstar-games-faces-full-hearing-over-alleged-union-busting/5258514">full tribunal ruling, confirmed this week by The Register</a>, goes further than unfair dismissal. The IWGB will now argue that Rockstar compiled a blacklist, a physical or mental record of workers engaged in union activity, used to identify and target those dismissed. Blacklisting carries specific legal weight in the UK under the Employment Relations Act. Rockstar declined to comment on ongoing legal matters.</p><p>One more thing worth noting. Around the time the union launched, Take-Two CEO Strauss Zelnick told Fortune that Rockstar &#8220;doesn&#8217;t participate in crunch&#8221; and that the studio&#8217;s focus is &#8220;first and foremost on making a quality game.&#8221; The workers who just secured a full tribunal hearing on whether their colleagues were blacklisted for organising against crunch had no comment.</p><div class="callout-block" data-callout="true"><p>Thirty-plus years of production work went into this. Most of it didn&#8217;t make the post. New posts every week. Free to read, free to subscribe.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div><h2>What this means for final production</h2><p>I&#8217;m not going to speculate about whether GTA 6 ships on time. Rockstar has slipped schedules before and delivered eventually. What I will say is that the production conditions for this final push are unlike any AAA title in recent memory.</p><p>The team building GTA 6 is simultaneously in final crunch, navigating an active employment tribunal involving their former colleagues, working for management that has publicly declined to engage with their union, and operating under a return-to-office mandate that sits directly against one of the union&#8217;s three stated demands.</p><p>Crunch and contested labour relations in the same final sprint is not an abstract policy problem. It is a morale problem, a retention problem, and an institutional knowledge problem, all at once, in the window when a studio can least afford any of them.</p><p>The Naughty Dog model described in the <a href="https://gameprodactionalchemist.substack.com">second post in this series</a> works partly because the contract between the studio and its workers is, however exploitative, clear. Stay, work hard, get a large bonus, leave when you&#8217;re done. Everyone understands the terms.</p><p>At Rockstar right now, the terms are contested. Management and workers are arguing, through lawyers and a tribunal, about what the terms even were. That is a fundamentally different production environment.</p><p>GTA V shipped in 2013 on a team that did not have a union, a tribunal, or 220 colleagues signing reinstatement letters. GTA 6 will ship on a team that has all three. Whether that produces a better or worse outcome for the game is genuinely unclear to me.</p><p>What is clear is that the crunch model described in Post 2 of this series, the bonus-incentivised voluntary overtime that Naughty Dog codified after The Last of Us, requires a workforce that has accepted the terms. When a meaningful portion of that workforce has formally and publicly refused them, the model stops being voluntary in any meaningful sense.</p><p>The next post looks at the mechanism behind Zelnick&#8217;s claim: how bonus-incentivised overtime at studios like Naughty Dog creates crunch without a single written policy requiring it.</p><div><hr></div><p><em>This is Post 1 of 3 in The Crunch Files series. Post 2 covers how bonus-incentivised overtime creates crunch without mandating it. Post 3 covers the Game Workers&#8217; Bill of Rights and what the proposals actually mean in production terms.</em></p><div class="callout-block" data-callout="true"><p>If this changed how you think about even one thing, the next post might too.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Outlast the Tools: A Game Producer's Field Guide to AI]]></title><description><![CDATA[Production craft doesn't change when the tools do.]]></description><link>https://www.productionalchemist.com/p/game-producer-guide-to-ai</link><guid isPermaLink="false">https://www.productionalchemist.com/p/game-producer-guide-to-ai</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 22 Jun 2026 20:14:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jkfd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ul><li><p>AI collaboration rewards producers who already manage context, decompose work, and evaluate output. This book explains why, and what to do with it.</p></li><li><p>Twelve chapters covering the five transferable producer skills, operational infrastructure, constraint theory, flow metrics, and how to read AI output like a status update.</p></li><li><p>Every framework here outlasts any model release. Nothing is built around a named tool.</p></li><li><p>Written by a producer with thirty years in the industry, across mobile F2P, live service, and AAA. </p></li></ul><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;d750a02a-311b-41d3-806b-b9d2f0a2572c&quot;,&quot;duration&quot;:null}"></div><blockquote><p>Game producers already have most of what AI collaboration requires. They have been managing context, decomposing work, and evaluating output for years. This book is the map from where they are to where the work is going.</p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leanpub.com/outlast-the-tools&quot;,&quot;text&quot;:&quot;Read the first few chapters. No strings.&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://leanpub.com/outlast-the-tools"><span>Read the first few chapters. No strings.</span></a></p><p><span>The tools are moving faster than any book can track. That is not the problem this book solves.</span></p><p><span>The problem is the translation gap. Working game producers already have most of what effective AI collaboration requires. They have been managing context, decomposing work, and evaluating output from human collaborators for years. The distance between where producers are and where they need to be is shorter than the industry is making it sound.</span></p><p><span>What is missing is the map.</span></p><p><em><strong><a href="https://leanpub.com/outlast-the-tools">Outlast the Tools</a></strong></em><a href="https://leanpub.com/outlast-the-tools"><span> </span></a><span>is that map. Across twelve chapters, it covers the five transferable producer skills, how to build an AI operational harness that runs at 98.4 per cent deterministic infrastructure, how to manage context so that work does not disappear between sessions, and how to apply constraint theory, forecasting discipline, and flow metrics to AI-integrated delivery. The final chapters cover reading AI output with the same investigative habit that experienced producers apply to status updates. Confident, fluent, and wrong is a failure mode that looks identical whether the source is a team member or a language model.</span></p><p><span>The book is deliberately tool-agnostic. No chapter is built around a named product. The field moves too fast for named recommendations to hold. Producers who build their AI workflows around a framework will outlast every model release. Producers who build around a specific tool will be rebuilding every eighteen months.</span></p><p><span>The authority here comes from the seat, not the whiteboard. Thirty years shipping games. The argument is not that AI will change everything. The argument is that the producers best positioned to lead that change are already in the building, and they are closer to ready than anyone has told them.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jkfd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jkfd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!jkfd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!jkfd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!jkfd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jkfd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:295494,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/203135386?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.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_!jkfd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!jkfd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!jkfd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!jkfd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097594b5-6253-4d9b-bdb5-4289bfaafc94_1456x1048.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><span>Table of Contents</span></h2><ul><li><p><a href="https://leanpub.com/outlast-the-tools">Introduction: Thirty Years and One Honest Admission</a></p></li><li><p><a href="https://leanpub.com/outlast-the-tools">The Thing AI Cannot Do</a></p></li><li><p><a href="https://leanpub.com/outlast-the-tools">Chapter 1: Your Expertise Is Invisible. AI Just Made It Visible.</a></p></li><li><p><a href="https://leanpub.com/outlast-the-tools">Chapter 2: Engineers Had to Invent What You Already Do</a></p></li><li><p>Chapter 3: The System Is the Work</p></li><li><p>Chapter 4: The Model Will Change. Build Accordingly.</p></li><li><p>Chapter 5: Before the Idea Hardens</p></li><li><p>Chapter 6: Requirements Are Hypotheses</p></li><li><p>Chapter 7: The Constraint Is Not Where You Think It Is</p></li><li><p>Chapter 8: Design the Environment, Not the People</p></li><li><p>Chapter 9: Quote a Probability, Not a Promise</p></li><li><p>Chapter 10: Assume Nothing</p></li><li><p>Chapter 11: Make Competence Legible</p></li><li><p>Chapter 12: The Loop With a Human in It</p></li><li><p>Closing Bookend: Is It Actually Better?</p></li><li><p>About the Author</p></li></ul><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qb8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png" width="1024" height="207" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:207,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158576,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.productionalchemist.com/i/203088136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 424w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 848w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1272w, https://substackcdn.com/image/fetch/$s_!Qb8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07195c9e-7b61-4ea0-8c84-94dd2e53a2c1_1024x207.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leanpub.com/outlast-the-tools&quot;,&quot;text&quot;:&quot;Read the first few chapters. No strings.&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://leanpub.com/outlast-the-tools"><span>Read the first few chapters. No strings.</span></a></p><div><hr></div><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Three Laws Your Studio Is Already Breaking]]></title><description><![CDATA[Why predictable delivery keeps slipping, and where to look first]]></description><link>https://www.productionalchemist.com/p/littles-law-conways-law-constraints-game-studio-delivery</link><guid isPermaLink="false">https://www.productionalchemist.com/p/littles-law-conways-law-constraints-game-studio-delivery</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 22 Jun 2026 07:01:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XhSk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>Little&#8217;s Law says lead time equals WIP divided by throughput. Studios treat a full pipeline as good news.</p></li><li><p>Goldratt says every system has one constraint. Optimising everything else is wasted effort.</p></li><li><p>Conway&#8217;s Law says your pipeline looks like your org chart. Reorganising teams without changing communication changes nothing.</p></li><li><p>The three laws compound. That&#8217;s why fixing one thing rarely fixes the problem.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XhSk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XhSk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!XhSk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!XhSk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!XhSk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XhSk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2036625,&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://gameproductionalchemist.substack.com/i/199163210?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.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_!XhSk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!XhSk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!XhSk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!XhSk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96f7545-0497-4da8-95ba-969a9d0f9cdc_1477x1065.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There&#8217;s a pattern I&#8217;ve seen enough times that it no longer surprises me. A studio with no shortage of work, no shortage of people, and no shortage of slipping dates. Everyone is busy. Nothing is shipping on time. Ask why, and you get a different answer depending on who you ask: scope, resourcing, communication, dependencies, leadership. Everyone is right about a symptom. Nobody is right about the cause.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>The cause, in most cases, is that three well-understood laws are being broken simultaneously. The laws aren&#8217;t obscure. They predate the game industry by decades. Two come from hard science, one from observation, and none of them care whether you&#8217;re aware of them. You don&#8217;t need to believe in them for them to operate on your project.</p><p>I&#8217;m going to describe each one and what it looks like when a studio breaks it. Then I want to explain why they compound, because that&#8217;s where the diagnostic value sits. Individual symptoms point to individual laws. When a project is genuinely in trouble, you&#8217;re usually dealing with all three at once.</p><div><hr></div><h2>Little&#8217;s Law and the full-pipeline trap</h2><p>Little&#8217;s Law comes from queuing theory. The equation is: lead time equals work in progress divided by throughput. If you want things to move faster through your pipeline, you either increase throughput or reduce what&#8217;s in the pipeline. There is no third option.</p><p>The studios I&#8217;ve seen struggle with this treat a full pipeline as a sign of health. A backlog stretching five cycles deep reads as security: work lined up, team occupied, no gaps. What it actually signals is slower delivery per item, because every new thing you start competes with everything already in flight for attention, handoffs, and reviews. You&#8217;re not preventing gaps. You&#8217;re lengthening the queue.</p><p>An empirical study of over 8,000 work items across five software teams confirmed what the equation already predicts: lower WIP correlates directly with shorter lead times. This is not a management theory. It&#8217;s arithmetic.</p><p>I watched one studio respond to slipping dates by adding people. It&#8217;s the intuitive move. More hands, more output, faster delivery. Except their WIP didn&#8217;t shrink, it grew. New team members meant new work started, new dependencies created, more items entering the pipeline simultaneously. Lead times continued climbing. They&#8217;d addressed capacity without addressing flow. Two different problems, easily confused.</p><p>The backlog isn&#8217;t a list of priorities. It&#8217;s an active liability if it&#8217;s too long. Every item sitting in it is lead time waiting to accumulate. The length of your backlog predicts your delivery pace as directly as the WIP equation does, because a bloated backlog is just upstream WIP with better formatting.</p><p>The fix feels wrong. Stopping new work from starting, pushing back on scope, enforcing WIP limits all look like slowdowns. The board moves faster when there&#8217;s less on it. Studios that accept this take a short-term hit to utilisation and a significant long-term gain in throughput. Most studios accept neither, so they add people and watch the dates slip.</p><h2>Goldratt&#8217;s constraint and the optimisation trap</h2><p>Eliyahu Goldratt&#8217;s observation, which he formalised into the Theory of Constraints, is that every system has exactly one element limiting its throughput at any given time. One constraint. Not several.</p><p>The implication is uncomfortable. If you accept it, everything you do to improve a non-constrained resource is theatre. You&#8217;re making a part of the system faster that isn&#8217;t the limiting factor. The system&#8217;s overall output stays the same. You just feel like you&#8217;re doing something.</p><blockquote><p>&#8220;The constraints will determine the output of the system whether they are acknowledged and managed or not.&#8221;</p></blockquote><p>I&#8217;ve seen this play out in a way that looked, at the time, like productive management. The studio had an obvious constraint: review and approval. The board made it visible. Work stacked up waiting for sign-off at a rate that had been consistent for months. The response was to hire more artists. The logic seemed sound: output was too low, add capacity. Except output wasn&#8217;t the constraint. Reviews were. More artists meant more work completed per cycle, which meant more items entering the review queue, which meant the queue grew faster, which meant lead times kept climbing despite the additional headcount.</p><p>The constraint was optimised around, not at. Nobody in a position to fix the review process owned the problem, and nobody who owned the problem had the authority to fix it. The constraint stayed. The payroll grew.</p><p>This is common because constraints are politically inconvenient. They tend to sit in approval paths, in senior decision-making, in resource handoffs that cross team boundaries. Fixing them requires authority that producers often don&#8217;t have and conversations that organisations often avoid. Hiring more people or switching tools are easier decisions with cleaner paper trails.</p><p>Goldratt&#8217;s prescription for non-constrained resources is to keep them deliberately underloaded, somewhere around 80-85% of capacity, so they don&#8217;t produce faster than the constraint can process. This sounds like waste to a studio that measures utilisation. It isn&#8217;t. Full utilisation upstream of a bottleneck is how you build a queue. A queue is stored lead time. You&#8217;re not saving time by keeping everyone busy; you&#8217;re borrowing against future delivery.</p><p>The goal isn&#8217;t to find the constraint and then optimise everything around it. The goal is to find it, protect it with buffer, fix it, and then find the next one. The constraint moves. The method doesn&#8217;t.</p><h2>Conway&#8217;s Law and the reorganisation trap</h2><p>Melvin Conway&#8217;s observation from 1968 has held up without much amendment: organisations design systems that mirror their own communication structures. In game development, that means your pipeline will look like your org chart. Your dependency map will follow your reporting lines. Your integration problems will appear precisely at the boundaries between your teams.</p><p>This isn&#8217;t a cultural observation. It&#8217;s a structural one. You can&#8217;t design a system that communicates differently from the organisation that built it, because the design decisions are made by people talking to each other, and their conversations are bounded by how the organisation allows them to talk. The system is a projection of those conversations.</p><p>I&#8217;ve seen this in two forms, which are instructive in different ways.</p><p>The first: a studio reorganised into cross-functional squads. The intention was faster feature delivery, fewer handoffs, more ownership per squad. In practice, the squads worked like squads in their daily check-ins and like siloed departments in every decision that required sign-off. The reporting lines didn&#8217;t change. The approval paths didn&#8217;t change. The communication structure didn&#8217;t change. At integration, the work looked exactly like work produced by siloed departments, because the squads were siloed departments with a different name on the org chart.</p><p>The second is stranger and, once you know the law, completely predictable. A shipped game whose architecture nobody deliberately designed. The rendering pipeline, the content pipeline, the live systems, all cleanly separated in ways that matched the team structure almost exactly. Art, engineering, and LiveOps had operated largely independently throughout production. The game reflected that. The seams in the product were at the same places as the seams in the team.</p><p>Conway&#8217;s Law doesn&#8217;t discriminate between good and bad outcomes. It maps communication structure to system design. If the communication pattern suits what you&#8217;re building, the system will suit it too. If the communication is fractured, siloed, or running along the wrong boundaries for the product, the system will be fractured in exactly the same places.</p><p>The inverse version of the law is the useful one for producers: if you want a particular system design, build the communication structure that would naturally produce it. Reorganising the boxes on a chart is not the same thing.</p><div><hr></div><h2>Why they compound</h2><p>The reason fixing one thing rarely fixes the problem is that the three laws interact, and they interact in ways that accelerate each other.</p><p>High WIP starves the constraint. When everything is in flight simultaneously, the constraint receives an uneven stream of work: bursts followed by gaps, or more than it can process without the upstream teams noticing. Neither is good. Goldratt&#8217;s prescription of a buffer before the constraint only works if WIP is controlled enough for the buffer to be meaningful. If the whole system is overloaded, there&#8217;s no clean buffer, only a general backlog that hides where the real pressure is.</p><p>A mismanaged constraint accelerates WIP accumulation. Work completes upstream faster than it clears downstream. The queue grows. Lead times extend. Teams interpret the delays as a coordination problem rather than a throughput problem and respond by starting more work to demonstrate progress. Which grows the WIP. Which grows the lead times.</p><p>An org structure that fights the work pattern prevents either from being fixed. If the people who can see the constraint don&#8217;t own it, and the people who own it can&#8217;t see it, the diagnosis doesn&#8217;t happen. The squad reorganisation doesn&#8217;t help if the communication structure generating the bottleneck is left intact. The constraint is in the approval path. The approval path follows the reporting lines. The reporting lines survived the reorganisation unchanged.</p><p>The useful question when a project is in trouble is which law is primary. Is this a WIP problem, a constraint problem, or a communication structure problem? They&#8217;re usually all present. One is usually loudest. Identify which one is driving the others and start there. Treating a communication problem with WIP limits, or a constraint problem with team restructuring, is what produces the feeling that you&#8217;re doing everything right and nothing is improving.</p><p>That&#8217;s not a formula. It&#8217;s a way of looking. The looking is the skill.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/littles-law-conways-law-constraints-game-studio-delivery/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://www.productionalchemist.com/p/littles-law-conways-law-constraints-game-studio-delivery/comments"><span>Leave a comment</span></a></p><p>Once you can see through these three lenses, the problems stop looking like bad luck or individual failure. They become predictable consequences of decisions made months earlier: the planning session where everything was marked high priority, the hiring decision that added capacity to the wrong stage, the reorganisation that moved boxes on a chart without touching how decisions actually got made.</p><p>Uncomfortable if you made those decisions. Useful if you want to make better ones.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/littles-law-conways-law-constraints-game-studio-delivery?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/littles-law-conways-law-constraints-game-studio-delivery?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/littles-law-conways-law-constraints-game-studio-delivery?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Stop briefing the AI every Monday morning]]></title><description><![CDATA[If your agentic workflow needs a re-brief at session start, you&#8217;ve built a chat tool with extra steps]]></description><link>https://www.productionalchemist.com/p/ai-agentic-workflow-context-session-management-for-producers</link><guid isPermaLink="false">https://www.productionalchemist.com/p/ai-agentic-workflow-context-session-management-for-producers</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 17 Jun 2026 07:01:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Qcyc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>Why most agentic workflows fail at the session boundary, not the prompt</p></li><li><p>Context windows are RAM, not storage, and treating them otherwise quietly breaks everything</p></li><li><p>The fix is structural: stateless processor, durable file-based memory, session-start protocol</p></li><li><p>What this looks like in pre-production, and why producers are the right people to build it</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qcyc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qcyc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!Qcyc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!Qcyc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!Qcyc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qcyc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2162967,&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://gameproductionalchemist.substack.com/i/198816817?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.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_!Qcyc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!Qcyc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!Qcyc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!Qcyc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf7321b0-c08d-440a-abca-4e498a932cfc_1477x1065.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Monday morning. I sit down. I open an agentic harness, like Codex or Claude Code. Before any actual work happens, I type a paragraph that goes something like <em>&#8220;so where we are is, we resolved the weapon spec last week but the environment LODs are still open, the client hasn&#8217;t replied about the priority on...&#8221;</em> and so on, for roughly two hundred words, before I can ask the first useful question of the week.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>That paragraph is a tax. It shouldn&#8217;t exist. The fact that I&#8217;ve quietly accepted paying it, and that most people I talk to building agentic workflows have also quietly accepted paying it, tells you something about how the field is designing these things.</p><p>The Monday brief is the symptom. The diagnosis is that we are building agentic workflows as if the AI is a colleague who went home for the weekend and forgot a bit. It isn&#8217;t. It went home and was destroyed. The thing on Monday morning has never existed before.</p><div><hr></div><h2>Context windows are RAM</h2><p>The conceptual error is treating the context window as storage. It looks like storage from the inside. You scroll up and the conversation is still there. You add to it and it gets longer. So when an agentic workflow starts to misbehave, the instinct is to feed it more: a larger model, a fuller history, a more careful prompt.</p><p>The <a href="https://mem0.ai/blog/context-window-is-ram-not-storage-why-most-agent-failures-happen-how-to-fix-them-in-2026">mem0.ai team wrote about this</a> and the framing is the cleanest I&#8217;ve seen. The context window shares properties with RAM that distinguish it from persistent storage and make it unsuitable as a long-term data store. It is volatile, and everything in it disappears when the session ends, including preferences stated at turn 1, constraints set at turn 3, and decisions made at turn 7. <a href="https://beam.ai/agentic-insights/your-ai-agents-context-window-is-ram-not-storage-that-explains-most-production-failures">Beam.ai has written about the same idea</a>. The most common failure in production is an agent that remembers nothing between sessions. The context window resets. Every preference, every learned behaviour, every correction the user made in the last conversation is gone.</p><p>This is not a niche failure. <a href="https://akka.io/blog/agentic-ai-frameworks">Gartner found</a> that 61% of organisations had begun their foray into agentic AI development, and predicts that 40% of agentic AI deployments will be cancelled by 2027 due to rising costs, unclear value, or poor risk controls. Other research is bleaker. Carnegie Mellon&#8217;s <a href="https://arxiv.org/abs/2412.14161">TheAgentCompany benchmark</a> tested ten leading AI agent models across 175 real-world tasks. The best performer completed just 30.3% of tasks. <a href="https://www.rand.org/pubs/research_reports/RRA2680-1.html">RAND concluded that more than 80% of AI projects fail</a>, twice the rate of non-AI IT projects. <a href="https://www.ciodive.com/news/AI-project-fail-data-SPGlobal/742590/">S&amp;P Global found</a> that 42% of companies abandoned most of their AI initiatives, up from 17% the prior year.</p><p>A lot of factors drive these numbers. State management is one of the load-bearing ones, and it&#8217;s the one producers run into first because we live by continuity. A producer who can&#8217;t remember what happened last week is not a producer. So when our tooling has no memory between sessions, we patch it ourselves. We type the brief. We re-explain. We feel productive because the response on Tuesday looks coherent.</p><blockquote><p>A larger context window delays the problem. It does not fix it.</p></blockquote><p>The fixes that the wider conversation gravitates to all address the symptom. Bigger windows. Better summaries. Compaction. Hybrid memory schemes. They share an assumption: that the right place for state is inside the model&#8217;s working memory, and the work is to keep that memory healthy. This is the same idea as managing a goldfish&#8217;s working life by getting it a bigger bowl. The goldfish still forgets the bowl every twelve seconds.</p><p>Worse, summary-based fixes degrade actively. Summaries summarise summaries. The history gets blurrier and the agent starts answering with confidence based on a compressed version of a compressed version of what you said three sessions ago. The brief gets longer, not shorter, because you&#8217;re now also correcting the agent&#8217;s distorted model of where things stand.</p><p>The Monday brief is your workflow telling you it doesn&#8217;t have a place to keep things.</p><div><hr></div><h2>State lives in files</h2><p>The fix is structural. Stop trying to make the AI remember. Build a system where it doesn&#8217;t have to.</p><p>State lives in files. The AI is a stateless processor that reads from and writes to a shared file system. Memory is durable, external, and human-readable. Every open question, every assumption, every decision lives in a structured file with an ID, an owner, and a timestamp. Nothing lives only in chat. When a question gets raised during a design session, it gets written to the tracker immediately. When a decision gets made, it gets written to the decision log with rationale.</p><p>At the start of every session, the AI reads the files. That&#8217;s the briefing. Not me typing two hundred words on a Monday morning. The system already knows where things are because the files already know where things are. The AI just reads them.</p><blockquote><p>Context window resets become a non-event.</p></blockquote><p>This is the move that breaks the whole class of problem. Every horror story about agentic AI losing context, dropping decisions, or contradicting itself across sessions, almost all of it dissolves the moment state stops living in conversation history.</p><p>The mechanics are straightforward. You need a small set of structured files: an open questions tracker, a decision log, an assumptions ledger, an inbox for things that come in between sessions. Each entry has a stable ID. Each ID links to context. The AI&#8217;s first action in any session is to read these and report what is unresolved, what is blocked, and what needs a call. The AI&#8217;s last action is to update them.</p><p>A developer would recognise this as a database with no DBMS. It is. The thing that makes it work for a producer rather than a developer is that the files are human-readable. I can open a markdown file at 11pm and see exactly what&#8217;s open. No query. No tooling. The files are the system of record and they&#8217;re also the briefing document and they&#8217;re also the audit trail.</p><p>The session-start protocol is the second half of the move. The AI doesn&#8217;t decide to read the files because I asked nicely. It reads them because that&#8217;s the first thing it does, defined in a skill or a CLAUDE.md or whatever your tooling calls it. The skill says: at session start, read these files, summarise their current state, flag anything blocking, surface anything that needs a decision today. Then we work.</p><p>What this gives you is something that survives context window resets, model upgrades, app crashes, and the gap between Friday night and Monday morning. The state is in the files. The AI reads them fresh. There is no Monday brief because there is nothing to brief about.</p><div><hr></div><h2>The asymmetric collaboration</h2><p>Where this lands in pre-production is worth dwelling on, because pre-production is where the cost of bad state management is highest and where the win is biggest.</p><p>Pre-production generates a specific kind of cognitive debt. Open questions that nobody answered. Assumptions that hardened into facts before anyone checked them. Decisions that were made in a Slack thread and never written down. By the time you hit production, that debt is invisible and expensive. Most projects take 25-30% longer than expected. A chunk of that overrun is debt being paid down by people who don&#8217;t know they&#8217;re paying it.</p><p>A human producer can track a sprint&#8217;s worth of this. Not a full pre-production cycle. The volume defeats us. The cross-domain spread defeats us. The lag between when a question is raised and when it gets resolved defeats us. So we drop things. Not because we&#8217;re bad at the job, but because the job at full volume is bigger than what one head can hold.</p><p>This is where the agentic system earns its place. The AI tracks everything. It captures questions as they surface. It assigns IDs and links them to the relevant spec area. It flags when an unresolved assumption is blocking other work. It routes questions to the right specialist for a draft answer. It updates status when something resolves. None of this needs my judgement. All of it needs to happen.</p><p>The human decides everything. Scope calls. Risk acceptance. Trade-offs between competing answers to the same open question. Anything that touches shared systems or external stakeholders. The decisions get made by the person whose job it is to make them. The bookkeeping gets done by the thing whose job it is to do bookkeeping.</p><blockquote><p>The AI handles the volume. The human handles the judgement.</p></blockquote><p>This split is the actual wedge for producers in agentic work. Most of the conversation about AI in production is framed as the AI doing the producer&#8217;s job. That framing is wrong twice. It overestimates what the AI can decide, and it underestimates what the producer&#8217;s job actually is. A producer&#8217;s job is the queue of open questions, the integrity of the decision log, the visibility of dependencies, and the deliberate spending of a small attention budget on the right calls. The AI can absorb the first three. It can&#8217;t do the fourth. So the producer does more of the fourth. Better.</p><p>The skill of being a producer transfers cleanly into the skill of running an agentic workflow because the discipline of tracking is the discipline we already practise. We were already trying to do this manually and failing because the volume was too high. The AI makes the volume tractable. We get an instrument that lets us play the craft we already know.</p><div><hr></div><p>The AI in this system doesn&#8217;t make product decisions. Its job is to make sure nothing falls through the cracks and that the human has everything they need to make good calls fast. The value is in the tracking fidelity and the structured surfacing of what&#8217;s open. The AI has no opinion about what to build. Its opinion is about what&#8217;s been left undecided. Those are different things.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/ai-agentic-workflow-context-session-management-for-producers/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://www.productionalchemist.com/p/ai-agentic-workflow-context-session-management-for-producers/comments"><span>Leave a comment</span></a></p><p>Pre-production is full of irreversible decisions made under uncertainty. The system doesn&#8217;t reduce the uncertainty. It makes sure the decisions get made deliberately, with full visibility into what is open and what depends on what, rather than quietly becoming assumptions that nobody remembers making.</p><p>If you sit down on Monday and have to tell the AI where you left off, you haven&#8217;t built an agentic workflow. You&#8217;ve built a chat tool with extra steps.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/ai-agentic-workflow-context-session-management-for-producers?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/ai-agentic-workflow-context-session-management-for-producers?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/ai-agentic-workflow-context-session-management-for-producers?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[The Tool That Doesn’t Exist]]></title><description><![CDATA[Planning and tracking are different jobs. The seam between them is where agents earn their keep.]]></description><link>https://www.productionalchemist.com/p/planning-vs-tracking-game-production-agentic-ai-solution</link><guid isPermaLink="false">https://www.productionalchemist.com/p/planning-vs-tracking-game-production-agentic-ai-solution</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 15 Jun 2026 07:01:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!D1Jw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>Why thirty years of unified planning-and-tracking tools have produced consistently weak results</p></li><li><p>The structural reason a single tool cannot do both jobs well</p></li><li><p>What production teams have actually been doing in the gap, and why it isn&#8217;t clerical</p></li><li><p>Why an agentic workflow between two specialist tools beats any promised unified one</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D1Jw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D1Jw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!D1Jw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!D1Jw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!D1Jw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D1Jw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2175504,&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://gameproductionalchemist.substack.com/i/198813176?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.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_!D1Jw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!D1Jw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!D1Jw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!D1Jw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90daba6f-3462-40f9-8180-e88c76442bc6_1477x1065.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The first project management tool I ever used was Microsoft Project. Before getting into the game industry, I had exposure to the tool for planning construction projects.  I didn&#8217;t know what lead or lag me&#8221; meant. Critical path was a phrase I&#8217;d encountered in a textbook and dismissed. Task relationships looked like spaghetti. The plan I built was beautiful in the way a child&#8217;s drawing of a house is beautiful, and about as accurate when held up to the real building.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>It worked for planning. It fell apart for tracking. I spent most Friday afternoons guessing what percentage complete each task was. Sixty-five? Seventy? The number didn&#8217;t mean anything except that I had typed it into a cell, and then the Gantt would update, and the report would go out, and the project would carry on bearing no obvious relationship to the chart.</p><p>That was the start of a thirty-year search for one tool that could do both jobs. I want to write down, before I forget, that I think the search was a mistake.</p><h2>The tour</h2><p>Before Jira, the best bug database I ever built was in FileMaker Pro. This will sound mad to anyone under forty. FileMaker was the GOAT of QA tracking in the late nineties because you could hand-roll a relational database with a layout designer in an afternoon, give the QA team a form, and have ticket fields that actually fit your studio&#8217;s workflow. Custom statuses, custom severity, custom triage paths, custom resolution workflows. The bespoke nature was the point. We tracked thousands of bugs through ship windows and the producers who maintained those databases were treated with the kind of respect normally reserved for tools that work.</p><p>What FileMaker couldn&#8217;t do was plan. There was no Gantt, no dependency, no critical path. You had a tracker. You had nothing to track against. So you ran two systems anyway.</p><p>Jira arrived and I assumed the search was over. It wasn&#8217;t. I have spent more than half my career looking for the perfect Jira plugin, the next major release that would finally make roadmaps fit my use case, the marketplace add-on that would close the planned-versus-actual gap. Tempo. Structure. BigPicture. Advanced Roadmaps, then Jira Plans, then whatever Atlassian is calling it this quarter. Plugin trials, evaluations, pilots, budget justifications. I have written more business cases for project management tooling than I have for actual projects.</p><p>Then came the Jira replacements. We had a serious bake-off between ClickUp and Monday.com in one studio, which generated more political heat than the actual game we were trying to ship. After that I went down the premium roadmap tool route, accepted that two systems was the price of admission, and let the production team pick up the manual plan-and-actual reconciliation. Which they did. Friday after Friday, spreadsheet open on one monitor, Jira open on the other, producing a status report that looked at the world both ways.</p><p>I never let go of the idea that the right tool would arrive. It always seemed close. The next version, the next plugin, the next migration.</p><blockquote><p>Planning is a story about the future. Tracking is a record of the present. The two have never agreed and they never will.</p></blockquote><h2>Why no tool can be both</h2><p>The reason no unified tool works well is structural. Planning and tracking want opposite things from a data model.</p><p>Planning wants estimates. It wants capacity, milestones, lead and lag, what-if scenarios, dependency graphs, the ability to drag a bar across a calendar and have the consequences ripple through. The data is editable, opinionated, and forward-looking. A good plan is a thing you argue about with stakeholders.</p><p>Tracking wants ground truth. It wants the current state of a ticket, the actual time logged, the actual blockers, the actual transitions. The data is append-only and backward-looking. A good tracker is a thing you do not argue with, because it just reports what happened.</p><p>These are different shapes of information. The buying committee keeps asking for them in one tool because the diagram is simple and the demo is impressive. The vendors keep promising it because the diagram is simple and the demo is impressive. The result is always weak at both jobs. Jira Plans is fine for a roadmap and weak for a planned-versus-actual report. Smartsheet is a good planning canvas and a poor home for engineering workflow. Monday and ClickUp try to do both and end up doing neither with conviction. The Atlassian Marketplace has hundreds of add-ons partly because the base product cannot resolve this tension.</p><p>The market data confirms the pattern from a different angle. The average organisation runs eleven project management tools and ten team collaboration apps, and 79 percent have taken no steps to consolidate. Workers lose roughly 9.3 hours a week to searching for information across these systems. The tools are not delivering the unified picture they were sold on. They are producing more places for the picture to live.</p><p>The honest read is that planning tools and tracking tools are different categories of software pretending to be one. The unified tool is a marketing position.</p><h2>What producers have actually been doing</h2><p>The reconciliation work has been done all along. By producers, on Friday afternoons, in spreadsheets, by hand.</p><p>I want to be careful about how I describe this work, because it has been routinely underestimated by everyone who has not done it. It is not data entry. It is judgement. It is knowing that Ahmed&#8217;s tickets are always two days behind reality because he updates them in batches on Friday morning. It is knowing that the Environment lead is honest to a fault about percentages and will report sixty when most people would report eighty. And it is recognising which &#8220;in progress&#8221; is real work and which is a ticket that got dragged across the board after a stand-up because someone felt guilty.</p><p>A good production status report is not a screen-grab of Jira against a Gantt. It is a synthesis of the plan, the tracker, and the producer&#8217;s working model of which humans report which way. Tools have tried to automate this for two decades and have not succeeded because the inputs are dirty and the rules are situational and the judgement is local.</p><blockquote><p>The reconciliation work isn&#8217;t clerical. It&#8217;s a judgement about which gap is a signal and which is a person who forgot to update a ticket.</p></blockquote><p>This is the work that gets squeezed when a project is busy and the producer has eight other things to deliver. So it gets a quick pass, or a delegated pass, or no pass at all. The report goes out late, or wrong, or as a bare reflection of the tracker with no producer interpretation laid over the top.</p><h2>The example</h2><p>Last week I ran one of these reports for a project I&#8217;m producing. I pulled a Smartsheet export of the plan as of that morning. I pulled the current Jira state. I gave both to a workflow I&#8217;ve been building, told it the format I wanted, and let it produce the synthesis.</p><p>The output read like a status report a competent producer would write. Section by section: art tracks against plan, RAG-coded, with the cascade risks called out. It picked up that one track had not been activated in Jira at all, despite the plan saying several stages should already be complete. It connected that to a downstream gate that was due to start two days ago. It identified three open plan risks I had previously flagged in a briefing document and noted that none were blocking today but each could re-sequence mid-sprint. It recommended I check the track directly with the lead, because the gap between plan and Jira state could mean either work happening off-ticket or work that genuinely hasn&#8217;t started.</p><p>That is the report I would have written. It took fifteen minutes instead of two hours. The agent did not fix the underlying data problem, which is that ticket discipline is uneven, but it did the synthesis I would have done with the data as it stood. I will run it again this evening against fresh Jira state. The plan is to wire it directly to the Smartsheet API so I do not have to download a snapshot to drive it.</p><p>The piece that matters: I used the time I saved to validate, not to compile. The output of the workflow is a draft I review and edit, and the editing is the producer work I should have been doing all along.</p><h2>This is different from the single source of truth</h2><p>Every project management vendor for the last fifteen years has sold some version of the single source of truth. The pitch is always the same: bring planning and tracking into one tool and you will have one place to look. It has never landed. The two jobs cannot share a schema without one of them being deformed to fit the other.</p><p>The agentic approach starts from the opposite premise. Keep the two tools. Let planning be planning, let tracking be tracking, let each be best in its category. Compute the bridge on demand.</p><p>The bridge is not stored. It is recomputed every time you need it, which means it is always current as of the last data pull. There is no reconciled artefact that sits in a third system and immediately goes stale. There is no nightly job that produces a report that is wrong by lunchtime. You ask the agent for the picture, the agent walks the two sources, the picture comes out.</p><p>This is a different shape of solution. It does not depend on the two underlying tools agreeing about anything except their respective domains. It does not require a migration. It does not require everyone to abandon the planning tool they like or the tracker they have invested in. It treats the two systems as facts of life and adds a layer on top that does the work a person was doing anyway.</p><h2>What changes for producers</h2><p>The reconciliation has been an invisible cost for as long as I have been doing this work. Producers do it, leadership rarely sees it, and the time it takes is loaded onto the producer&#8217;s other work without being booked anywhere. Removing it changes the shape of the producer&#8217;s week.</p><p>The first change is obvious. Less time compiling, more time validating. I still read the output. I still push back on the agent&#8217;s conclusions where they look wrong. I still talk to the leads about what the report is missing. The work is now editing rather than typing.</p><p>The second change is sharper than I expected. The &#8220;people are not updating their tickets&#8221; problem does not go away, but it stops being invisible. When the agent surfaces a track with no activated tickets against a plan that says work should be three stages in, the next conversation is unavoidable. Either the work is happening and not being captured, or it is not happening. Both answers are useful. Neither was reliably surfaced before, because the producer compiling the report was tired and Friday was nearly over.</p><p>The third change is about scale. One producer running these workflows against a portfolio of projects can cover more ground than the same producer compiling reports by hand. The judgement is still the constraint. The compilation is no longer the constraint. That ratio matters when studios are running lean.</p><h2>Stop looking</h2><p>I have spent thirty years looking for the tool that doesn&#8217;t exist. The honest answer is that the tool I was looking for cannot be built, because the requirements contradict each other.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/planning-vs-tracking-game-production-agentic-ai-solution/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://www.productionalchemist.com/p/planning-vs-tracking-game-production-agentic-ai-solution/comments"><span>Leave a comment</span></a></p><p>Pick the best planning tool you can find. Pick the best tracking tool you can find. Let them be different. Wire an agent between them. The bridge will be computed, current, and good enough to act on, and the producer will get the Friday afternoon back.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/planning-vs-tracking-game-production-agentic-ai-solution?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/planning-vs-tracking-game-production-agentic-ai-solution?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/planning-vs-tracking-game-production-agentic-ai-solution?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[How I Stopped Hating Commitment Dates]]></title><description><![CDATA[The slow walk from PERT to flow metrics, told without the marketing]]></description><link>https://www.productionalchemist.com/p/game-production-forecasting-flow-metrics-vs-pert-estimates</link><guid isPermaLink="false">https://www.productionalchemist.com/p/game-production-forecasting-flow-metrics-vs-pert-estimates</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 10 Jun 2026 07:01:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JCoC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ul><li><p>Why the planning fallacy makes single-date estimates almost guaranteed to fail</p></li><li><p>Parametric, top-down, and three-point PERT estimates carry biases that no review process removes</p></li><li><p>Classical PMBOK Monte Carlo runs the right maths against the wrong baseline</p></li><li><p>Flow metrics and continuous Monte Carlo simulation give producers a forecast they can actually defend</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JCoC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JCoC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!JCoC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!JCoC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!JCoC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JCoC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2602753,&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://gameproductionalchemist.substack.com/i/198668141?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.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_!JCoC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!JCoC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!JCoC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!JCoC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F627b3cf4-fd42-4437-9a6f-01c9688c04b1_1477x1065.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The single most stressful thing about being a game producer is committing to a delivery date. I have done it for thirty years and it never got easier until I changed the method.</p><p>You sit in a room. Someone senior asks when it will ship. You give a number. You then spend the next eighteen months defending that number to people who weren&#8217;t in the room. The number is almost always wrong. Everyone knows it&#8217;s almost always wrong. The pretence that it isn&#8217;t is the part that breaks you.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><h2>Why the estimate is broken before you start</h2><p>In 1979 two psychologists, <a href="https://www.amazon.com/Thinking-Fast-Slow-Daniel-Kahneman/dp/0374533555">Daniel Kahneman and Amos Tversky</a>, published a paper that quietly described the producer&#8217;s entire problem. They called it the <a href="https://thedecisionlab.com/biases/planning-fallacy">planning fallacy</a>. People underestimate the time, cost, and risk of future tasks, and they do so even when they have a long history of being wrong about the same kind of task.</p><p>Kahneman later argued that the cause is something he called the inside view. When we plan a project we tell ourselves a coherent story about how it will go. The story is plausible. It does not include the things we don&#8217;t yet know. The outside view, by contrast, asks what happened the last time we did something like this. The outside view is duller and almost always more accurate. Almost nobody uses it.</p><p><a href="https://thedecisionlab.com/biases/planning-fallacy">The Decision Lab</a> summarises decades of follow-up research in plain terms: the planning fallacy describes our tendency to underestimate the amount of time it will take to complete a task, as well as the costs and risks associated with that task, even if it contradicts our experiences. The word that matters is &#8220;even.&#8221; We know we&#8217;re wrong. We do it anyway.</p><p>For a producer the bias is doubled. You are estimating other people&#8217;s work, not your own. You are estimating it under pressure. You are estimating it while someone in finance is asking whether you can pull a quarter forward.</p><h2>The toolkit I used to reach for</h2><p>Every estimation method I learned in the first half of my career was a different way of structuring the same wishful thinking.</p><p>Parametric estimation was the first. Take the size of the thing, multiply by a coefficient drawn from history, and produce a number. It works for buildings. It works less well for software, and it works worst of all for games, where the scope is unstable until late in production.</p><p>Top-down came next. Senior people decide what the thing should cost, and the team is asked to make it fit. Bottom-up was the inverse. Add up every task and produce a total. Both produce numbers. Neither produces forecasts you can trust, because the inputs at every level are guesses dressed up as data.</p><p>Three-point PERT was the one I held onto longest. You ask each lead for an optimistic, pessimistic, and most-likely estimate, then weight them. The weighting felt like rigour. It wasn&#8217;t. It was three guesses instead of one. The biases I was trying to remove sat inside each guess.</p><blockquote><p>Averaging biased numbers produces a biased average.</p></blockquote><p>These techniques have their place. They will give you a directionally useful figure for a pitch deck. What they will not give you is a forecast you can defend at month nine of an eighteen-month project, when reality has diverged and someone in the C-suite wants to know why.</p><h2>The first probabilistic approach I trusted, and what was wrong with it</h2><p>When I first read the <a href="https://www.pmi.org/standards/pmbok">PMBOK</a> section on Monte Carlo simulation I thought it was the answer.</p><p>The idea is simple. You take your estimates, attach a probability distribution to each one, then run the model ten thousand times. The output is a distribution of possible completion dates. You can read off a confidence level: 50%, 80%, 95%. You can size your reserves against the tail. The maths is sound. The software is cheap. I used it for years to calculate slack and contingency.</p><p>The problem was upstream. Every input to the simulation was a biased estimate. I was running the simulation on numbers I already knew were wrong. The probability curve was elegant. The baseline it was built on was not.</p><p>This is the failure mode that does not get discussed enough. A probabilistic technique applied to a biased baseline gives you a probabilistic estimate of a biased baseline. The maths is still right. The conclusion is still wrong.</p><blockquote><p>You have dressed up the planning fallacy in a normal distribution and a confidence interval.</p></blockquote><h2>The other half of the problem nobody talks about</h2><p>There is a second pressure that runs underneath all of this, and it changes the maths in a way most estimation books do not address.</p><p>Producers are often not asked when something will ship. They are told. The ship date is set by a marketing window, a fiscal calendar, a co-development agreement, or a publisher&#8217;s slate plan. The budget is set the same way. You are then handed a piece of work and asked to produce a plan that arrives on the date and lands within the budget.</p><p>In that situation the estimate becomes a reverse-engineering exercise. You start with the answer and work backwards. The pretence of an objective forecast is dropped. What you are doing is constructing a plausible-looking justification for a commitment that has already been made.</p><blockquote><p>The estimate becomes a reverse-engineering exercise. You start with the answer and work backwards.</p></blockquote><p>The reason this matters for the conversation about Monte Carlo is that the upstream methods I described above are all inputs to a process that begins with the answer. PERT does not save you if the answer is fixed. Parametric does not save you. PMBOK Monte Carlo does not save you, because the simulation runs on baselines you reverse-engineered to fit.</p><h2>The shift that actually helped</h2><p>The thing that changed for me wasn&#8217;t a better estimation technique. It was a different input.</p><p>I had been reading <a href="https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271951">Eli Goldratt</a> on the <a href="https://en.wikipedia.org/wiki/Theory_of_constraints">Theory of Constraints</a> and trying to understand how work actually moves through a development system. From there I came to David Anderson&#8217;s <a href="https://www.amazon.com/Kanban-Successful-Evolutionary-Technology-Business/dp/0984521402">Kanban method</a>, and then to Don Reinertsen&#8217;s <em><a href="https://www.amazon.com/Principles-Product-Development-Flow-Generation/dp/1935401009">Principles of Product Development Flow</a></em>. Reinertsen opens by arguing that the conventional approach to product development is fundamentally broken, then spends the rest of the book explaining why. His central claim is that invisible queues are the underlying cause of slow product development, and that batch size, work in progress, and variability matter more than the schedule on the wall.</p><p>What this body of work pointed me towards was a different kind of data. Instead of estimating how long a piece of work would take, I could measure how quickly the team was actually finishing work. Cycle time. Throughput. Work in progress. The metrics already existed in the ticketing system. I had simply not been treating them as the basis for a forecast.</p><p>Daniel Vacanti&#8217;s two books, <em><a href="https://www.amazon.com/Actionable-Agile-Metrics-Predictability-Introduction/dp/098643633X">Actionable Agile Metrics for Predictability</a></em> and <em><a href="https://www.amazon.com/When-Will-Be-Done-Forecasting/dp/0986436348">When Will It Be Done?</a></em>, made the connection explicit. You can run a Monte Carlo simulation against historical throughput data instead of against estimates. The simulation samples the team&#8217;s past performance, randomising the order, and produces a forecast distribution for the work remaining. Most implementations run ten thousand iterations and take a few seconds to complete.</p><p>The baseline is no longer a guess. It is what the team has actually done, last month, last quarter. It updates every week you run it. The longer the project runs, the more reliable the forecast becomes, because the data informing it is the data the team is generating.</p><p>Vacanti has a line on this. &#8220;No WIP limit = no flow, which means no predictability.&#8221; It captures the discipline this method requires, and it is the part that gets cut from most adoption stories.</p><h2>What changes in the C-suite</h2><p>The thing producers do not always get to talk about is the meeting. The MBA in the corner office wants a date. They have been asked the same thing by their board. The conversation is short, the room is hostile, and you have one chance to defend your position before next quarter&#8217;s planning cycle re-opens it.</p><p>With PERT and a Gantt chart you have an opinion. With flow-based Monte Carlo you have a probability curve generated from the team&#8217;s measured performance. You can say: at the team&#8217;s current throughput, simulated across ten thousand iterations, there is an 85% probability the work completes by date X, a 50% probability by date Y. If you want to land closer to Y, here are the constraints I need lifted. Here is what changes about scope, headcount, or work in progress.</p><p>This is a different conversation, with a different artefact on the table. The MBA can argue with the data, the inputs, the model, the assumptions. They cannot easily argue with a curve built from their own team&#8217;s last six months of work.</p><p>You will still lose some of those arguments. The commitment will get fixed for reasons that have nothing to do with your forecast. The difference is that you have shown your working. When the project goes sideways at month nine, you can pull out the forecast from month one and the forecast from month nine, and the trajectory tells the story. The conversation moves from blame to what changed.</p><h2>What this asks of you</h2><p>I want to be honest about what flow-based forecasting requires, because the adoption is harder than the maths.</p><p>It needs WIP limits that are actually enforced. Work in progress is the enemy of throughput in any queueing system, and the moment you allow unlimited parallel work, your cycle time data becomes meaningless. Reinertsen spends a chapter on this. Vacanti opens with it.</p><p>It needs a stable process. If the team is reorganising every six weeks, the throughput data from the last quarter does not apply to the next quarter. The forecast assumes the system you measured is the system you are forecasting about.</p><p>It needs the data to be collected honestly. Started dates and finished dates on tickets, with no fudging when the sprint review approaches. If your team&#8217;s Jira hygiene is poor, your Monte Carlo is poor. The software cannot rescue the data.</p><p>It needs the producer to have read enough of Vacanti, Reinertsen, and Anderson to defend the model when challenged. The MBA in the C-suite has likely done a quantitative MBA. They will ask questions. You need to be able to answer them without flinching.</p><p>None of this is exotic. Around twenty to thirty completed cycle times in the historical sample is the rough threshold before the forecast stabilises. The tools are mature. The books are short. The technique is available to anyone running a board in Jira, Linear, or Azure DevOps.</p><h2>What changed for me</h2><p>I stopped defending dates I did not believe in.</p><p>That is the smallest possible version of what changed, and it is also the whole thing. When the conversation moved to a probability curve I could rebuild every fortnight, the arguments got shorter. The forecasts got better. The relationship with the C-suite changed from quarterly confrontation to ongoing recalibration. Dates still slipped. The slippage was visible earlier, and the conversation about what to do about it was no longer a fight about whose gut was more credible.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/game-production-forecasting-flow-metrics-vs-pert-estimates/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://www.productionalchemist.com/p/game-production-forecasting-flow-metrics-vs-pert-estimates/comments"><span>Leave a comment</span></a></p><p>Thirty years in, I wish I had found this fifteen years sooner. That is the only part I would take back.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/game-production-forecasting-flow-metrics-vs-pert-estimates?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/game-production-forecasting-flow-metrics-vs-pert-estimates?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/game-production-forecasting-flow-metrics-vs-pert-estimates?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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 Game Production Alchemist! 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[Harvard Business Review Just Invented the Producer]]></title><description><![CDATA[How the most-starred AI game dev framework on GitHub accidentally ran a study in producer cognition]]></description><link>https://www.productionalchemist.com/p/hbr-just-invented-the-producer</link><guid isPermaLink="false">https://www.productionalchemist.com/p/hbr-just-invented-the-producer</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 08 Jun 2026 07:01:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xzjE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>Claude Code Game Studios hit 19,380 GitHub stars in three months with no shipped game, and its most-engaged thread is a question about why the AI won&#8217;t build anything without human direction</p></li><li><p>The users who fail treat it like autopilot; the users who succeed treat it like a studio that needs a managing director</p></li><li><p>In February 2026, Harvard Business Review published a new role to describe what producers have been doing for thirty years</p></li><li><p>Producer cognition is a specific set of moves, not instinct, and you can watch them fail in real time across three languages on a GitHub issue page </p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xzjE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xzjE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xzjE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1891849,&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://gameproductionalchemist.substack.com/i/198527972?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.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_!xzjE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In February 2026, an open-source framework launched on GitHub with a clear pitch: turn a single Claude Code session into a full game development studio. By May, Claude Code Game Studios had 19,380 stars, 2,828 forks, and no shipped games. Its most active issue is a question: why does the AI generate elaborate design documents and sprint plans while producing almost no playable code?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>The answer sitting in that thread, in English, Chinese, and Russian, is the same one game studios spent decades learning. The studio doesn&#8217;t run itself. You do.</p><p>CCGS is a 49-agent framework built around a studio hierarchy: Tier 1 Directors, Tier 2 Department Leads, Tier 3 Specialists. It ships with 73 slash command skills, 12 automation hooks, and 41 document templates. The workflow runs from concept through game pillars, game design documents, architecture decision records, epics, user stories, and sprint planning before the agents touch code. That sequence exists for good reasons. It also means that for users expecting to describe a game and receive one, the first week is friction and consumed tokens producing nothing playable.</p><div><hr></div><p><strong>The expectation gap</strong></p><p>csn6666, posting in Issue #46: &#8220;I feel like there are too many documents and communications between agents and humans but nothing&#8217;s really built after burning 30% of my weekly quota.&#8221;</p><p>LeonPang, writing in Chinese in Issue #29: &#8220;I thought I&#8217;d pitch an idea and the AI would run with it. Instead it turned into me doing the designing and the AI reviewing me.&#8221;</p><p>These are honest accounts of a genuine mismatch. The framework produces exactly what it&#8217;s designed to produce: structured pre-production artefacts, gated by a human decision-maker at each stage. The gap is between the README&#8217;s implied promise and what the work demands from the person sitting with it.</p><p>The documents are the first deliverable of a studio with an absent director. The quota was spent correctly. The director wasn&#8217;t there to use them.</p><p>The Chinese-language threads mirror the English ones almost exactly. So do the Russian threads. When the same complaint surfaces in three languages on the same framework, the problem is structural. The friction is baked into the design assumptions. Those assumptions include a human who knows what to do with pre-production artefacts.</p><p>The README doesn&#8217;t mention that.</p><div><hr></div><p><strong>What the users who succeed are doing</strong></p><p>A user named elysi is 19 days into their current run. They have 188 GDScript files, 1,081 tests running via Godot Unit Testing at each code iteration, and a semi-playable pre-MVP baseline in Godot. They hit 100% of their weekly token limit by day 6 every week. They also trimmed CCGS to 49% of its original size after one restart, wrote 15 custom bash helper scripts to manage context consumption, and capped their deferred items register at 50, running a mid-sprint polish pass at 40 open items.</p><p>Their summary of what makes CCGS work: &#8220;The key to CCGS is the &#8216;studio&#8217; doesn&#8217;t build the game. You&#8217;re the managing director. You need to steer it.&#8221;</p><p>That sounds obvious until you look at what steering requires. Producers do three specific things before they do anything else.</p><p>The first is reading the room. elysi&#8217;s restart decision didn&#8217;t come from the framework flagging a problem. It came from noticing that agents were arguing, tech-debt was accumulating faster than it was resolving, and the system was drifting. Reading the room means recognising the state of a system before acting on it. The users who struggle are prompting into a degrading environment and expecting different results.</p><p>The second is active listening. There&#8217;s a difference between reading agent output for confirmation and reading it for signal. Agents drift. They develop inconsistencies. Issue #63 documents this precisely: the <code>/dev-story</code> skill re-reads full architecture decision records even when stories already contain embedded summaries designed to prevent exactly that duplication. An agent won&#8217;t flag this. You have to notice it. Active listening is the practice of reading outputs for what they reveal about system health, not just for whether they completed the task.</p><p>The third is sentiment in the artefacts. Before elysi&#8217;s restart, they didn&#8217;t check headline metrics. They went into the state of the repo: the comments in deferred items, the tech-debt register, the patterns in what was escalating. That&#8217;s the Jira and Confluence read a producer does on day one of a troubled project. Before meetings. Before conversations. The information is in the margins.</p><blockquote><p>&#8220;The key to CCGS is the &#8216;studio&#8217; doesn&#8217;t build the game. You&#8217;re the managing director. You need to steer it.&#8221; &#8212; elysi, GitHub Issue #46</p></blockquote><p>Technical skill accounts for little of the difference between elysi and the frustrated users in the same thread. smithjoshua125-rgb describes themselves as a complete novice and emerged from less than one week with a working prototype: a movement system, rollback netplay with client-side physics, and predictive replay working reliably at 100ms of simulated latency. They estimated the same work would have taken four to six months to learn and build manually. The difference: they treated CCGS as a framework to direct, not an autonomous builder to instruct. They went in knowing they were the director.</p><p>The CCGS community is discovering producer behaviours from first principles, without any production-methodology vocabulary. They aren&#8217;t talking about flow metrics or WIP limits. They&#8217;re working it out in GitHub threads because the work demanded it.</p><p>woobenny08, in the same Chinese-language thread as LeonPang: &#8220;Without the cognitive mindset of a &#8216;producer,&#8217; AI simply cannot help you make a competent game.&#8221;</p><p>That observation was posted on a game framework&#8217;s GitHub issues page, in Chinese. It is also the most precise summary I&#8217;ve read of the research literature on AI agent management from the last six months.</p><div><hr></div><p><strong>HBR named the role in February</strong></p><p>On February 12, 2026, Harvard Business Review published &#8220;To Thrive in the AI Era, Companies Need Agent Managers,&#8221; by Suraj Srinivasan and Vivienne Wei. The article introduces a new organisational role for overseeing AI agents: someone responsible for orchestrating how agents learn, collaborate, perform, and work safely alongside humans. They frame it as the role product managers played during the software revolution.</p><p>The strongest candidates, they argue, are people from operations and project management backgrounds. People who already understand the business process being automated deeply enough to evaluate whether an agent is executing it correctly.</p><p>They did not use the word &#8220;producer.&#8221; But the cognitive profile they describe is one game producers would recognise from their second week in the role.</p><p>The Salesforce agent manager they profile describes his daily routine as &#8220;Data, data, data. I start and end my day in dashboards, scorecards, and agent observability monitoring.&#8221; That is what a LiveOps producer&#8217;s Monday morning looks like, transposed to an enterprise AI context.</p><p>Srinivasan and Wei identify six competencies for the agent manager role. Three of them map directly onto what I described above. Understanding how agents function and how to diagnose failures. Knowing the domain process deeply enough to evaluate outputs. Defining when agents act alone and when they escalate to a human. These are reading the room, active listening, and sentiment in the artefacts. HBR named them for an audience that hadn&#8217;t encountered them before.</p><p>The broader data is consistent. Deloitte&#8217;s 2026 State of AI in the Enterprise report identifies the AI skills gap as the biggest barrier to integration and finds that only one in five companies has mature governance of autonomous AI agents. RAND Corporation&#8217;s 2025 analysis found 80.3% of AI projects fail to deliver intended business value. The Connext Global 2026 AI Oversight Report found only 17% of US adults consider workplace AI reliable without human oversight. A Workday analysis from January found roughly 40% of apparent AI productivity gains were being lost to rework and low-quality output. Every one of these reports describes the absence of producer work, in different vocabulary.</p><p>The game industry ran its own version of this study in 2025 through the &#8220;gameslop&#8221; wave: AI-assembled titles with no human curation that flooded storefronts and damaged player trust. The GDC 2026 State of the Game Industry report shows 52% of game professionals now view generative AI negatively, up from 30% the year before. The technical capability arrived faster than the understanding of how to direct it. That&#8217;s a different way of measuring the same skills gap Deloitte is tracking, and the same underlying problem.</p><div><hr></div><p><strong>The structural point</strong></p><p>CCGS is generating honest production data in public, across three languages, about what agentic development actually costs and what it actually requires. The 19,000 stars reflect real interest from developers who want to build games with AI agents. Some of them are succeeding.</p><p>But the thing the community keeps discovering, at every experience level and in every language, is the same gap. The framework tells you what the agents can do. It tells you very little about what you need to bring to it.</p><p>What you need to bring is the ability to read a system that is drifting, to hear what the agents are actually producing rather than what you asked them to produce, and to go into the artefacts for the signal that doesn&#8217;t make it into the summary reports. That combination of skills has a name. It has had one for thirty years. The CCGS community didn&#8217;t coin it. They just ran into it without warning.</p><p>HBR called this &#8220;agent management&#8221; in February. The CCGS community discovered it in May. Game studios have been hiring for it since before GitHub existed.</p><p>All three are describing the same gap.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/hbr-just-invented-the-producer/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://www.productionalchemist.com/p/hbr-just-invented-the-producer/comments"><span>Leave a comment</span></a></p><blockquote><p>&#8220;Without the cognitive mindset of a &#8216;producer,&#8217; AI simply cannot help you make a competent game.&#8221; &#8212; woobenny08, GitHub Issue #29</p></blockquote><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/hbr-just-invented-the-producer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/hbr-just-invented-the-producer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/hbr-just-invented-the-producer?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Real Framework Is the One You Build on Top]]></title><description><![CDATA[On the restart as production technique, and what the CCGS community built that no repository could ship.]]></description><link>https://www.productionalchemist.com/p/ai-framework-game-production-governance-and-technical-debt</link><guid isPermaLink="false">https://www.productionalchemist.com/p/ai-framework-game-production-governance-and-technical-debt</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 08 Jun 2026 07:00:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gC79!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>elysi trimmed <a href="https://productionalchemist.com/p/claude-code-game-studios-49-agents-one-context-window">Claude Code Game Studios</a> to 49% of its original size, wrote 15 bash helpers, capped tech-debt at 50 items, and built a 1,081-test suite, none of which shipped with the framework</p></li><li><p>The LinearB 2026 Software Engineering Benchmarks Report finds AI-assisted teams see technical debt increase 30-41% after adoption; <a href="https://productionalchemist.com/p/littles-law-conways-law-constraints-game-studio-delivery">the top 20%</a> impose <a href="https://productionalchemist.com/p/minimum-viable-governance-for-enterprise">quality gates and governance constraints</a> before the debt compounds</p></li><li><p><a href="https://productionalchemist.com/p/incorporating-flow-engineering-into">The Toyota Production System</a> calls it jidoka: detect the problem, stop the process, fix the immediate condition, prevent recurrence. elysi did all four, on day 19, with a migration script and a new constraint set</p></li><li><p><a href="https://productionalchemist.com/p/the-production-context-stack">The framework is the substrate. The harness is the production system.</a> One can be downloaded. The other can&#8217;t</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gC79!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gC79!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!gC79!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!gC79!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!gC79!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gC79!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1335342,&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://gameproductionalchemist.substack.com/i/198550722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.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_!gC79!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!gC79!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!gC79!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!gC79!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573c867f-6940-4bad-ab6b-6f907c70e813_1477x1065.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>19 days into a run of <a href="https://github.com/Donchitos/Claude-Code-Game-Studios">Claude Code Game Studios</a>, a community user named elysi stopped.</p><p>The agents were arguing. The <a href="https://productionalchemist.com/p/paradox-of-prosperity-a-hit-mobile">tech-debt register was bloating</a>. The studio was generating output, but the quality of that output was degrading with each sprint. At this point, most users do one of two things: they prompt harder, or they blame the framework. elysi did something else. They treated the degradation as diagnostic data, and they <a href="https://productionalchemist.com/p/kaizen-isnt-a-poster-on-the-wall">stopped the line</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>Their account of the decision, posted in <a href="https://github.com/Donchitos/Claude-Code-Game-Studios/issues/46">GitHub Issue #46</a>, is the most instructive production sequence in the CCGS community data, and it has very little to do with the framework itself.</p><div><hr></div><p><strong>What the data says about this moment</strong></p><p>The degradation elysi experienced is the <a href="https://productionalchemist.com/p/agentic-ai-needed-a-producer-it-got-one-by-accident">predictable second act of AI-assisted development</a>, and the research describes it consistently.</p><p>The <a href="https://byteiota.com/ai-technical-debt-30-41-increase-hits-developers/">LinearB 2026 Software Engineering Benchmarks Report</a>, drawing on analysis of 8.1 million pull requests from 4,800 teams, found that technical debt increases 30-41% after AI coding tool adoption. AI-generated code contains 1.7 times more issues than human-written code. Developers working with AI tools report feeling 25% more productive while being 19% slower on end-to-end tasks. The <a href="https://www.augmentcode.com/guides/ai-technical-debt-compounds-spec-driven-development">Stack Overflow Developer Survey 2025</a> (n=49,000+) found that 66% of developers are spending more time fixing &#8220;almost-right&#8221; AI code. Forrester projects that 75% of technology decision-makers will face technical debt at a severe level by 2026.</p><p>The pattern is consistent: AI generates volume. Debt accumulates invisibly. By the time it&#8217;s visible, it&#8217;s <a href="https://productionalchemist.com/p/paradox-of-prosperity-a-hit-mobile">compound and structural</a>.</p><p>The CCGS version of this is the deferred items register. CCGS ships with a <a href="https://productionalchemist.com/p/planning-vs-tracking-game-production-agentic-ai-solution">tech-debt tracking mechanism</a>, but it has no cap on that register by default. As a 49-agent studio produces across multiple sprints, the register grows. Agents read it to understand project context. The larger it grows, the more tokens every read operation consumes, and the more likely agents are to work from an incomplete picture of the project&#8217;s actual state. <a href="https://github.com/Donchitos/Claude-Code-Game-Studios/issues/64">Issue #64</a> documents what happens when architecture decision records exceed 25k tokens: the Read tool triggers offset-and-limit retries, doubling the token cost of a single read operation. The defect propagates downstream before anyone names it.</p><p>The <a href="https://www.informationweek.com/it-strategy/ai-fuels-a-new-wave-of-technical-debt">IBM Institute for Business Value 2025 study</a> put numbers on the consequence: teams that ignored technical debt saw project returns drop 18-29% and timelines expand by as much as 22%. That is the cost of not stopping.</p><div><hr></div><h2>The four steps</h2><p>The Toyota Production System has a principle for exactly this situation. Jidoka, sometimes translated as &#8220;automation with a human touch,&#8221; is the right to stop the line. When a worker detects a defect or an abnormality in output quality, they stop the production line immediately. Not at the end of the sprint. Not at the next retrospective. Immediately. Then: fix the immediate condition, investigate the root cause, and install a countermeasure to prevent recurrence.</p><p>The principle originated in Sakichi Toyoda&#8217;s automatic loom, which was designed to stop the moment a thread broke rather than continuing to produce defective cloth. The insight was that defects cost less to fix at the point of production than after they have been woven into the fabric of the finished product. Stopping the line always feels expensive. Continuing with known defects is always more expensive.</p><p>elysi followed these four steps without knowing they were following them.</p><p><strong>Detect.</strong> &#8220;Agents were arguing, tech-debt kept creeping, it wasn&#8217;t iterating.&#8221; That is the signal. Not frustration, not a hunch. A specific observation about system behaviour. Output volume was maintained while output quality declined. That gap is the defect.</p><p><strong>Stop.</strong> elysi told Claude the run was not working and initiated the restart decision. This is the move most users don&#8217;t make. The sunk cost of 19 days, the token spend, the design documents and sprint artefacts: all of it creates pressure to keep prompting. elysi discarded that pressure and <a href="https://productionalchemist.com/p/timeboxes-arent-deadlines-theyre-quitting">pulled the cord</a>.</p><p><strong>Fix.</strong> Rather than scrapping the entire run, elysi had Opus write a migration script. Not to preserve everything, but to extract what had worked and move it to a clean folder. A migration is not a copy. It is a curation decision: what from this system is worth carrying forward, and what should stay behind?</p><p><strong>Prevent recurrence.</strong> This is the part that separates a restart from a reset. elysi trimmed CCGS to 49% of its original size. They imposed a 50-item cap on the deferred items register, with a standing rule to run a <a href="https://productionalchemist.com/p/planning-vs-tracking-game-production-agentic-ai-solution">mid-sprint polish pass</a> when the count reached 40. They wrote 15 bash helper scripts to <a href="https://productionalchemist.com/p/ai-agentic-workflow-context-session-management-for-producers">manage context consumption</a>, including <code>partial-read-helper.sh</code>, which prevented the framework from <a href="https://productionalchemist.com/p/ai-agentic-workflow-context-session-management-for-producers">loading 40k tokens of context before any actual work began</a>. They built a <a href="https://productionalchemist.com/p/in-a-pickle-actioning-your-gdd-try">1,081-test suite running via Godot Unit Testing</a> at every subsequent code iteration.</p><blockquote><p>&#8220;I got Opus to write a migration script to a new folder, copy what worked, and trimmed CCGS down to 49% of the repository. We have a written memory, no more than 50 open deferred items, and when we get to 40 we do a mid-sprint story to polish and fix.&#8221; &#8212; elysi, <a href="https://github.com/Donchitos/Claude-Code-Game-Studios/issues/46">GitHub Issue #46</a></p></blockquote><p>None of that came from the repository.</p><div><hr></div><h2>The constraint is the product</h2><p>I&#8217;ve run into the same pattern from a different direction. Early in a complex UI project, the instinct is to solve the whole thing at once: one Miro board, one comprehensive design, everything visible and connected. It feels like progress. What it actually produces is a tangle of assumptions, interdependencies, and hidden constraints that only become visible when you try to build from the design.</p><p>Breaking it down changes the result. Personas first. Low-fidelity wireframes. Black and white mockups before any colour decisions. UX flow charts before any visual treatment. Each stage is a constraint: <a href="https://productionalchemist.com/p/cheaper-to-change-on-paper-than-it">a deliberate reduction of scope that forces the work to surface what it actually requires</a>. The hidden constraints don&#8217;t disappear. <a href="https://productionalchemist.com/p/shifting-games-qa-left-building-better">They appear early, where they are cheap to address, rather than late, where they are expensive</a>.</p><p>The constraint is the instrument that makes the actual shape of the work visible.</p><p>elysi&#8217;s 50-item tech-debt cap works the same way. The number is somewhat arbitrary; 49 or 51 would also function. But the cap forces a reckoning. When the register hits 40, the team stops and resolves debt before adding more. The constraint makes the accumulation visible at a point where it is still manageable. Without the cap, the register grows until it is structural: until the defects are baked into the architecture and addressing them costs a restart.</p><p>The <code>partial-read-helper.sh</code> script is a constraint of a different kind. It prevents the framework from performing full-context reads when partial reads would serve the same purpose at a <a href="https://productionalchemist.com/p/context-orphaning-ai-sessions-game-studio-knowledge-loss">fraction of the token cost</a>. The script does not change what CCGS can do. It changes how much of the budget gets spent on infrastructure overhead before any production work begins. elysi open-sourced it in <a href="https://github.com/Donchitos/Claude-Code-Game-Studios/issues/46">Issue #46</a> because other users were burning 30-40% of their <a href="https://productionalchemist.com/p/ai-agentic-workflow-context-session-management-for-producers">weekly token quota on context reads</a> before the first line of game code was produced.</p><blockquote><p>&#8220;I trimmed CCGS down to 49% of the repository. No more than 50 open deferred items, and when we get to 40 we do a mid-sprint story to polish and fix.&#8221; &#8212; elysi, <a href="https://github.com/Donchitos/Claude-Code-Game-Studios/issues/46">GitHub Issue #46</a></p></blockquote><p>The <a href="https://byteiota.com/ai-technical-debt-30-41-increase-hits-developers/">LinearB research</a> identifies the top 20% of AI-assisted teams, the ones that avoid the technical debt crisis. They share three practices: <a href="https://productionalchemist.com/p/minimum-viable-governance-for-enterprise">tracking AI-generated code separately with specialised quality gates</a>, measuring quality alongside output speed rather than treating them as a trade-off, and enforcing governance standards that catch AI&#8217;s predictable failure modes before they merge. These are production decisions, made in response to specific failure modes encountered on a specific project. They cannot be packaged. They have to be earned.</p><div><hr></div><h2>What frameworks can and can&#8217;t ship</h2><p>McKinsey&#8217;s 2026 data finds that 62% of organisations experiment with AI agents while <a href="https://productionalchemist.com/p/98-of-the-work-has-nothing-to-do">fewer than 25% scale to production</a>. Gartner projects that by end of 2027, more than 40% of agentic AI projects will be put on hold, citing unclear business value and insufficient risk controls. The common thread is frameworks being used as shipped, without the constraint layer that makes production at scale viable.</p><p><a href="https://github.com/Donchitos/Claude-Code-Game-Studios">CCGS</a> at full capacity (49 agents, 73 skills, 41 templates, 12 hooks) is a starting position. It is well-engineered and thoughtfully structured for a broad range of users across Godot, Unity, and Unreal, across novice and experienced developers, across casual prototypes and serious production runs. A generic framework cannot anticipate the specific failure modes of a specific project. It can only give you the surface to work from.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>What elysi built (the trimmed hierarchy, the bash tooling, the test suite, the capped register) is <a href="https://productionalchemist.com/p/engineers-constrain-agents-producers">the production system</a>. It is specific to their project, their failure modes, their context budget, their engine, their codebase. It emerged from 19 days of running the official framework until the official framework broke. The restart was the method. The constraint set that came out of the restart is the product.</p><p>You can download CCGS in seconds. You can&#8217;t download the 19 days that taught elysi what to cut.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/ai-framework-game-production-governance-and-technical-debt?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/ai-framework-game-production-governance-and-technical-debt?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/ai-framework-game-production-governance-and-technical-debt?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[An AI Agent Set a Higher Bar for Design Pillars Than Your Studio Did]]></title><description><![CDATA[The Creative Director inside Claude Code Game Studios encodes standards the industry knows but rarely enforces]]></description><link>https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for</link><guid isPermaLink="false">https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 08 Jun 2026 06:33:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aGyI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>The Creative Director agent in <a href="https://github.com/Donchitos/Claude-Code-Game-Studios">Claude Code Game Studios</a> requires falsifiable pillars with concrete design tests, a meaningfully higher standard than most studio GDDs ever reach</p></li><li><p>Anti-pillars, what the game explicitly is not, are specified as a hard requirement. The industry has always known this tool exists and consistently fails to use it</p></li><li><p>When pillars are vague enough to mean anything, they resolve nothing. The loudest voice in the room wins instead</p></li><li><p>An AI agent enforcing these standards on every session is uncomfortable evidence of how low the bar has been set </p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aGyI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aGyI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aGyI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2390731,&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://gameproductionalchemist.substack.com/i/198524029?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.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_!aGyI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The industry knows what a good design pillar looks like. It just rarely writes one.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>I have been reading the <a href="https://github.com/Donchitos/Claude-Code-Game-Studios">Claude Code Game Studios repo</a> in detail over the past week. I wrote about its structural architecture and where it falls short <a href="https://gameproductionalchemist.substack.com/p/claude-code-game-studios-49-agents">in an earlier piece</a>, and about the production thinking encoded in its collaboration protocol <a href="https://gameproductionalchemist.substack.com/p/the-protocol-nobody-names">in a follow-up</a>. This piece is about something else: the Creative Director agent, which is the strongest single agent in the roster, and what it reveals about a failure the industry has been tolerating for a long time.</p><div><hr></div><h2>What the agent actually demands</h2><p>The Creative Director agent runs on Opus, Anthropic&#8217;s most capable model tier. That alone signals that the repo&#8217;s authors considered it the highest-stakes role in the system. Its Vision Articulation Framework asks five specific questions before any design work proceeds: the core fantasy, a unique hook tested with what the agent calls the &#8220;and also&#8221; test, the target MDA aesthetics ranked by priority, the emotional arc across a session, and anti-pillars. What the game explicitly is not.</p><p>The pillar methodology goes further. Pillars must be falsifiable. They must create tension with each other. They must apply to all departments, not just game design. Each must have a concrete design test: a real decision the pillar would resolve.</p><p>That last requirement is the one most studios skip. A pillar that cannot resolve a decision is not a pillar. It is a slogan. &#8220;Visceral, Cinematic, Deep&#8221;: three words on a deck that tell an engineer nothing about whether to cut or keep a feature. The agent will not accept it.</p><p>The scope cut framework is equally specific. Features are sorted from &#8220;cut first&#8221; (those that serve no pillar) through to &#8220;protect absolutely&#8221; (those that are the pillar). This mirrors how real triage works in production when you are over scope and the milestone is three weeks away. I have seen more poorly specified versions of this thinking in official game design documentation from studios with hundreds of people than I have in this single markdown file.</p><div><hr></div><h2>The anti-pillar is where it gets serious</h2><p>Most design frameworks tell you what a game is. Anti-pillars specify what it is not. The difference is not semantic. Scope creep rarely enters through features that were explicitly proposed and approved. It enters through features that were never explicitly ruled out, that slipped in because nobody had written down that this game does not do that.</p><blockquote><p>A pillar that cannot resolve a decision is not a pillar. It is a slogan.</p></blockquote><p>Anti-pillars close that door. If the agent requires you to specify what the game is not before it will proceed, you are forced to have the conversation that studios routinely defer until it is expensive. You cannot gesture at &#8220;immersive&#8221; as a pillar and then quietly add a fast-travel system in month eight if &#8220;no friction removal&#8221; is written as an anti-pillar at the start of pre-production.</p><p>The fact that the <a href="https://gamedesignskills.com/game-design/design-pillars/">design literature on pillars</a> consistently acknowledges this problem and consistently treats anti-pillars as optional is the tell. Designers know the tool exists. It does not get used because specifying what a game is not requires the room to commit, and commitment is uncomfortable when the creative director and the business lead have different ideas about what the game is.</p><div><hr></div><h2>What vague pillars actually cost</h2><p>I have been in greenlight and milestone reviews where the design pillars on the deck were so broad they could have described any game in the genre. I pushed back. The friction it created was not with the designers, who generally knew the pillars were thin. It was with business leadership, who had a tendency to oversimplify play mechanics and underestimate the complexity underneath them. Specific pillars constrain. Constraint is uncomfortable when you are not sure what you are building yet, and easier to avoid when the people with authority over the project prefer optionality.</p><p>The cost of that avoidance shows up later. Two features in conflict. A pillar too broad to resolve which one survives. The feature that shipped was the one backed by the loudest voice in the room, not the one better aligned with what the game was supposed to be. I have seen this pattern more than once across more than one project. The pillar was not absent. It was just vague enough to mean nothing when the decision actually needed to be made.</p><blockquote><p>When pillars are vague enough to mean anything, they resolve nothing. The loudest voice in the room wins instead.</p></blockquote><p><a href="https://thedesignlab.blog/2025/09/15/core-aesthetics-and-design-pillars-building-games-with-identity/">Falsifiable pillars with design tests</a> exist precisely to prevent that. If a pillar can resolve a specific decision, the decision does not depend on who shouts loudest. It depends on what the team agreed the game was. The agent makes this non-negotiable at the point where it is cheapest to enforce: before any design work has been committed to.</p><div><hr></div><h2>The uncomfortable question</h2><p>The standards the Creative Director agent enforces are not new. Falsifiable pillars, design tests, anti-pillars, the requirement that pillars apply across all departments and not just to game design: these appear in <a href="https://www.gamedeveloper.com/design/design-pillars-the-core-of-your-game">GDC talks</a>, in design textbooks, in the working practice of every experienced creative director who has shipped a game with a coherent identity. The knowledge has been there for decades.</p><p>The CCGS Creative Director agent refuses to accept anything less because it has no politics. It has no relationship with the creative director to protect. It does not nod along at a greenlight meeting because the executive producer is in the room and the last time someone pushed back on the vision document things got uncomfortable for a week. It will not approve a vague pillar because the alternative is a difficult conversation.</p><p>It will simply ask the question again.</p><p>That is not a capability gap the industry has been unable to close. It is a behaviour gap. The agent holds the standard non-negotiably because it was written to do so. The room often fails to hold the same standard because holding it has costs that fall on individuals rather than on documents.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for/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://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for/comments"><span>Leave a comment</span></a></p><p>If you have worked in production long enough to have been in that room, this comparison is not flattering. It is not meant to be.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Production 101 - #18 Running Meetings That Aren’t a Waste of Time]]></title><description><![CDATA[Why the most expensive meeting you run might be the one you hold every morning]]></description><link>https://www.productionalchemist.com/p/production-101-18-running-meetings</link><guid isPermaLink="false">https://www.productionalchemist.com/p/production-101-18-running-meetings</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Sun, 07 Jun 2026 16:45:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bPSt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><a href="https://productionalchemist.com/">Game Production Alchemist</a></em> <em>&#8250; <a href="https://productionalchemist.com/p/production-101">Production 101</a> &#8250; How to Run Game Meetings That Don&#8217;t Waste Time</em></p><blockquote><ul><li><p>A ten-person standup that runs fifteen minutes costs two and a half hours of aggregate team time, every day.</p></li><li><p>Any information that can travel in writing should travel in writing. What remains is a much shorter meeting list.</p></li><li><p>No agenda means no meeting: a useful agenda is a list of questions needing answers, not topics to discuss.</p></li><li><p>Lean Coffee is a structured format for discussions where the agenda itself is uncertain, and it works.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bPSt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bPSt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!bPSt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!bPSt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!bPSt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bPSt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2847462,&quot;alt&quot;:&quot;Running meetings thumbnail with angry alchemist, crossed-out clock, agenda document, and production urgency graphics.&quot;,&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://www.productionalchemist.com/i/200743374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Running meetings thumbnail with angry alchemist, crossed-out clock, agenda document, and production urgency graphics." title="Running meetings thumbnail with angry alchemist, crossed-out clock, agenda document, and production urgency graphics." srcset="https://substackcdn.com/image/fetch/$s_!bPSt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!bPSt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!bPSt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!bPSt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885dd8ff-438b-445d-80cd-d152df8cbe53_1456x1048.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is part of the <a href="https://gameproductionalchemist.substack.com/p/production-101">Production 101</a> series.</p><div><hr></div><p>A ten-person standup that runs fifteen minutes costs two and a half hours of aggregate team time. Every day. Run five days a week, that&#8217;s twelve and a half person-hours a week spent on a meeting whose entire purpose is to share information that, on a sufficiently mature team, travels faster in writing. Most producers inherit the standup cadence from whoever set up the project before them and never question it. That&#8217;s a reasonable description of how most meeting cultures form: through inheritance and inertia, with no one deciding.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>I&#8217;ve done this. Early in my career I ran standups daily because that&#8217;s what you did. I ran them because the Scrum Guide said so, because the previous producer had run them, because stopping felt like admitting you didn&#8217;t care about communication. None of those are reasons. They&#8217;re habits dressed up as reasoning.</p><h2>The cost calculation no one does</h2><p>Standups are the most expensive meeting format in your weekly schedule, measured by aggregate cost. The formula is simple: headcount multiplied by duration multiplied by frequency. On a twenty-person team, a fifteen-minute daily standup is twenty-five person-hours a week. That&#8217;s more than half a person-week, every week, before the iteration planning, the milestone reviews, the one-on-ones, and the assorted other gatherings have been counted.</p><p>The uncomfortable question that formula raises is: what is that time buying you? On a team that is new to each other, building complicated dependencies, or working through something genuinely uncertain, a daily standup is probably worth the cost. Blockers surface fast. People know what others are doing. The meeting pays for itself. On a team that has worked together for two years, that documents properly and communicates well asynchronously, that same standup is often a recital of things everyone already knows, punctuated by the occasional &#8220;no blockers for me.&#8221;</p><p>Team maturity should determine standup frequency, not process habit. The team that needs daily synchronisation is the team that doesn&#8217;t yet have the discipline or the tooling to communicate without it. As that discipline develops, the frequency should come down. Three times a week. Twice. Once. The standup that stays daily indefinitely isn&#8217;t a sign of good communication. It&#8217;s a sign that nobody reviewed whether it was still needed.</p><blockquote><p>The standup that stays daily indefinitely isn&#8217;t a sign of good communication. It&#8217;s a sign that nobody reviewed whether it was still needed.</p></blockquote><p>The producers I&#8217;ve seen who never audit this tend to have the same explanation when you ask them: &#8220;the team likes the standup.&#8221; Sometimes that&#8217;s true. More often, the team has simply adapted to the standup the way you adapt to any recurring overhead. It&#8217;s just part of the day. If you removed it, you&#8217;d find out whether they actually wanted it or just got used to it. Run that experiment.</p><h2>Async first</h2><p>The principle is simple: any information that can travel in writing, should. The meetings that survive this filter are considerably fewer than the ones you currently have.</p><p>Status updates belong in writing. Progress reporting belongs in writing. Non-urgent questions belong in writing. Decisions with clear owners and well-understood options belong in writing. If you&#8217;ve read <a href="https://gameproductionalchemist.substack.com/p/production-101-9-why-status-reports">Production 101 #9 on status reports</a>, you have the format for the written version. A well-maintained status report eliminates a significant portion of your recurring meeting load, because the meetings those reports replace were mostly people asking each other what was happening.</p><p>I&#8217;ve worked at studios where the weekly status report went out on Friday afternoon, and by the time Monday&#8217;s first conversation started, the project&#8217;s state was already documented and shared. People came in with context rather than questions. The synchronous time that followed was for work that actually needed live presence, not for getting everyone up to speed.</p><p>What actually requires real-time presence? Decisions that need live debate, where the outcome depends on people building on each other&#8217;s thinking in real time. Situations that need emotional attunement, where the written word is inadequate to the stakes of what&#8217;s being discussed. Problems that would take three long message threads to resolve and ten minutes in person. That&#8217;s not nothing. Those meetings matter enormously. But it&#8217;s a short list compared to the default.</p><p>The async-first producer doesn&#8217;t eliminate meetings. They eliminate the meetings that exist because nobody asked whether they needed to exist.</p><div><hr></div><h2>The agenda as the gate</h2><p>I&#8217;ve operated a simple policy for years: no agenda, no meeting. Not as a preference. As a rule.</p><p>This does two things. First, it forces the person calling the meeting to be clear about what the meeting is for before anyone agrees to attend. Second, it makes it possible for attendees to prepare, which changes the quality of the conversation in the room.</p><p>A useful agenda is a list of questions that need answers. Not a list of topics to discuss. The distinction matters more than it sounds. &#8220;Art direction&#8221; is a topic. &#8220;Do we maintain the current visual reference or shift toward the concept work Yuki produced last week?&#8221; is a question. A topic can run indefinitely without resolution. A question has an answer, which means the meeting ends when you have it.</p><blockquote><p>A useful agenda is a list of questions that need answers. Not a list of topics to discuss. Topics can run indefinitely without resolution.</p></blockquote><p>Who owns the agenda? The person calling the meeting. When does it go out? At least twenty-four hours before the meeting, not five minutes before. The agenda that arrives the morning of tells attendees they&#8217;re expected to perform thinking they haven&#8217;t had time to do. The agenda that arrives a day before gives people the chance to come in with a position, which is what you need when you want a decision, not a discussion.</p><p>The producer&#8217;s job here extends to meetings they don&#8217;t run. If a meeting lands in your calendar with no agenda, you ask for one. Not aggressively, not as an accusation. You ask because you need to prepare. &#8220;What are the questions we&#8217;re trying to answer?&#8221; is a reasonable thing to ask of anyone who wants an hour of your team&#8217;s time.</p><p>Enforcing agenda discipline consistently trains the people around you over time. They stop scheduling vague meetings because they&#8217;ve learned you&#8217;ll ask what the questions are. That&#8217;s not a small thing. It changes the meeting culture of the whole team, one agenda request at a time.</p><div><hr></div><h2>Lean Coffee</h2><p>Not every meeting has a clear agenda before it starts. Sometimes the question is &#8220;what do we need to talk about?&#8221; and you have a room full of people with different answers. The default response to this situation is an open discussion that runs long and ends inconclusively. There&#8217;s a better format.</p><p>Lean Coffee was created by Jim Benson and Jeremy Lightsmith in Seattle in 2009. It&#8217;s a structured format for discussions where the agenda itself is uncertain, and it&#8217;s one of the more practically useful things I&#8217;ve adopted across a long production career.</p><p>Here&#8217;s how it works. At the start of the session, each participant writes their discussion topics on individual cards or sticky notes, one topic per card. Once everyone has written theirs, you spend a few minutes dot-voting: each person gets a small number of votes (typically three) and places them on the topics they most want to discuss. The cards are ranked by votes and become the agenda.</p><p>You then work through the ranked topics in timeboxed segments, typically five to eight minutes each. At the end of each timebox, you take a quick vote: thumbs up to continue discussing this topic, thumbs sideways to wrap it up quickly, thumbs down to move on to the next one. Majority decides. The discussion continues until the time runs out or the topic list is exhausted.</p><p>What you get is a conversation shaped by the team&#8217;s actual priorities rather than whoever called the meeting. The loudest person in the room doesn&#8217;t determine the agenda. The person most senior in the hierarchy doesn&#8217;t determine it. The collective does, anonymously, by voting. That&#8217;s a meaningful difference.</p><p>I&#8217;ve used it most regularly in weekly team meetings. The prior week&#8217;s board acts as a shared record, so people arrive with topics already in mind. What the format changes is whose topics get discussed: the voting step means the person with the most to say doesn&#8217;t control what the group spends its time on. The collective need surfaces, rather than the need of whoever has the loudest voice in the room.</p><p>When should you reach for it? Any time you&#8217;re looking at a long and open-ended discussion that has historically run over time and ended without clear decisions. Any time you&#8217;re facilitating a group whose priorities you&#8217;re not certain about. Early-project alignment. Team health check-ins. Priority debates where multiple stakeholders have different views. The format doesn&#8217;t resolve disagreements, but it makes sure the important ones get airtime.</p><h2>Facilitation as a distinct skill</h2><p>There&#8217;s a version of running a meeting where the producer is a participant, like everyone else in the room, contributing opinions and building positions alongside the rest of the team. That&#8217;s sometimes the right mode. For most production meetings, it&#8217;s not.</p><p>The producer as facilitator is a different job. You&#8217;re the host. You hold the agenda&#8217;s questions and bring the group back to them when the conversation drifts. You manage time. You notice when a discussion has reached a decision but nobody has said the decision out loud, and you say it. You close the meeting with explicit decisions and named owners, not a general sense that something was discussed.</p><p>The specific skill that takes practice is managing the person who wants to workshop everything out loud. Every team has at least one: someone for whom thinking is a social activity, who processes by talking, and who will run a twenty-minute tangent if you let them. You&#8217;re not trying to shut them down. You&#8217;re redirecting. &#8220;That&#8217;s worth exploring. Let&#8217;s put it in the parking lot and come back to it if we have time.&#8221; The parking lot is real: write it down visibly, and either return to it at the end or make sure it gets a home elsewhere. The redirection only works if people trust you&#8217;ll follow through.</p><blockquote><p>The producer as facilitator closes the meeting with explicit decisions and named owners, not a general sense that something was discussed.</p></blockquote><p>The meeting that ended and the meeting that concluded are different things. A meeting ends when the time runs out or everyone leaves the room. A meeting concludes when every agenda question has an answer, every decision has an owner, and the next action is clear. Most meetings end. Fewer conclude. The producer&#8217;s job is to make sure they conclude.</p><h2>The audit</h2><p>If you&#8217;ve never done a full audit of your recurring meeting schedule, the exercise is uncomfortable and worth doing.</p><p>Go through every recurring meeting on your calendar. For each one, ask two questions. What decision does this produce? Who couldn&#8217;t get that information another way? The meetings that survive both questions are probably earning their place. The ones that don&#8217;t are candidates for conversion or elimination.</p><p>The meetings that typically survive: milestone reviews, where multiple stakeholders need to collectively assess whether delivery targets are still on track. Decisions requiring input from people who don&#8217;t have a shared written channel. Any situation requiring the kind of attunement you can only achieve in real-time conversation.</p><p>The meetings that typically don&#8217;t survive: status updates that could be a written report, which <a href="https://gameproductionalchemist.substack.com/p/production-101-9-why-status-reports">Production 101 #9</a> covers in detail. Recurring syncs where the conversation loops without producing decisions. Check-ins that exist because someone is anxious about visibility and prefers a meeting to a document. That last one is worth being honest about. If a meeting exists to manage someone&#8217;s anxiety rather than to produce information, the meeting is the wrong solution to that problem.</p><p>When a meeting fails the audit, converting it is usually straightforward. Status syncs become status reports. Recurring information-sharing meetings become a standing document that people comment on asynchronously. Meetings that existed for visibility become a dashboard or a brief weekly write-up. Some meetings simply stop, and nobody misses them, which tells you something about why they existed.</p><p>The producers I know who have done this exercise report the same finding: they typically recover two to four hours of team time per person per week. Not from eliminating meetings that felt important, but from eliminating meetings that nobody would have defended if asked to defend them directly. The audit asks the question. The meeting cadence never does.</p><p>None of this is a case for eliminating synchronous communication. Some things need a room. The judgment required is knowing which things those are, and having the production discipline to reserve the room for them. A well-facilitated milestone review is worth every minute it costs. A status standup on a team that already writes things down is a cost with no return.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-18-running-meetings/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://www.productionalchemist.com/p/production-101-18-running-meetings/comments"><span>Leave a comment</span></a></p><p>The meeting culture on your project is a product of decisions, whether you made those decisions consciously or not. Most producers inherit it. The good ones eventually look at what they inherited and ask: does this reflect what this team actually needs, or is this what someone else needed I&#8217;ve done this. Early in my career I ran standups daily because that&#8217;s what you did. I ran them because the <a href="https://productionalchemist.com/p/rethinking-daily-stand-up-meetings">Scrum Guide said so</a>, because the previous producer had run them, because stopping felt like admitting you didn&#8217;t care about communication. None of those are reasons. They&#8217;re <a href="https://productionalchemist.com/p/rise-of-the-scrum-zombies">habits dressed up as reasoning</a>.</p><h2>The cost calculation no one does</h2><p>Standups are the <a href="https://productionalchemist.com/p/top-7-complaints-about-game-producers">most expensive meeting format in your weekly schedule</a>, measured by aggregate cost. The formula is simple: headcount multiplied by duration multiplied by frequency. On a twenty-person team, a fifteen-minute daily standup is twenty-five person-hours a week. That&#8217;s more than half a person-week, every week, before the iteration planning, the milestone reviews, the one-on-ones, and the assorted other gatherings have been counted.</p><p>The uncomfortable question that formula raises is: what is that time buying you? On a team that is new to each other, building complicated dependencies, or working through something genuinely uncertain, a daily standup is probably worth the cost. Blockers surface fast. People know what others are doing. The meeting pays for itself. On a team that has worked together for two years, that documents properly and communicates well asynchronously, that same standup is often a recital of things everyone already knows, punctuated by the occasional &#8220;no blockers for me.&#8221;</p><p><a href="https://productionalchemist.com/p/beyond-methodology-cultivating-an">Team maturity should determine standup frequency, not process habit.</a> The team that needs daily synchronisation is the team that doesn&#8217;t yet have the discipline or the tooling to communicate without it. As that discipline develops, the frequency should come down. Three times a week. Twice. Once. The standup that stays daily indefinitely isn&#8217;t a sign of good communication. It&#8217;s a sign that nobody reviewed whether it was still needed.</p><blockquote><p>The standup that stays daily indefinitely isn&#8217;t a sign of good communication. It&#8217;s a sign that nobody reviewed whether it was still needed.</p></blockquote><p>The producers I&#8217;ve seen who never audit this tend to have the same explanation when you ask them: &#8220;the team likes the standup.&#8221; Sometimes that&#8217;s true. More often, the team has simply adapted to the standup the way you adapt to any recurring overhead. It&#8217;s just part of the day. If you removed it, you&#8217;d find out whether they actually wanted it or just got used to it. Run that experiment.</p><h2>Async first</h2><p>The principle is simple: any information that can travel in writing, should. The meetings that survive this filter are considerably fewer than the ones you currently have.</p><p>Status updates belong in writing. Progress reporting belongs in writing. Non-urgent questions belong in writing. Decisions with clear owners and well-understood options belong in writing. If you&#8217;ve read <a href="https://productionalchemist.com/p/production-101-9-why-status-reports">Production 101 #9 on status reports</a>, you have the format for the written version. A well-maintained status report eliminates a significant portion of your recurring meeting load, because the meetings those reports replace were mostly people asking each other what was happening.</p><p>I&#8217;ve worked at studios where the weekly status report went out on Friday afternoon, and by the time Monday&#8217;s first conversation started, the project&#8217;s state was already documented and shared. People came in with context rather than questions. The synchronous time that followed was for work that actually needed live presence, not for getting everyone up to speed.</p><p>What actually requires real-time presence? Decisions that need live debate, where the outcome depends on people building on each other&#8217;s thinking in real time. Situations that need emotional attunement, where the written word is inadequate to the stakes of what&#8217;s being discussed. Problems that would take three long message threads to resolve and ten minutes in person. That&#8217;s not nothing. Those meetings matter enormously. But it&#8217;s a short list compared to the default.</p><p>The async-first producer doesn&#8217;t eliminate meetings. They eliminate the meetings that exist because nobody asked whether they needed to exist.</p><div><hr></div><h2>The agenda as the gate</h2><p>I&#8217;ve operated a simple policy for years: no agenda, no meeting. Not as a preference. As a rule.</p><p>This does two things. First, it forces the person calling the meeting to be clear about what the meeting is for before anyone agrees to attend. Second, it makes it possible for attendees to prepare, which changes the quality of the conversation in the room.</p><p>A useful agenda is a list of questions that need answers. Not a list of topics to discuss. The distinction matters more than it sounds. &#8220;Art direction&#8221; is a topic. &#8220;Do we maintain the current visual reference or shift toward the concept work Yuki produced last week?&#8221; is a question. A topic can run indefinitely without resolution. A question has an answer, which means the meeting ends when you have it.</p><blockquote><p>A useful agenda is a list of questions that need answers. Not a list of topics to discuss. Topics can run indefinitely without resolution.</p></blockquote><p>Who owns the agenda? The person calling the meeting. When does it go out? At least twenty-four hours before the meeting, not five minutes before. The agenda that arrives the morning of tells attendees they&#8217;re expected to perform thinking they haven&#8217;t had time to do. The agenda that arrives a day before gives people the chance to come in with a position, which is what you need when you want a decision, not a discussion.</p><p>The producer&#8217;s job here extends to meetings they don&#8217;t run. If a meeting lands in your calendar with no agenda, you ask for one. Not aggressively, not as an accusation. You ask because you need to prepare. &#8220;What are the questions we&#8217;re trying to answer?&#8221; is a reasonable thing to ask of anyone who wants an hour of your team&#8217;s time.</p><p>Enforcing agenda discipline consistently trains the people around you over time. They stop scheduling vague meetings because they&#8217;ve learned you&#8217;ll ask what the questions are. That&#8217;s not a small thing. It changes the meeting culture of the whole team, one agenda request at a time.</p><div><hr></div><h2>Lean Coffee</h2><p>Not every meeting has a clear agenda before it starts. Sometimes the question is &#8220;what do we need to talk about?&#8221; and you have a room full of people with different answers. The default response to this situation is an open discussion that runs long and ends inconclusively. There&#8217;s a better format.</p><p><a href="https://productionalchemist.com/p/revolutionising-meetings-with-lean">Lean Coffee</a> was created by Jim Benson and Jeremy Lightsmith in Seattle in 2009. It&#8217;s a structured format for discussions where the agenda itself is uncertain, and it&#8217;s one of the more practically useful things I&#8217;ve adopted across a long production career.</p><p>Here&#8217;s how it works. At the start of the session, each participant writes their discussion topics on individual cards or sticky notes, one topic per card. Once everyone has written theirs, you spend a few minutes dot-voting: each person gets a small number of votes (typically three) and places them on the topics they most want to discuss. The cards are ranked by votes and become the agenda.</p><p>You then work through the ranked topics in <a href="https://productionalchemist.com/p/timeboxes-arent-deadlines-theyre-quitting">timeboxed segments</a>, typically five to eight minutes each. At the end of each timebox, you take a quick vote: thumbs up to continue discussing this topic, thumbs sideways to wrap it up quickly, thumbs down to move on to the next one. Majority decides. The discussion continues until the time runs out or the topic list is exhausted.</p><p>What you get is a conversation shaped by the team&#8217;s actual priorities rather than whoever called the meeting. The loudest person in the room doesn&#8217;t determine the agenda. The person most senior in the hierarchy doesn&#8217;t determine it. <a href="https://productionalchemist.com/p/kanban-isnt-just-boards-its-about">The collective does, anonymously, by voting.</a> That&#8217;s a meaningful difference.</p><p>I&#8217;ve used it most regularly in weekly team meetings. The prior week&#8217;s board acts as a shared record, so people arrive with topics already in mind. What the format changes is whose topics get discussed: the voting step means the person with the most to say doesn&#8217;t control what the group spends its time on. The collective need surfaces, rather than the need of whoever has the loudest voice in the room.</p><p>When should you reach for it? Any time you&#8217;re looking at a long and open-ended discussion that has historically run over time and ended without clear decisions. Any time you&#8217;re facilitating a group whose priorities you&#8217;re not certain about. Early-project alignment. Team health check-ins. Priority debates where multiple stakeholders have different views. The format doesn&#8217;t resolve disagreements, but it makes sure the important ones get airtime.</p><h2>Facilitation as a distinct skill</h2><p>There&#8217;s a version of running a meeting where the producer is a participant, like everyone else in the room, contributing opinions and building positions alongside the rest of the team. That&#8217;s sometimes the right mode. For most production meetings, it&#8217;s not.</p><p>The producer as facilitator is a different job. You&#8217;re the host. You hold the agenda&#8217;s questions and bring the group back to them when the conversation drifts. You manage time. You notice when a discussion has reached a decision but nobody has said the decision out loud, and you say it. You close the meeting with <a href="https://productionalchemist.com/p/feedback">explicit decisions and named owners</a>, not a general sense that something was discussed.</p><p>The specific skill that takes practice is managing the person who wants to workshop everything out loud. Every team has at least one: someone for whom thinking is a social activity, who processes by talking, and who will run a twenty-minute tangent if you let them. You&#8217;re not trying to shut them down. You&#8217;re redirecting. &#8220;That&#8217;s worth exploring. Let&#8217;s put it in the parking lot and come back to it if we have time.&#8221; The parking lot is real: write it down visibly, and either return to it at the end or make sure it gets a home elsewhere. The redirection only works if <a href="https://productionalchemist.com/p/social-capital-hard-to-build-but">people trust you&#8217;ll follow through</a>.</p><blockquote><p>The producer as facilitator closes the meeting with explicit decisions and named owners, not a general sense that something was discussed.</p></blockquote><p>The meeting that ended and the meeting that concluded are different things. A meeting ends when the time runs out or everyone leaves the room. A meeting concludes when every agenda question has an answer, every decision has an owner, and the next action is clear. Most meetings end. Fewer conclude. The producer&#8217;s job is to make sure they conclude.</p><h2>The audit</h2><p>If you&#8217;ve never done a <a href="https://productionalchemist.com/p/kaizen-isnt-a-poster-on-the-wall">full audit of your recurring meeting schedule</a>, the exercise is uncomfortable and worth doing.</p><p>Go through every recurring meeting on your calendar. For each one, ask two questions. What decision does this produce? Who couldn&#8217;t get that information another way? The meetings that survive both questions are probably earning their place. The ones that don&#8217;t are candidates for conversion or elimination.</p><p>The meetings that typically survive: <a href="https://productionalchemist.com/p/flow-metrics-in-scrum-ceremonies">milestone reviews</a>, where multiple stakeholders need to collectively assess whether delivery targets are still on track. Decisions requiring input from people who don&#8217;t have a shared written channel. Any situation requiring the kind of attunement you can only achieve in real-time conversation.</p><p>The meetings that typically don&#8217;t survive: status updates that could be a written report, which <a href="https://productionalchemist.com/p/production-101-9-why-status-reports">Production 101 #9</a> covers in detail. Recurring syncs where the conversation loops without producing decisions. Check-ins that exist because someone is anxious about visibility and prefers a meeting to a document. That last one is worth being honest about. If a meeting exists to manage someone&#8217;s anxiety rather than to produce information, the meeting is the wrong solution to that problem.</p><p>When a meeting fails the audit, converting it is usually straightforward. Status syncs become status reports. Recurring information-sharing meetings become a standing document that people comment on asynchronously. Meetings that existed for visibility become a dashboard or a brief weekly write-up. Some meetings simply stop, and nobody misses them, which tells you something about why they existed.</p><p>The producers I know who have done this exercise report the same finding: they typically recover two to four hours of team time per person per week. Not from eliminating meetings that felt important, but from eliminating meetings that nobody would have defended if asked to defend them directly. The audit asks the question. The meeting cadence never does.</p><p>None of this is a case for eliminating synchronous communication. Some things need a room. The judgment required is knowing which things those are, and having the production discipline to reserve the room for them. A well-facilitated milestone review is worth every minute it costs. A status standup on a team that already writes things down is a cost with no return.</p><p>The meeting culture on your project is a product of decisions, whether you made those decisions consciously or not. <a href="https://productionalchemist.com/p/agile-is-a-mindset-not-a-method">Most producers inherit it.</a> The good ones eventually look at what they inherited and ask: does this reflect what this team actually needs, or is this what someone else needed before us? The answer, usually, is both. And the job is to keep the first kind and stop running the second.</p><p>For how Scrum ceremonies fit into sprint-based production specifically, <a href="https://www.productionalchemist.com/p/production-101-12-agile-for-game">Post #12 - Agile for Game Producers</a> covers the full framework and where standups belong within it.</p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;912bafe4-8e99-41ce-a161-3e4d8335af2f&quot;,&quot;caption&quot;:&quot;Game Production Alchemist &#8250; Production 101&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Production 101 - Start Here&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124206240,&quot;name&quot;:&quot;Rob Sandberg&quot;,&quot;bio&quot;:&quot;Seasoned game producer with 30 years in the field. I blend insight with fun, mentor teams, and champion agile, efficient game production. Focused on player experience, I build consensus and value adaptability in this ever-evolving industry.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72cb7a5b-f489-4eab-9035-6339bf2007fa_457x573.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-06-05T06:49:18.407Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10692eed-dabd-4e78-8ad1-eef924b77fe5_1734x907.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.productionalchemist.com/p/production-101&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:141459520,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2231603,&quot;publication_name&quot;:&quot;Game Production Alchemist&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0_I_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c8fe75-257b-4ce8-a63c-db3bd0401a49_256x256.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-18-running-meetings?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-18-running-meetings?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-18-running-meetings?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Production 101 - #17 Pre-Production: What the Producer Does Before Production Starts]]></title><description><![CDATA[The phase where schedule, scope, and team structure get decided, with or without you]]></description><link>https://www.productionalchemist.com/p/production-101-17-pre-production</link><guid isPermaLink="false">https://www.productionalchemist.com/p/production-101-17-pre-production</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Sun, 07 Jun 2026 16:44:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yRNM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><a href="https://productionalchemist.com/">Game Production Alchemist</a></em> <em>&#8250; <a href="https://productionalchemist.com/p/production-101">Production 101</a> &#8250; What Game Producers Do in Pre-Production</em></p><blockquote><ul><li><p>Pre-production is where most games are won or lost, and where producers are most likely to be absent or ineffective.</p></li><li><p>The producer&#8217;s job in pre-production is less about scheduling and more about tracking dependencies, asking hard questions, and recording decisions.</p></li><li><p>Prototype choices commit technology paths. Producers need to know which questions a prototype actually answers.</p></li><li><p>Entering full production with unresolved design ambiguity means resolving it in the middle of an iteration, which is the most expensive place to do it.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yRNM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yRNM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!yRNM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!yRNM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!yRNM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yRNM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2818912,&quot;alt&quot;:&quot;Pre-production thumbnail with thoughtful alchemist, blueprint board, question marks turning into production decisions.&quot;,&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://www.productionalchemist.com/i/200742802?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Pre-production thumbnail with thoughtful alchemist, blueprint board, question marks turning into production decisions." title="Pre-production thumbnail with thoughtful alchemist, blueprint board, question marks turning into production decisions." srcset="https://substackcdn.com/image/fetch/$s_!yRNM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!yRNM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!yRNM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!yRNM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ba81e45-09a3-4167-9648-1d036e409689_1456x1048.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is part of the <a href="https://gameproductionalchemist.substack.com/p/production-101">Production 101</a> series.</p><div><hr></div><p>Pre-production is where most games are won or lost. It&#8217;s also where producers are most likely to be absent, or present but ineffective, because the work is less legible than a task board. There&#8217;s no backlog to point at, no velocity to track, no milestone build to review. There&#8217;s just a set of questions the team needs to answer before real production starts, and a limited window in which to answer them properly.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>The challenge is that pre-production looks, from the outside, like not much is happening. The team is small. There are no builds shipping. The design is still in flux. A producer who measures their own value by the number of things moving through a pipeline will find pre-production uncomfortable. That discomfort is worth examining, because pre-production is where the decisions that govern everything else get made.</p><h2>What pre-production is for</h2><p>Pre-production exists to reduce uncertainty before commitments become expensive. The cost of a decision during pre-production is a conversation. The cost of the same decision in full production is weeks of rework, a reschedule, and a stakeholder conversation nobody wanted to have.</p><blockquote><p>The cost of a decision in pre-production is a conversation. The cost of the same decision in full production is weeks of rework and a stakeholder conversation nobody wanted to have.</p></blockquote><p>The questions that should be answered before production begins: what are we building, for whom, on which platforms, with what technology, with what team? Production can start before all of these are answered. It shouldn&#8217;t. Every unresolved question that enters full production is a decision that will be made reactively, under pressure, by whoever happens to be in the room when the problem becomes unavoidable.</p><p>The argument is for knowing which questions are genuinely open, owning them explicitly, and making sure the <a href="https://productionalchemist.com/p/how-clear-are-the-roles-and-responsibilities">people with the authority to answer them</a> are in the conversation before the schedule is committed.</p><p>[INTERNAL LINK: Post #13 &#8212; How to Build a Milestone Schedule]</p><div><hr></div><h2>Discovery and the producer&#8217;s role</h2><p>The producer doesn&#8217;t write the <a href="https://productionalchemist.com/p/why-game-design-docs-still-matter">game design document</a>. But they&#8217;re responsible for the process that produces it.</p><p>That means identifying the dependencies that creative work creates as it develops. A design decision about progression systems has implications for data infrastructure, for the analytics pipeline, for localisation. A decision about open-world exploration has implications for content volume, for streaming architecture, for team size at peak production. The producer&#8217;s job during discovery is to keep the design grounded in what the team can actually build, <a href="https://productionalchemist.com/p/cheaper-to-change-on-paper-than-it">while the design is still cheap to change</a>.</p><p>[INTERNAL LINK: Post #12 &#8212; Agile for Game Producers]</p><p>The GDD question is worth addressing directly. In a traditional waterfall model, <a href="https://productionalchemist.com/p/upfront-planning">the GDD gets written in pre-production and then production executes against it</a>. In Agile development, the GDD is often a living document, updated as the team learns. Neither approach eliminates the need for pre-production. Both require that certain foundational decisions be made before full production starts: what the game is, what the core loop is, what platforms it targets, what the technology stack is. The format of the design document matters less than whether those decisions exist and are recorded somewhere the full team can find them.</p><p>The other thing the producer does in discovery is make sure the decisions being made get written down. Discovery is full of conversations. A lot of those conversations produce real decisions. Those decisions get made once, in a room with the right people, and then never formally recorded. Six months later, when someone asks why the game has a particular feature or why a technical choice was made, nobody remembers the reasoning. The producer who&#8217;s present in discovery and keeps a record of those decisions is protecting the whole project from itself.</p><p>The most valuable habit I&#8217;ve developed in pre-production is running two documents in parallel: a decision log and an open questions list. The decision log records what was decided, when, who made the call, and the reasoning. The open questions list tracks unresolved questions by date, with a note on which decisions are being made against an assumed answer because the real answer isn&#8217;t available yet. Pre-production is full of those assumed answers. Recording them means that when the question eventually gets resolved, you can trace back to every decision that was built on the assumption and check whether it still holds.</p><h2>Prototype decisions and what they commit to</h2><p>A prototype answers questions. It also creates path dependencies that are expensive to undo later.</p><p><a href="https://productionalchemist.com/p/best-simple-system-for-now-and-why">Technology choices made during prototyping have a way of becoming permanent</a>. The engine integration that worked well enough to get the prototype running becomes the engine integration that the full team builds on. The rendering approach that made the demo look good becomes the rendering approach that the engine team has to support for the next three years. The producer&#8217;s job is to know which questions a prototype is actually answering, and which questions it&#8217;s accidentally foreclosing.</p><blockquote><p>A prototype that proves the <a href="https://productionalchemist.com/p/from-concept-to-cash-the-mobile-game">core loop</a> works is valuable. A prototype that proves the core loop works while accidentally locking in an architecture decision nobody reviewed is a different kind of thing.</p></blockquote><p>The questions worth asking before a prototype starts: what are we trying to learn from this? What decisions will we make based on the result? Are there assumptions baked into the prototype approach that we&#8217;re treating as settled when they aren&#8217;t? A team that can answer those questions cleanly before prototyping is likely to <a href="https://productionalchemist.com/p/prototyping">build a prototype that gives them genuinely useful information</a>. A team that goes straight to building will get useful information and a lot of path dependencies, and won&#8217;t always be able to tell which is which.</p><p>The producer doesn&#8217;t need to understand the technical details of every architecture decision. They need to understand which decisions are being made, when, and whether anyone with commercial or scheduling authority has been included in the conversation.</p><h2>Technical pre-production</h2><p>Engine licence, platform decisions, pipeline setup, middleware selection. These all land on the producer&#8217;s list before a single feature is built.</p><p>They&#8217;re unsexy and easy to defer. A team that&#8217;s excited to start making the game wants to start making the game. Nobody is excited about reading licence agreements or evaluating middleware vendors. But these are also the decisions that <a href="https://productionalchemist.com/p/why-making-games-costs-so-much-and">create the most expensive problems when they&#8217;re wrong</a>. An engine licence that turns out to be incompatible with your target platform. A middleware solution that works fine until you need to ship on a console and then suddenly doesn&#8217;t. A build pipeline that nobody set up properly in pre-production, so the first two months of full production are spent fighting the tools instead of building the game.</p><p>A producer who isn&#8217;t involved in technical pre-production will be managing the consequences of decisions made by engineers in isolation from commercial and scheduling reality. Technical decisions made without someone in the room whose job is to connect them to the project&#8217;s constraints tend to be technically sound and commercially blind.</p><p>The most expensive technical pre-production mistake I&#8217;ve seen, more than once, is deferred platform certification research. A team builds a game assuming a platform will behave a certain way, because that&#8217;s how it behaved two years ago, or because that&#8217;s how a similar platform works. Then the cert submission happens and something fundamental is wrong. Platform requirements change. They&#8217;re not always published clearly. Finding this out during production is recoverable. Finding it out during cert is a different kind of problem entirely.</p><h2>Team structure and capacity planning</h2><p>When to hire, when to use contractors, what disciplines are needed in what phase. These decisions are made in pre-production and lived with for the rest of the project.</p><p>Getting the discipline mix wrong in pre-production creates one of two problems. Hire too early and you have a team spending project money before there&#8217;s anything for them to build. The design is still in flux, the technology is still being decided, and a team of forty has nowhere productive to direct its energy. That&#8217;s expensive in cash and in morale.</p><p>Hire too late and you have a bottleneck you can&#8217;t resource your way out of. The production phase starts, <a href="https://productionalchemist.com/p/scope-management-for-game-development">scope is committed</a>, the schedule is locked, and you&#8217;re three months from your first external milestone with half a team. You can hire into that situation. You can&#8217;t get time back.</p><p>The producer&#8217;s job in pre-production is to translate the project plan into a staffing model: what disciplines are needed, at what capacity, and when. That model then gets presented to whoever controls hiring and budget, clearly enough that they can make an informed decision. The staffing model is connected to the schedule [INTERNAL LINK: Post #13 &#8212; How to Build a Milestone Schedule], so when the schedule changes, the staffing model changes. They shouldn&#8217;t be maintained as separate documents that drift apart.</p><p>The contractor question deserves specific attention. Contractors are useful for filling short-term capacity gaps, for specialist skills the team doesn&#8217;t need full-time, and for scaling up during crunch periods with defined endpoints. They&#8217;re less useful as a strategy for avoiding permanent headcount decisions you should be making. If a discipline is needed for the life of the project, that&#8217;s a permanent hire. Using contractors as a substitute for permanent hires when you need permanent hires adds overhead, <a href="https://productionalchemist.com/p/dynamic-reteaming-in-liveops-adapting">creates knowledge transfer problems</a>, and generally costs more than making the hire directly.</p><h2>When pre-production is over</h2><p>The signals that mean the team is ready to commit to full production are: the core design is validated, the technology is proven, the team is in place, and the first milestone is defined with clear acceptance criteria.</p><p>Those criteria sound simple. They aren&#8217;t. &#8220;The core design is validated&#8221; means someone has built something that demonstrates the core loop works, that target players have responded to it in the ways the design intended, and that the team agrees the thing they&#8217;ve built is what they&#8217;re going to keep building. The design has enough of a foundation that production can build on it without the foundation changing. That&#8217;s the bar. The design document can still be incomplete.</p><p>&#8220;The technology is proven&#8221; means the <a href="https://productionalchemist.com/p/agile-risk-management-in-the-game">key technical risks</a> have been resolved in favour of something the team knows how to build and ship. Not all risks. The key ones. The ones that, if they went wrong, would invalidate the production plan.</p><p>The mistake is calling pre-production over because the calendar says it should be. Pre-production phases get compressed under schedule pressure constantly. A publisher wants to see production momentum. A studio head is watching headcount sitting in pre-production mode and wants them building features. An investor wants to see a <a href="https://productionalchemist.com/p/the-misopportunity">vertical slice</a>. All of these are real pressures and all of them can produce the same outcome: a team that enters full production with unresolved design ambiguity, because the pre-production phase was declared finished before the work was actually done.</p><blockquote><p>A team that enters full production with unresolved design ambiguity will resolve that ambiguity in the middle of an iteration. That&#8217;s the most expensive place to do it.</p></blockquote><p>A producer who knows the project is not ready for full production has an obligation to say so, clearly, with specifics. The specific questions that are unresolved. The specific risks that are unmitigated. The specific criteria that haven&#8217;t been met. That conversation is uncomfortable. It is substantially less uncomfortable than explaining, six months later, why full production is running two months behind schedule because the team spent the first quarter resolving design questions that should have been answered in pre-production.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-17-pre-production/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://www.productionalchemist.com/p/production-101-17-pre-production/comments"><span>Leave a comment</span></a></p><p>Pre-production done well produces four concrete things: a prototype that validates the core loop, a team capable of building the full game, a milestone structure agreed by both the team and the publisher, and a conscious decision to enter production. That last part matters more than it sounds. The alternative is sliding into full production without anyone explicitly confirming the conditions have been met, and that slide is common enough that most studios have at least one post-mortem that traces the root cause back to it.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;756e5f22-dc9f-4874-9c3a-c986d4ab6cf9&quot;,&quot;caption&quot;:&quot;Game Production Alchemist &#8250; Production 101&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Production 101 - Start Here&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124206240,&quot;name&quot;:&quot;Rob Sandberg&quot;,&quot;bio&quot;:&quot;Seasoned game producer with 30 years in the field. I blend insight with fun, mentor teams, and champion agile, efficient game production. Focused on player experience, I build consensus and value adaptability in this ever-evolving industry.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72cb7a5b-f489-4eab-9035-6339bf2007fa_457x573.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-06-05T06:49:18.407Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10692eed-dabd-4e78-8ad1-eef924b77fe5_1734x907.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.productionalchemist.com/p/production-101&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:141459520,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2231603,&quot;publication_name&quot;:&quot;Game Production Alchemist&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0_I_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c8fe75-257b-4ce8-a63c-db3bd0401a49_256x256.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-17-pre-production?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-17-pre-production?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-17-pre-production?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Production 101 - #16 QA's Role in the Production Process]]></title><description><![CDATA[What quality assurance actually does, and how to use it as a production signal]]></description><link>https://www.productionalchemist.com/p/production-101-16-qas-role-in-the</link><guid isPermaLink="false">https://www.productionalchemist.com/p/production-101-16-qas-role-in-the</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Sun, 07 Jun 2026 16:43:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hOOe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><a href="https://productionalchemist.com/">Game Production Alchemist</a></em> <em>&#8250; <a href="https://productionalchemist.com/p/production-101">Production 101</a> &#8250; Game QA Role in Production: QA vs QC Explained</em></p><blockquote><ul><li><p>Most studios call their testers &#8220;QA&#8221; but run QC, and understanding the difference changes how you use the function.</p></li><li><p>Involving QA leadership before development starts is more effective than involving them after the build arrives.</p></li><li><p>Bug density, reopened bugs, and first-pass pass rates are signals about your project, not just your test coverage.</p></li><li><p>QA leadership often has better real-time visibility into project health than anyone else on the team.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hOOe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hOOe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!hOOe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!hOOe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!hOOe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hOOe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2636708,&quot;alt&quot;:&quot;QA role thumbnail showing bug icon, shift-left arrow, test checklist, and game production workflow connection.&quot;,&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://www.productionalchemist.com/i/200742082?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="QA role thumbnail showing bug icon, shift-left arrow, test checklist, and game production workflow connection." title="QA role thumbnail showing bug icon, shift-left arrow, test checklist, and game production workflow connection." srcset="https://substackcdn.com/image/fetch/$s_!hOOe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!hOOe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!hOOe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!hOOe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6be697-cd73-44e3-8759-e83d417f5bc5_1456x1048.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is part of the <a href="https://gameproductionalchemist.substack.com/p/production-101">Production 101</a> series.</p><div><hr></div><p>QA finds bugs. Everyone knows that. What most producers don&#8217;t know is that QA also tells you the truth about your game at the point when everyone else has developed an interest in the answer being favourable. An honest QA report, read correctly, is one of the most useful documents on a project.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><h2>QA vs. QC: the distinction that matters</h2><p>These two terms get used interchangeably in almost every studio I&#8217;ve worked in, and the confusion causes real problems. So: QC is Quality Control. It&#8217;s the act of finding defects. A tester runs a build, finds bugs, files them. That&#8217;s QC. It&#8217;s valuable, it&#8217;s necessary, and it&#8217;s what most game studios are actually running when they say they have QA.</p><p>QA is Quality Assurance. It&#8217;s the broader discipline of building processes that prevent defects from reaching the build in the first place. That means reviewing requirements before development starts. It means <a href="https://productionalchemist.com/p/shifting-games-qa-left-building-better">writing acceptance criteria so the team agrees on what &#8220;done&#8221; looks like before anyone writes a line of code</a>. It means defining test plans early, participating in iteration planning, flagging ambiguity in design documents when there&#8217;s still time to address it without cost. The invisible work in QA is what makes the visible work of QC easier.</p><p>The distinction matters because the timing is completely different. QC finds problems late, after they&#8217;ve been built. QA prevents some of them by catching the conditions that produce them before they&#8217;re built. Both happen in a well-run studio. Many studios have only QC and call it QA, which means they&#8217;re discovering late what they could have prevented early.</p><blockquote><p>If you only have QC, you&#8217;re <a href="https://productionalchemist.com/p/cheaper-to-change-on-paper-than-it">finding problems when they&#8217;re expensive</a>. If you have QA, you&#8217;re preventing some of them when they&#8217;re cheap.</p></blockquote><p>There&#8217;s a management habit that makes this worse: treating QA as a downstream service. Development builds something, then throws it over the wall to QA for testing. That model produces exactly what you&#8217;d expect from it. The QA team gets builds they haven&#8217;t seen specifications for, against requirements they weren&#8217;t part of writing, and they find the same kinds of problems at the same stage of every project. The producer wonders why testing always <a href="https://productionalchemist.com/p/solely-relying-on-your-teams-estimates">takes longer than planned</a>. It takes longer because the process was designed to find problems late.</p><p>The studios I&#8217;ve seen run this well treat QA as a discipline that spans the full development cycle, with dedicated headcount that has time for both QC work in the build and the upstream process work that prevents some of it. That combination isn&#8217;t free. It requires the producer to protect QA&#8217;s time for non-testing work, which is harder to justify when there&#8217;s always a build that needs testing.</p><h2>Shifting left</h2><p>&#8220;Shift left&#8221; has become one of those phrases that gets repeated in planning meetings without anyone doing the thing it describes. So let me be specific about what it actually means and why it works.</p><p><a href="https://productionalchemist.com/p/shifting-games-qa-left-building-better">Shifting left</a> means moving testing activity earlier on the project timeline, closer to when decisions are made. A QA engineer involved in iteration planning reviews the acceptance criteria for the iteration&#8217;s work before development starts. They ask the question: how will we know this is done, and done correctly? That question, asked before development, exposes ambiguity that would otherwise surface as a bug after development. The design decision that seemed clear to the developer and the designer doesn&#8217;t look the same from the QA perspective, and that gap is exactly where defects live.</p><p>The practical implication for a producer is this: QA leadership should be in iteration planning. They should be reviewing acceptance criteria before the iteration begins. They should have a seat at the table when requirements are written, not a folder of requirements handed to them after the fact.</p><p>This is a specific operational choice that costs something. QA engineers in planning meetings are not testing the current build during that time. The payoff is a build with fewer ambiguity-driven defects in it, which means QC work goes faster, which more than covers the time spent. In my experience, the studios that resist this do so because they&#8217;re measuring QA by test execution metrics and those metrics look worse when testers are in planning meetings rather than executing test cases. <a href="https://productionalchemist.com/p/good-producers-have-an-investigative">The wrong measurement produces the wrong behaviour</a>.</p><p>I&#8217;ve pushed for QA involvement at planning on several projects where the resistance was real. The most common objection is &#8220;QA is already stretched.&#8221; That&#8217;s usually true. And it&#8217;s usually true because QC is running at full capacity catching problems that earlier involvement would have prevented. Breaking that cycle requires trusting the investment before you can measure the return.</p><h2>QA as a production signal</h2><p>The data QA generates is a map of where your project&#8217;s risks are materialising. Most producers read bug reports as a testing problem. I read them as a production signal.</p><p><a href="https://productionalchemist.com/p/good-producers-have-an-investigative">Bug density by area tells you where the team is struggling</a>. If QA is consistently finding more bugs in one system, in one level, in one feature area, that&#8217;s telling you something about that part of the codebase or design. It might be that the area is technically complex. It might be that the requirements were unclear. It might be that a specific developer is under pressure and cutting corners, or that a handoff between two teams isn&#8217;t working. <a href="https://productionalchemist.com/p/rethinking-failure-its-not-your-people">The bugs are the symptom</a>. Your job is to read the pattern.</p><p>Reopened bugs tell you where estimation went wrong or where fixes were rushed. When a bug gets fixed, verified, and then reopens because the fix introduced a new problem, you&#8217;re looking at one of two things: the fix was incomplete because the developer didn&#8217;t understand the root cause, or the fix was done too quickly because the schedule didn&#8217;t leave time to do it properly. Either is worth understanding.</p><p>First-pass pass rates tell you about build quality. If your QA team consistently finds that a high proportion of new features fail their initial testing, that&#8217;s a signal about the quality of what&#8217;s coming out of development, and that&#8217;s a conversation to have before the next iteration.</p><blockquote><p>The bugs are the symptom. The production question is what the pattern tells you about how the team is working.</p></blockquote><p><a href="https://productionalchemist.com/p/how-clear-are-the-roles-and-responsibilities">None of this replaces reading the actual bug report</a>. It means you&#8217;re reading it differently. The question to ask is what the distribution tells you, and where the project needs attention.</p><div><hr></div><h2>Test plans and milestone acceptance</h2><p>This is where QA connects directly to the legal and commercial structure of the project. <a href="https://productionalchemist.com/p/production-101-8-legal-documents">Production 101 #8</a> covers the milestone structure in contracts. The short version: milestones in a development agreement carry acceptance criteria, and those criteria determine whether the milestone gets paid. The question of who writes those criteria, and what they actually test, is where test plans become contractually significant.</p><p>The acceptance criteria problem is this: &#8220;done&#8221; means different things to the development team, QA, and the publisher, and the place these three definitions have to match is in the test plan. The development team thinks done means the feature is implemented. QA thinks done means the feature passes the test cases. The publisher thinks done means the feature meets the specification they signed off. Those are often different things. The producer&#8217;s job is to find out they&#8217;re different before the milestone submission, not after.</p><p>This is why QA involvement in milestone planning matters, not just milestone testing. If the QA team isn&#8217;t part of defining the acceptance criteria for a milestone, you&#8217;ll have a test plan that tests the wrong things, and a milestone review where the publisher&#8217;s criteria and your test plan don&#8217;t match. That&#8217;s a slow, expensive conversation to have at the wrong moment.</p><p>The test plan is also your record. In a milestone dispute, the test plan is the document that says what was tested, how, and with what outcome. A well-structured test plan that maps directly to the milestone acceptance criteria is evidence. A set of bug reports with no structure is noise.</p><h2>The QA/producer relationship</h2><p>QA leadership often has better real-time visibility into project health than anyone else on the team. Think about what they see: every feature at the point of completion, every bug through its full lifecycle, every area of the game that&#8217;s being tested and retested. They see the fragile systems before they become critical. They see the features that are repeatedly failing verification before that becomes a milestone problem. They have a picture of the project that no one else has, and they have it before anyone else.</p><p>Building a genuine working relationship with QA leadership means getting that picture early. That requires two things. First, the QA lead needs to <a href="https://productionalchemist.com/p/social-capital-hard-to-build-but">trust that honest reporting will be used to solve problems, not to assign blame</a>. If the first time a QA lead tells a producer &#8220;this area is fragile and we&#8217;re worried about it&#8221; the producer responds by escalating to leadership and making it a crisis, the QA lead will learn not to tell the producer that in advance. The honest reporting that makes early warning possible depends on the producer responding to it well.</p><p>Second, it means the producer has to actually ask. A QA lead who isn&#8217;t being asked will tend to report what&#8217;s in the system: bug counts, coverage percentages, test execution status. Those metrics are accurate and not very useful. The useful information is the <a href="https://productionalchemist.com/p/your-jira-already-knows-youre-just">qualitative read</a>: which areas feel stable, which feel fragile, where are the testers finding unexpected behaviour that doesn&#8217;t have a bug filed for it yet. That information requires a conversation, not a dashboard.</p><p>I&#8217;ve had QA leads who&#8217;ve become the most reliable early warning system on a project, and I&#8217;ve had QA leads I barely spoke to because I was managing them as a service function. The difference in what I knew about my projects in those two situations was significant.</p><h2>Live service QA specifics</h2><p>Regression testing on a live game is a different problem from certification testing on a boxed product, and the difference goes beyond scale.</p><p>On a boxed product, you&#8217;re testing toward a fixed release. The risk is a defect in the shipped build. On a live game, you&#8217;re testing toward a continuous stream of updates against an existing player base. A broken feature on a live game affects your current players immediately, and the moment the update is live, you can&#8217;t take it back without a hotfix. That changes the risk calculation completely.</p><p>The regression scope question is one of the harder ongoing decisions in <a href="https://productionalchemist.com/p/game-live-operations-primer">live service production</a>. You can&#8217;t regression-test everything every time you ship, because the cadence of a live game doesn&#8217;t give you the time. What you can do is maintain a regression suite that covers the highest-risk areas: systems that have broken before, systems that many players interact with, monetisation flows. The question of what&#8217;s in that suite and when it gets updated is a joint decision between QA and production.</p><p>Hotfix protocols matter more in <a href="https://productionalchemist.com/p/rise-of-the-scrum-zombies">live service</a> than anywhere else. When something breaks in production, the pressure to fix it quickly is intense. The risk is that a rushed hotfix introduces new problems. The discipline of having a fast-track process that still includes a meaningful QA pass, even if compressed, is what prevents one bad deploy from turning into two. That process needs to be designed before something goes wrong. Designing it during the incident is too late.</p><blockquote><p>The &#8220;good enough to ship&#8221; question gets asked constantly in live service. The answer requires both QA data and production context, and the producer has to own the call.</p></blockquote><p>The judgement call of <a href="https://productionalchemist.com/p/agile-risk-management-in-the-game">when a risk is acceptable and when it isn&#8217;t</a> is one of the hardest things about live service production. QA can tell you what&#8217;s broken and how severe it is. They can tell you what the workaround is, if one exists, and what the likelihood is of the bug being encountered in normal play. The producer has to add the context: how many players are affected, what&#8217;s the competitive window, what&#8217;s the cost of delay. That combined assessment is the decision. Neither side can make it alone.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-16-qas-role-in-the/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://www.productionalchemist.com/p/production-101-16-qas-role-in-the/comments"><span>Leave a comment</span></a></p><p></p><p>If you want context on how milestone structures connect to the contractual picture, <a href="https://productionalchemist.com/p/production-101-8-legal-documents">Production 101 #8</a> on legal documents covers the framework. For how the producer&#8217;s reporting picture relates to what QA is generating, <a href="https://productionalchemist.com/p/production-101-9-why-status-reports">Production 101 #9</a> on status reports is the relevant entry.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5599b2f6-a958-49dd-809d-a8ab6699f7e4&quot;,&quot;caption&quot;:&quot;Game Production Alchemist &#8250; Production 101&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Production 101 - Start Here&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124206240,&quot;name&quot;:&quot;Rob Sandberg&quot;,&quot;bio&quot;:&quot;Seasoned game producer with 30 years in the field. I blend insight with fun, mentor teams, and champion agile, efficient game production. Focused on player experience, I build consensus and value adaptability in this ever-evolving industry.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72cb7a5b-f489-4eab-9035-6339bf2007fa_457x573.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-06-05T06:49:18.407Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10692eed-dabd-4e78-8ad1-eef924b77fe5_1734x907.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.productionalchemist.com/p/production-101&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:141459520,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2231603,&quot;publication_name&quot;:&quot;Game Production Alchemist&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0_I_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c8fe75-257b-4ce8-a63c-db3bd0401a49_256x256.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-16-qas-role-in-the?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-16-qas-role-in-the?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-16-qas-role-in-the?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Production 101 - #15 Understanding Publishing Platforms]]></title><description><![CDATA[What producers need to know before their first cert submission]]></description><link>https://www.productionalchemist.com/p/production-101-15-understanding-publishing</link><guid isPermaLink="false">https://www.productionalchemist.com/p/production-101-15-understanding-publishing</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Sun, 07 Jun 2026 16:42:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!UUk0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><a href="https://productionalchemist.com/">Game Production Alchemist</a></em> <em>&#8250; <a href="https://productionalchemist.com/p/production-101">Production 101</a> &#8250; Game Publishing Platforms: What Producers Must Know</em></p><blockquote><ul><li><p>Every major platform has a certification framework, a submission portal, and a store CMS. The producer is usually the person navigating all three.</p></li><li><p>Sony&#8217;s TRC and Nintendo&#8217;s Lotcheck have specific timelines that will rearrange your launch window if you discover them too late.</p></li><li><p>IARC makes age rating compliance straightforward for digital releases. Physical ratings are a different, more expensive matter.</p></li><li><p>Platform documentation changes with each platform update. The producer&#8217;s job is knowing where to find the current spec, not memorising the last one.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UUk0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UUk0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!UUk0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!UUk0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!UUk0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UUk0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2843273,&quot;alt&quot;:&quot;Publishing platforms thumbnail with surprised alchemist, generic console mobile PC icons, and certification badge.&quot;,&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://www.productionalchemist.com/i/200741040?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Publishing platforms thumbnail with surprised alchemist, generic console mobile PC icons, and certification badge." title="Publishing platforms thumbnail with surprised alchemist, generic console mobile PC icons, and certification badge." srcset="https://substackcdn.com/image/fetch/$s_!UUk0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!UUk0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!UUk0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!UUk0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde6feb2-bd3f-42d8-9418-0af5d3e12a01_1456x1048.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The first time you submit a build to cert, the surprise is the realisation that almost everything you needed was public documentation the whole time. Every platform has a framework. Every framework has timelines. Every timeline has a way of colliding with your ship date if you discovered it too late. In smaller studios, the producer is typically the person who finds this out.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><h2>Why platform knowledge sits with the producer</h2><p>In a large studio, platform relations is its own discipline. There are people whose entire job is managing the publisher relationship and navigating cert. In a smaller studio, <a href="https://productionalchemist.com/p/so-what-does-a-game-producer-do-anyway">the producer is that person</a>. You&#8217;re the primary contact for the platform&#8217;s partner team, the one who manages the developer portal access, the one who reads the cert report and decides what the team needs to fix first.</p><p>Understanding the framework is the difference between <a href="https://productionalchemist.com/p/how-i-stopped-hating-commitment-dates">a launch window you planned for</a> and one you scrambled through.</p><p>This post covers the <a href="https://productionalchemist.com/p/game-titles-i-have-worked-on">six platforms I&#8217;ve shipped on directly</a>: iOS, Android, PlayStation, Xbox, Nintendo, and Steam. It doesn&#8217;t attempt a deep treatment of cert failure types, rejection reasons, or escalation paths. The goal is narrower: name the framework, explain the timeline, point to the portal. That&#8217;s enough to plan well.</p><h2>What every platform has in common</h2><p>Platform by platform, the differences are real, but the structure is the same. Every platform has a technical compliance framework, a submission process, a review timeline, a store or CMS where your product lives, and an age rating requirement.</p><p>Every producer shipping on a new platform for the first time should ask the same five questions. What is the certification framework called? How long does cert take? When does the store page need to be ready relative to launch? What age ratings are required for my target markets? Who is my primary contact in the platform&#8217;s partner team?</p><p>The answers vary. The questions don&#8217;t.</p><h2>The platforms</h2><p><strong>PlayStation</strong></p><p>Sony&#8217;s technical compliance framework is the TRC, the Technical Requirements Checklist. It covers DualSense features, trophy implementation, system integrations, error handling, and a range of other platform-specific requirements. The full TRC is available to authorised developers through the PlayStation Partners portal at partner.playstation.com, behind NDA.</p><p>One missed TRC can cost you weeks. <a href="https://productionalchemist.com/p/shifting-games-qa-left-building-better">Start validating against it during alpha. Not during submission.</a></p><p>After cert passes, Sony&#8217;s marketing and store team requires approximately four weeks to set up your <a href="https://productionalchemist.com/p/from-concept-to-cash-the-mobile-game">store page from the assets you provide</a>. That four-week window starts after cert passes, so treat the cert pass as the midpoint of your launch process. Factor those four weeks into your launch window from the beginning.</p><p><strong>Xbox</strong></p><p>Microsoft&#8217;s framework is the Xbox Requirements, abbreviated XRs. Cert typically takes four to seven business days. After cert, Microsoft&#8217;s Biz Ops team needs approximately two weeks to build out the store page from your submitted metadata, similar to the Sony store setup lag.</p><p>Microsoft offers an optional paid Certification service that provides early XR compliance feedback before formal submission. Worth considering if you&#8217;re uncertain about specific platform integrations. The developer portal is Xbox Partner Center at partner.microsoft.com/dashboard.</p><p><strong>Nintendo</strong></p><p>Nintendo calls their process Lotcheck. The name sometimes misleads producers who haven&#8217;t shipped on the platform before. Lotcheck checks platform compliance: Joy-Con behaviour, text handling, eShop integration, button art compliance, and rating compliance. Game bugs that fall outside those requirements are yours to find before submission. Expecting Lotcheck to catch them is a planning error.</p><p>Submit thirty days before your expected release date. Nintendo&#8217;s review timeline is longer than the console competition. The Nintendo Developer Portal at developer.nintendo.com holds the full guidelines once you&#8217;re authorised.</p><blockquote><p>&#8220;Submit thirty days before your expected release date. Nintendo&#8217;s review timeline is longer than the console competition, and it will not flex to match your marketing window.&#8221;</p></blockquote><p><strong>iOS</strong></p><p>Apple&#8217;s process is App Review. Ninety percent of reviews complete within 24 hours, but complex apps (those with in-app purchases, sensitive permissions, or account creation) can take three to seven days. Holiday periods extend timelines further.</p><p>Submitting Tuesday through Thursday during US business hours tends to produce faster turnaround than submissions near weekends or major holidays. This is anecdotal and not guaranteed, but it&#8217;s the pattern I&#8217;ve seen consistently across multiple submissions. The CMS is App Store Connect at appstoreconnect.apple.com.</p><p><strong>Android / Google Play</strong></p><p>Google Play Console at play.google.com/console is the submission and management interface. Google&#8217;s review process is generally faster than Apple&#8217;s. The Play Console also handles policy compliance, rating submissions via IARC, and staged rollout controls.</p><p>If you&#8217;re shipping simultaneously on iOS and Android, plan your submission windows so that iOS cert doesn&#8217;t create the bottleneck. Submit iOS first, or give yourself enough buffer that a slow App Review cycle doesn&#8217;t push the Android release date without reason.</p><p><strong>Steam</strong></p><p>Steam uses Steamworks for all developer and publishing functions. The partner portal is at partner.steamgames.com.</p><p>A few Steamworks-specific timelines that catch producers unprepared. New developers wait 30 days after paying the Steam Direct app fee (US$100 at time of writing) before they can publish. Your Coming Soon page needs to be live for at least 14 days before your release date. Store page review takes three to five business days. Build review takes one to five business days.</p><p>These timelines caught me off-guard on my first Steam release. The build review window felt obvious in hindsight, but the 14-day Coming Soon requirement and the 30-day new developer hold both required rescheduling. Factor all of them into your launch window, not just the build review.</p><p><strong>Epic Games Store</strong></p><p>The Epic Games Store serves a meaningful audience on PC. I haven&#8217;t shipped there directly, so this post doesn&#8217;t speak with authority on the cert framework or timelines. If you&#8217;re publishing on EGS, read the developer documentation directly rather than relying on secondhand accounts from developers on other storefronts.</p><div><hr></div><h2>Age ratings</h2><p>Every major market has age rating requirements, and all the major platforms require valid ratings before approving your product for sale. You need them for every territory you&#8217;re selling into.</p><p>The International Age Rating Coalition, IARC, is the practical answer for digital games. It&#8217;s free and adopted by all the major digital storefronts: Xbox, Nintendo eShop, PlayStation Store, Google Play, and Steam. It works through a single questionnaire embedded in the storefront submission flow. That questionnaire generates ratings for multiple territories simultaneously: ESRB for North America, PEGI for Europe, USK for Germany, and others.</p><p>If you&#8217;re a digital-first studio, IARC is almost certainly your route. You go through the storefront submission flow and it&#8217;s already there.</p><blockquote><p>&#8220;IARC is free, takes fifteen minutes, and handles multiple territory ratings from a single questionnaire. For digital releases, do it at the start of the submission process.&#8221;</p></blockquote><p>Physical releases are a different matter. Traditional ESRB and PEGI certification for physical media is a paid process. PEGI certification for a physical release can run to several thousand euros, and the timeline is long. If you&#8217;re planning a physical SKU, <a href="https://productionalchemist.com/p/why-making-games-costs-so-much-and">factor both the cost and the submission lead time into your production budget and schedule from the start</a>. Neither is trivial, and both are regularly underestimated by studios approaching their first physical release.</p><p>The physical rating cost surprises studios more than almost any other launch expense I&#8217;ve seen. It gets missed in early budgets because the team assumes digital ratings apply everywhere. Physical ratings require separate paid certification. Flag it early and put a number against it.</p><h2>Store pages and CMS</h2><p>Every platform has a content management interface where your store page lives: metadata, descriptions, screenshots, trailers, pricing, localisation. In smaller studios, the producer often owns this alongside cert submission.</p><p>App Store Connect&#8217;s review flow, the Xbox Partner Center store page builder, and Steamworks&#8217; store page editor all have quirks that slow you down the first time you use them. Get into the interface before your launch window, not during it.</p><p>Cert passing and store going live are two separate events with their own timelines. The Sony four-week store setup and Nintendo&#8217;s thirty-day Lotcheck window are the two that most often catch producers out, because they sit on the far side of a cert pass that the team treated as the end of the line.</p><div><hr></div><h2>Building platform timelines into your schedule</h2><p>Platform cert belongs in your <a href="https://productionalchemist.com/p/agile-risk-management-in-the-game">milestone schedule as a fixed constraint with a buffer</a>, anchored to your ship date and worked backward. <a href="https://productionalchemist.com/p/cheaper-to-change-on-paper-than-it">Plan it at the start of production</a>, with the same rigour as any other milestone.</p><p>For a simultaneous multi-platform launch: identify the longest cert window, which is usually Nintendo&#8217;s Lotcheck, set your first submission date from that, then verify the other platforms fit within the same window.</p><blockquote><p>&#8220;<a href="https://productionalchemist.com/p/solely-relying-on-your-teams-estimates">The common planning error is setting a ship date, then calculating whether cert will fit.</a> Set a cert date and let it drive the ship date.&#8221;</p></blockquote><p>For each platform, you need three dates in your schedule. When the cert build needs to be ready. When store assets need to be submitted. When any platform-specific submissions (age ratings, store page review) need to happen. A platform cert calendar with those dates is a basic production artefact for any multi-platform release.</p><p>The producers who handle multi-platform launch well start the cert planning early, go back to the actual documentation each time, and treat the timelines as constraints rather than rough guides.</p><p>[INTERNAL LINK: Post #13 - How to Build a Milestone Schedule] [INTERNAL LINK: Post #14 - Scope Management and the Art of Cutting]</p><h2>One more thing about documentation</h2><p>Every platform updates its requirements periodically. The TRC changes. Lotcheck requirements change. App Review guidelines change. What was true on the last title may not be true on this one.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-15-understanding-publishing/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://www.productionalchemist.com/p/production-101-15-understanding-publishing/comments"><span>Leave a comment</span></a></p><p>The producer&#8217;s job is <a href="https://productionalchemist.com/p/good-producers-have-an-investigative">knowing where to find the current spec</a> and checking it at the start of each new project. Read the actual documentation. <a href="https://productionalchemist.com/p/upfront-planning">Memory from the last title drifts.</a> Platforms update their requirements, and a requirement that passed on your last game may fail on this one. That check takes fifteen minutes at the start of a project and can save several weeks at the end of one.</p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;fd2c9eea-4733-4107-927f-27a619aae948&quot;,&quot;caption&quot;:&quot;Game Production Alchemist &#8250; Production 101&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Production 101 - Start Here&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124206240,&quot;name&quot;:&quot;Rob Sandberg&quot;,&quot;bio&quot;:&quot;Seasoned game producer with 30 years in the field. I blend insight with fun, mentor teams, and champion agile, efficient game production. Focused on player experience, I build consensus and value adaptability in this ever-evolving industry.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72cb7a5b-f489-4eab-9035-6339bf2007fa_457x573.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-06-05T06:49:18.407Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10692eed-dabd-4e78-8ad1-eef924b77fe5_1734x907.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.productionalchemist.com/p/production-101&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:141459520,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2231603,&quot;publication_name&quot;:&quot;Game Production Alchemist&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0_I_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c8fe75-257b-4ce8-a63c-db3bd0401a49_256x256.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-15-understanding-publishing?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-15-understanding-publishing?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-15-understanding-publishing?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item></channel></rss>