<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Technical-Debt on scripting.pro</title><link>https://scripting.pro/tags/technical-debt/</link><description>Recent content in Technical-Debt on scripting.pro</description><image><title>scripting.pro</title><url>https://scripting.pro/images/og-featured.png</url><link>https://scripting.pro/images/og-featured.png</link></image><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 16 Apr 2026 11:00:00 -0400</lastBuildDate><atom:link href="https://scripting.pro/tags/technical-debt/index.xml" rel="self" type="application/rss+xml"/><item><title>The Anatomy of a Eureka, Part I: Why Some Metaphors Land and Others Don't</title><link>https://scripting.pro/posts/eureka-part1/</link><pubDate>Thu, 16 Apr 2026 10:00:00 -0400</pubDate><guid>https://scripting.pro/posts/eureka-part1/</guid><description>The distance between domains explains almost nothing about whether a creative idea will be useful. What actually predicts applicability is the granularity of the transferred unit, and controlling it is a compression problem with discrete levels.</description><content:encoded><![CDATA[<p><em>We may assume that a creative idea is a distant analogy, connecting two things no one had connected before. That assumption is wrong. The distance between domains explains almost nothing about whether an idea will be novel, useful, or transformative.</em></p>
<p>What actually matters is far less intuitive, and it changes how we should think about LLMs as instruments for creativity.</p>
<hr>
<h2 id="the-broken-promise-of-the-creative-prompt">The Broken Promise of the Creative Prompt</h2>
<p>Ask any major LLM for novel solutions to a real problem and you usually get back a polished recombination of known best practices.</p>
<p>Take this question: <em>How can we better prevent technical debt in large enterprise IT projects with fixed dates and budgets?</em></p>
<p>You&rsquo;ll typically receive: short Agile sprints, 15-25% refactoring buffers, SonarQube, &ldquo;stop the line&rdquo; culture, and KPIs in vendor contracts. Useful and professional, but entirely predictable.</p>
<p>If you&rsquo;re looking for established best practices, this is exactly what you want. The model is doing what it was trained to do, interpolating the most statistically probable patterns in its training data, and for consolidating known solutions that is a strength.</p>
<p>But if you&rsquo;re looking for a genuinely new idea, something no one has tried, then that same interpolation is the obstacle. The model is fine; we&rsquo;re asking it to perform the wrong operation.</p>
<hr>
<h2 id="directed-metaphorical-association">Directed Metaphorical Association</h2>
<p>Years ago, while researching creative systems, I started experimenting with a different approach: directed metaphorical association. Instead of asking for solutions directly, you identify the strong semantic concepts in a problem, pull rich metaphors from distant domains, transfer properties across the gap, and let the human judge what emerges.</p>
<p>The logic is simple. If you ask an LLM to solve a technical debt problem, it searches its training data for content <em>about</em> technical debt. You get back what the industry already knows. But if you ask it to find structural parallels between technical debt and, say, scuba diving, the model is forced to traverse a completely different region of its knowledge. The connections it finds can&rsquo;t be recycled best practices, because no one has written about the intersection of nitrogen absorption and code quality.</p>
<p>At the time I developed this, it was all manual. Today, the attention mechanism in Transformer-based LLMs lets us scale this approach dramatically: the model can compute semantic relationships across domains far richer than anything I could code by hand.</p>
<p>But scaling it revealed something I didn&rsquo;t expect. The results weren&rsquo;t uniformly creative. Some metaphorical transfers landed immediately and felt actionable. Others were intellectually fascinating but resisted any practical application. At first I assumed this was noise, since some metaphors just work better than others. But the pattern was too consistent to be random, and it turned out to be more interesting than the ideas themselves.</p>
<hr>
<h2 id="same-problem-directed-metaphors">Same Problem, Directed Metaphors</h2>
<p>When I applied the method to the technical debt question, directing the LLM to generate metaphorical associations from distant domains rather than recombine known practices, four ideas emerged:</p>
<p><strong>Directed fermentation.</strong> In cheesemaking, you don&rsquo;t fight bacterial activity; you control which bacteria dominate. The distinction that matters is controlled versus uncontrolled, not clean versus dirty. A bad cheese isn&rsquo;t a cheese with bacteria; it&rsquo;s a cheese with the wrong bacteria.</p>
<p>Transfer: maintain a catalog of authorized shortcuts (a &ldquo;starter culture&rdquo;), each with its documented lifespan and self-replacement rule. Debt that follows the starter is tolerated. Debt outside it is rejected. You stop trying to eliminate debt and start trying to control <em>which</em> debt lives in your system.</p>
<p><strong>Mandatory decompression.</strong> In scuba diving, nitrogen dissolves in the blood under pressure. That&rsquo;s physics, not a negotiation. If the diver ascends too fast, the nitrogen forms bubbles. Since preventing nitrogen absorption is impossible under pressure, the solution is decompression stops, calculated mathematically and non-negotiable.</p>
<p>Transfer: accept that fixed deadlines and budgets <em>will</em> dissolve debt into the codebase. That&rsquo;s a law of development under pressure, not a failure of discipline. Model debt accumulation as a calculable variable and insert mandatory decompression windows whose length is determined by the model, not by managerial goodwill. You don&rsquo;t negotiate the laws of physics.</p>
<p><strong>Programmed selective amnesia.</strong> The brain actively prunes weak synaptic connections during sleep. Forgetting is a survival mechanism, not a malfunction. Without this pruning, the brain saturates, loses its ability to discriminate, and starts treating noise as signal.</p>
<p>Transfer: at fixed intervals, delete entire modules and force them to be rewritten from their behavioral contract alone. This sounds radical, but the point is what the deletion reveals. Code that cannot be reconstructed from its spec exposes that the <em>spec</em> was insufficient: the real debt was in the specification all along, not in the code.</p>
<p><strong>Unrehearsed ensemble.</strong> Jazz bands booked for festival slots with non-negotiable stage times cram complex new arrangements into minimal rehearsal hours. Every player memorizes the charts individually. But onstage, the improvisation falls apart into disjointed solos, because knowing the material individually is not the same as having internalized it as shared group intuition.</p>
<p>Transfer: a team where every developer knows the codebase individually can still produce incoherent architecture, because no one has built the shared intuition of how the system wants to evolve. The debt lies in the absence of collective internalization, which only emerges from working together on the same problems over time, rather than in any individual&rsquo;s competence.</p>
<hr>
<h2 id="something-is-off">Something Is Off</h2>
<p>Read those four ideas again. Two of them, fermentation and decompression, feel immediately actionable. You could present them to a project director tomorrow and have a productive conversation. They fit inside the existing mental model of how IT projects work; they just reframe a specific aspect of it.</p>
<p>The other two, selective amnesia and the unrehearsed ensemble, are more demanding. They don&rsquo;t reframe an aspect of the existing model. They ask you to question what you consider the primary artifact (is it the code or the spec?), or what &ldquo;team competence&rdquo; even means (is it individual knowledge or collective intuition?). You can&rsquo;t just &ldquo;apply&rdquo; them. You&rsquo;d need to rethink something basic first.</p>
<p>This isn&rsquo;t a question of quality. All four are intellectually rich. But they operate at different levels, and that difference is consistent and reproducible enough to be worth understanding.</p>
<hr>
<h2 id="the-red-herring-semantic-distance">The Red Herring: Semantic Distance</h2>
<p>The obvious explanation would be that some metaphors are simply &ldquo;too far&rdquo; from the target domain. That&rsquo;s the classical thesis from Mednick (1962): close associations are banal, distant associations are incomprehensible, and creativity sits in an optimal zone in between. It&rsquo;s an elegant idea, and it has dominated the creativity literature for over sixty years.</p>
<p>But it doesn&rsquo;t explain what we&rsquo;re seeing here. Fermentation comes from biology. Selective amnesia comes from neuroscience. Both are roughly equidistant from software engineering. Yet the first is immediately applicable and the second is not.</p>
<p>If distance were the relevant variable, ideas from similarly distant domains should behave similarly. They don&rsquo;t, so something else is at work.</p>
<hr>
<h2 id="first-finding-transfer-granularity">First Finding: Transfer Granularity</h2>
<p>What separates the two groups is the <em>size</em> of what gets transferred, not distance, since both draw from domains equally far from software engineering.</p>
<p>Look at what each idea actually imports from its source domain:</p>
<p>Fermentation imports a single rule: &ldquo;the relevant distinction is not presence versus absence, it&rsquo;s controlled versus uncontrolled.&rdquo; One causal relationship, stripped of all cheesemaking context. You can plug it directly into a conversation about technical debt without asking anyone to change how they think about software.</p>
<p>Decompression imports a single rule as well: &ldquo;accumulation under pressure is a physical law, and the stops are calculable.&rdquo; The diving context is gone. What remains is a structural insight that maps cleanly onto fixed-deadline projects.</p>
<p>Now look at what the unrehearsed ensemble imports. Instead of a single rule, it brings a <em>system of relationships</em>: the idea that individual competence does not produce collective competence, that shared intuition is a distinct artifact that only emerges from sustained joint practice, and that the absence of this artifact produces incoherence even when every individual performs well. To apply this to a software team, you need to accept all of these premises simultaneously. You&rsquo;re not plugging in a rule; you&rsquo;re redefining what &ldquo;team competence&rdquo; means (a separate thing that either exists or doesn&rsquo;t, rather than the sum of individual skills).</p>
<p>Selective amnesia does the same thing. It doesn&rsquo;t just say &ldquo;delete code sometimes.&rdquo; It requires you to reconceptualize what the primary artifacts are, to accept that code is expendable and specs are foundational, to rethink the relationship between implementation and contract. That&rsquo;s a system of interlocking ideas, not a single transferable rule.</p>
<p>Semantic distance matters: it ensures the pieces are genuinely different from what the target domain already knows. But the variable that predicts whether a metaphorical idea will be <em>immediately useful</em> is the granularity of the transferred unit. Single causal rules are portable. Systems of relationships require a worldview shift.</p>
<p>Both can be valuable, but they serve different purposes, ask different things of the audience, and land on very different timescales.</p>
<hr>
<h2 id="second-finding-compression-at-the-right-level">Second Finding: Compression at the Right Level</h2>
<p>If granularity is what matters, the practical question becomes: how do you control it? How do you reliably extract single causal rules from a rich source domain instead of accidentally importing entire systems?</p>
<p>The answer is compression.</p>
<p>When you extract a causal rule from a source domain, you&rsquo;re performing lossy compression in the information-theoretic sense (keeping only the causal skeleton, discarding everything else). You take a rich domain, scuba diving with its physics, decompression tables, equipment protocols, certification culture, and accident case law, and you compress it down to a bare skeleton: &ldquo;inevitable accumulation under pressure → calculated mandatory stops.&rdquo; Everything else gets discarded. What remains is portable.</p>
<p>What I didn&rsquo;t expect is that this compression doesn&rsquo;t work as a smooth dial you can turn gradually. It has discrete levels, like quantization of a signal (steps, not a ramp). In practice, I consistently see three distinct levels:</p>
<p><em>The raw metaphor.</em> &ldquo;Technical debt is like cancer.&rdquo; This is barely compressed at all. The metaphor arrives with its full baggage: diagnosis, staging, treatment, remission, relapse, death. You&rsquo;re not importing a rule; you&rsquo;re importing a <em>scenario</em>, and the scenario drags in properties that don&rsquo;t map to the target domain at all. (Does technical debt metastasize? Does it have remission? The metaphor implies yes, but the reality is more complicated.)</p>
<p><em>The causal rule.</em> &ldquo;Damage at a threshold triggers an irreversible state transition.&rdquo; Now the source domain&rsquo;s vocabulary has disappeared entirely. You can&rsquo;t tell whether this came from botany, metallurgy, or nuclear physics; it&rsquo;s a pure structural relationship. It&rsquo;s abstract enough to travel across any domain boundary, but concrete enough to generate specific ideas when you apply it to a new context.</p>
<p><em>The philosophical principle.</em> &ldquo;Systems under constraint reach equilibria.&rdquo; This is over-compressed. It&rsquo;s true of everything: thermodynamics, economics, psychology, traffic. Precisely because it applies everywhere, it generates nothing specific anywhere. It&rsquo;s a tautology dressed as insight.</p>
<p>The intermediate level, the bare causal rule, is the only one that is simultaneously abstract enough to leave the source domain and concrete enough to land in the target domain and generate something actionable.</p>
<blockquote>
<p><strong>Too little compression, and you import baggage. Too much, and you import nothing.</strong></p>
</blockquote>
<p>Useful creativity, it turns out, is a compression problem, and the sweet spot is a discrete level rather than a point on a continuous dial.</p>
<hr>
<h2 id="what-this-means">What This Means</h2>
<p>These two findings already change how you use an LLM for creative work.</p>
<p>If you want ideas that are immediately actionable, direct the model to extract <em>single causal rules</em> from distant domains, stripped of all source vocabulary. Force compression to the intermediate level. If you can still tell which domain a rule came from, it&rsquo;s not compressed enough. If you can&rsquo;t imagine applying it to anything specific, it&rsquo;s compressed too far.</p>
<p>But when I started applying this systematically, I ran into something I didn&rsquo;t expect. I had a catalog of beautifully compressed rules. Each one mapped onto the target problem with uncomfortable precision. And yet I still couldn&rsquo;t turn any of them into a solution. Understanding <em>how</em> a problem works turned out to be a completely different operation from knowing <em>what to do about it</em>. That gap, and what fills it, is what Part II is about.</p>
<hr>
<p><em>Gabriel Mailhot is a Senior Subject Matter Expert at Desjardins, where he works on development practices, architecture, and complex organizational problems spanning technology, process, and governance. His 2003–2010 research focused on creative systems and metaphor-based retrieval. He publishes at scripting.pro.</em></p>
]]></content:encoded></item><item><title>The Anatomy of a Eureka, Part II: Where the Eureka Actually Happens</title><link>https://scripting.pro/posts/eureka-part2/</link><pubDate>Thu, 16 Apr 2026 11:00:00 -0400</pubDate><guid>https://scripting.pro/posts/eureka-part2/</guid><description>Causal rules are diagnoses, not solutions. Turning a diagnosis into a genuine invention requires two missing operations, inversion and composition, formalized here as the Extraction-Inversion-Composition (EIC) framework.</description><content:encoded><![CDATA[<p><em>Part I ended with a puzzle. I had a method that reliably extracted powerful ideas from distant domains, but some of those ideas were immediately actionable and others resisted application. The difference turned out to be granularity and compression: single causal rules, stripped bare, are portable. Systems of relationships are not. But even after solving that puzzle, something was still missing.</em></p>
<hr>
<h2 id="the-limitation-i-didnt-see">The Limitation I Didn&rsquo;t See</h2>
<p>By the end of Part I, I could reliably extract clean, compressed causal rules from distant domains. Rules like &ldquo;accumulation under pressure is physics, not a choice&rdquo; or &ldquo;the distinction that matters is controlled versus uncontrolled.&rdquo; Each one a precise diagnosis of how a problem works.</p>
<p>But that&rsquo;s exactly what they were: diagnoses, X-rays of the pathology rather than solutions.</p>
<p>I spent a while assuming the solution would naturally follow from understanding the cause. It doesn&rsquo;t. Understanding that nitrogen dissolves in blood under pressure doesn&rsquo;t tell you to invent decompression stops. The leap from &ldquo;here&rsquo;s how the problem works&rdquo; to &ldquo;here&rsquo;s how to break the mechanism&rdquo; requires a separate act, one that is creative in a way the diagnosis is not.</p>
<p>When I systematized the method by asking an LLM to extract compressed causal rules from many distant domains at once, I could see this limitation clearly. The results were clean and powerful:</p>
<p><em>&ldquo;Functional-but-carrying agents propagate the problem because there is no incentive to detect them.&rdquo;</em> (from epidemiology)</p>
<p><em>&ldquo;Repeated sub-critical stress accumulates invisibly until failure occurs without proportional warning.&rdquo;</em> (from metallurgy)</p>
<p><em>&ldquo;Control by outcome alone makes it impossible to distinguish systemic success from accidental success.&rdquo;</em> (from fermentation science)</p>
<p>Each maps onto technical debt with uncomfortable precision. The epidemiological rule describes how &ldquo;working&rdquo; code that carries hidden debt propagates undetected. The metallurgical rule describes how small daily compromises accumulate into sudden, catastrophic failures. The fermentation rule describes how testing only the final product hides whether the <em>process</em> was sound. Yet for all their diagnostic value, not one of them tells you what to <em>do</em>.</p>
<hr>
<h2 id="the-missing-operation-inversion">The Missing Operation: Inversion</h2>
<p>The creative act that turns a diagnosis into a solution is <em>inversion</em>: deliberately breaking the causal chain at a chosen point.</p>
<p>In its simplest form, a diagnosis says &ldquo;A causes B, which causes C.&rdquo; Inversion asks what happens if I prevent A from causing B, or if I let B happen but prevent it from causing C. Each break point produces a different family of solutions, often of completely different nature.</p>
<p>In practice this is less obvious than it sounds, because a single causal chain can be broken at <em>multiple</em> points, and the choice of where to break determines not just the solution but its entire character.</p>
<p>Take the epidemiological rule: &ldquo;functional-but-carrying agents propagate the problem because there is no incentive to detect them.&rdquo; There are three links in this chain, and each one is a potential target:</p>
<p><strong>Break at link 1</strong>: make the carrying agents non-functional. In software terms, design code so that debt-carrying modules <em>stop working</em> after a defined period. The debt itself triggers a forced replacement. This is a radical, architectural solution that changes the infrastructure.</p>
<p><strong>Break at link 2</strong>: create incentives to detect, even when everything works. In software terms, reward teams for discovering latent debt rather than for delivering features. Don&rsquo;t wait for symptoms; actively hunt for carriers. This is an organizational, incentive-based solution that changes the reward structure.</p>
<p><strong>Break at link 3</strong>: accept propagation, but make its pathways visible. In software terms, don&rsquo;t try to prevent debt from spreading; instead, instrument the codebase so that every propagation path is traced in real time. When something breaks, you know exactly which &ldquo;carrier&rdquo; transmitted the problem. This is an observational solution that changes what you can see.</p>
<p>One diagnosis yields three completely different solutions. The choice of <em>where</em> to break the chain is itself a creative decision that depends on the context, the constraints, and the appetite for disruption.</p>
<p>This is the operation that was missing from my original method. Extraction gives you a diagnosis. Inversion gives you families of possible solutions. But I wasn&rsquo;t done, because the most powerful ideas I encountered weren&rsquo;t single inversions. They were <em>combinations</em>.</p>
<hr>
<h2 id="fourth-finding-novelty-is-in-the-composition">Fourth Finding: Novelty Is in the Composition</h2>
<p>Here is the central reversal of everything I thought I knew about creativity.</p>
<p>The entire creativity literature since Mednick (1962) has focused on the <em>transfer</em> as the source of novelty, on the assumption that the more distant the connection between domains, the more creative the idea. My own earlier research operated on this assumption.</p>
<p>What experimentation with LLMs at scale revealed is that distance is only a <em>necessary condition</em>. It ensures that the pieces you extract are sufficiently different from one another. But the novelty, the actual Eureka, doesn&rsquo;t reside in any single extraction or any single inversion. It resides in the <em>composition</em>: the moment you assemble inversions from multiple, unrelated domains into a recipe that is specific to the target problem. The individual pieces aren&rsquo;t surprising; the assembly is what no one has seen before.</p>
<p>In my own work using structural analogy as a diagnostic tool for organizations, I observe exactly this. When I import rules from biology, law, and neuroeconomics to analyze an organizational dysfunction, no individual rule surprises the domain expert. A biologist knows the first. A lawyer knows the second. An economist knows the third. What produces genuine insight is the <em>combination</em>: the specific way these rules interact when applied simultaneously to a context none of them were designed for.</p>
<p>Let me make this concrete with the technical debt example. Take two inversions from different rules:</p>
<p>From the epidemiological rule, break at link 2: <em>create an incentive to detect even when everything functions normally.</em></p>
<p>From the fermentation rule: <em>the relevant distinction is not presence versus absence, it&rsquo;s controlled versus uncontrolled.</em></p>
<p>Now assemble them. You get something that, as far as I can tell, doesn&rsquo;t exist in the current IT literature: <strong>reproductibility as the metric of code health.</strong></p>
<p>A module is healthy not because it works, nor because its tests pass, but because two independent developers, starting from the same specification, would produce structurally similar code. If they wouldn&rsquo;t (if the result depends heavily on who wrote it), then the module is a functional-but-carrying agent. It works, but its construction process was <em>uncontrolled</em>. It passed the outcome test while failing the process test.</p>
<p>Think about what this does. You&rsquo;re no longer looking for bugs or measuring test coverage. You&rsquo;re measuring whether the <em>process</em> that produced the code was controlled or accidental. The fermentation frame redefines <em>what</em> you&rsquo;re looking for. The epidemiological inversion tells you <em>when</em> to look: precisely when everything appears fine.</p>
<p>Neither inversion alone produces this idea. The fermentation rule alone gives you a philosophical reframe, interesting but abstract. The epidemiological inversion alone gives you a detection strategy, useful but directionless. The invention is the <em>recipe</em>: reproductibility as a metric, triggered by the absence of alarm signals, designed to catch uncontrolled process masquerading as healthy output. It emerged from the composition, not from either piece.</p>
<hr>
<h2 id="fifth-finding-the-solution-exposes-the-context">Fifth Finding: The Solution Exposes the Context</h2>
<p>There&rsquo;s one more thing I got wrong initially, and it matters.</p>
<p>My first instinct, after developing the model, was to add a filtering step: take the composed ideas and check which ones are compatible with the target context. &ldquo;This wouldn&rsquo;t work here because of regulatory constraint X; eliminate it.&rdquo; &ldquo;This contradicts our governance model; eliminate it.&rdquo; Standard feasibility analysis.</p>
<p>That instinct is a trap. A sufficiently compelling solution doesn&rsquo;t get filtered by the context. It <em>exposes</em> the context. When a good idea collides with an organizational, regulatory, or cultural constraint, there are two readings: either the idea is unrealistic, or the constraint itself deserves to be questioned.</p>
<p>The most transformative Eureka is not &ldquo;this solution works in my world&rdquo; but &ldquo;this solution is so compelling that I&rsquo;m willing to change my world to make it work.&rdquo; The friction between the idea and the context is a <em>diagnostic</em> of which constraints are actually serving you and which ones have outlived their purpose, not a bug in the creative process.</p>
<p>This has happened before at industry scale. Agile was not &ldquo;applicable&rdquo; in the world of waterfall. It didn&rsquo;t fit the existing governance, contracts, or PMO structure. But it exposed that waterfall rested on a false assumption: that you can fully specify a system before building it. DevOps was not &ldquo;applicable&rdquo; in organizations where development and operations were separate silos with separate incentives. But it exposed that the separation itself was the root cause of deployment failures. In both cases, the idea didn&rsquo;t adapt to the context. The context restructured itself around the idea, because the idea was compelling enough to justify the cost of change. Entire organizations rewrote their processes, their team structures, their governance models. They did so not because a consultant told them to, but because the solution showed the constraints to be obstacles rather than laws.</p>
<blockquote>
<p><strong>The idea didn&rsquo;t adapt to the context. The context restructured itself around the idea.</strong></p>
</blockquote>
<p>The same mechanism operates at smaller scales. In my work at a major financial institution regulated by federal and provincial authorities, I&rsquo;ve seen a creative solution to a development process problem run directly into a regulatory rule that everyone assumed was immutable. But the solution was transformative enough to create the will to engage the regulator in a conversation about whether that rule was still serving its original purpose. Instead of the constraint killing the idea, the idea questioned the constraint. And the list of constraints exposed became a deliverable as valuable as the solution itself.</p>
<hr>
<h2 id="the-complete-model">The Complete Model</h2>
<p>Creativity, then, is not a single operation. It is a sequence of three, which I&rsquo;ll call the <strong>Extraction-Inversion-Composition framework</strong> (EIC):</p>
<p><strong>Extraction.</strong> Compress distant domains into minimal causal rules at the right discrete level: abstract enough to be portable, concrete enough to be operational. This is the preparatory step. LLMs do it extraordinarily well.</p>
<p><strong>Inversion.</strong> Identify where each causal chain can be broken. Each breakpoint opens a family of solutions of a different nature. The choice of breakpoint is context-dependent and already involves judgment, but an LLM can enumerate the options systematically.</p>
<p><strong>Composition.</strong> Assemble inversions from different rules into a coherent recipe for the target domain. This is where genuine novelty emerges: in the combinatorics of the assembly, not in the individual pieces.</p>
<p>The framework rests on three claims, each of which challenges a different assumption in the existing creativity literature:</p>
<p>First, the causal rule (not the metaphor, the analogy, or the concept) is the correct unit of creative transfer. It is the only level of compression that is simultaneously portable and operational.</p>
<p>Second, inversion is the missing operation between diagnosis and solution. The creativity literature treats the transfer as the creative act, but the transfer only produces a diagnosis. Inversion produces families of solutions. Without it, you have insight without agency.</p>
<p>Third, novelty emerges from composition, not from transfer. The distance between domains ensures that the pieces are different. But the invention is in the assembly, in the specific combination of inversions that no one has tried before.</p>
<p>Each composed proposal is then judged on three levels of strength:</p>
<p><em>Logical strength</em>: does the inversion actually break the causal chain? This is a structural coherence judgment. An LLM handles it well.</p>
<p><em>Transformative strength</em>: is the solution compelling enough to justify questioning the constraints that stand in its way? An LLM can partially assess this; it can evaluate whether a proposal is radical and explain why.</p>
<p><em>Political strength</em>: will the actual actors have the will and power to modify the exposed constraints? This is a situated judgment, anchored in knowledge of power dynamics, culture, and institutional history. Here, and only here, the human is irreplaceable.</p>
<hr>
<h2 id="what-comes-next">What Comes Next</h2>
<p>The EIC framework now feels complete on paper. But a model is only as good as its results in practice.</p>
<p>In Part III, I turn the framework into a concrete instrument (a carefully constrained prompt) and test it cold on three different LLMs with the same technical debt problem.</p>
<p>The results reveal something unexpected about the creative signatures of different models, about the limits of prompts as specifications, and about where human judgment remains irreplaceable.</p>
<hr>
<p><em>Gabriel Mailhot is a Senior Subject Matter Expert at Desjardins, where he works on development practices, architecture, and complex organizational problems spanning technology, process, and governance. His 2003–2010 research focused on creative systems and metaphor-based retrieval. He publishes at scripting.pro.</em></p>
]]></content:encoded></item><item><title>The System Is Working as Designed</title><link>https://scripting.pro/posts/the-system-is-working-as-designed/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><guid>https://scripting.pro/posts/the-system-is-working-as-designed/</guid><description>On why large organizations structurally produce technical debt, select for political behavior, and reliably defeat every attempt at reform, including Agile.</description><content:encoded><![CDATA[<p><em>On why large organizations structurally produce technical debt, select for political behavior, and reliably defeat every attempt at reform, including Agile.</em></p>
<hr>
<p>I have watched a pattern repeat itself across organizations too many times to believe it is accidental. A technically competent person does careful work, raises legitimate concerns about architectural shortcuts, pushes back on timelines that will generate problems downstream. They are right. Their concerns are documented. And they are quietly sidelined while the project proceeds, delivers on schedule, and the manager who overrode their concerns is promoted.</p>
<p>The promoted manager is not incompetent. In many cases, they are genuinely skilled at something. But skilled at what, exactly? And why does that skill, rather than technical judgment, determine who advances?</p>
<p>This article is an attempt to answer that question rigorously. The answer implicates organizational dynamics, but also the educational institutions that train managers, the governance models that structure IT investment, and the reform movements, Agile among them, that have tried and failed to change the outcome. The system is not broken; it is working exactly as its underlying structure dictates. In 2007, Robert Schaefer, writing in ACM SIGSOFT Software Engineering Notes, asked the same question in more general terms: why do large complex systems so often work against their declared goals? His answer pointed directly at organizational governance, specifically at what he termed the Authoritarian Hierarchy of Control. What follows builds on that diagnosis and extends it into the specific dynamics of IT investment, selection, and reform.</p>
<blockquote>
<p><em>Technical debt is not a failure of discipline. It is a system of incentives working exactly as designed.</em></p>
</blockquote>
<hr>
<h2 id="the-incentive-structure-that-generates-technical-debt">The Incentive Structure That Generates Technical Debt</h2>
<p>Large organizations govern IT investment through annual budget cycles and delivery metrics. A project is funded for a year, expected to deliver defined functionality by a defined date, and evaluated on whether it did. This structure imposes a specific temporal resolution on decision-making: what matters is what is visible within twelve months.</p>
<p>Architectural quality does not operate on a twelve-month horizon. The decisions that determine whether a system can be evolved cheaply in three years (modularity, decoupling, reversibility, testability) produce no visible output in the current budget cycle. By the logic of the measurement instrument, they are invisible.</p>
<p>Every technical role in a delivery team, whether developer, tech lead, or architect, is in the business of reducing the cost of being wrong. Good design does not predict the future; it ensures that when the system must evolve in ways no one anticipated, the cost of that evolution is bounded rather than catastrophic. But this value cannot be captured by a metric that closes at year end. It has no line in the budget and generates no deliverable.</p>
<p>The project manager who allocates time and money to architectural quality is making an investment whose return will appear in someone else&rsquo;s budget cycle, under someone else&rsquo;s name. The project manager who defers that investment delivers on time and on budget, and receives the recognition that comes with it. That is a sensible response to the incentive structure rather than a failure of individual judgment.</p>
<p>Schaefer named this mechanism <em>risk shifting</em>: when direct action to reduce a risk is judged too costly, the less costly tactic is to transfer that risk burden to others. If this transfer can proceed without immediate observation, the conflict it generates will simply be deferred. Annual budget cycles are, structurally, a machine for making risk shifting invisible. The cost lands in a future cycle, under a different manager, attributed to different causes.</p>
<p>Game theory offers a complementary framing. In a prisoner&rsquo;s dilemma, two actors each face a choice between cooperation, which produces the best collective outcome, and defection, which protects individual interest at collective cost. When both actors reason independently and arrive at the locally coherent choice, both defect. The problem is not irrationality but the fact that individually sensible behavior produces collectively irrational outcomes. The parallel with IT governance runs deep enough to carry predictive weight. Every project manager, every budget cycle, every delivery team faces the same calculus. When every actor optimizes for their own position, the collective result is a technology estate that grows progressively more rigid, more expensive to evolve, and less capable of supporting the business it was built to serve. Nobody made a bad decision; everyone made a good one, given the game they were playing.</p>
<hr>
<h2 id="the-cascade-from-deferral-to-dissimulation-to-manipulation">The Cascade: From Deferral to Dissimulation to Manipulation</h2>
<p>Technical debt is the first and most visible symptom of this structure. But the same logic operates at every level of the organizational hierarchy, producing a cascade of increasingly consequential behaviors.</p>
<p>At the project level, the actor defers architectural quality. This is risk shifting in its most direct form: a cost that is real but diffuse, transferred to a future that belongs to someone else.</p>
<p>As the project encounters difficulty (deferred costs begin to materialize, timelines slip, complexity compounds), the actor at the next level faces a different version of the same calculus. Delivering bad news upward is costly. It damages reputation, invites scrutiny, and moves the problem from the future into the present. Filtering that information, presenting progress in the most favorable available framing, managing perception rather than reality: this is individually sensible for exactly the same reason that deferring architectural debt is individually sensible. The cost is real but diffuse, while the benefit is immediate and personal.</p>
<p>Schaefer formalized this in what he called the Liars&rsquo; Axioms. A liar, his term for any actor who strategically manages information to protect their position, suppresses, manufactures, or denies evidence to align observers&rsquo; judgments with their own goals. The intent of the lie, he observed, may simply be to stall for time. If the delay runs long enough, the consequences will have had greater impact on the world than the uncovering of the lie. Those who discover it afterward (auditors, commissions of inquiry, historians) matter only to a small audience. The actor has long since moved on.</p>
<p>The calculus that defers architectural quality also defers information. Technical debt accumulates at the bottom of the hierarchy; informational debt accumulates at the top. The mechanism is identical, and the consequences, when they finally surface, are proportional to how long the deferral has continued.</p>
<p>This is a structural observation, not a cynical one about human nature: it describes what happens when the same incentive pattern operates at multiple levels of a hierarchy simultaneously. Each level protects its position by deferring its costs to the next. The progression from deferral to dissimulation is continuous, not discrete. There is no moment at which a sensible actor becomes a dishonest one, only a gradual drift toward behaviors that the structure rewards and away from behaviors that it penalizes.</p>
<hr>
<h2 id="what-gets-selected">What Gets Selected</h2>
<p>Organizations do not select randomly among the people available to them. Over time, through promotion decisions made by individuals operating within the incentive structure described above, they exercise a form of natural selection. The behaviors that advance are the behaviors that the structure rewards. The behaviors that are penalized (transparency, technical rigor, willingness to deliver unwelcome news) become associated with career stagnation.</p>
<p>Schaefer described this dynamic in terms of the Authoritarian Hierarchy of Control: organizations structured around command and control systematically suppress independent judgment in favor of loyalty and conformance, rewarding those who display alignment with authority over those who bring accurate but unwelcome observations. The result, he noted, is that the quality of products and services tends to be driven to the lowest level of mediocrity the market will bear, and that responsibility for poor performance will be attributed to individual contributors, never to the structure that produced it.</p>
<p>This selection process has a name for each of its outcomes. HEC Montréal, one of Quebec&rsquo;s leading business schools, administers a political skill assessment that classifies managers into five profiles: Machiavellian, Strategist, Survivor, Good Soldier, and Sacrificial Lamb. The Machiavellian profile, described as driven by a strong thirst for power, politically motivated behavior, and the belief that ends justify means, is listed as having two strengths: highly effective, and achieves objectives. Ethical risks appear as a limitation, alongside friction and mistrust. The profile is presented not as a pathology but as a high-performance option with known trade-offs.</p>
<p>At the other end of the scale, the Sacrificial Lamb, described as believing that merit is sufficient, unable to decode political dynamics, potentially becoming a victim of the system, is listed as having three strengths: integrity, authenticity, and focus on work well done. Its risks include marginalization and incomprehension of real organizational dynamics.</p>
<hr>
<h2 id="what-gets-trained">What Gets Trained</h2>
<p>HEC is not inventing the reality it describes. It is documenting what it observes in organizations, and then teaching it. HEC is not alone in this. The framing of political skill as a legitimate and measurable managerial competency has been widely adopted across business schools. What was once informal knowledge (how to handle power, manage perception, read the room) has been systematized into curriculum. By naming these profiles, measuring them, and transmitting them to the next generation of managers as legitimate knowledge about how organizations actually work, business education completes a feedback loop that Schaefer identified: the selection pressure that organizations exert is validated, codified, and taught as professional competence.</p>
<blockquote>
<p><em>The Machiavellian who advances in a large organization is not a deviation from the system. They are its product: shaped by the incentive structure, selected by promotion decisions, and trained by the curriculum.</em></p>
</blockquote>
<p>There is an irony here. Schaefer&rsquo;s 2007 paper received only three citations in the seventeen years following its publication, not because it was wrong, but because the professional and academic structures of software engineering had no established category for an argument that located the root cause of system failure in governance, power, and the suppression of independent judgment. The diagnosis arrived before the vocabulary existed to receive it. That, too, is the system working as designed.</p>
<p>There is a question this article does not pretend to resolve: does the organization produce this selection pressure, which the educational institution then documents? Or does the educational institution legitimate and amplify a pressure that would otherwise remain informal? The honest answer is that causality runs in both directions. The organization and its educational infrastructure have co-evolved into a system that is now very difficult to disturb from within.</p>
<hr>
<h2 id="why-agile-was-structurally-condemned">Why Agile Was Structurally Condemned</h2>
<p>The Agile movement emerged in the early 2000s as a direct response to the dysfunctions described above. Its founding documents, particularly the Agile Manifesto, called for transparency over performance theater, genuine collaboration over contract negotiation, and working software over comprehensive documentation. It identified, correctly, that waterfall project dynamics generated exactly the kind of rigidity and deferral that technical debt represents.</p>
<p>The adoption of Agile in large organizations over the following two decades produced a result that is by now well documented: the vocabulary was adopted; the underlying dynamics were not changed. Sprints became fixed-scope, fixed-date delivery commitments. Velocity became a production output target. Retrospectives became compliance rituals. The Agile transformation was managed by the same people operating within the same incentive structure, producing the same behaviors under a new name.</p>
<blockquote>
<p><em>Agile did not transform governance. Governance transformed Agile.</em></p>
</blockquote>
<p>The standard explanation for this failure centers on the frozen middle: middle managers whose positional authority depends on the existing governance model, who absorbed the pressure for change without transmitting it upward. This explanation is correct but incomplete.</p>
<p>The deeper explanation is that Agile, authentically practiced, requires a specific type of organizational actor. It requires transparency about progress and problems, the willingness to deliver unwelcome news early, and collaboration that is genuine rather than performed. These are the behaviors associated with the Good Soldier and the Sacrificial Lamb in the HEC taxonomy, the profiles described as loyal, competent, and appreciated for their work, but also naive, vulnerable, and easily marginalized in competitive environments.</p>
<p>The Strategist and the Machiavellian, the profiles that large organizations have systematically selected and elevated, are precisely those for whom authentic Agile practice is not a viable strategy. Transparency exposes their deferral. Early bad news undermines their narrative management. Genuine collaboration limits their control of information flows. For these actors, adopting the vocabulary of Agile while hollowing out its content is political competence applied to organizational survival, not resistance to change.</p>
<p>Schaefer anticipated this failure with what he called the Process Paradox: the more a process is commanded, the less independent judgment is permitted, and when something goes wrong (as it inevitably will), the worse the consequences. Agile, commanded from above within an authoritarian hierarchy, does not produce agility. It produces a rigid process that eliminates independent judgment while preserving the appearance of flexibility. The name changes; the structure does not.</p>
<p>Agile did not fail because it was poorly designed or poorly implemented. It failed because it was introduced into organizations that had spent decades selecting against the human dispositions it required. The frozen middle did not block Agile. The selection process that produced the frozen middle made authentic Agile adoption structurally improbable before the first sprint planning meeting.</p>
<p>The Agile coach role, now a standard position in many large organizations, crystallizes this contradiction with particular clarity. It is an officially sanctioned mandate to transform a culture that the incentive structure actively reproduces. The role signals commitment to change without requiring it. In Schaefer&rsquo;s terms, it is a display directed outward: the organization can point to its coaches as evidence of transformation while the governance model remains untouched. And it produces a specific collateral damage that rarely appears in any measurement. Developers who glimpse a different way of working, who are shown what genuine collaboration and technical quality could look like, find themselves unable to practice any of it within the real constraints of the system. The choices available to them are narrow: exit the organization, remain with a chronic frustration that compounds over time, or disengage quietly and accept the distance between what they know is possible and what the system will permit. The organization does not notice this damage, because what it measures is sprint velocity.</p>
<hr>
<h2 id="the-normalization-of-failure">The Normalization of Failure</h2>
<p>One final mechanism completes the loop and explains why the system persists without generating the corrective pressure one might expect.</p>
<p>Large IT project failure is not an occasional anomaly. The Standish Group has tracked IT project outcomes for decades; their data consistently show that only around 30% of IT projects are considered fully successful, a figure that drops further for large-scale initiatives, with roughly half of all projects challenged and nearly one in five outright cancelled or abandoned. The pattern is stable across years and geographies. Yet when a specific project fails (costs overrun, the system delivered is less capable than the system it replaced, timelines stretch beyond any defensible estimate), the failure is almost never attributed to the incentive structure that generated it. It is attributed to poor management, to vendor problems, to scope creep, to technical complexity. The postmortem identifies individuals and decisions. It does not identify the game those individuals were playing or the rules that made their decisions predictable.</p>
<p>Schaefer identified this as a structural property of hierarchical governance: the source of all faults will ultimately be whatever legitimate authority claims it is, whether or not such claims are true. Accountability flows downward to individual contributors. The structure that produced the conditions for failure is never the finding. To make it the finding would require those conducting the examination to indict what elevated them.</p>
<p>This misattribution operates at two scales simultaneously, and the two reinforce each other. At the organizational level, the postmortem blames individuals and decisions, protecting the incentive structure. But the same dynamic operates earlier, at the level of the project itself. When timelines slip, as they inevitably do when architectural shortcuts accumulate and deferred complexity begins to surface, the reading is almost always that the technical team is slow, that estimates were poor, that execution was lacking. This interpretation is structurally necessary. If the delay were attributed to its actual cause, the decisions that sacrificed quality to meet an earlier date, accountability would travel upward, toward the people who made those decisions. Attributing it to technical competence severs that causal chain cleanly. The practitioners who lived through the accumulation carry the reputational cost of a problem they did not create. They raised concerns that were overridden and worked inside constraints they did not choose. Some internalize the blame, wondering whether they could have done better, whether they should have pushed back harder, whether they lack something. The structure produces this doubt as a feature, not a side effect.</p>
<p>The system then produces a second deferral: the failed system is declared legacy (too old, too rigid, too expensive to maintain) and replaced. The replacement project is governed by the same annual budget cycle, managed by the same profiles, and evaluated by the same metrics. The cycle restarts. The debt that accumulated in the previous system is not examined as evidence of a structural problem but treated as the natural aging of technology, as entropy rather than design.</p>
<p>Software does not age. The observation is Schaefer&rsquo;s, made in passing but worth dwelling on: software stays fixed in time. What changes is the context around it: the business it serves, the expectations placed on it, the people who maintain it. When an organization declares a system legacy, it is not describing a property of the technology. It is describing the accumulated consequences of decisions that were never attributed to their real cause.</p>
<blockquote>
<p><em>A system whose failures are consistently misattributed, whose lessons are never learned, and whose replacements reproduce its conditions is not a system that is trying and failing to improve. It is a system that is successfully maintaining itself.</em></p>
</blockquote>
<hr>
<h2 id="a-final-observation">A Final Observation</h2>
<p>This analysis is not offered as a counsel of despair to the practitioners who have spent years pushing against these dynamics, advocating for better design, raising concerns that were overridden, watching careful work be undone by delivery pressure. The frustration those practitioners feel does not mean they misunderstood something. It means they understood something correctly and found themselves playing a game whose rules made their understanding a competitive disadvantage.</p>
<p>Schaefer ended his 2007 paper with a question that remains unanswered: what are the limits of the will? He was asking whether individuals operating within deeply coercive systems retain any meaningful capacity for independent judgment. The question is not rhetorical. History suggests that the levers which have actually changed systems of this kind are rarely internal. They tend to be external: competitive pressure severe enough to punish rigidity, regulatory constraint that removes certain decisions from the negotiating table, or the cumulative weight of people who refuse to play the game and vote with their feet. Departures concentrate in exactly the profiles the system needs most, the Good Soldiers and Sacrificial Lambs who carry the technical judgment the Machiavellians cannot replace. Whistleblowing, when it occurs, is almost always punished before it produces change. Smaller organizations built deliberately outside the AHoC model sometimes succeed precisely because they have not yet had time to reproduce its conditions. None of these are solutions. They are the terrain on which change, when it happens, actually occurs.</p>
<p>The technical argument for architectural quality (modularity, decoupling, reversibility) remains correct. The problem is that it is a technical argument being made in an environment where the selection pressure runs in the opposite direction, and technical correctness has never overridden incentive structure.</p>
<p>What this analysis suggests is that the relevant question is not how to make the case for better architecture more persuasively. It is a prior question: in an organization that has systematically selected for political behavior, trained its managers in its legitimacy, and structured its governance to make individual rationality and collective interest incompatible, from what position, and with what leverage, is change actually possible?</p>
<p>That question does not have a technical answer.</p>
<hr>
<p><em>Gabriel Mailhot</em><br>
<em>Software Architect and Software Engineering Quality Advisor</em><br>
<em>Researcher (2005–2010): Image Processing &amp; Creative AI</em><br>
<em>Business Expert / Domain Expert (2010–2026): Software Architecture, Software Development and Quality Practices</em></p>
<hr>
<p><strong>Reference</strong></p>
<p>Schaefer, R. (2007). The Grand Theory of Everything: What Man-Made Systems Are, and Why They Fail. <em>ACM SIGSOFT Software Engineering Notes</em>, 32(4).</p>
]]></content:encoded></item></channel></rss>