<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Evolutionary Coding Techniques on MinimumCD Practice Guide</title><link>https://beyond.minimumcd.org/docs/foundations/evolutionary-coding/</link><description>Recent content in Evolutionary Coding Techniques on MinimumCD Practice Guide</description><generator>Hugo</generator><language>en</language><atom:link href="https://beyond.minimumcd.org/docs/foundations/evolutionary-coding/index.xml" rel="self" type="application/rss+xml"/><item><title>Dark Code</title><link>https://beyond.minimumcd.org/docs/foundations/evolutionary-coding/dark-code/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/foundations/evolutionary-coding/dark-code/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 1 - Foundations&lt;/strong&gt; | &lt;span class="scope-label scope-label--team"&gt;Scope: Team&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;Dark code is the default technique for integrating incomplete work. It costs nothing to maintain and requires no cleanup, because the code never runs until you decide to connect it.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="what-is-dark-code"&gt;What Is Dark Code?&lt;/h2&gt;&#10;&lt;p&gt;Dark code is new logic that is fully built, tested, and deployed to production, but not yet reachable. No route, UI trigger, or message consumer points to it. It sits inert in the running binary until the final commit connects it.&lt;/p&gt;</description></item><item><title>Branch by Abstraction</title><link>https://beyond.minimumcd.org/docs/foundations/evolutionary-coding/branch-by-abstraction/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/foundations/evolutionary-coding/branch-by-abstraction/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 1 - Foundations&lt;/strong&gt; | &lt;span class="scope-label scope-label--team"&gt;Scope: Team&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;Branch by abstraction lets you replace an internal implementation, algorithm, or library on trunk, without a long-lived branch and without disrupting the code that already depends on it.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="what-is-branch-by-abstraction"&gt;What Is Branch by Abstraction?&lt;/h2&gt;&#10;&lt;p&gt;Branch by abstraction introduces an interface over an existing implementation, redirects callers to that interface, then builds and switches in a new implementation behind it, all as small commits on trunk. The &amp;ldquo;branching&amp;rdquo; happens in the abstraction layer, not in version control.&lt;/p&gt;</description></item><item><title>Parallel Run</title><link>https://beyond.minimumcd.org/docs/foundations/evolutionary-coding/parallel-run/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/foundations/evolutionary-coding/parallel-run/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 1 - Foundations&lt;/strong&gt; | &lt;span class="scope-label scope-label--team"&gt;Scope: Team&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;A parallel run executes the old and new code paths against the same production input, but only returns the old result to the caller. It proves correctness with real traffic before anyone depends on the new path.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="what-is-a-parallel-run"&gt;What Is a Parallel Run?&lt;/h2&gt;&#10;&lt;p&gt;A parallel run, sometimes called shadowing or a dark launch of logic, wraps a call so both the current implementation and a candidate replacement execute against identical production input. The caller always receives the current implementation&amp;rsquo;s result. The candidate&amp;rsquo;s result is captured and compared, never returned.&lt;/p&gt;</description></item><item><title>Expand and Contract</title><link>https://beyond.minimumcd.org/docs/foundations/evolutionary-coding/expand-and-contract/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/foundations/evolutionary-coding/expand-and-contract/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 1 - Foundations&lt;/strong&gt; | &lt;span class="scope-label scope-label--team"&gt;Scope: Team&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;Expand and contract, also called parallel change, replaces a single breaking schema or contract change with a sequence of small, backward-compatible deployments. Nothing outside your team has to be redeployed in lockstep.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="what-is-expand-and-contract"&gt;What Is Expand and Contract?&lt;/h2&gt;&#10;&lt;p&gt;Expand and contract evolves a shared contract, a database schema, an event schema, or an API, without ever mutating it in place. Instead of replacing the old shape with the new one in a single change, you add the new shape alongside the old one, migrate consumers over incrementally, and only remove the old shape once nothing depends on it.&lt;/p&gt;</description></item></channel></rss>