<?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>Documentation | Roy Gabriel</title><link>https://roygabriel.dev/tags/documentation/</link><description>Roy Gabriel: DevOps Architect &amp; Applied AI Engineer. Technical blog on Go, MCP servers, Kubernetes, and production AI systems.</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 27 Feb 2026 03:18:04 +0000</lastBuildDate><atom:link href="https://roygabriel.dev/tags/documentation/index.xml" rel="self" type="application/rss+xml"/><item><title>Stop Shipping Slide Decks</title><link>https://roygabriel.dev/blog/stop-shipping-slide-decks/</link><pubDate>Sat, 31 Jan 2026 11:15:00 -0500</pubDate><guid>https://roygabriel.dev/blog/stop-shipping-slide-decks/</guid><description>&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Position:&lt;/strong&gt; This is not &amp;ldquo;documentation bad.&amp;rdquo;
This is &amp;ldquo;documentation is a tool.&amp;rdquo; If it increases lead time, hides truth, or replaces learning, it&amp;rsquo;s not helping.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="why-this-matters"&gt;Why this matters&lt;/h2&gt;
&lt;p&gt;In software, the real &amp;ldquo;source of truth&amp;rdquo; is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;running systems&lt;/li&gt;
&lt;li&gt;code and configuration&lt;/li&gt;
&lt;li&gt;production telemetry&lt;/li&gt;
&lt;li&gt;incident history&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Documentation should reduce uncertainty and speed up decisions. But two artifacts routinely do the opposite in large organizations:&lt;/p&gt;</description><content:encoded>
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Position:&lt;/strong&gt; This is not &amp;ldquo;documentation bad.&amp;rdquo;
This is &amp;ldquo;documentation is a tool.&amp;rdquo; If it increases lead time, hides truth, or replaces learning, it&amp;rsquo;s not helping.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="why-this-matters"&gt;Why this matters&lt;/h2&gt;
&lt;p&gt;In software, the real &amp;ldquo;source of truth&amp;rdquo; is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;running systems&lt;/li&gt;
&lt;li&gt;code and configuration&lt;/li&gt;
&lt;li&gt;production telemetry&lt;/li&gt;
&lt;li&gt;incident history&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Documentation should reduce uncertainty and speed up decisions. But two artifacts routinely do the opposite in large organizations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;the 40-page slide deck&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;the Word doc living somewhere in SharePoint that nobody can find&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These artifacts often become &lt;em&gt;deliverables&lt;/em&gt; - a substitute for building. They make it possible to spend months &amp;ldquo;progressing&amp;rdquo; without ever encountering reality.&lt;/p&gt;
&lt;p&gt;And here&amp;rsquo;s the part most orgs miss:&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;If you&amp;rsquo;re going to fail, you want to fail &lt;strong&gt;quickly and cheaply&lt;/strong&gt;, not slowly and expensively. [4]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That doesn&amp;rsquo;t mean reckless shipping. It means running a tight learning loop and letting reality correct you early - before you&amp;rsquo;ve sunk quarters of time into the wrong solution.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Decks are great for storytelling. They are bad as an engineering system of record.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;SharePoint architecture docs&amp;rdquo; become a &lt;strong&gt;document cemetery&lt;/strong&gt;: hard to find, hard to diff, and easy to ignore.&lt;/li&gt;
&lt;li&gt;The Agile Manifesto explicitly values &lt;strong&gt;working software over comprehensive documentation&lt;/strong&gt;. [1] And one Agile principle states that working software is the primary measure of progress. [2]&lt;/li&gt;
&lt;li&gt;Replace decks/docs-as-deliverables with:&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RFC-lite&lt;/strong&gt; (1-2 pages) + a &lt;strong&gt;running thin slice&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ADRs&lt;/strong&gt; (Architecture Decision Records) to capture decisions + tradeoffs [5][6]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docs-as-code&lt;/strong&gt; (Markdown in the repo, reviewed like code)&lt;/li&gt;
&lt;li&gt;diagrams that are versioned and easy to update&lt;/li&gt;
&lt;li&gt;Measure improvement with system outcomes (lead time, deploy frequency, change failure rate, MTTR). [3]&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="contents"&gt;Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#pattern-1-deck-driven-development"&gt;Pattern 1: Deck-driven development&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#pattern-2-sharepoint-document-cemeteries"&gt;Pattern 2: SharePoint document cemeteries&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#pattern-3-architecture-as-narrative-not-decisions"&gt;Pattern 3: Architecture as narrative, not decisions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#pattern-4-design-phase-gating"&gt;Pattern 4: &amp;ldquo;Design phase&amp;rdquo; gating&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#pattern-5-documentation-that-never-gets-pruned"&gt;Pattern 5: Documentation that never gets pruned&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#what-to-do-instead-a-documentation-system-that-ships"&gt;What to do instead: a documentation system that ships&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#verification-how-you-know-its-working"&gt;Verification: how you know it&amp;rsquo;s working&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#a-practical-checklist"&gt;A practical checklist&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#references"&gt;References&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="pattern-1-deck-driven-development"&gt;Pattern 1: Deck-driven development&lt;/h2&gt;
&lt;h3 id="what-it-looks-like"&gt;What it looks like&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A 40-page deck is created to describe a system that doesn&amp;rsquo;t exist yet.&lt;/li&gt;
&lt;li&gt;The deck gets reviewed by multiple groups.&lt;/li&gt;
&lt;li&gt;Approval is treated as progress.&lt;/li&gt;
&lt;li&gt;When implementation starts, the world has changed - or key constraints were missed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="why-it-exists"&gt;Why it exists&lt;/h3&gt;
&lt;p&gt;Decks are socially useful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;they compress complexity into a narrative&lt;/li&gt;
&lt;li&gt;they help leaders &amp;ldquo;see&amp;rdquo; a plan&lt;/li&gt;
&lt;li&gt;they make uncertainty feel controlled&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="the-hidden-tax"&gt;The hidden tax&lt;/h3&gt;
&lt;p&gt;Decks are a poor engineering artifact because they&amp;rsquo;re:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;low fidelity&lt;/strong&gt;: they rarely contain executable truth&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;hard to maintain&lt;/strong&gt;: updates are manual and usually lag reality&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;hard to diff&lt;/strong&gt;: you can&amp;rsquo;t easily review what changed and why&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;easy to perform&lt;/strong&gt;: a deck can look complete while the design is still untested&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;not tied to code&lt;/strong&gt;: no direct path from &amp;ldquo;decision&amp;rdquo; -&amp;gt; &amp;ldquo;implementation&amp;rdquo; -&amp;gt; &amp;ldquo;verification&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The worst outcome isn&amp;rsquo;t that the deck is wrong. It&amp;rsquo;s that the deck delays the point where you discover what&amp;rsquo;s wrong.&lt;/p&gt;
&lt;h3 id="the-replacement-pattern"&gt;The replacement pattern&lt;/h3&gt;
&lt;p&gt;Use decks for storytelling &lt;strong&gt;after&lt;/strong&gt; you have reality. Use engineering artifacts to discover reality.&lt;/p&gt;
&lt;p&gt;A strong default:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RFC-lite&lt;/strong&gt; (1-2 pages)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;a runnable thin slice&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;measurable verification&lt;/strong&gt; (latency, cost envelope, failure mode)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This aligns with Agile&amp;rsquo;s emphasis on working software as a real measure of progress. [2]&lt;/p&gt;
&lt;h3 id="transition-step-low-drama"&gt;Transition step (low drama)&lt;/h3&gt;
&lt;p&gt;Replace &amp;ldquo;deck required for approval&amp;rdquo; with &amp;ldquo;evidence required for approval&amp;rdquo;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;link to the RFC&lt;/li&gt;
&lt;li&gt;link to a running demo / branch / sandbox&lt;/li&gt;
&lt;li&gt;explicit constraints + tradeoffs&lt;/li&gt;
&lt;li&gt;an exit criteria checklist for the slice&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="pattern-2-sharepoint-document-cemeteries"&gt;Pattern 2: SharePoint document cemeteries&lt;/h2&gt;
&lt;h3 id="what-it-looks-like-1"&gt;What it looks like&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Architecture docs exist as Word/PDF files in SharePoint.&lt;/li&gt;
&lt;li&gt;Multiple versions exist (&amp;ldquo;Final_v7_REAL_FINAL.docx&amp;rdquo;).&lt;/li&gt;
&lt;li&gt;Search works poorly unless you already know what to search for.&lt;/li&gt;
&lt;li&gt;Nobody updates the doc because it&amp;rsquo;s painful and risky (&amp;ldquo;what if I change the blessed doc?&amp;rdquo;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="why-it-exists-1"&gt;Why it exists&lt;/h3&gt;
&lt;p&gt;It&amp;rsquo;s an enterprise default:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SharePoint is &amp;ldquo;official&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Word docs feel formal&lt;/li&gt;
&lt;li&gt;it&amp;rsquo;s familiar to non-engineering stakeholders&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="the-hidden-tax-1"&gt;The hidden tax&lt;/h3&gt;
&lt;p&gt;SharePoint docs typically fail at the things engineering needs most:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;discoverability&lt;/strong&gt; (people don&amp;rsquo;t know where to look)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ownership&lt;/strong&gt; (no clear maintainer)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;reviewability&lt;/strong&gt; (diffs and PR discussion are weak)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;linking to reality&lt;/strong&gt; (code, configs, dashboards, runbooks)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;keeping current&lt;/strong&gt; (documentation drift becomes the norm)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So teams stop trusting docs and rely on tribal knowledge - until they page someone at 2 a.m.&lt;/p&gt;
&lt;h3 id="the-replacement-pattern-1"&gt;The replacement pattern&lt;/h3&gt;
&lt;p&gt;Treat documentation as part of the codebase:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Markdown in the repo&lt;/li&gt;
&lt;li&gt;reviewed via PR like code&lt;/li&gt;
&lt;li&gt;versioned with implementation&lt;/li&gt;
&lt;li&gt;linked to:&lt;/li&gt;
&lt;li&gt;APIs (OpenAPI specs)&lt;/li&gt;
&lt;li&gt;dashboards&lt;/li&gt;
&lt;li&gt;runbooks&lt;/li&gt;
&lt;li&gt;incident writeups&lt;/li&gt;
&lt;li&gt;ADRs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Google&amp;rsquo;s documentation best practices make the point directly: a small set of fresh, accurate docs is better than a large pile in disrepair. [7]&lt;/p&gt;
&lt;h3 id="transition-step"&gt;Transition step&lt;/h3&gt;
&lt;p&gt;You don&amp;rsquo;t have to &amp;ldquo;migrate all docs.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Start with a triage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Identify the top 10 documents people actually need.&lt;/li&gt;
&lt;li&gt;Recreate them as Markdown in a &lt;code&gt;docs/&lt;/code&gt; folder with an index.&lt;/li&gt;
&lt;li&gt;Leave the rest as archived references, not living truth.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="pattern-3-architecture-as-narrative-not-decisions"&gt;Pattern 3: Architecture as narrative, not decisions&lt;/h2&gt;
&lt;h3 id="what-it-looks-like-2"&gt;What it looks like&lt;/h3&gt;
&lt;p&gt;The doc describes a target architecture but doesn&amp;rsquo;t answer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;why this approach?&lt;/li&gt;
&lt;li&gt;what alternatives were considered?&lt;/li&gt;
&lt;li&gt;what tradeoffs were accepted?&lt;/li&gt;
&lt;li&gt;what constraints matter most?&lt;/li&gt;
&lt;li&gt;what did we decide not to do?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="why-it-exists-2"&gt;Why it exists&lt;/h3&gt;
&lt;p&gt;Narratives are easier than decision logs. It&amp;rsquo;s simpler to write &amp;ldquo;the system will&amp;hellip;&amp;rdquo; than to record the messy reality of tradeoffs.&lt;/p&gt;
&lt;h3 id="the-hidden-tax-2"&gt;The hidden tax&lt;/h3&gt;
&lt;p&gt;When decisions aren&amp;rsquo;t recorded, teams re-litigate them repeatedly. The same arguments come back every quarter - often because new people joined and the reasoning isn&amp;rsquo;t captured.&lt;/p&gt;
&lt;h3 id="the-replacement-pattern-adrs"&gt;The replacement pattern: ADRs&lt;/h3&gt;
&lt;p&gt;Use &lt;strong&gt;Architecture Decision Records (ADRs)&lt;/strong&gt;: short, structured notes that capture an important decision with its context and consequences. [5] The practice is commonly attributed to Michael Nygard&amp;rsquo;s 2011 write-up. [6]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ADRs are the opposite of a 40-slide deck:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;small&lt;/li&gt;
&lt;li&gt;specific&lt;/li&gt;
&lt;li&gt;diffable&lt;/li&gt;
&lt;li&gt;linkable to code changes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="transition-step-1"&gt;Transition step&lt;/h3&gt;
&lt;p&gt;Start with one ADR per &amp;ldquo;architecturally significant decision&amp;rdquo;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;database choice&lt;/li&gt;
&lt;li&gt;messaging pattern&lt;/li&gt;
&lt;li&gt;tenancy model&lt;/li&gt;
&lt;li&gt;auth model&lt;/li&gt;
&lt;li&gt;deployment model&lt;/li&gt;
&lt;li&gt;data boundary decisions&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="pattern-4-design-phase-gating"&gt;Pattern 4: &amp;ldquo;Design phase&amp;rdquo; gating&lt;/h2&gt;
&lt;h3 id="what-it-looks-like-3"&gt;What it looks like&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;We can&amp;rsquo;t start implementation until the analysis is complete.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;The analysis expands to include every possible future case.&lt;/li&gt;
&lt;li&gt;The design grows more &amp;ldquo;complete&amp;rdquo; and less true.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="why-it-exists-3"&gt;Why it exists&lt;/h3&gt;
&lt;p&gt;Enterprises are understandably afraid of failure.&lt;/p&gt;
&lt;h3 id="the-hidden-tax-3"&gt;The hidden tax&lt;/h3&gt;
&lt;p&gt;This approach doesn&amp;rsquo;t eliminate failure. It defers it - making it more expensive.&lt;/p&gt;
&lt;p&gt;Lean Startup describes progress as validated learning and emphasizes moving quickly through a build-measure-learn loop. [4] The point isn&amp;rsquo;t startups. The point is learning fast when you&amp;rsquo;re uncertain.&lt;/p&gt;
&lt;h3 id="the-replacement-pattern-2"&gt;The replacement pattern&lt;/h3&gt;
&lt;p&gt;Timebox design, then validate with a thin slice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;write the RFC-lite doc&lt;/li&gt;
&lt;li&gt;implement the smallest realistic end-to-end path&lt;/li&gt;
&lt;li&gt;measure the constraints&lt;/li&gt;
&lt;li&gt;then expand&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="transition-step-2"&gt;Transition step&lt;/h3&gt;
&lt;p&gt;Define &amp;ldquo;analysis exit criteria&amp;rdquo;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;measurable constraints validated (not theorized)&lt;/li&gt;
&lt;li&gt;spike code exists&lt;/li&gt;
&lt;li&gt;a plan for incremental rollout exists&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="pattern-5-documentation-that-never-gets-pruned"&gt;Pattern 5: Documentation that never gets pruned&lt;/h2&gt;
&lt;h3 id="what-it-looks-like-4"&gt;What it looks like&lt;/h3&gt;
&lt;p&gt;Docs accumulate but aren&amp;rsquo;t maintained:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;outdated architecture diagrams&lt;/li&gt;
&lt;li&gt;old runbooks&lt;/li&gt;
&lt;li&gt;stale onboarding guides&lt;/li&gt;
&lt;li&gt;dead links&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="why-it-exists-4"&gt;Why it exists&lt;/h3&gt;
&lt;p&gt;Pruning isn&amp;rsquo;t rewarded. Writing new docs feels productive; deleting old docs feels risky.&lt;/p&gt;
&lt;h3 id="the-hidden-tax-4"&gt;The hidden tax&lt;/h3&gt;
&lt;p&gt;Stale docs are worse than no docs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;they mislead&lt;/li&gt;
&lt;li&gt;they increase cognitive load&lt;/li&gt;
&lt;li&gt;they create false confidence&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="the-replacement-pattern-3"&gt;The replacement pattern&lt;/h3&gt;
&lt;p&gt;Adopt &amp;ldquo;minimum viable documentation&amp;rdquo; and prune regularly. [7]&lt;/p&gt;
&lt;p&gt;The rule I like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If a doc isn&amp;rsquo;t maintained, label it &lt;strong&gt;ARCHIVED&lt;/strong&gt; and explain why.&lt;/li&gt;
&lt;li&gt;If a doc is required, tie it to ownership and change workflow.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="transition-step-3"&gt;Transition step&lt;/h3&gt;
&lt;p&gt;Make docs part of PR hygiene:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;if the change affects behavior, docs update ships with it&lt;/li&gt;
&lt;li&gt;run link checks in CI&lt;/li&gt;
&lt;li&gt;keep an index page updated&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-to-do-instead-a-documentation-system-that-ships"&gt;What to do instead: a documentation system that ships&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s a simple &amp;ldquo;docs system&amp;rdquo; that works in practice.&lt;/p&gt;
&lt;h3 id="a-repo-structure-that-scales"&gt;A repo structure that scales&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/README.md # entry point: what this is + how to run it
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/docs/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; index.md # &amp;#34;start here&amp;#34; documentation map
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; rfc/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 0001-tenancy-model.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 0002-storage-approach.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; adr/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 0001-use-postgres.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 0002-adopt-opentelemetry.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; architecture/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; context.md # C4-ish: context + boundaries
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; containers.md # top-level services
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; deployment.md # runtime &amp;amp; environments
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; runbooks/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; oncall.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; incident-response.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; api/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; openapi.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="replace-40-slides-with-two-artifacts"&gt;Replace 40 slides with two artifacts&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;RFC-lite (1-2 pages)&lt;/strong&gt;: the &amp;ldquo;what&amp;rdquo; and &amp;ldquo;why&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Thin slice demo&lt;/strong&gt;: the reality check&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="rfc-lite-template-copypaste"&gt;RFC-lite template (copy/paste)&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;# RFC: &amp;lt;title&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Problem
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;What are we trying to solve? Who is affected?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Constraints
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;Latency, cost, compliance, tenancy, uptime, environments.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Proposal
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;What are we building? What does &amp;#34;done&amp;#34; mean?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Alternatives considered
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;Option A / B / C with short tradeoffs.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Risks and mitigations
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;What could go wrong? How will we contain blast radius?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Verification
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;How will we measure success in production?
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="adr-template-copypaste"&gt;ADR template (copy/paste)&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;# ADR-XXXX: &amp;lt;decision&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Status
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;Proposed | Accepted | Deprecated
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Context
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;What drove this decision? What constraints matter?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Decision
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;What did we decide?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Consequences
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;&lt;/span&gt;What do we gain? What do we lose? What changes later?
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="verification-how-you-know-its-working"&gt;Verification: how you know it&amp;rsquo;s working&lt;/h2&gt;
&lt;p&gt;If you replace decks and doc cemeteries with real engineering artifacts, you should see:&lt;/p&gt;
&lt;h3 id="delivery-metrics-improve"&gt;Delivery metrics improve&lt;/h3&gt;
&lt;p&gt;Track the same system-level outcomes DORA promotes: lead time, deploy frequency, change failure rate, and time to restore service. [3]&lt;/p&gt;
&lt;h3 id="fewer-handoffs-and-fewer-alignment-meetings"&gt;Fewer handoffs and fewer &amp;ldquo;alignment meetings&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;If teams can self-serve context from living docs, coordination cost drops.&lt;/p&gt;
&lt;h3 id="faster-first-reality"&gt;Faster &amp;ldquo;first reality&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;A simple heuristic:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How long from idea -&amp;gt; first runnable thin slice?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If that number is months, the system is optimized for analysis, not learning.&lt;/p&gt;
&lt;h3 id="docs-stay-alive"&gt;Docs stay alive&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;docs updated alongside code&lt;/li&gt;
&lt;li&gt;fewer stale &amp;ldquo;final_v7&amp;rdquo; files&lt;/li&gt;
&lt;li&gt;fewer tribal-knowledge escalations&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="a-practical-checklist"&gt;A practical checklist&lt;/h2&gt;
&lt;p&gt;If you want to kill deck-driven delivery without starting a culture war:&lt;/p&gt;
&lt;h3 id="stop-treating-decks-as-deliverables"&gt;Stop treating decks as deliverables&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Architecture reviews require an RFC + a runnable slice.&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Decks are optional; evidence is not.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fix-document-discoverability"&gt;Fix document discoverability&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; One &lt;code&gt;docs/index.md&lt;/code&gt; that links to the docs that matter.&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Make the repo the source of truth for technical docs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="capture-decisions-not-fantasies"&gt;Capture decisions, not fantasies&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Add ADRs for major decisions and link them to PRs. [5][6]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="timebox-analysis"&gt;Timebox analysis&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Set analysis exit criteria.&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Optimize for early learning and quick failure when uncertainty is high. [4]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="keep-docs-small-and-alive"&gt;Keep docs small and alive&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Prune regularly; archive what&amp;rsquo;s stale.&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Run link checks in CI.&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Treat docs like bonsai: maintained and trimmed, not accumulated. [7]&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;p&gt;[1] Manifesto for Agile Software Development (values; &amp;ldquo;Working software over comprehensive documentation&amp;rdquo;). &lt;a href="https://agilemanifesto.org/" target="_blank" rel="noopener noreferrer"&gt;https://agilemanifesto.org/&lt;/a&gt;
[2] Principles behind the Agile Manifesto (&amp;ldquo;Working software is the primary measure of progress&amp;rdquo;). &lt;a href="https://agilemanifesto.org/principles.html" target="_blank" rel="noopener noreferrer"&gt;https://agilemanifesto.org/principles.html&lt;/a&gt;
[3] DORA - &amp;ldquo;DORA&amp;rsquo;s software delivery performance metrics (guide)&amp;rdquo;. &lt;a href="https://dora.dev/guides/dora-metrics/" target="_blank" rel="noopener noreferrer"&gt;https://dora.dev/guides/dora-metrics/&lt;/a&gt;
[4] Lean Startup principles (Build-Measure-Learn; learning quickly; failing fast/cheaply as a concept). &lt;a href="https://theleanstartup.com/principles" target="_blank" rel="noopener noreferrer"&gt;https://theleanstartup.com/principles&lt;/a&gt;
[5] ADR - Architectural Decision Records (what ADRs are). &lt;a href="https://adr.github.io/" target="_blank" rel="noopener noreferrer"&gt;https://adr.github.io/&lt;/a&gt;
[6] Michael Nygard - &amp;ldquo;Documenting Architecture Decisions&amp;rdquo; (2011; ADR practice origin/popularization). &lt;a href="https://www.cognitect.com/blog/2011/11/15/documenting-architecture-decisions" target="_blank" rel="noopener noreferrer"&gt;https://www.cognitect.com/blog/2011/11/15/documenting-architecture-decisions&lt;/a&gt;
[7] Google Documentation Guide - Best practices (&amp;ldquo;Minimum Viable Documentation&amp;rdquo;; keep docs short, fresh, and pruned). &lt;a href="https://google.github.io/styleguide/docguide/best_practices.html" target="_blank" rel="noopener noreferrer"&gt;https://google.github.io/styleguide/docguide/best_practices.html&lt;/a&gt;
&lt;/p&gt;</content:encoded></item></channel></rss>