<?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>Opsintell blog</title><link>https://opsintell.com/blog/</link><description>Technical and operational due diligence for software investments. Operator-grade evidence across code, architecture and Day-2 operations, turned into a board-ready roadmap.</description><language>en</language><managingEditor>contact@opsintell.com (Guillaume Teixeron)</managingEditor><lastBuildDate>Sun, 30 Aug 2026 18:30:00 +0200</lastBuildDate><atom:link href="https://opsintell.com/" rel="self" type="application/rss+xml"/><item><title>Your AI Coding Policy Is Not a Provenance Record</title><link>https://opsintell.com/your-ai-coding-policy-is-not-a-provenance-record/</link><pubDate>Sun, 30 Aug 2026 18:30:00 +0200</pubDate><guid isPermaLink="true">https://opsintell.com/your-ai-coding-policy-is-not-a-provenance-record/</guid><description>Four open source projects wrote down their rules for AI-generated code and disagreed. The disagreement is about who can promise they own the code, and that question is already in your term sheet.</description><content:encoded><![CDATA[<p>Four major open source projects have now written down what they will accept from AI coding tools. They disagree with each other. That disagreement is the useful part, and it has almost nothing to do with code quality.</p>
<p><a href="https://openjdk.org/legal/ai">OpenJDK bans AI-generated content outright</a>. <a href="https://www.qemu.org/docs/master/devel/code-provenance.html">QEMU declines it</a>. <a href="https://github.com/oracle/graal/blob/master/CONTRIBUTING.md">GraalVM accepts it</a>. <a href="https://github.com/torvalds/linux/blob/master/Documentation/process/coding-assistants.rst">The Linux kernel accepts it</a> and asks you to label it. Four regimes, four different lines, all written between June 2025 and April 2026 by people who maintain code that runs everything.</p>
<p>They are not arguing about whether the code is any good. They are arguing about whether anyone can promise they own it.</p>
<h2 id="the-same-contract-produced-two-opposite-answers">The same contract produced two opposite answers</h2>
<p>Start with the pair that should not exist.</p>
<p>OpenJDK and GraalVM are both Oracle projects. Both are governed by the same <a href="https://oca.opensource.oracle.com/">Oracle Contributor Agreement</a>. Both name that agreement as the reason for their position on AI-generated code. They reached opposite conclusions.</p>
<p>The OpenJDK policy, approved by its Governing Board on 9 April 2026, is explicit about the mechanism. The agreement &ldquo;requires that a contributor own the intellectual property rights in each contribution and be able to grant those rights to Oracle, without restriction.&rdquo; Then comes the sentence that matters: &ldquo;Whether a user of a generative AI tool has IP rights in content generated by the tool is the subject of active litigation.&rdquo;</p>
<p>So OpenJDK bans the input. The policy is strict enough that if a tool writes 100 lines and you edit ten of them yourself, the answer is still no.</p>
<p>GraalVM starts from the same instrument and lands somewhere else. Its <a href="https://github.com/oracle/graal/blob/master/CODING_ASSISTANTS.md">coding assistants policy</a> states that the Oracle Contributor Agreement &ldquo;applies to all contributions submitted for inclusion in the project, whether AI-assisted or not.&rdquo; Its contributing guide puts it in one line: &ldquo;Use of coding assistants does not change that requirement.&rdquo;</p>
<p>The press read this as a company contradicting itself. That reading is available and it is the wrong one. Read it as an engineering leader instead, and it says something far more useful.</p>
<p><strong>One contract, one company, two teams with access to the same lawyers, and two opposite policies.</strong> The contract language did not settle the question. It cannot. That is why OpenJDK calls its own policy interim.</p>
<h2 id="you-have-signed-the-same-promise">You have signed the same promise</h2>
<p>Here is why this belongs in a founder&rsquo;s inbox rather than a maintainer&rsquo;s.</p>
<p>Every one of these projects is enforcing the same basic mechanism. A human being certifies that they have the right to submit the material. OpenJDK and GraalVM do it through a contributor agreement. QEMU does it through the <a href="https://www.qemu.org/docs/master/devel/code-provenance.html">Developer&rsquo;s Certificate of Origin</a>, and its reasoning is worth quoting because it is the whole problem in one sentence: to satisfy the DCO, the contributor &ldquo;has to fully understand the copyright and license status of content they are contributing,&rdquo; and for AI content generators that status &ldquo;is ill-defined with no generally accepted, settled legal foundation.&rdquo;</p>
<p>If you run a software company, you have signed a version of that certificate. It sits in your customer contracts. It will sit in the representations and warranties of your next funding round or your exit. You are promising that the company owns what it is selling.</p>
<p>I am not a lawyer, and none of this is legal advice. The point is not what the law will eventually say. <strong>The point is that four projects with mature governance looked at that promise, could not agree on what it now requires, and each wrote down an answer with a mechanism attached.</strong> Most companies have done neither. They have a policy on which tools engineers may use, which is a different thing entirely, and they have no record of what those tools produced.</p>
<p>A tool policy governs behaviour. A provenance record governs evidence. Only one of them survives contact with diligence.</p>
<p>And this is only the code you wrote. <a href="https://opsintell.com/why-your-software-supply-chain-matters-more-than-you-think/">Your dependency tree raises the same question one level down</a>, where you control neither the policy nor the record.</p>
<h2 id="the-projects-that-allow-ai-did-the-harder-work">The projects that allow AI did the harder work</h2>
<p>The convenient assumption is that the projects saying yes are the relaxed ones. Read them and the opposite is true.</p>
<p>GraalVM accepts AI-assisted contributions and then makes the human carry all of it. The contributor must &ldquo;review and understand the submitted code,&rdquo; must &ldquo;stand behind the contribution during review and maintenance,&rdquo; and if they cannot &ldquo;explain, defend, or maintain&rdquo; an AI-assisted change, it can be rejected. Attribution is encouraged and optional.</p>
<p>The Linux kernel goes further and turns provenance into a machine-readable artefact. Its policy is blunt: &ldquo;AI agents MUST NOT add Signed-off-by tags. Only humans can legally certify the Developer Certificate of Origin.&rdquo; Contributions prepared with assistance carry an <code>Assisted-by:</code> trailer, and the companion <a href="https://github.com/torvalds/linux/blob/master/Documentation/process/generated-content.rst">guidelines on tool-generated content</a> ask for the tools used, and for the prompts themselves when code came from a short set of them.</p>
<p>That is the part worth stealing. The kernel did not write an aspiration. It added a line to the commit message. Provenance became something you can grep for, five years later, when the question is asked by someone who was not there.</p>
<p>Note also that GraalVM says its policy is &ldquo;informed by the Linux kernel&rsquo;s AI Coding Assistants policy.&rdquo; The permissive regimes are converging on a shared convention. The restrictive ones are holding a line until the litigation resolves. Both are defensible. Having neither is not.</p>
<h2 id="the-cost-nobody-budgeted-is-review-capacity">The cost nobody budgeted is review capacity</h2>
<p>There is a second argument in these documents, and it is an operations argument rather than a legal one.</p>
<p>OpenJDK states that generative AI tools &ldquo;make it easy to create large quantities of plausible-looking code, with plausible-looking tests, which is nonetheless incorrect or, even if it is correct, is poorly designed and therefore difficult to maintain.&rdquo; The kernel&rsquo;s guidelines say the same thing from the other side: &ldquo;reviewer and maintainer bandwidth is a scarce resource.&rdquo;</p>
<p>Two independent communities, with no shared governance, identified the same bottleneck.</p>
<p>I argued earlier this year that <a href="https://opsintell.com/from-coding-to-orchestration-how-ai-is-redefining-software-engineering/">engineering value is moving from writing code to judging it</a>. This is what that shift costs, and it lands on the people you can least afford to saturate.</p>
<p>This is a Day-2 operations problem dressed as a productivity win. Generation capacity rose and review capacity did not. Both communities say so in their own words, and neither is speculating, because they run the review queues in question. If your delivery metrics improved this year while your review queue quietly grew and your change failure rate crept up, you have not amplified throughput. You have moved the constraint downstream.</p>
<h2 id="what-to-do-before-someone-asks">What to do before someone asks</h2>
<p>The useful diligence question has changed. &ldquo;Do your engineers use AI coding tools?&rdquo; is now worthless. Everyone says yes and it proves nothing.</p>
<p>The question that has an answer is this one. <strong>Can you show where your code came from, and does that record match what your agreements already promise?</strong></p>
<p>Four things make that answerable, and none of them is expensive:</p>
<ol>
<li><strong>Adopt a trailer.</strong> <code>Assisted-by:</code> is already convention in the Linux kernel. Use it. A provenance record that lives in the commit history costs almost nothing to maintain, and far more to reconstruct after the fact.</li>
<li><strong>Map your obligations, per repository.</strong> A single company-wide AI policy does not establish compliance with anything. If your engineers contribute upstream, the obligation is set by each project, and OpenJDK and GraalVM prove that two projects at one company can differ.</li>
<li><strong>Read your own contracts against your actual practice.</strong> The IP representations you have already signed were drafted before any of this. Find the gap now, with your counsel, not during a data room.</li>
<li><strong>Measure review capacity as a first-class constraint.</strong> Track review latency and change failure rate alongside deployment frequency. If generation is up and review is flat, you are accumulating risk, not velocity.</li>
</ol>
<p>None of this requires a position on whether AI-generated code is good. OpenJDK and GraalVM disagree about that and both remain credible. It requires evidence of origin across the full lifecycle, from design through to the support your team is still providing three years after the commit.</p>
<p>The projects that maintain the world&rsquo;s most load-bearing code have all now written their answer down. Most companies have not started. That gap closes cheaply today and expensively during a transaction.</p>
<p>If you want a second pair of eyes on where your provenance record actually stands, <a href="https://opsintell.com/contact/">get in touch</a>. It is a short conversation and it usually ends with a list you can act on.</p>
]]></content:encoded></item><item><title>From Coding to Orchestration: How AI Is Redefining Software Engineering</title><link>https://opsintell.com/from-coding-to-orchestration-how-ai-is-redefining-software-engineering/</link><pubDate>Fri, 01 May 2026 09:55:43 +0200</pubDate><guid isPermaLink="true">https://opsintell.com/from-coding-to-orchestration-how-ai-is-redefining-software-engineering/</guid><description>The narrative around AI in software engineering is often framed as a productivity story: faster coding, fewer bugs, accelerated delivery. That framing is incomplete. What I am actually witnessing is a shift in where engineering value sits from writing code to understanding, structuring, and governing systems. And for CTOs and founders, this shift has less</description><content:encoded><![CDATA[<p>The narrative around AI in software engineering is often framed as a productivity story: faster coding, fewer bugs, accelerated delivery. That framing is incomplete. What I am actually witnessing is a shift in where engineering value sits from writing code to understanding, structuring, and governing systems. And for CTOs and founders, this shift has less to do with tools and everything to do with engineering maturity.</p>
<hr>
<h2 id="this-shift-did-not-start-with-agentic-tools">This shift did not start with agentic tools</h2>
<p>Agentic coding systems are not a discontinuity. They are an acceleration.</p>
<p>The trajectory has been clear for years:</p>
<ul>
<li>Autocomplete tools reduced friction at the syntax level</li>
<li>Chat-based assistants expanded access to knowledge</li>
<li>Codebase-aware tools introduced contextual understanding</li>
<li>Agentic workflows now execute multi-step tasks across systems</li>
</ul>
<p>Each step moved engineers further away from raw implementation and closer to decision-making over systems. Agentic tools simply compress this evolution. They don’t change the direction. They increase the consequences.</p>
<hr>
<h2 id="what-actually-changed-scope-not-capability">What actually changed: scope, not capability</h2>
<p>Earlier generations of tools supported developers.</p>
<p>They:</p>
<ul>
<li>suggested snippets</li>
<li>answered isolated questions</li>
<li>operated within local context</li>
</ul>
<p>Agentic systems operate differently.</p>
<p>They:</p>
<ul>
<li>navigate entire codebases</li>
<li>execute multi-file changes</li>
<li>run commands and workflows</li>
<li>chain reasoning across multiple steps</li>
</ul>
<p>The difference is not intelligence. It’s scope of action. And when scope expands, failure modes expand with it.</p>
<hr>
<h2 id="the-real-shift-from-execution-to-judgment">The real shift: from execution to judgment</h2>
<p>The role of the engineer is not disappearing. It is being displaced upward.</p>
<p>The core transition looks like this:</p>
<table>
	<thead>
			<tr>
					<th>Before</th>
					<th>Now</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Writing code line by line</td>
					<td>Framing the right problem</td>
			</tr>
			<tr>
					<td>Solving isolated tasks</td>
					<td>Defining constraints and context</td>
			</tr>
			<tr>
					<td>Implementing features</td>
					<td>Evaluating trade-offs</td>
			</tr>
			<tr>
					<td>Using AI as a helper</td>
					<td>Orchestrating AI-driven workflows</td>
			</tr>
	</tbody>
