<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Phase 3: Optimize on MinimumCD Practice Guide</title><link>https://beyond.minimumcd.org/docs/optimize/</link><description>Recent content in Phase 3: Optimize on MinimumCD Practice Guide</description><generator>Hugo</generator><language>en</language><atom:link href="https://beyond.minimumcd.org/docs/optimize/index.xml" rel="self" type="application/rss+xml"/><item><title>Small Batches</title><link>https://beyond.minimumcd.org/docs/optimize/small-batches/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/optimize/small-batches/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 3 - Optimize&lt;/strong&gt; | &lt;span class="scope-label scope-label--team"&gt;Scope: Team&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#batch-size"&gt;Batch size&lt;/a&gt; is the single biggest lever for improving delivery performance. This page covers what batch size means at every level - deploy frequency, commit size, and story size - and provides concrete techniques for reducing it.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="why-batch-size-matters"&gt;Why Batch Size Matters&lt;/h2&gt;&#10;&lt;p&gt;Large batches create large risks. When you deploy 50 changes at once, any failure could be caused by any of those 50 changes. When you deploy 1 change, the cause of any failure is obvious.&lt;/p&gt;</description></item><item><title>Feature Flags</title><link>https://beyond.minimumcd.org/docs/optimize/feature-flags/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/optimize/feature-flags/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 3 - Optimize&lt;/strong&gt; | &lt;span class="scope-label scope-label--team"&gt;Scope: Team&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#feature-flag"&gt;Feature flags&lt;/a&gt; are the mechanism that makes &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#tbd-trunk-based-development"&gt;trunk-based development&lt;/a&gt; and small batches safe. They let you deploy code to production without exposing it to users, enabling dark launches, gradual rollouts, and instant &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#rollback"&gt;rollback&lt;/a&gt; of features without redeploying.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Feature flags are one technique among several for integrating incomplete work safely, and the most expensive one to maintain. Before reaching for a flag, work through the &lt;a href="https://beyond.minimumcd.org/docs/foundations/evolutionary-coding/"&gt;evolutionary coding techniques hierarchy&lt;/a&gt;: dark code, branch by abstraction, parallel run, and expand and contract each solve part of what a flag solves, without the lifecycle overhead. This page assumes you&amp;rsquo;ve already ruled those out.&lt;/p&gt;</description></item><item><title>Limiting Work in Progress</title><link>https://beyond.minimumcd.org/docs/optimize/limiting-wip/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/optimize/limiting-wip/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 3 - Optimize&lt;/strong&gt; | &lt;span class="scope-label scope-label--team"&gt;Scope: Team&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;Work in progress (&lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#wip-work-in-progress"&gt;WIP&lt;/a&gt;) is inventory. Like physical inventory, it loses value the longer it sits unfinished. Limiting WIP is the most counterintuitive and most impactful practice in this entire migration: doing less work at once makes you deliver more.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="why-limiting-wip-matters"&gt;Why Limiting WIP Matters&lt;/h2&gt;&#10;&lt;p&gt;Every item of work in progress has a cost:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Context switching:&lt;/strong&gt; Moving between tasks destroys focus. Research consistently shows that switching between two tasks reduces productive time by 20-40%.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Delayed feedback:&lt;/strong&gt; Work that is started but not finished cannot be validated by users. The longer it sits, the more assumptions go untested.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Hidden dependencies:&lt;/strong&gt; The more items in progress simultaneously, the more likely they are to conflict, block each other, or require coordination.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Longer cycle time:&lt;/strong&gt; Little&amp;rsquo;s Law states that cycle time = WIP / throughput. If throughput is constant, the only way to reduce cycle time is to reduce WIP.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&amp;ldquo;Stop starting, start finishing.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Metrics-Driven Improvement</title><link>https://beyond.minimumcd.org/docs/optimize/metrics-driven-improvement/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/optimize/metrics-driven-improvement/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 3 - Optimize&lt;/strong&gt; | &lt;span class="scope-label scope-label--team"&gt;Scope: Team&lt;/span&gt;&#10;| Original content combining &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#dora-metrics"&gt;DORA&lt;/a&gt; recommendations and improvement kata&lt;/p&gt;&#10;&lt;p&gt;Improvement without measurement is guesswork. This page covers two types of metrics, how they relate, and how to use them together in a systematic improvement cycle.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="two-types-of-metrics"&gt;Two Types of Metrics&lt;/h2&gt;&#10;&lt;p&gt;Not all delivery metrics are equally useful for driving improvement. Understanding the difference prevents a common trap: tracking the wrong metrics and wondering why nothing changes.&lt;/p&gt;</description></item><item><title>Retrospectives</title><link>https://beyond.minimumcd.org/docs/optimize/retrospectives/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/optimize/retrospectives/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 3 - Optimize&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 retrospective is the team&amp;rsquo;s primary mechanism for turning observations into improvements. Without effective retrospectives, &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#wip-work-in-progress"&gt;WIP&lt;/a&gt; limits expose problems that nobody addresses, metrics trend in the wrong direction with no response, and the &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#cd-continuous-delivery"&gt;CD&lt;/a&gt; migration stalls.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="why-retrospectives-matter-for-cd-migration"&gt;Why Retrospectives Matter for CD Migration&lt;/h2&gt;&#10;&lt;p&gt;Every practice in this guide - &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#tbd-trunk-based-development"&gt;trunk-based development&lt;/a&gt;, small batches, WIP limits, metrics-driven improvement - generates signals about what is working and what is not. Retrospectives are where the team processes those signals and decides what to change.&lt;/p&gt;</description></item><item><title>Architecture Decoupling</title><link>https://beyond.minimumcd.org/docs/optimize/architecture-decoupling/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/optimize/architecture-decoupling/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 3 - Optimize&lt;/strong&gt; | &lt;span class="scope-label scope-label--team-org"&gt;Scope: Team + Org&lt;/span&gt;&#10;| Original content based on Dojo Consortium delivery journey patterns&lt;/p&gt;&#10;&lt;p&gt;You cannot deploy independently if your architecture requires coordinated releases. This page describes the three architecture states teams encounter on the journey to &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#continuous-deployment"&gt;continuous deployment&lt;/a&gt; and provides practical strategies for moving from entangled to loosely coupled.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="why-architecture-matters-for-cd"&gt;Why Architecture Matters for CD&lt;/h2&gt;&#10;&lt;p&gt;Every practice in this guide - small batches, &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#feature-flag"&gt;feature flags&lt;/a&gt;, &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#wip-work-in-progress"&gt;WIP&lt;/a&gt; limits - assumes that your team can deploy its changes independently. But if your application is a monolith where changing one module requires retesting everything, or a set of microservices with tightly coupled APIs, independent deployment is impossible regardless of how good your practices are.&lt;/p&gt;</description></item><item><title>Team Alignment to Code</title><link>https://beyond.minimumcd.org/docs/optimize/team-alignment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/optimize/team-alignment/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 3 - Optimize&lt;/strong&gt; | &lt;span class="scope-label scope-label--org"&gt;Scope: Org&lt;/span&gt;&#10;| Teams that own a domain end-to-end can deploy independently. Teams organized around technical layers cannot.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="how-team-structure-shapes-code"&gt;How Team Structure Shapes Code&lt;/h2&gt;&#10;&lt;p&gt;The way an organization communicates produces the architecture it builds. When communication flows&#10;between layers - frontend team talks to backend team, backend team talks to database team - the&#10;software reflects those communication lines. Requests for the UI layer go to one team. Requests for&#10;the API layer go to another. The result is software that is horizontally layered in the same pattern&#10;as the organization.&lt;/p&gt;</description></item><item><title>Hypothesis-Driven Development</title><link>https://beyond.minimumcd.org/docs/optimize/hypothesis-driven-development/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/optimize/hypothesis-driven-development/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;&#10;&lt;p&gt;&lt;strong&gt;Phase 3 - Optimize&lt;/strong&gt; | &lt;span class="scope-label scope-label--team"&gt;Scope: Team&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;Hypothesis-driven development treats every change as an experiment. Instead of building features because someone asked for them and hoping they help, teams state a predicted outcome before writing code, measure the result after deployment, and use the evidence to decide what to do next. Combined with &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#feature-flag"&gt;feature flags&lt;/a&gt;, &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#batch-size"&gt;small batches&lt;/a&gt;, and &lt;a href="https://beyond.minimumcd.org/docs/optimize/metrics-driven-improvement/"&gt;metrics-driven improvement&lt;/a&gt;, this practice closes the loop between shipping and learning.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="why-hypothesis-driven-development"&gt;Why Hypothesis-Driven Development&lt;/h2&gt;&#10;&lt;p&gt;Most teams ship features without stating what outcome they expect. A product manager requests a feature, developers build it, and everyone moves on to the next item. Weeks later, nobody checks whether the feature actually helped.&lt;/p&gt;</description></item></channel></rss>