</table>
<p>In other words:</p>
<blockquote>
<p>Engineers are moving from <em>producers of code</em> to <em>governors of systems</em>.</p>
</blockquote>
<p>This is not a semantic change. It’s a structural one. Because systems fail at the level of:</p>
<ul>
<li>architecture</li>
<li>coupling</li>
<li>operational discipline</li>
</ul>
<p>not at the level of syntax.</p>
<hr>
<h2 id="why-this-exposes-engineering-maturity">Why this exposes engineering maturity</h2>
<p>Agentic tools don’t just make teams faster. They amplify whatever is already there. In a mature environment, they:</p>
<ul>
<li>accelerate delivery</li>
<li>improve consistency</li>
<li>reduce cognitive load</li>
</ul>
<p>In an immature environment, they:</p>
<ul>
<li>propagate bad abstractions faster</li>
<li>increase hidden coupling</li>
<li>generate large volumes of unreviewed complexity</li>
</ul>
<p>This is the key point most discussions miss:</p>
<blockquote>
<p>AI does not compensate for weak engineering systems. It makes them more visible and more dangerous.</p>
</blockquote>
<p>From my perspective, this is where the shift becomes critical. Because engineering maturity is not about tool adoption. It is about:</p>
<ul>
<li>system clarity</li>
<li>decision frameworks</li>
<li>operational discipline</li>
</ul>
<p>And these are precisely the layers agentic workflows depend on.</p>
<hr>
<h2 id="the-new-skill-stack-is-not-about-coding">The new skill stack is not about coding</h2>
<p>As AI handles more execution, the value of engineers concentrates in a different set of capabilities:</p>
<h3 id="1-systems-thinking">1. Systems thinking</h3>
<p>Understanding how components interact, fail, and evolve over time.</p>
<h3 id="2-architecture-judgment">2. Architecture judgment</h3>
<p>Making trade-offs between speed, scalability, and maintainability.</p>
<h3 id="3-code-review-at-scale">3. Code review at scale</h3>
<p>Not reviewing syntax, but validating intent, structure, and risk.</p>
<h3 id="4-debugging-complex-flows">4. Debugging complex flows</h3>
<p>Tracing failures across distributed, multi-step workflows.</p>
<h3 id="5-security-and-governance">5. Security and governance</h3>
<p>Ensuring automated actions remain controlled, auditable, and safe.</p>
<h3 id="6-task-decomposition">6. Task decomposition</h3>
<p>Breaking ambiguous problems into structured, solvable units for AI systems.</p>
<p>These are not new skills. But they are no longer secondary. They become the primary source of engineering leverage.</p>
<hr>
<h2 id="the-illusion-of-productivity">The illusion of productivity</h2>
<p>There is a growing misconception that AI will make engineering problems disappear. In reality, it shifts where they accumulate.</p>
<p>Without the right foundations, teams experience:</p>
<ul>
<li>faster code generation</li>
<li>but slower debugging</li>
<li>higher output</li>
<li>but lower coherence</li>
<li>increased velocity</li>
<li>but degraded reliability</li>
</ul>
<p>This creates a dangerous illusion:</p>
<blockquote>
<p>The system appears to move faster while silently accumulating risk.</p>
</blockquote>
<p>And this is exactly where most organizations struggle to see clearly. Because traditional metrics (velocity, output, tickets closed) fail to capture:</p>
<ul>
<li>architectural erosion</li>
<li>operational fragility</li>
<li>long-term scalability constraints</li>
</ul>
<hr>
<h2 id="why-this-matters-for-ctos-and-founders">Why this matters for CTOs and founders</h2>
<p>The introduction of agentic workflows changes what leadership should focus on. The question is no longer:</p>
<blockquote>
<p>“Are we using AI tools?”</p>
</blockquote>
<p>But:</p>
<blockquote>
<p>“Is our engineering system structured to absorb them?”</p>
</blockquote>
<p>This requires a different lens on engineering:</p>
<ul>
<li>How well-defined is your architecture?</li>
<li>How explicit are your constraints and standards?</li>
<li>How controlled are your workflows?</li>
<li>How observable are your systems in production?</li>
</ul>
<p>Because agentic tools rely on clarity and structure to operate safely. Without them, they introduce non-linear risk.</p>
<hr>
<h2 id="the-emerging-gap-execution-vs-orchestration">The emerging gap: execution vs orchestration</h2>
<p>We are entering a phase where two types of engineering organizations will diverge:</p>
<h3 id="execution-driven-teams">Execution-driven teams</h3>
<ul>
<li>Strong individual contributors</li>
<li>High coding output</li>
<li>Tool-heavy adoption</li>
<li>Limited system-level control</li>
</ul>
<h3 id="orchestration-driven-teams">Orchestration-driven teams</h3>
<ul>
<li>Clear architectural principles</li>
<li>Strong review and governance layers</li>
<li>Structured workflows</li>
<li>High leverage from AI systems</li>
</ul>
<p>The difference between the two is not talent.</p>
<p>It is system design maturity.</p>
<hr>
<h2 id="what-changes-next">What changes next</h2>
<p>The long-term implication is straightforward:</p>
<blockquote>
<p>The value of engineering is moving up the stack.</p>
</blockquote>
<p>From:</p>
<ul>
<li>writing code</li>
</ul>
<p>To:</p>
<ul>
<li>designing systems</li>
<li>governing complexity</li>
<li>making decisions under uncertainty</li>
</ul>
<p>This aligns with a broader shift already visible in high-performing organizations:</p>
<p>Engineering excellence is less about how code is written, and more about:</p>
<ul>
<li>how systems are structured</li>
<li>how decisions are made</li>
<li>how risk is managed over time</li>
</ul>
<hr>
<h2 id="so-what">So What?</h2>
<p>The future software engineer will not disappear.</p>
<p>But their role will be redefined around three core functions:</p>
<ul>
<li><strong>Orchestrate systems</strong></li>
<li><strong>Evaluate outputs</strong></li>
<li><strong>Apply engineering judgment at scale</strong></li>
</ul>
<p>This is not a futuristic vision. It is already happening. The only open question is not whether teams adopt these tools but whether their engineering foundations are strong enough to handle what comes with them.</p>
]]></content:encoded></item><item><title>Documentation Debt: The Most Undervalued Form of Technical Debt</title><link>https://opsintell.com/documentation-debt-the-most-undervalued-form-of-technical-debt/</link><pubDate>Sat, 27 Sep 2025 11:33:47 +0200</pubDate><guid isPermaLink="true">https://opsintell.com/documentation-debt-the-most-undervalued-form-of-technical-debt/</guid><description>When investors ask about technical debt, the conversation usually points to code. How many lines are legacy? How brittle are the tests? How old is the stack? But in my 20 years of building and scaling engineering teams, I’ve learned that the heavier tax on velocity and resilience often hides elsewhere: documentation debt. You won’t find it</description><content:encoded><![CDATA[<p>When investors ask about technical debt, the conversation usually points to code. How many lines are legacy? How brittle are the tests? How old is the stack? But in my 20 years of building and scaling engineering teams, I’ve learned that the heavier tax on velocity and resilience often hides elsewhere: <strong>documentation debt</strong>. You won’t find it on GitHub. It rarely makes it into a board deck. Yet it silently drags onboarding, slows releases, and turns every handover into a gamble.</p>
<h2 id="what-documentation-debt-looks-like">What Documentation Debt Looks Like</h2>
<h3 id="the-hidden-tax">The Hidden Tax</h3>
<p>The effects are easy to recognize once you’ve lived them:</p>
<ul>
<li><strong>Onboarding takes months instead of weeks.</strong> New hires spend their first sprints reverse-engineering how things work.</li>
<li><strong>Senior engineers act as “walking wikis.”</strong> Instead of focusing on building, they spend half their time explaining.</li>
<li><strong>Decisions get re-litigated.</strong> Without records of why a choice was made, the team circles back to the same debates.</li>
</ul>
<p>I once joined a scale-up where the architecture diagram on the wiki was two years old. Every service name had changed. The actual system had grown twice as complex. For the first month, new hires printed that diagram and scribbled corrections just to make sense of what they were running.</p>
<h3 id="common-symptoms">Common Symptoms</h3>
<ul>
<li>Architecture diagrams that look polished, but are hopelessly outdated.</li>
<li>Confluence pages abandoned after a single sprint.</li>
<li>Runbooks that don’t match what’s deployed in production.</li>
<li>Jira tickets linking to Google Docs that no longer exist.</li>
</ul>
<p>None of this looks dramatic on day one. But over quarters and years, it compounds.</p>
<h2 id="why-documentation-debt-hurts-more-than-you-think">Why Documentation Debt Hurts More Than You Think</h2>
<h3 id="onboarding-drag">Onboarding Drag</h3>
<p>A well-documented codebase lets engineers ship in days. A poorly documented one? I’ve seen <strong>six- to nine-month ramp times</strong> before new hires contribute meaningful code. Investors read that as a red flag: if you can’t onboard fast, you can’t scale.</p>
<h3 id="resilience-risk">Resilience Risk</h3>
<p>When only one engineer understands how the authentication service works, downtime risk is multiplied. If that person is on holiday, you’re one incident away from a board-level crisis. The “bus factor”, how many people can disappear before a project stalls, is directly tied to documentation.</p>
<h3 id="hidden-cost">Hidden Cost</h3>
<p>tudies back this up. Research by IDC and Stripe found that <strong>developers spend up to 30% of their time searching for or recreating information</strong> that should have been documented (<a href="https://stripe.com/reports/developer-coefficient-2018">Stripe: The Developer Coefficient</a>). That’s not “nice-to-have efficiency.” That’s millions in productivity burn.</p>
<p>Documentation debt is a silent tax. It doesn’t trigger alerts like failing builds, but it eats velocity all the same.</p>
<h2 id="best-practices-to-keep-documentation-alive">Best Practices to Keep Documentation Alive</h2>
<h3 id="1-treat-docs-as-code">1. Treat Docs as Code</h3>
<p>The best teams I’ve worked with version-control their docs. Architecture overviews, onboarding guides, ADRs, all live in Git alongside code. Every change goes through pull requests.</p>
<p>It sounds obvious, but the discipline matters: if code review is mandatory, doc review should be too. The moment docs drift outside the development flow, they rot.</p>
<ul>
<li><strong>Tooling tip:</strong> MkDocs or Docusaurus make it easy to keep docs in the repo and auto-publish them.</li>
</ul>
<h3 id="2-automate-what-can-be-automated">2. Automate What Can Be Automated</h3>
<p>Not everything should be written by hand. Some of the most valuable docs can be generated:</p>
<ul>
<li><strong>API specifications:</strong> Generate OpenAPI or GraphQL schemas directly from code.</li>
<li><strong>Infrastructure diagrams:</strong> Auto-sync from Terraform or Kubernetes manifests (<a href="https://github.com/cycloidio/inframap">InfraMap</a> is a good example).</li>
<li><strong>Test coverage reports:</strong> CI/CD can publish these automatically.</li>
</ul>
<p>The less manual effort required, the lower the chance of drift.</p>
<h3 id="3-adopt-living-architecture-docs">3. Adopt “Living” Architecture Docs</h3>
<p>I’m a strong advocate for <strong>Architecture Decision Records (ADRs)</strong>. They are lightweight markdown files that capture the “why” behind a decision. They don’t have to be essays, a paragraph is often enough.</p>
<p>Months later, when someone asks, <em>“Why did we go with Postgres instead of DynamoDB?”</em> and the answer is there. Without ADRs, the answer is usually “Because Alice said so,” and Alice might have left.</p>
<ul>
<li><strong>For example:</strong> adr.github.io has a simple template and history of the practice.</li>
</ul>
<h3 id="4-make-documentation-a-first-class-citizen">4. Make Documentation a First-Class Citizen</h3>
<p>Documentation should be part of the <strong>Definition of Done</strong>. If the feature is shipped but the runbook isn’t updated, it’s not done.</p>
<p>Some teams allocate explicit sprint capacity like 5–10% of points dedicated to doc upkeep. Others tie documentation health to team OKRs.</p>
<p>What matters is signaling: docs are not “extra.” They’re an engineering artifact.</p>
<h2 id="the-investor--founder-lens">The Investor &amp; Founder Lens</h2>
<h3 id="for-founders">For Founders</h3>
<p>Good documentation scales your team. It lowers onboarding time, reduces firefighting, and keeps engineers focused on delivery. That compounds into faster feature velocity and happier staff.</p>
<h3 id="for-investors">For Investors</h3>
<p>Documentation maturity is a proxy for scalability. When I assess teams, I ask a simple question:</p>
<blockquote>
<p><em>“If two senior engineers resigned tomorrow, how quickly could new hires get productive without shadowing?”</em></p>
</blockquote>
<p>If the answer is “weeks,” that’s resilience. If the answer is “we’d be in trouble,” that’s documentation debt.</p>
<p>Investors often underestimate this. They see documentation as hygiene. In reality, it’s a lever for velocity, resilience, and ultimately valuation.</p>
<h2 id="case-in-point-the-payoff-of-documentation-discipline">Case in Point: The Payoff of Documentation Discipline</h2>
<p>At a previous role, we introduced ADRs, automated API docs, and sprint-level doc ownership. Within six months:</p>
<ul>
<li>New hire ramp-up dropped from 12 weeks to 4.</li>
<li>Incident resolution times improved because runbooks were trusted.</li>
<li>The CTO could delegate architectural decisions without constant Slack back-and-forth.</li>
</ul>
<p>The engineering team didn’t just move faster, the company became also more resilient. That mattered as much to the board as it did to the developers.</p>
<h2 id="conclusion-beyond-code-debt">Conclusion: Beyond Code Debt</h2>
<p>Code may be the product, but documentation is the multiplier. Ignore it, and every line of code gets more expensive to maintain. Tackle it early, and you create a compounding advantage in velocity, resilience, and valuation.</p>
<p>I’ve seen documentation debt sink great teams. Treat it as seriously as technical debt because your future self (and your investors) will thank you.</p>
<h3 id="further-reading">Further Reading:</h3>
<ul>
<li><a href="https://stripe.com/reports/developer-coefficient-2018">The Developer Coefficient Report (Stripe)</a></li>
<li>Architecture Decision Records (ADRs)</li>
<li><a href="https://github.com/docascode">Docs-as-Code principles (GitHub Guide)</a></li>
<li>Cognitive Load in Software Teams (Team Topologies)</li>
</ul>
]]></content:encoded></item><item><title>Why Your Software Supply Chain Matters More Than You Think</title><link>https://opsintell.com/why-your-software-supply-chain-matters-more-than-you-think/</link><pubDate>Thu, 11 Sep 2025 11:19:42 +0200</pubDate><guid isPermaLink="true">https://opsintell.com/why-your-software-supply-chain-matters-more-than-you-think/</guid><description>The Overlooked Risks Hidden in Today’s Software Supply Chain When people talk about supply chains, they picture factories, trucks, and containers. But every software product has its own software supply chain: the libraries, frameworks, and packages woven together to form the codebase. And like any physical supply chain, if one link breaks, the entire system</description><content:encoded><![CDATA[<h2 id="the-overlooked-risks-hidden-in-todays-software-supply-chain">The Overlooked Risks Hidden in Today’s Software Supply Chain</h2>
<p>When people talk about supply chains, they picture factories, trucks, and containers. But every software product has its own software supply chain: the libraries, frameworks, and packages woven together to form the codebase.</p>
<p>And like any physical supply chain, if one link breaks, the entire system is at risk.</p>
<p>In our <a href="https://opsintell.com/services/">full-lifecycle due diligenc</a>e work, we see the same issues surface again and again. Three risks stand out as both underestimated and potentially devastating: <strong>legal, security, and maintenance</strong>.</p>
<h2 id="legal-risks-the-license-time-bomb">Legal Risks: The License Time Bomb</h2>
<h3 id="when-open-source-freedom-becomes-liability">When open-source freedom becomes liability</h3>
<p>Open-source licenses are not just fine print , they are binding contracts. GPL, MIT, Apache, and commercial variants each impose conditions on how code can be used and distributed.</p>
<p>A single overlooked dependency with a restrictive license can derail a funding round, force emergency refactors, or even spark litigation. We’ve seen SaaS teams lose precious valuation points because a due diligence audit uncovered GPL code in their proprietary stack.</p>
<p>If you’re not familiar with the ecosystem, <a href="https://choosealicense.com/">Choose a License</a> and the <a href="https://www.gnu.org/licenses/license-list.html">FSF License List</a> are good starting points.</p>
<h3 id="best-practices-for-license-governance">Best practices for license governance</h3>
<ul>
<li><strong>Automate license scanning</strong> across repos with Software Composition Analysis (SCA) tools.</li>
<li><strong>Review edge cases manually</strong> , automation alone misses context.</li>
<li><strong>Integrate license checks into CI/CD</strong> so issues are caught before release, not during M&amp;A</li>
</ul>
<h2 id="security-risks-vulnerabilities-and-ghost-code">Security Risks: Vulnerabilities and Ghost Code</h2>
<h3 id="inherited-vulnerabilities-log4shell-and-beyond">Inherited vulnerabilities: Log4Shell and beyond</h3>
<p>The infamous <a href="https://nvd.nist.gov/vuln/detail/CVE-2021-44228">Log4Shell vulnerability (CVE-2021-44228)</a> did not come from careless engineers , it came from a widely used logging library. Most companies didn’t even know they were exposed until attackers were already probing their systems.</p>
<p>This is the reality of software supply chains: the riskiest code may not be yours.</p>
<h3 id="malicious-packages-in-the-wild">Malicious packages in the wild</h3>
<p>Beyond abandoned libraries, attackers now deliberately publish malicious packages to popular registries (npm, PyPI). A single npm install can pull in typosquatted or backdoored code without developers noticing.</p>
<p>The <a href="https://github.com/cncf/tag-security/blob/main/supply-chain-security/supply-chain-security-paper.md">CNCF supply chain security paper</a> is an excellent overview of this growing threat.</p>
<h3 id="best-practices-for-security-governance">Best practices for security governance</h3>
<ul>
<li><strong>Use SCA tools</strong> such as OWASP Dependency-Check to flag known CVEs, but don’t stop there.</li>
<li><strong>Define patch cadences</strong> so vulnerabilities are fixed before customers notice.</li>
<li><strong>Establish escalation paths</strong> when upstream maintainers go silent.</li>
</ul>
<h2 id="maintenance-risks-when-the-supplier-shuts-down-the-line">Maintenance Risks: When the Supplier Shuts Down the Line</h2>
<h3 id="the-fragility-of-volunteer-maintained-code">The fragility of volunteer-maintained code</h3>
<p>Even “safe” libraries eventually lose maintainers. If your core product depends on an abandoned repo, you inherit that risk. We frequently uncover SaaS products where critical dependencies haven’t been updated in three years , but remain in production.</p>
<p>When those libraries break, it’s your engineers who scramble, and your customers who lose confidence.</p>
<p>For perspective, look at <a href="https://www.php.net/supported-versions.php">PHP’s official end-of-life schedule</a>: entire versions are still running in production long after they stopped receiving updates.</p>
<h2 id="why-it-matters-investor-and-founder-perspectives">Why It Matters: Investor and Founder Perspectives</h2>
<p>For <strong>investors</strong>, buying into a software company means buying into its future risk profile, not just today’s code. Hidden supply chain liabilities can lead to valuation erosion, delayed exits, or unexpected re-platforming costs.</p>
<p>For <strong>founders</strong>, every line of borrowed code is a promise to customers. When dependencies fail, legally, securely, or operationally, that trust erodes, and so does growth.</p>
<p>This is why we benchmark supply chain resilience alongside <a href="https://opsintell.com/dora-metrics-in-vc-diligence-speed-isnt-enough/">SRE and DORA norms</a> in our audits: activity alone doesn’t equal impact.</p>
<h2 id="turning-blind-bets-into-data-backed-growth">Turning Blind Bets into Data Backed Growth</h2>
<p>The software supply chain is no longer an afterthought. It’s a board-level concern.</p>
<p>At Opsintell, we integrate <strong>software supply chain due diligence</strong> into our lifecycle audits , checking licenses, measuring security exposure, and stress-testing maintenance paths.</p>
<p>Because no investor should overpay for brittle software. And no founder should lose customers to a preventable dependency failure.</p>
<p><strong>Would you ship a car without validating its parts? Then why ship software differently?</strong></p>
]]></content:encoded></item><item><title>Why MLOps Deserves Its Own Line in Your Tech Due Diligence</title><link>https://opsintell.com/beyond-the-buzz-why-mlops-deserves-its-own-line-in-your-tech-due-diligence/</link><pubDate>Tue, 22 Jul 2025 17:36:08 +0200</pubDate><guid isPermaLink="true">https://opsintell.com/beyond-the-buzz-why-mlops-deserves-its-own-line-in-your-tech-due-diligence/</guid><description>Everyone’s chasing AI. Few are ready to run it at scale. I’ve seen it too many times: a startup proudly touts its LLM-powered magic. The demo looks slick, the deck brags about model accuracy. But when I look under the hood? No versioned datasets No automated retraining No monitoring of drift In other words: no</description><content:encoded><![CDATA[<h2 id="everyones-chasing-ai-few-are-ready-to-run-it-at-scale">Everyone’s chasing AI. Few are ready to run it at scale.</h2>
<p>I’ve seen it too many times: a startup proudly touts its LLM-powered magic. The demo looks slick, the deck brags about model accuracy. But when I look under the hood?</p>
<ul>
<li>No versioned datasets</li>
<li>No automated retraining</li>
<li>No monitoring of drift</li>
</ul>
<p>In other words: <strong>no MLOps.</strong><br>
And that’s a problem for both investors and founders.</p>
<h2 id="mlops--devops">MLOps ≠ DevOps</h2>
<p>Let me be clear: <strong>MLOps is not just DevOps for AI.</strong></p>
<p>It’s <strong>Dev + Data + Models + Drift + Governance.</strong></p>
<p>Unlike software code, ML models <strong>degrade with time</strong> even if the codebase doesn’t change. Why? Because the world does:</p>
<ul>
<li>Data shifts</li>
<li>User behavior evolves</li>
<li>Statistical drift creeps in</li>
</ul>
<p>If diligence treats an AI startup like any other SaaS platform, you’re flying blind.</p>
<h2 id="what-i-look-for-in-an-mlops-audit">What I Look For in an MLOps Audit</h2>
<p>When I run a technical due diligence on a company that leans on ML, I apply a dedicated lens across the full lifecycle:</p>
<ul>
<li><strong>Data lineage &amp; versioning</strong><br>
Can they track which data was used, when, and how it changed?</li>
<li><strong>Model training &amp; experimentation</strong><br>
Is there a governed way to compare experiments or is everything hidden in Jupyter notebooks?</li>
<li><strong>Deployment &amp; monitoring pipelines</strong><br>
Is serving continuous, testable, and rollback-capable? Do they track drift?</li>
<li><strong>CI/CD adapted for ML</strong><br>
Are performance and fairness checks integrated into release flows?</li>
<li><strong>Governance &amp; security</strong><br>
Can they trace a prediction back to a model version and dataset? Is there an audit trail for regulators?</li>
</ul>
<p>This is the hygiene that separates marketing bullets from production-grade AI.</p>
<h2 id="why-this-matters-to-investors">Why This Matters to Investors</h2>
<p>From my perspective, the link is direct:</p>
<ol>
<li><strong>Model risk = valuation risk.</strong><br>
A model that silently decays in production isn’t just a bug, it’s liability.</li>
<li><strong>AI-washing is rampant.</strong><br>
Founders know “AI-native” inflates multiples. But VCs need <strong>evidence, not ambition.</strong></li>
</ol>
<p>Skipping an MLOps lens in diligence means risking overpayment for brittle AI or worse, discovering liabilities post-deal.</p>
<h2 id="my-take">My Take</h2>
<p>I don’t just ask <em>if</em> a startup uses AI.<br>
I check <strong>how they manage it, scale it, and future-proof it.</strong></p>
<p>Because in 2025, <strong>MLOps isn’t a nice-to-have. It’s infrastructure.</strong><br>
And ignoring it in diligence isn’t just oversight, it’s risk.</p>
]]></content:encoded></item><item><title>DORA Metrics in VC Diligence: Speed Isn’t Enough</title><link>https://opsintell.com/dora-metrics-in-vc-diligence-speed-isnt-enough/</link><pubDate>Mon, 07 Jul 2025 14:03:38 +0200</pubDate><guid isPermaLink="true">https://opsintell.com/dora-metrics-in-vc-diligence-speed-isnt-enough/</guid><description>Why deal teams need more than deployment counts? As engineering metrics seep into VC conversations, one acronym keeps showing up: DORA. Originally defined to track DevOps performance, the four DORA metrics, Deployment Frequency, Change Failure Rate, Mean Time to Recovery, and Lead Time for Changes, were never designed for investors. But they’ve entered the room. Not</description><content:encoded><![CDATA[<h2 id="why-deal-teams-need-more-than-deployment-counts">Why deal teams need more than deployment counts?</h2>
<p>As engineering metrics seep into VC conversations, one acronym keeps showing up: <strong>DORA</strong>. Originally defined to track DevOps performance, the four DORA metrics, <strong>Deployment Frequency</strong>, <strong>Change Failure Rate</strong>, <strong>Mean Time to Recovery</strong>, and <strong>Lead Time for Changes</strong>, were never designed for investors. But they’ve entered the room.</p>
<p>Not always helpfully.</p>
<h2 id="the-problem-with-interpreting-dora-at-face-value">The Problem With Interpreting DORA at Face Value</h2>
<p>When used blindly, DORA distorts reality:</p>
<ul>
<li>High deployment frequency may signal rapid iteration OR unstable pipelines</li>
<li>Low MTTR might reflect strong recovery OR fragile infra constantly breaking</li>
<li>Lead time under 24h sounds impressive UNTIL you ask about rollback safety</li>
</ul>
<p>DORA doesn’t reward speed. It rewards <strong>predictable delivery</strong> under pressure.</p>
<p>And predictable delivery is what VC capital needs.</p>
<p>Recent publications like <a href="https://www.hivel.ai/blog/dora-vs-space-metrics?utm_source=chatgpt.com">Hivel.ai’s comparison of DORA and SPACE</a> and <a href="https://www.atlassian.com/devops/frameworks/dora-metrics?utm_source=chatgpt.com">Atlassian’s DORA framework guide</a> underline a key point:<br>
<strong>activity ≠ impact</strong></p>
<p>Hivel draws a clear distinction:</p>
<p>“DORA shows what’s being delivered. SPACE shows how people are delivering it.”</p>
<p>Atlassian emphasizes DORA as part of a broader signal:</p>
<p>“Teams that optimize for speed without stability are not high-performing. They’re just fast.”</p>
<p>Both make it clear: <strong>metrics must be contextualized, not celebrated</strong>.</p>
<h2 id="how-this-maps-to-diligence">How This Maps to Diligence</h2>
<p>Most technical diligence still looks like this:</p>
<ul>
<li>“How often do you deploy?”</li>
<li>“How fast can changes reach prod?”</li>
<li>“What happens when something breaks?”</li>
</ul>
<p>Useful questions but not enough. They track movement, not maturity.</p>
<p>In Opsintell-grade audits, DORA metrics are mapped onto operating realities:</p>
<ul>
<li>Deployment Frequency = Release readiness under pressure</li>
<li>Change Failure Rate = Engineering resilience per iteration</li>
<li>MTTR = Recovery design, not heroics</li>
<li>Lead Time = Friction between code and value</li>
</ul>
<p>These aren’t checkboxes. They are <strong>valuation signals</strong>.</p>
<h2 id="why-it-matters-to-investors">Why It Matters to Investors</h2>
<p>When diligence misses engineering performance, capital misfires.</p>
<p>Product velocity stalls. Team burnout follows. Deal IRR degrades quietly.</p>
<p>But when DORA is interpreted through the right lens, anchored to architecture, ops, and human bandwidth, it becomes a predictive tool:</p>
<ul>
<li><strong>Lower MTTR</strong> → less downtime-driven churn</li>
<li><strong>High-frequency deploys + low failure rates</strong> → safer iteration at scale</li>
<li><strong>Consistent lead time</strong> → planning confidence for boards and revenue teams</li>
</ul>
<p>These outcomes don’t show up in pitch decks. But they show up post-close.</p>
<h2 id="what-you-must-take-away">What you must take away</h2>
<p>DORA is not dead. But for VC diligence, it’s not enough on its own.</p>
<p>Technical maturity isn’t about dashboards. It’s about whether the team can ship, recover, and evolve reliably as the pressure scales.</p>
<p>Operator-grade investing demands more than speed. It demands <strong>transparency</strong>.</p>
]]></content:encoded></item><item><title>The Engineering Benchmarks VCs Should Actually Care About</title><link>https://opsintell.com/the-engineering-benchmarks-vcs-should-actually-care-about/</link><pubDate>Fri, 04 Jul 2025 11:23:09 +0200</pubDate><guid isPermaLink="true">https://opsintell.com/the-engineering-benchmarks-vcs-should-actually-care-about/</guid><description>Cutting through noise with SRE &amp; DORA metrics Investors often ask about velocity. Founders often talk about shipping fast. But neither side is speaking in systems. In SaaS, engineering is either a growth engine or a risk factor and the difference is measurable. That’s where SRE and DORA engineering benchmarks come in: not as dogma, but as operator-grade proxies for</description><content:encoded><![CDATA[<h2 id="cutting-through-noise-with-sre--dora-metrics">Cutting through noise with SRE &amp; DORA metrics</h2>
<p>Investors often ask about velocity. Founders often talk about shipping fast. But neither side is speaking in systems. In SaaS, engineering is either a growth engine or a risk factor and the difference is measurable. That’s where SRE and DORA engineering benchmarks come in: not as dogma, but as operator-grade proxies for execution quality.</p>
<h2 id="why-traditional-diligence-misses-it">Why Traditional Diligence Misses It</h2>
<p>Most technical due diligence still focuses on:</p>
<ul>
<li>“How many engineers?”</li>
<li>“What’s your infra stack?”</li>
<li>“Any test coverage?”</li>
</ul>
<p>Useful, but shallow. They don’t reveal how well the team <em>operates</em>. And they say nothing about resilience, release friction, or incident response that are the real drivers of scale readiness.</p>
<h2 id="the-metrics-that-matter">The Metrics That Matter</h2>
<p>Here’s what high-resolution diligence tracks instead, it is not made up, it is adapted from SRE and DORA practices:</p>
<ol>
<li><strong>Deployment Frequency :</strong> Can the team ship without panic? Weekly or better is baseline.</li>
<li><strong>Change Failure Rate :</strong> Reveals if iteration adds risk or removes it.</li>
<li><strong>Mean Time to Recovery (MTTR) :</strong> Post-incident resilience : is on-call a ritual or a crisis?</li>
<li><strong>Lead Time for Changes :</strong> How fast can an idea ship to production, safely?</li>
</ol>
<p>These aren’t vanity KPIs, they model engineering agility under constraint.</p>
<h2 id="benchmarks-for-the-field"><em>Benchmarks for the Field</em></h2>
<p>Top quartile SaaS teams consistently show:</p>
<ul>
<li><strong>&lt;1% change failure rate</strong></li>
<li><strong>&lt;1 day MTTR</strong></li>
<li><strong>Daily deploys</strong></li>
<li><strong>&lt;1 week lead time</strong></li>
</ul>
<p>But Opsintell audits often surface the opposite, monthly deploys, reactive ops, weeks of lead time. The delta maps directly to scale friction, cloud cost inefficiency, and product delivery risk.</p>
<h2 id="why-this-should-influence-valuation">Why This Should Influence Valuation</h2>
<p>When these metrics are weak, investors pay a premium for a team that <em>can’t execute the roadmap they just funded</em>. That’s not a technicality, that’s capital misallocation.</p>
<p>Strong DORA/SRE profiles, on the other hand, justify tighter roadmaps, leaner teams, and faster returns on product cycles. They turn engineering from a black box into a valuation lever.</p>
<h2 id="what-should-you-takeaway-from-this">What should you takeaway from this?</h2>
<p>If diligence skips engineering benchmarks, it’s not diligence, it’s paperwork. Operator-grade investing means asking better questions and backing teams that can actually ship, fix, and grow.</p>
]]></content:encoded></item><item><title>How to Price Tech Debt into a Term-Sheet</title><link>https://opsintell.com/how-to-price-tech-debt-into-a-term-sheet/</link><pubDate>Thu, 03 Jul 2025 18:45:30 +0200</pubDate><guid isPermaLink="true">https://opsintell.com/how-to-price-tech-debt-into-a-term-sheet/</guid><description>De-risking Series A without diluting trust (or valuation) Most investors price financial risk with ruthless clarity but when it comes to engineering debt, term-sheets often miss the mark. Aligning valuation with engineering reality Most term-sheets account for market traction, team calibre, and runway requirements. Few account explicitly for structural engineering debt. The result is predictable:</description><content:encoded><![CDATA[<h2 id="de-risking-series-a-without-diluting-trust-or-valuation">De-risking Series A without diluting trust (or valuation)</h2>
<p>Most investors price financial risk with ruthless clarity but when it comes to engineering debt, term-sheets often miss the mark.</p>
<h2 id="aligning-valuation-with-engineering-reality">Aligning valuation with engineering reality</h2>
<p>Most term-sheets account for market traction, team calibre, and runway requirements. Few account explicitly for structural engineering debt. The result is predictable: mispriced scale risk, delayed product milestones, and post-close friction between founders and boards.</p>
<p>This isn’t about punishing founders. It’s about surfacing hidden liabilities and negotiating with clarity.</p>
<h2 id="tech-debt-distorts-capital-efficiency">Tech Debt Distorts Capital Efficiency</h2>
<p>Untracked engineering debt doesn’t just impact velocity, it compounds. Release friction, cloud waste, missing test coverage, lack of observability, each factor extends time-to-scale and inflates burn.</p>
<p>Recent audits show early-stage SaaS teams carrying €5M–7M in remediation cost just to achieve baseline operational maturity. That figure rarely appears in deal models.</p>
<h2 id="the-structure-of-constructive-pricing">The Structure of Constructive Pricing</h2>
<p>When quantified properly, technical debt can be priced into a term-sheet without eroding trust. Three principles underpin that process:</p>
<ul>
<li><strong>Evidence over opinion:</strong> Engineering maturity is scored across dimensions: deployment frequency, defect rate, rework cycles, incident response, test reliability, etc.</li>
<li>**Debt stratification :**Debt is mapped into categories:
<ul>
<li><em>Critical</em>: immediate blocker to growth or uptime</li>
<li><em>Structural</em>: limits release velocity or product flexibility</li>
<li><em>Contextual</em>: acceptable within current lifecycle</li>
</ul>
</li>
<li><strong>Term-sheet linkage via execution triggers:</strong> Rather than applying blanket valuation discounts, specific remediations are scheduled as conditional milestones tied to release capacity, hiring, or technical governance.</li>
</ul>
<p>This shifts the frame: from debt as risk to debt as plan.</p>
<h2 id="why-it-works">Why It Works</h2>
<p>Founders respond to precision. When feedback is framed as operational enablement, not technical criticism, alignment follows.</p>
<p>More importantly, boards gain visibility into the true cost of scaling before that cost becomes irreversible.</p>
<h2 id="what-should-you-takeaway-from-this">What should you takeaway from this?</h2>
<p>Engineering debt is a capital efficiency risk. Pricing it blindly leads to delayed outcomes and degraded IRR. But with disciplined evidence and structural analysis, it becomes a source of negotiation clarity not a friction.</p>
]]></content:encoded></item><item><title>How to Assess Technical Debt Without Touching the Code</title><link>https://opsintell.com/how-to-assess-technical-debt-without-touching-the-code/</link><pubDate>Wed, 02 Jul 2025 18:44:48 +0200</pubDate><guid isPermaLink="true">https://opsintell.com/how-to-assess-technical-debt-without-touching-the-code/</guid><description>Spotting scale blockers before they explode your timeline. Technical debt is often treated like a mysterious force: intangible, invisible, and only detectable when it derails a roadmap. That doesn’t hold up. Most engineering risk leaves visible traces. You don’t need access to the codebase to understand the problem. You just need to ask the right questions</description><content:encoded><![CDATA[<h2 id="spotting-scale-blockers-before-they-explode-your-timeline">Spotting scale blockers before they explode your timeline.</h2>
<p>Technical debt is often treated like a mysterious force: intangible, invisible, and only detectable when it derails a roadmap. That doesn’t hold up.</p>
<p>Most engineering risk leaves visible traces. You don’t need access to the codebase to understand the problem. You just need to ask the right questions and look in the right places.</p>
<p>This is how I assess structural tech debt without reading a line of code.</p>
<h2 id="what-i-mean-by-technical-debt">What I Mean by Technical Debt</h2>
<p>Technical debt is anything that slows down safe change. It hides in architecture, tooling, processes, and team structure. It’s easy to accumulate and hard to pay down if you don’t name it.</p>
<p>Not all debt is harmful. But when no one’s tracking it, or when it’s justified as normal, it tends to grow until it blocks delivery.</p>
<p><strong>Where I Look Instead of the Code</strong> Here are the signals that consistently reflect engineering health:</p>
<ol>
<li><strong>Release Cadence &amp; Stability</strong>
<ul>
<li>How often are releases shipped? Is rollback easy?</li>
<li>DORA metrics offer a good baseline to benchmark against.</li>
</ul>
</li>
<li><strong>Bug Patterns &amp; Aging</strong>
<ul>
<li>Which bugs have been open the longest? Are they tracked and triaged?</li>
<li>Persistent bugs often reveal process gaps more than technical ones.</li>
</ul>
</li>
<li><strong>Onboarding Friction</strong>
<ul>
<li>How long does it take for a new hire to ship code?</li>
<li>Extended ramp-ups usually point to documentation issues or implicit knowledge barriers.</li>
</ul>
</li>
<li><strong>Bus Factor &amp; System Ownership</strong>
<ul>
<li>Who owns critical systems? Is that ownership shared?</li>
<li>Risk concentration is easy to spot when no one can explain how something works.</li>
</ul>
</li>
<li><strong>CI/CD Signals</strong>
<ul>
<li>Are pipelines stable? How long do they take?</li>
<li>If engineers avoid the CI, there’s probably a deeper problem.</li>
</ul>
</li>
</ol>
<h2 id="5-questions-i-ask-in-every-audit">5 Questions I Ask in Every Audit</h2>
<ol>
<li>How fast can you ship a safe hotfix?</li>
<li>What’s the oldest unresolved bug?</li>
<li>Can you test every critical path before merge?</li>
<li>Who’s the single point of failure in your stack?</li>
<li>What got delayed last sprint, and why?</li>
</ol>
<p>These answers usually tell me more than a repo ever could.</p>
<p>You don’t need to audit code to assess engineering maturity. Look at how teams ship, recover, onboard, and coordinate. That’s where the real story lives.</p>
]]></content:encoded></item><item><title>How to Spot the Tech Skeletons That Sink SaaS Deals</title><link>https://opsintell.com/how-to-spot-the-tech-skeletons-that-sink-saas-deals/</link><pubDate>Tue, 24 Jun 2025 14:57:17 +0200</pubDate><guid isPermaLink="true">https://opsintell.com/how-to-spot-the-tech-skeletons-that-sink-saas-deals/</guid><description>Lessons from software audits that looked fine until they weren’t Most software deals are closed on a deck. Most delivery failures start with silence. Everything seems solid until someone asks: How fast can the team deploy? What’s the trend in cloud cost per active user? Who owns this service? That silence isn’t deception. It’s risk no one traced. Engineering</description><content:encoded><![CDATA[<h2 id="lessons-from-software-audits-that-looked-fine-until-they-werent">Lessons from software audits that looked fine until they weren’t</h2>
<p>Most software deals are closed on a deck.</p>
<p>Most delivery failures start with silence.</p>
<p>Everything seems solid until someone asks:</p>
<ul>
<li>How fast can the team deploy?</li>
<li>What’s the trend in cloud cost per active user?</li>
<li>Who owns this service?</li>
</ul>
<p>That silence isn’t deception. It’s risk no one traced. Engineering scale doesn’t break at the code level, it breaks at the seams between speed, cost, and responsibility.</p>
<h2 id="what-actually-gets-assessed">What Actually Gets Assessed</h2>
<p>In short-cycle audits (~10 days), what matters falls into five structural categories:</p>
<ul>
<li><strong>Architecture</strong><br>
Modularity, boundary clarity, scale ceilings</li>
<li><strong>Codebase</strong><br>
Complexity, churn hotspots, testability</li>
<li><strong>CI/CD</strong><br>
Deployment frequency, rollback safety, release friction</li>
<li><strong>Cloud</strong><br>
Waste patterns, cost dynamics, FinOps maturity</li>
<li><strong>Day-2 Operations</strong><br>
Incident load, on-call resilience, recovery playbooks</li>
</ul>
<p>These aren’t about blame. They’re about surfacing the truth: What’s working, what’s brittle, and what’s blocking scale.</p>
<h2 id="the-trust-layer">The Trust Layer</h2>
<p>Technical audits aren’t pitch reviews.<br>
They expose shortcuts, tradeoffs, and path-dependent systems. They require trust especially when the architecture reflects speed over process.</p>
<p>Done right, this process stays founder-aligned:</p>
<ul>
<li>Findings are shared in full context not in isolation</li>
<li>No red flag is raised without a clear solution path</li>
<li>No surprises get surfaced without prior validation</li>
</ul>
<p>Good diligence doesn’t erode trust. It earns it by turning assumptions into shared clarity.</p>
<h2 id="questions-every-founding-team-should-face">Questions Every Founding Team Should Face</h2>
<ul>
<li>Can we deploy safely, without ceremony?</li>
<li>Where is cloud spend leaking and why?</li>
<li>What happens if two senior engineers leave next month?</li>
<li>What’s our actual release velocity not the aspirational one?</li>
</ul>
<p>None of these need perfect answers. But they do need honest ones before scale pressure makes them unavoidable.</p>
]]></content:encoded></item></channel></rss>