<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Desirable Difficulty]]></title><description><![CDATA[My learning notes around tech leadership.]]></description><link>https://www.desirable-difficulty.com</link><image><url>https://substackcdn.com/image/fetch/$s_!EjqB!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F308f02f1-e2b2-4748-84ec-5130c8ee69fc_1280x1280.png</url><title>Desirable Difficulty</title><link>https://www.desirable-difficulty.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 09 May 2026 04:53:27 GMT</lastBuildDate><atom:link href="https://www.desirable-difficulty.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Diego Nogueira]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[desirabledifficulty@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[desirabledifficulty@substack.com]]></itunes:email><itunes:name><![CDATA[Diego Nogueira]]></itunes:name></itunes:owner><itunes:author><![CDATA[Diego Nogueira]]></itunes:author><googleplay:owner><![CDATA[desirabledifficulty@substack.com]]></googleplay:owner><googleplay:email><![CDATA[desirabledifficulty@substack.com]]></googleplay:email><googleplay:author><![CDATA[Diego Nogueira]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Don't Read the Code]]></title><description><![CDATA[From Inspecting Code to Observing Systems]]></description><link>https://www.desirable-difficulty.com/p/dont-read-the-code</link><guid isPermaLink="false">https://www.desirable-difficulty.com/p/dont-read-the-code</guid><dc:creator><![CDATA[Diego Nogueira]]></dc:creator><pubDate>Wed, 25 Mar 2026 03:19:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v6zz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Disclaimer: this article represents my personal opinions and not my employer&#8217;s.</em></p><p>For a long time, reading code was the most practical way to build confidence in a system. It was how engineers debugged, reviewed changes, and resolved ambiguity when documentation and reality diverged.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!v6zz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!v6zz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png 424w, https://substackcdn.com/image/fetch/$s_!v6zz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png 848w, https://substackcdn.com/image/fetch/$s_!v6zz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png 1272w, https://substackcdn.com/image/fetch/$s_!v6zz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!v6zz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png" width="1456" height="1094" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1094,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:55280,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.desirable-difficulty.com/i/192051104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!v6zz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png 424w, https://substackcdn.com/image/fetch/$s_!v6zz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png 848w, https://substackcdn.com/image/fetch/$s_!v6zz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png 1272w, https://substackcdn.com/image/fetch/$s_!v6zz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa74f3dcc-bd08-428a-b9da-905a52871f07_1527x1147.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The belief that if the code is read, the system is understood has always been fragile. Modern systems contain hundreds of thousands or millions of lines of code. No engineer truly understands them by reading every implementation detail.</p><p>Code inspection mostly worked because code was historically expensive to produce. Implementations appeared slowly enough that humans could keep up.</p><p>That economic reality has changed.</p><p>LLMs can generate implementations quickly and at scale. Entire features, integrations, and refactors can appear faster than humans can realistically review them line by line. The traditional control mechanism of software engineering, careful inspection of the implementation, stops scaling.</p><p>This shift is already visible in what many are calling specification-oriented development. Instead of writing every implementation detail by hand, engineers increasingly focus on describing behavior, constraints, and architectural boundaries, allowing implementations to be generated from those specifications. <a href="https://www.thoughtworks.com/en-br/insights/blog/agile-engineering-practices/spec-driven-development-unpacking-2025-new-engineering-practices">ThoughtWorks formalized it well</a>.</p><p>This article is not about introducing that paradigm. That is already happening. The more interesting question is what follows.</p><p>Nor does this mean human judgment becomes unnecessary. The real question is where that judgment should be applied.</p><h4><strong>Human judgment moves upstream</strong></h4><p>For years, software engineering relied on a simple mechanism for applying judgment: read the implementation together.</p><p>When that mechanism stops scaling, human judgment does not disappear. It moves earlier and higher in the stack.</p><p>We got used to asking whether functions were implemented correctly. Those were never the most important questions.</p><p>The real questions are about whether the system being built makes sense at all.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eW_6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eW_6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png 424w, https://substackcdn.com/image/fetch/$s_!eW_6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png 848w, https://substackcdn.com/image/fetch/$s_!eW_6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png 1272w, https://substackcdn.com/image/fetch/$s_!eW_6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eW_6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png" width="1330" height="269" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:269,&quot;width&quot;:1330,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42479,&quot;alt&quot;:&quot;Implementation became cheap. Judgement did not.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.desirable-difficulty.com/i/192051104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Implementation became cheap. Judgement did not." title="Implementation became cheap. Judgement did not." srcset="https://substackcdn.com/image/fetch/$s_!eW_6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png 424w, https://substackcdn.com/image/fetch/$s_!eW_6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png 848w, https://substackcdn.com/image/fetch/$s_!eW_6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png 1272w, https://substackcdn.com/image/fetch/$s_!eW_6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0980b17-ed53-4d53-b4e1-18869279e2e2_1330x269.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>What problem is being solved? What assumptions does the design rely on? What constraints shape the space of acceptable solutions? What behavior should the system demonstrate under realistic conditions?</p><p>Strong engineering organizations have long recognized this. Design and architecture reviews exist to evaluate the structure of a system before implementation begins.</p><p>The reason is simple. Most severe engineering mistakes are not coding mistakes. They are architectural mistakes.</p><p>Teams rarely fail because someone wrote an incorrect loop. They fail because the system was structured in a way that made certain failures inevitable.</p><p>Generative code makes this shift unavoidable. Spending most of our collective judgment inspecting code becomes a poor allocation of attention. The real leverage comes from shaping the specification, the architecture, and the constraints that define what the system can and cannot do.</p><p>This is often where the shift is misunderstood: many observers conclude that AI-assisted coding is useful for prototyping but not for building serious systems. What has changed is not the standard for good engineering, but who can now produce working code.</p><p>Implementation used to be a meaningful barrier to entry. Today it is not. When people without system design training develop software, the results reflect that lack of training. That does not reveal a limitation of the tools. It exposes where the real difficulty has always been: deciding what should be built, how it should be structured, and what constraints should govern its behavior.</p><p>Seen this way, this shift is less exotic than it first appears. Other disciplines have long relied on specifications and behavioral validation rather than inspecting artifacts directly.</p><h4><strong>Engineering already works this way in other domains</strong></h4><p>This shift may feel unusual in traditional software development. But many engineering disciplines have been working this way for years.</p><p>When artifacts become too complex to inspect directly, engineers stop trying to understand them line by line. Instead, they rely on specifications, generation processes, and behavioral validation.</p><p>Machine learning engineers rarely inspect the internal structure of trained models. They define datasets, training procedures, and evaluation metrics, then evaluate the model based on how it behaves over validation data.</p><p>Compilers generate enormous volumes of machine instructions from relatively small programs. Engineers do not read the generated assembly to confirm correctness. They trust the language specification and validate behavior through the compilation pipeline.</p><p>Database systems generate execution plans that few developers analyze deeply. What matters is that queries return correct results with acceptable performance.</p><p>Across these domains, the artifact itself is not the primary object of scrutiny. Confidence comes from specifications and observable behavior.</p><p>Software development is now entering a similar phase.</p><h4><strong>Architecture defines what the system cannot do</strong></h4><p>Engineers often describe architecture as the structure of a system. In practice, its real power lies somewhere else: architecture determines what the system cannot do.</p><p>Good architecture defines the constraints within which implementations must operate. Services cannot access arbitrary databases. Certain operations must flow through specific interfaces. Critical data paths are isolated behind carefully designed APIs.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pXzR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pXzR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png 424w, https://substackcdn.com/image/fetch/$s_!pXzR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png 848w, https://substackcdn.com/image/fetch/$s_!pXzR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png 1272w, https://substackcdn.com/image/fetch/$s_!pXzR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pXzR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png" width="1311" height="277" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:277,&quot;width&quot;:1311,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44571,&quot;alt&quot;:&quot;Great architectures eliminate entire classes of mistakes.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.desirable-difficulty.com/i/192051104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Great architectures eliminate entire classes of mistakes." title="Great architectures eliminate entire classes of mistakes." srcset="https://substackcdn.com/image/fetch/$s_!pXzR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png 424w, https://substackcdn.com/image/fetch/$s_!pXzR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png 848w, https://substackcdn.com/image/fetch/$s_!pXzR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png 1272w, https://substackcdn.com/image/fetch/$s_!pXzR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa912b9b6-fded-4b27-903b-bf91a187c281_1311x277.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>This becomes even more important when code is generated by systems trained on the statistical average of existing software. LLMs behave much like competent junior engineers. They can produce locally reasonable solutions, but they tend to replicate common programming patterns, including many common mistakes.</p><p>Left unconstrained, generated implementations will often drift toward those average patterns. Architectural decisions counteract that tendency by shaping the space of acceptable solutions before any code is written.</p><p>Architectural constraints shape the solution space in which generated implementations can exist. They do not guarantee perfection, but they prevent many of the most frequent failure modes.</p><h4><strong>Systems of evidence</strong></h4><p>If code is no longer the primary object of inspection, correctness must be established elsewhere.</p><p>Some of those signals we have already discussed. Clear specifications and architectural constraints define what the system is supposed to do and, just as importantly, what it is not allowed to do. They shape the space in which implementations can exist.</p><p>Other signals are already familiar to most engineering teams. Automated tests and invariant checks encode expectations about behavior and allow systems to demonstrate that they satisfy those expectations repeatedly. Observability plays a similar role in production. Mature organizations instrument their systems so that behavior can be tracked through metrics, logs, and traces, allowing engineers to detect when reality diverges from the intended design.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DN19!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DN19!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png 424w, https://substackcdn.com/image/fetch/$s_!DN19!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png 848w, https://substackcdn.com/image/fetch/$s_!DN19!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png 1272w, https://substackcdn.com/image/fetch/$s_!DN19!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DN19!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png" width="1317" height="376" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:376,&quot;width&quot;:1317,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60853,&quot;alt&quot;:&quot;Software correctness is not something you read. It's something you observe.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.desirable-difficulty.com/i/192051104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Software correctness is not something you read. It's something you observe." title="Software correctness is not something you read. It's something you observe." srcset="https://substackcdn.com/image/fetch/$s_!DN19!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png 424w, https://substackcdn.com/image/fetch/$s_!DN19!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png 848w, https://substackcdn.com/image/fetch/$s_!DN19!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png 1272w, https://substackcdn.com/image/fetch/$s_!DN19!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f79aa56-c22b-418d-a438-20243efe19a1_1317x376.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But another source of evidence that historically underperformed is system-level validation environments.</p><p>The idea was always sound. Observing a system under realistic conditions before production should provide strong signals about its behavior. The problem was rarely conceptual. It was economic.</p><p>Building faithful system-level validation environments was expensive. Populating them with realistic data was difficult. Infrastructure often drifted away from production in subtle ways. As a result, many teams relied more on reading code and unit tests than on observing systems in realistic conditions.</p><p>That constraint is now weakening.</p><p>Generative capabilities make it dramatically easier to provision infrastructure, synthesize data, and recreate environments that resemble production systems. As these production-like environments become cheaper and more faithful, it becomes possible to validate behavior directly rather than reason about it indirectly through the implementation.</p><p>Instead of asking whether the code <em>looks correct</em>, engineers can increasingly ask whether the system <em>behaves correctly</em> when exercised with realistic data and traffic patterns.</p><h4><strong>Death to code review. Long live code review.</strong></h4><p>Nothing in this shift means code reviews were a bad idea. The intuition behind them was always sound: multiple perspectives surface problems that individuals miss.</p><p>What changes is not the value of review, but the dynamics of the code production chain. Humans became the bottleneck mostly because we had no alternative. Code appeared slowly enough that reading it together was the most practical way to apply collective judgment.</p><p>That historical limitation is now fading as code generation accelerates and automated tooling can perform much of the inspection work.</p><p>Agentic reviewers can analyze implementations far more aggressively than we can. They do not get tired, they do not skim, and they do not hesitate to explore a change from multiple angles.</p><p>A reviewing agent can patch the code locally, generate additional tests, execute them, and probe edge cases the original author never considered. It can search documentation and external sources while reviewing the change, compare patterns across the repository, and inspect interactions that would be tedious for a human reviewer to reconstruct manually.</p><p>Things become even more interesting when different models review each other. Different models tend to care about different things. In practice, they sometimes disagree in amusingly polite ways in pull request comments. One model worries about performance implications, another pushes on edge cases, and Gemini, in my experience, behaves like a particularly enthusiastic DRY enforcer.</p><p>Paradoxically, stepping out of the way of implementation review may actually improve quality. Machines can inspect code more exhaustively than we ever could, while humans concentrate on the decisions that shape the system itself.</p><h4><strong>Containment instead of inspection</strong></h4><p>At this point, an obvious objection appears: if generated code is pushed without careful inspection, the consequences could be severe. Data leaks, outages, corrupted systems, or failures that threaten the business.</p><p>This concern is legitimate.</p><p>But manual inspection was never a robust safety mechanism. Human reviewers routinely miss subtle issues in complex systems, not only related to safety but also to functional correctness and other non&#8209;functional properties.</p><p>Mature engineering organizations solved this problem in a different way: not by perfect inspection, but by designing systems that contain failure.</p><p>Architectural boundaries prevent services from accessing sensitive data arbitrarily. Deployment systems gradually expose changes through feature flags and canary releases. Monitoring systems detect unexpected behavior quickly. Automated rollback mechanisms limit the blast radius of failures.</p><p>These mechanisms do not try to guarantee that mistakes never happen. They assume mistakes will happen and ensure that their impact remains limited.</p><p>The goal is not to eliminate mistakes entirely. That has never been realistic.</p><p>The goal is to design systems that prevent mistakes from easily escalating into systemic failures or severe consequences.</p><h4><strong>When implementations become cheap</strong></h4><p>The deeper shift behind all these changes is economic.</p><p>When implementation is expensive, engineering effort concentrates on writing and reviewing code. When implementation becomes cheap, the scarce resource becomes clarity: clarity about the problem, the architecture, and the system's expected behavior.</p><p>This reveals something that was always true but easier to ignore. Reading the code was never a robust way to establish correctness. It was simply the most practical one when code appeared slowly enough for humans to inspect it.</p><p>As implementations become abundant, that limitation becomes visible.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CqD3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CqD3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png 424w, https://substackcdn.com/image/fetch/$s_!CqD3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png 848w, https://substackcdn.com/image/fetch/$s_!CqD3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png 1272w, https://substackcdn.com/image/fetch/$s_!CqD3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CqD3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png" width="1454" height="264" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:264,&quot;width&quot;:1454,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:54358,&quot;alt&quot;:&quot;We reviewed code because we could. Not because it mattered most.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.desirable-difficulty.com/i/192051104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="We reviewed code because we could. Not because it mattered most." title="We reviewed code because we could. Not because it mattered most." srcset="https://substackcdn.com/image/fetch/$s_!CqD3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png 424w, https://substackcdn.com/image/fetch/$s_!CqD3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png 848w, https://substackcdn.com/image/fetch/$s_!CqD3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png 1272w, https://substackcdn.com/image/fetch/$s_!CqD3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a634559-1a71-489f-ae69-e7a907b1b49b_1454x264.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Confidence has to come from somewhere else. Clear specifications. Architectural constraints. Tests. Staging environments. Observability. Production feedback. Not from how convincing the implementation looks, but from how the system behaves.</p><p>Implementation still matters, but it is no longer the primary object of attention.</p><p>Machines writing code is not the real disruption. The disruption is realizing that reading the code was never how we truly knew whether a system worked.</p>]]></content:encoded></item><item><title><![CDATA[Making interruptions worth it]]></title><description><![CDATA[A Practical Guide to Code Yellows]]></description><link>https://www.desirable-difficulty.com/p/making-interruptions-worth-it-d5593caebbee</link><guid isPermaLink="false">https://www.desirable-difficulty.com/p/making-interruptions-worth-it-d5593caebbee</guid><dc:creator><![CDATA[Diego Nogueira]]></dc:creator><pubDate>Tue, 30 Apr 2024 12:47:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/66db0b56-1ae4-41ea-95a3-dd6f57f28b81_1024x826.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Imagine it's your first week at a new job, and the CEO assigns you a critical project: ensuring that Client A, a key enterprise client, does not churn. During a meeting with the recently joined Head of Sales at Client A's office, you discover a series of unmet promises and mismatched expectations about critical service changes due&nbsp;soon.</p><p>As you get back with the product team, you discover that one of the most junior teams is working on marginally related changes, and the tech team is not very engaged when the sales team asks for help because they have cried wolf too many times before. It's clear you will fail, and the client will churn. It's time for drastic action: a Code&nbsp;Yellow.</p><p>Such interruptions are commonplace in many tech organizations despite well-established quarterly prioritization cycles and the use of OKRs (Objectives and Key Results). These tools are intended to keep teams on track but often fall short when unexpected challenges arise, as illustrated by the crisis with Client&nbsp;A.</p><p>In this article, we'll explore Code Yellows and how the process can transform chaotic interruptions into structured opportunities for growth and learning, ensuring that the most pressing problems are not just addressed but solved comprehensively.</p><p>Interruptions are a part of the real world. They come from failures in critical (frequently considered legacy) systems that stretched to their limits; other times, sudden changes to the market or critical clients can make strong pushbacks or requests not aligned with the short-term roadmap. Some incidents happen so frequently that it's usual to meet teams that have mastered the drill of emergency palliative support ("<em>Let's just run that script that deletes that file and restarts the service once again and move on</em>"). Teams and businesses can get trapped in a doom loop, struggling to overcome the root causes for&nbsp;good.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ba1j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7376b74-db1f-4ef9-bfc4-a49972da9b47_1024x826.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ba1j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7376b74-db1f-4ef9-bfc4-a49972da9b47_1024x826.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ba1j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7376b74-db1f-4ef9-bfc4-a49972da9b47_1024x826.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ba1j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7376b74-db1f-4ef9-bfc4-a49972da9b47_1024x826.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ba1j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7376b74-db1f-4ef9-bfc4-a49972da9b47_1024x826.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ba1j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7376b74-db1f-4ef9-bfc4-a49972da9b47_1024x826.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a7376b74-db1f-4ef9-bfc4-a49972da9b47_1024x826.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A two-sided loop: on the client side &#8220;Incident happened again!&#8221; takes to &#8220;Clients notice and threaten to quit.&#8221; which takes to &#8220;Support team notifies clients that problem was fixed.&#8221; which takes back to &#8220;Incidente happened again!&#8221;. On the company side, &#8220;Incidente happened again!&#8221; takes to &#8220;Team has other priorities&#8221; which takes to &#8220;Team applies palliative fix and moves on&#8221; which takes to &#8220;Incident happened again!&#8221;.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A two-sided loop: on the client side &#8220;Incident happened again!&#8221; takes to &#8220;Clients notice and threaten to quit.&#8221; which takes to &#8220;Support team notifies clients that problem was fixed.&#8221; which takes back to &#8220;Incidente happened again!&#8221;. On the company side, &#8220;Incidente happened again!&#8221; takes to &#8220;Team has other priorities&#8221; which takes to &#8220;Team applies palliative fix and moves on&#8221; which takes to &#8220;Incident happened again!&#8221;." title="A two-sided loop: on the client side &#8220;Incident happened again!&#8221; takes to &#8220;Clients notice and threaten to quit.&#8221; which takes to &#8220;Support team notifies clients that problem was fixed.&#8221; which takes back to &#8220;Incidente happened again!&#8221;. On the company side, &#8220;Incidente happened again!&#8221; takes to &#8220;Team has other priorities&#8221; which takes to &#8220;Team applies palliative fix and moves on&#8221; which takes to &#8220;Incident happened again!&#8221;." srcset="https://substackcdn.com/image/fetch/$s_!Ba1j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7376b74-db1f-4ef9-bfc4-a49972da9b47_1024x826.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ba1j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7376b74-db1f-4ef9-bfc4-a49972da9b47_1024x826.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ba1j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7376b74-db1f-4ef9-bfc4-a49972da9b47_1024x826.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ba1j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7376b74-db1f-4ef9-bfc4-a49972da9b47_1024x826.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">The low-priority doom&nbsp;loop.</figcaption></figure></div><p>Interruptions can also be self-imposed when the leadership team realizes that the current course of action does not show evidence of progress or move the business toward the declared goals, deciding to change the plan to increase the chances of success. Leadership interruptions are polemic and can be especially disturbing for tech teams, which tend to have a high cost of interruption. This political component can lead teams to engage half-heartedly on the redirection in a self-fulfilling weak results prophecy.</p><p>Given these interruptions' frequent and varied nature, traditional methods often fail to address them effectively. While at Google, I witnessed a highly effective process called Code Yellow, specifically designed to tackle such critical interruptions head-on. Its name was drawn from hospital emergency color codes and adapted for the corporate tech world. I experimented with it in the startup world and believe it applies well to their&nbsp;reality.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4d-3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbc312d-27f7-4ee9-84da-f990803e70ee_1024x233.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4d-3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbc312d-27f7-4ee9-84da-f990803e70ee_1024x233.png 424w, https://substackcdn.com/image/fetch/$s_!4d-3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbc312d-27f7-4ee9-84da-f990803e70ee_1024x233.png 848w, https://substackcdn.com/image/fetch/$s_!4d-3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbc312d-27f7-4ee9-84da-f990803e70ee_1024x233.png 1272w, https://substackcdn.com/image/fetch/$s_!4d-3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbc312d-27f7-4ee9-84da-f990803e70ee_1024x233.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4d-3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbc312d-27f7-4ee9-84da-f990803e70ee_1024x233.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5fbc312d-27f7-4ee9-84da-f990803e70ee_1024x233.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A Code Yellow sets the team&#8217;s mindset to perform excellent work and solve a problem.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A Code Yellow sets the team&#8217;s mindset to perform excellent work and solve a problem." title="A Code Yellow sets the team&#8217;s mindset to perform excellent work and solve a problem." srcset="https://substackcdn.com/image/fetch/$s_!4d-3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbc312d-27f7-4ee9-84da-f990803e70ee_1024x233.png 424w, https://substackcdn.com/image/fetch/$s_!4d-3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbc312d-27f7-4ee9-84da-f990803e70ee_1024x233.png 848w, https://substackcdn.com/image/fetch/$s_!4d-3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbc312d-27f7-4ee9-84da-f990803e70ee_1024x233.png 1272w, https://substackcdn.com/image/fetch/$s_!4d-3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbc312d-27f7-4ee9-84da-f990803e70ee_1024x233.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>In response to such critical situations, a Code Yellow assembles a strong team for a few weeks with the mindset of performing intense and excellent work to solve a critical problem. This addresses the immediate issue and sets a precedent within the organization for handling crises efficiently, serving as a live case study in teamwork and decision-making.</p><h3>Declaring a Code&nbsp;Yellow</h3><p>Understanding what a Code Yellow entails is crucial for recognizing when such a measure is necessary and fitting. Deciding to initiate a Code Yellow (CY for short) is a strategic choice, not made lightly. The tool will only remain effective if used consistently well over time. Declare too many CYs; teams will see them as pompous names for interruptions and work half-heartedly. Declare too complex or ambiguous CYs; they will take too long, teams get tired, and cynicism about their effectiveness creeps&nbsp;up.</p><p>Here are some of the legitimate reasons for which I have declared Code Yellows&nbsp;before:</p><ul><li><p>A critical Enterprise client was about to churn while resources and plans were completely misaligned with what mattered to avoid the loss. For the attentive reader, the anecdote from the beginning of the article is a true story. As a result of the CY, we developed a trusted advisor relationship with the client, founded a new Sales Engineering department, and translated several of the requested changes into significant improvements for the client&nbsp;base.</p></li><li><p>Launching a new service that should solve critical production issues was bound to be delayed on its third quarterly OKR rollover. As a result of the CY, we brought together a senior advising team to make quality and robustness evaluations of the new technology more pragmatic, negotiated more resources to speed up quality evaluations by operators, and resolved newly discovered issues quickly to roll out the new technology to&nbsp;clients.</p></li><li><p>The company's quality of service was deteriorating in what seemed to be a death by a thousand cuts, and there was no clarity on how to reverse the trend swiftly. As a result of the CY, we made adjustments to the quality metric to contemplate a new class of failures, established new routines with the operations team, and prioritized issues to recover quality standards for most clients, identifying a new class of issues that were of shared responsibility with a few&nbsp;clients.</p></li></ul><p>These diverse situations, though challenging, were turned around by implementing focused interventions, demonstrating the potential effectiveness of the Code Yellow approach.</p><p>Drawing from these experiences, consider declaring a Code Yellow only&nbsp;when:</p><ul><li><p>The cost of not declaring it is high (clients are churning, high-performers are leaving, or essential business goals are threatened).</p></li><li><p>The leadership team will support and sponsor the work throughout the organization (e.g., internal communications, performance evaluation cycles, and protecting the team's&nbsp;focus).</p></li><li><p>The company hasn't gotten addicted to frequent Code&nbsp;Yellows.</p></li><li><p>The scope is feasible within a few weeks of&nbsp;work.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TdB8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b146e57-928b-4f37-99d9-3c124127f6e7_1024x215.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TdB8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b146e57-928b-4f37-99d9-3c124127f6e7_1024x215.png 424w, https://substackcdn.com/image/fetch/$s_!TdB8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b146e57-928b-4f37-99d9-3c124127f6e7_1024x215.png 848w, https://substackcdn.com/image/fetch/$s_!TdB8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b146e57-928b-4f37-99d9-3c124127f6e7_1024x215.png 1272w, https://substackcdn.com/image/fetch/$s_!TdB8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b146e57-928b-4f37-99d9-3c124127f6e7_1024x215.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TdB8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b146e57-928b-4f37-99d9-3c124127f6e7_1024x215.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b146e57-928b-4f37-99d9-3c124127f6e7_1024x215.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Code Yellow goals should be practical and feasible!&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Code Yellow goals should be practical and feasible!" title="Code Yellow goals should be practical and feasible!" srcset="https://substackcdn.com/image/fetch/$s_!TdB8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b146e57-928b-4f37-99d9-3c124127f6e7_1024x215.png 424w, https://substackcdn.com/image/fetch/$s_!TdB8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b146e57-928b-4f37-99d9-3c124127f6e7_1024x215.png 848w, https://substackcdn.com/image/fetch/$s_!TdB8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b146e57-928b-4f37-99d9-3c124127f6e7_1024x215.png 1272w, https://substackcdn.com/image/fetch/$s_!TdB8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b146e57-928b-4f37-99d9-3c124127f6e7_1024x215.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>An example of when it was inappropriate to use a Code Yellow was one instance at a previous company when an aspect of the B2C strategy was not progressing well, and senior leadership decided to declare a Code Yellow with the goal of "launching something.&#8221; In addition to the very ambiguous exit criteria, given that this was a new value that demanded significant exploration, there were several organizational-level reasons for which progress was questionable, including strong misalignment at the leadership level of what the goals were, shared ownership and redundant bets. While this situation was important to address, a more fitting approach was in the senior management sphere. In this situation, the Code Yellow intensified the confusion and dragged on for a long time without a clear&nbsp;target.</p><h4>Code Yellow&nbsp;leader</h4><p>A Code Yellow needs a leader, ideally one or two levels more senior than it would take to solve the problem. The leader should align sponsorship with the broader senior leadership and own the CY end-to-end. The CY leader's first responsibilities are to define the scope and the initial team and declare the CY across the organization.</p><p>Due to the intense coordination and communication demands, the leader is typically someone from the context's senior product management leadership. Still, sometimes, it can be the engineering management leader when the scope requires less cross-organizational coordination.</p><h4>Code Yellow's&nbsp;scope</h4><p>The leader should assemble a senior team to discuss the CY scope and communicate it as a set of exit conditions. The team will remain in CY mode until all exit conditions are&nbsp;met.</p><p>The exit conditions must be feasible, clearly measurable/observable, and focused on the root causes that triggered the CY. Only include critical goals and nothing too ambiguous. The aim is for the exit conditions to be met in at most five weeks, ideally less than 3. It's hard to keep the intense dynamics for longer. Even though it's essential to be mindful of the CY's duration, avoid promising a deadline. Work with the team to make fast and robust progress and even set milestone dates internally from a project management perspective, but keep hard dates within the&nbsp;CY.</p><p>A set of exit conditions could look like&nbsp;this:</p><blockquote><p><strong>*</strong><em> Migrate 70% of all transactions from service A to&nbsp;B.</em></p></blockquote><blockquote><p><strong>*</strong><em> Set up alarms and on-call rotation to speed up recovery. Run a complete smoke test with at most five minutes of downtime.</em></p></blockquote><blockquote><p><strong>*</strong><em> Cover root causes from the last three incidents with system-level integration tests.</em></p></blockquote><p>It's prudent to underpromise on the exit conditions to increase the chances of guaranteeing structural progress while avoiding getting the team stuck at a high bar of expectations during a first iteration. The focus should be on the structural progress and solving the root cause rather than elevating the standards of the current solutions.</p><h4>Code Yellow's initial&nbsp;team</h4><p>It's part of the practice that the leader can invite anyone in the company to help with the CY, so it's ideal to keep the initial team small and senior to move fast over robust foundations.</p><p>Since the CY leader oversees communication and represents the senior leadership sponsorship, technical experts and solid individual contributors can fill the remaining team. Evaluating and recruiting people who haven't been in too many CYs or could see it as an exciting career opportunity is a nice&nbsp;touch.</p><h4>Code Yellow's declaration</h4><p>Communication around a CY should be excellent, starting from its declaration. Everyone in the organization should know there is a new CY, the reasons for declaring it, and who its leader is. Hence, it's a good idea to communicate in multiple formats and channels: Slack, email, and company-wide videoconference are the most&nbsp;common.</p><p>A CY is a corporate ritual; just like all other corporate world rituals, it can develop cynicism. The quality and discipline of the communication around it are essential traits that help validate that the organization means it, is vested in it and wants to see it through. Getting the senior leadership involved is also good practice, and the declaration of the CY is an excellent opportunity for VPs and the C-level to weigh in on their sponsorship. If no one from the C-/VP level is the CY leader, have one communicate the declaration.</p><p>The declaration should include the CY's name, the motivation for declaring it, the exit conditions, and the leader's name. It should be objective and transparent, reminding people the leader might summon anyone to help. It's a nice touch to wish the CY team good luck and thank everyone in advance for their&nbsp;support.</p><h3>Executing a Code&nbsp;Yellow</h3><p>The weeks in a CY should feel like the most productive weeks of the year. The team should work intensively but within a reasonable setup and not cross the lines of work-life balance with extra hours. The work in a CY should be like the one we all wish to perform all year but understand it's virtually impossible to sustain for such a long time. It draws from peak motivation.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QM8n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F392ff229-1f11-4c25-ae0d-70ddab1ef01d_1024x241.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QM8n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F392ff229-1f11-4c25-ae0d-70ddab1ef01d_1024x241.png 424w, https://substackcdn.com/image/fetch/$s_!QM8n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F392ff229-1f11-4c25-ae0d-70ddab1ef01d_1024x241.png 848w, https://substackcdn.com/image/fetch/$s_!QM8n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F392ff229-1f11-4c25-ae0d-70ddab1ef01d_1024x241.png 1272w, https://substackcdn.com/image/fetch/$s_!QM8n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F392ff229-1f11-4c25-ae0d-70ddab1ef01d_1024x241.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QM8n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F392ff229-1f11-4c25-ae0d-70ddab1ef01d_1024x241.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/392ff229-1f11-4c25-ae0d-70ddab1ef01d_1024x241.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The Code Yellow team is on an excellence sprint.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Code Yellow team is on an excellence sprint." title="The Code Yellow team is on an excellence sprint." srcset="https://substackcdn.com/image/fetch/$s_!QM8n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F392ff229-1f11-4c25-ae0d-70ddab1ef01d_1024x241.png 424w, https://substackcdn.com/image/fetch/$s_!QM8n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F392ff229-1f11-4c25-ae0d-70ddab1ef01d_1024x241.png 848w, https://substackcdn.com/image/fetch/$s_!QM8n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F392ff229-1f11-4c25-ae0d-70ddab1ef01d_1024x241.png 1272w, https://substackcdn.com/image/fetch/$s_!QM8n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F392ff229-1f11-4c25-ae0d-70ddab1ef01d_1024x241.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>CY team members should work only on the CY tasks. The definitive prioritization helps with focus and pace. It also contributes to communicating the costs of running CYs and avoiding addiction: several other tasks are interrupted in favor of the&nbsp;CY.</p><p>Three coordination components are essential for a good CY execution: team syncs, stakeholder syncs, and Code Yellow&nbsp;updates.</p><h4>Team syncs</h4><p>The team should meet briefly most days each week to discuss progress and challenges and explicitly align each member's next&nbsp;steps.</p><p>The CY leader should decide when the regular syncs happen. The frequency can vary over time depending on the work and the need for coordination. Sometimes, teams find it helpful to meet at the beginning of the day and a second touchpoint in mid-afternoon.</p><p>At each sync, most team members should report their progress and blockers. The leader can summon other people from the organization to help remove such blockers if necessary. The leader should also feel comfortable dismissing team members who are done with their contributions. This practice helps keep the team agile and laser-focused.</p><p>The team should produce notes from every sync containing explicit action items for each member involved. This list of action items can guide the discussions for the following sync.</p><h4>Stakeholder syncs</h4><p>Since the CY is communicated widely and typically addresses a prominent problem, many organization members might want to be involved. It's good practice for the CY leader to hold a separate meeting, which happens less often, to inform whoever wants to join and help address tangent concerns, which may include communication with external clients, legal considerations, questions, and general suggestions.</p><p>Holding stakeholder syncs is an excellent way to keep the sales and support teams involved without drawing from the focused execution of the CY&nbsp;team.</p><h4>Code Yellow&nbsp;updates</h4><p>The leader is responsible for keeping the organization well informed of the progress, especially regarding the exit conditions. It's a good practice to set a particular time of the day to share updates and keep the content objective and focused on each exit condition.</p><p>The clocklike regularity and discipline of communication can be a great motivator for keeping the team moving quickly. The update should state this even if the leader has nothing new to&nbsp;share.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DScq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a8cd02-e4d7-4079-9e97-d10a81f195ac_1024x233.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DScq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a8cd02-e4d7-4079-9e97-d10a81f195ac_1024x233.png 424w, https://substackcdn.com/image/fetch/$s_!DScq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a8cd02-e4d7-4079-9e97-d10a81f195ac_1024x233.png 848w, https://substackcdn.com/image/fetch/$s_!DScq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a8cd02-e4d7-4079-9e97-d10a81f195ac_1024x233.png 1272w, https://substackcdn.com/image/fetch/$s_!DScq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a8cd02-e4d7-4079-9e97-d10a81f195ac_1024x233.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DScq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a8cd02-e4d7-4079-9e97-d10a81f195ac_1024x233.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94a8cd02-e4d7-4079-9e97-d10a81f195ac_1024x233.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The high quality and discipline of a Code Yellow&#8217;s communication is what sets the bar for highest performance.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The high quality and discipline of a Code Yellow&#8217;s communication is what sets the bar for highest performance." title="The high quality and discipline of a Code Yellow&#8217;s communication is what sets the bar for highest performance." srcset="https://substackcdn.com/image/fetch/$s_!DScq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a8cd02-e4d7-4079-9e97-d10a81f195ac_1024x233.png 424w, https://substackcdn.com/image/fetch/$s_!DScq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a8cd02-e4d7-4079-9e97-d10a81f195ac_1024x233.png 848w, https://substackcdn.com/image/fetch/$s_!DScq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a8cd02-e4d7-4079-9e97-d10a81f195ac_1024x233.png 1272w, https://substackcdn.com/image/fetch/$s_!DScq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94a8cd02-e4d7-4079-9e97-d10a81f195ac_1024x233.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>It is helpful to post regular communication in a public Slack channel and to an email group that anyone can subscribe to. The leader should auto-subscribe the senior leadership and primary stakeholders to receive the&nbsp;updates.</p><h3>Wrapping it&nbsp;up</h3><p>A successful CY means more than the team meeting the exit criteria. It's a testament to the company's resilience and capability to course-correct or adapt to unexpected challenges.</p><p>It's essential that the leader be mindful of what CYs represent and care for a firm closure as if they are relaying the baton to the leader of the following CY that might come ahead. Impacts should be made clear, or risk a lack of sponsorship from senior leadership the next time the company would benefit from a CY. Individuals should be widely recognized or risk half-hearted engagement from the following team&nbsp;members.</p><p>As the CY ends, it's essential that the leader dedicate energy to a comprehensive analysis of the impacts and visual presentations. This will validate all the team's efforts and reinforce the value of such initiatives for the entire organization.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2kK_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48c9c857-cf1d-4f52-9997-c624b5987cfd_1024x196.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2kK_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48c9c857-cf1d-4f52-9997-c624b5987cfd_1024x196.png 424w, https://substackcdn.com/image/fetch/$s_!2kK_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48c9c857-cf1d-4f52-9997-c624b5987cfd_1024x196.png 848w, https://substackcdn.com/image/fetch/$s_!2kK_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48c9c857-cf1d-4f52-9997-c624b5987cfd_1024x196.png 1272w, https://substackcdn.com/image/fetch/$s_!2kK_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48c9c857-cf1d-4f52-9997-c624b5987cfd_1024x196.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2kK_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48c9c857-cf1d-4f52-9997-c624b5987cfd_1024x196.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48c9c857-cf1d-4f52-9997-c624b5987cfd_1024x196.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A well-defined and executed Code Yellow is a powerful uplift for change.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A well-defined and executed Code Yellow is a powerful uplift for change." title="A well-defined and executed Code Yellow is a powerful uplift for change." srcset="https://substackcdn.com/image/fetch/$s_!2kK_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48c9c857-cf1d-4f52-9997-c624b5987cfd_1024x196.png 424w, https://substackcdn.com/image/fetch/$s_!2kK_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48c9c857-cf1d-4f52-9997-c624b5987cfd_1024x196.png 848w, https://substackcdn.com/image/fetch/$s_!2kK_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48c9c857-cf1d-4f52-9997-c624b5987cfd_1024x196.png 1272w, https://substackcdn.com/image/fetch/$s_!2kK_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48c9c857-cf1d-4f52-9997-c624b5987cfd_1024x196.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The communication about the CY's conclusion should echo its declaration: use the same concepts and channels and involve senior leadership, who are crucial in highlighting the CY's success to a broader audience and celebrating the achievements.</p><p>The careful impact analysis and presentations become valuable assets for team members to demonstrate their contributions in the following performance evaluations. This content is a strategic resource since the CY will probably be the main undertaking of the performance cycle for the team members who deserve recognition.</p><p>Lastly, gather the team and primary stakeholders to celebrate the results and consolidate the CY as an opportunity for team bonding and trust-building.</p><p>As we bring a Code Yellow to a close, the focus shifts from immediate resolution to long-term impact. Successfully concluding a CY unfolds the opportunity to integrate the lessons learned and the momentum gained into ongoing organizational practices.</p><p>Successful Code Yellows set a precedent for how challenges are addressed, turning what could be a disruptive interruption into a demonstration of proactive problem-solving and excellence. Code Yellows can turn pressing challenges into opportunities for the business and team&nbsp;members.</p><div><hr></div><p><a href="https://desirabledifficulty.blog/making-interruptions-worth-it-d5593caebbee">Making interruptions worth it</a> was originally published in <a href="https://desirabledifficulty.blog">Desirable Difficulty</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded></item><item><title><![CDATA[Shaping the c̶u̶r̶v̶e culture]]></title><description><![CDATA[Designing KPIs to foster deep dive work]]></description><link>https://www.desirable-difficulty.com/p/shaping-the-curve-culture-7a486451ab4b</link><guid isPermaLink="false">https://www.desirable-difficulty.com/p/shaping-the-curve-culture-7a486451ab4b</guid><dc:creator><![CDATA[Diego Nogueira]]></dc:creator><pubDate>Thu, 15 Feb 2024 19:16:59 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e65ebcc0-c07f-404e-a17d-5c4b3c6a3462_1024x744.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Teams consistently discussing their problem space in depth over long periods tend to achieve robust, long-lasting products and excellence. This work behavior is sought after by leaders and referred to as a <em>deep</em> <em>dive</em> culture. There is much good content on how to develop such a cultural&nbsp;trait.</p><p>The <a href="https://www.amazon.com/Working-Backwards-Insights-Stories-Secrets/dp/1250267595">Working Backwards book</a>, by two ex-Amazon executives, made waves as it illustrated how Amazon built a deep dive culture using metrics, review processes, and communication schemas. The book coined some valuable concepts for the business world, such as <em>input metrics </em>(controllable metrics that can be directly associated with actions) and <em>output metrics </em>(higher abstraction metrics that represent results or outcomes for the business)<em>. </em>The book makes a clear case for how working with input metrics is better and discusses how to navigate selecting the proper input metrics to work&nbsp;with.</p><p>A fascinating insight is that you can design input metrics to make the deep dive culture easier to&nbsp;attain.</p><h4>A paradigm shift: opportunity-oriented metrics</h4><p>Metrics (input or output) often compute accomplishments and communicate a level of success achieved by the organization. Most well-known metrics (let's call them <em>motivational metrics</em>) follow this pattern: monthly active users, conversion rate, monthly recurring revenue, and page views are some examples.</p><p>As teams work and communicate using motivational metrics, there are layers of indirection between their analytical work and the information about where the opportunities for improvement lie. Fundamentally, when you decompose motivational metrics to their units (when you list their computed instances), you see examples of solved problems.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RDcY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0dc2e22-85e9-4242-a5c2-ebd7120f1787_1024x744.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RDcY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0dc2e22-85e9-4242-a5c2-ebd7120f1787_1024x744.png 424w, https://substackcdn.com/image/fetch/$s_!RDcY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0dc2e22-85e9-4242-a5c2-ebd7120f1787_1024x744.png 848w, https://substackcdn.com/image/fetch/$s_!RDcY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0dc2e22-85e9-4242-a5c2-ebd7120f1787_1024x744.png 1272w, https://substackcdn.com/image/fetch/$s_!RDcY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0dc2e22-85e9-4242-a5c2-ebd7120f1787_1024x744.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RDcY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0dc2e22-85e9-4242-a5c2-ebd7120f1787_1024x744.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0dc2e22-85e9-4242-a5c2-ebd7120f1787_1024x744.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A hand-drawn chart with success rate on the Y axis and months on the X axis and a text that says: &#8220;Counting successes hides opportunities and repels scrutiny&#8221;.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A hand-drawn chart with success rate on the Y axis and months on the X axis and a text that says: &#8220;Counting successes hides opportunities and repels scrutiny&#8221;." title="A hand-drawn chart with success rate on the Y axis and months on the X axis and a text that says: &#8220;Counting successes hides opportunities and repels scrutiny&#8221;." srcset="https://substackcdn.com/image/fetch/$s_!RDcY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0dc2e22-85e9-4242-a5c2-ebd7120f1787_1024x744.png 424w, https://substackcdn.com/image/fetch/$s_!RDcY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0dc2e22-85e9-4242-a5c2-ebd7120f1787_1024x744.png 848w, https://substackcdn.com/image/fetch/$s_!RDcY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0dc2e22-85e9-4242-a5c2-ebd7120f1787_1024x744.png 1272w, https://substackcdn.com/image/fetch/$s_!RDcY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0dc2e22-85e9-4242-a5c2-ebd7120f1787_1024x744.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">A chart that counts successes has nothing to say about remaining opportunities.</figcaption></figure></div><p>One of the most striking traits of a deep dive culture is that teams scrutinize problems to their root cause and often pick a few concrete examples of opportunities as favorites to expose in discussions or test solutions. You facilitate deep dive work when you design metrics to compute opportunities or unsolved problems (let's call them <em>opportunity-oriented metrics</em>). Abandoned carts, funnel drop rate, and recurring revenue churn are famous metrics computed that&nbsp;way.</p><h3><strong>Designing metrics for a deep-dive culture</strong></h3><p>So, what happens when you take opportunities as&nbsp;input?</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cPfS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb51dc33-9191-4d21-ac14-6082351287da_1024x777.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cPfS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb51dc33-9191-4d21-ac14-6082351287da_1024x777.png 424w, https://substackcdn.com/image/fetch/$s_!cPfS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb51dc33-9191-4d21-ac14-6082351287da_1024x777.png 848w, https://substackcdn.com/image/fetch/$s_!cPfS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb51dc33-9191-4d21-ac14-6082351287da_1024x777.png 1272w, https://substackcdn.com/image/fetch/$s_!cPfS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb51dc33-9191-4d21-ac14-6082351287da_1024x777.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cPfS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb51dc33-9191-4d21-ac14-6082351287da_1024x777.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb51dc33-9191-4d21-ac14-6082351287da_1024x777.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A hand-drawn chart with failure rate on the Y axis and months on the X axis. Opportunities are divided into 3 different categories. There&#8217;s a text that says: &#8220;Counting opportunities allows for directive communication and invites for a deep dive&#8221;.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A hand-drawn chart with failure rate on the Y axis and months on the X axis. Opportunities are divided into 3 different categories. There&#8217;s a text that says: &#8220;Counting opportunities allows for directive communication and invites for a deep dive&#8221;." title="A hand-drawn chart with failure rate on the Y axis and months on the X axis. Opportunities are divided into 3 different categories. There&#8217;s a text that says: &#8220;Counting opportunities allows for directive communication and invites for a deep dive&#8221;." srcset="https://substackcdn.com/image/fetch/$s_!cPfS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb51dc33-9191-4d21-ac14-6082351287da_1024x777.png 424w, https://substackcdn.com/image/fetch/$s_!cPfS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb51dc33-9191-4d21-ac14-6082351287da_1024x777.png 848w, https://substackcdn.com/image/fetch/$s_!cPfS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb51dc33-9191-4d21-ac14-6082351287da_1024x777.png 1272w, https://substackcdn.com/image/fetch/$s_!cPfS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb51dc33-9191-4d21-ac14-6082351287da_1024x777.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">A chart with opportunity-oriented information can be directive on its&nbsp;own.</figcaption></figure></div><h4>Clear definition of which opportunities are&nbsp;relevant</h4><p>Priorities are a vital component of any good corporate strategy and communication. Only a fraction of opportunities for a well-run organization deserve attention at any given&nbsp;moment.</p><p>Depending on the corporate focus, some non-successful events could be out of scope and better left aside. When a metric computes unsolved problems instead of accomplishments, its definition communicates what should be considered a meaningful opportunity for the organization.</p><p>For example, assume a parcel delivery company's focus is to decrease delayed deliveries. Computing all failed delivery attempts would include attempts that failed before the promised date (and therefore did not impact delayed deliveries, the focus). The company could take only failed delivery attempts at the promised date or later as input, thus declaring that early delivery attempts are out of&nbsp;scope.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!91dQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d6e6be-2a7b-41b0-b54f-9bbb69e5bcaf_1024x283.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!91dQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d6e6be-2a7b-41b0-b54f-9bbb69e5bcaf_1024x283.png 424w, https://substackcdn.com/image/fetch/$s_!91dQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d6e6be-2a7b-41b0-b54f-9bbb69e5bcaf_1024x283.png 848w, https://substackcdn.com/image/fetch/$s_!91dQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d6e6be-2a7b-41b0-b54f-9bbb69e5bcaf_1024x283.png 1272w, https://substackcdn.com/image/fetch/$s_!91dQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d6e6be-2a7b-41b0-b54f-9bbb69e5bcaf_1024x283.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!91dQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d6e6be-2a7b-41b0-b54f-9bbb69e5bcaf_1024x283.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4d6e6be-2a7b-41b0-b54f-9bbb69e5bcaf_1024x283.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Defining which unsolved problems are relevant is a critical decision, with high payoffs and high error cost.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Defining which unsolved problems are relevant is a critical decision, with high payoffs and high error cost." title="Defining which unsolved problems are relevant is a critical decision, with high payoffs and high error cost." srcset="https://substackcdn.com/image/fetch/$s_!91dQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d6e6be-2a7b-41b0-b54f-9bbb69e5bcaf_1024x283.png 424w, https://substackcdn.com/image/fetch/$s_!91dQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d6e6be-2a7b-41b0-b54f-9bbb69e5bcaf_1024x283.png 848w, https://substackcdn.com/image/fetch/$s_!91dQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d6e6be-2a7b-41b0-b54f-9bbb69e5bcaf_1024x283.png 1272w, https://substackcdn.com/image/fetch/$s_!91dQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d6e6be-2a7b-41b0-b54f-9bbb69e5bcaf_1024x283.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>An important caveat is that computing unsolved problems defines the problems or dimensions that matter. It is a critical decision, often influencing the direction of an organization more than the product itself. And as with any other product decision, it may be incorrect. If the most impactful solution is in a cross-dimension, you may become utterly blind to it. The authors of Working Backwards refer to this as the tricky trial and error part. Incorporating a process that regularly takes a step back to explore the unfiltered set of non-successful events is&nbsp;prudent.</p><h4>Concrete opportunity examples are easier to&nbsp;access</h4><p>In a deep-dive culture, it's critical to have zero friction in accessing opportunities to scrutinize. A fresh list of relevant opportunity instances should be trivial to access by everyone. <strong>This tip is the most important insight of the&nbsp;article.</strong></p><p>Let's take the space of online user acquisition funnels as an example. The typical motivational metric would be <em>conversion rate</em>: a count of user sessions that reached the bottom of the funnel in proportion to all user sessions. The computed units would be successful user sessions.</p><p>While drawing insights from successful user sessions is a viable approach, keeping the teams focused on examples of abandoned user sessions would likely produce a more impacting roadmap over&nbsp;time.</p><p>The opportunity-oriented version of the conversion rate could be the share of abandoned sessions among the subset of the market the organization could be focused on at the time&#8202;&#8212;&#8202;like the share of abandoned sessions for English native speakers between 21 and 30 years old. The computed units would be examples of users the funnel failed to convert, ready for analysis.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FvOF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e96086-6829-45de-9bdc-1464230b6ed5_1024x254.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FvOF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e96086-6829-45de-9bdc-1464230b6ed5_1024x254.png 424w, https://substackcdn.com/image/fetch/$s_!FvOF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e96086-6829-45de-9bdc-1464230b6ed5_1024x254.png 848w, https://substackcdn.com/image/fetch/$s_!FvOF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e96086-6829-45de-9bdc-1464230b6ed5_1024x254.png 1272w, https://substackcdn.com/image/fetch/$s_!FvOF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e96086-6829-45de-9bdc-1464230b6ed5_1024x254.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FvOF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e96086-6829-45de-9bdc-1464230b6ed5_1024x254.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3e96086-6829-45de-9bdc-1464230b6ed5_1024x254.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Have a fresh list of relevant opportunity examples readily available for everyone all the time.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Have a fresh list of relevant opportunity examples readily available for everyone all the time." title="Have a fresh list of relevant opportunity examples readily available for everyone all the time." srcset="https://substackcdn.com/image/fetch/$s_!FvOF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e96086-6829-45de-9bdc-1464230b6ed5_1024x254.png 424w, https://substackcdn.com/image/fetch/$s_!FvOF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e96086-6829-45de-9bdc-1464230b6ed5_1024x254.png 848w, https://substackcdn.com/image/fetch/$s_!FvOF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e96086-6829-45de-9bdc-1464230b6ed5_1024x254.png 1272w, https://substackcdn.com/image/fetch/$s_!FvOF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e96086-6829-45de-9bdc-1464230b6ed5_1024x254.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>It could be as simple as a dashboard tool that exports a spreadsheet file with the computed instances.</p><h4>Communicating categories of opportunities</h4><p>When counting instances of unsolved problems, you'll have a chance to classify them. Moreover, it's possible to implement simple classification rules to group instances in valuable&nbsp;ways.</p><p>For example, in the context of user engagement (think Monthly Inactive Users), one could group users based on how long ago their last interaction was or group them by the feature they use more frequently or by user acquisition channel. The organization could communicate the same metric in charts with different classification criteria for a broader perspective.</p><p>The obvious benefit from communicating opportunities grouped in categories is that <strong>the most impactful classes of opportunities to address become public upfront information</strong> instead of the result of an eventual analysis. As a result, teams will have a clearer perspective about where the highest potential yields&nbsp;lie.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IFRy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1e4fa0-8274-4090-a661-9976e3ac86fb_1024x293.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IFRy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1e4fa0-8274-4090-a661-9976e3ac86fb_1024x293.png 424w, https://substackcdn.com/image/fetch/$s_!IFRy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1e4fa0-8274-4090-a661-9976e3ac86fb_1024x293.png 848w, https://substackcdn.com/image/fetch/$s_!IFRy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1e4fa0-8274-4090-a661-9976e3ac86fb_1024x293.png 1272w, https://substackcdn.com/image/fetch/$s_!IFRy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1e4fa0-8274-4090-a661-9976e3ac86fb_1024x293.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IFRy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1e4fa0-8274-4090-a661-9976e3ac86fb_1024x293.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a1e4fa0-8274-4090-a661-9976e3ac86fb_1024x293.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#8220;These are the most important problems you should focus on to improve&#8221;&#8202;&#8212;&#8202;said a useful chart.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#8220;These are the most important problems you should focus on to improve&#8221;&#8202;&#8212;&#8202;said a useful chart." title="&#8220;These are the most important problems you should focus on to improve&#8221;&#8202;&#8212;&#8202;said a useful chart." srcset="https://substackcdn.com/image/fetch/$s_!IFRy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1e4fa0-8274-4090-a661-9976e3ac86fb_1024x293.png 424w, https://substackcdn.com/image/fetch/$s_!IFRy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1e4fa0-8274-4090-a661-9976e3ac86fb_1024x293.png 848w, https://substackcdn.com/image/fetch/$s_!IFRy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1e4fa0-8274-4090-a661-9976e3ac86fb_1024x293.png 1272w, https://substackcdn.com/image/fetch/$s_!IFRy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1e4fa0-8274-4090-a661-9976e3ac86fb_1024x293.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>A not-so-obvious insight is that naming the categories in specific ways can drive more engagement and promote a general sense of ownership. Considering the organization structure and gearing the names of the categories of opportunities towards the scope of specific teams help them focus and feel responsible.</p><p>For example, suppose the subject is a chain of processes, with teams organized into groups responsible for each chain step. In that case, one can name categories about the first step where the failure was identified (such as "Delayed at the cross-docking facility").</p><h4>Dashboards quickly evolve into diagnostic tools</h4><p>Once there has been an investment into defining the relevant problems to tackle and implementing simple rules to group failure instances into categories, the core components of a diagnostic tool are ready.<br>Besides applying these rules for consolidating information for charts and KPIs communication, it could be possible to reuse the definitions in internal tools for debugging or customer success operations, democratizing the ability to diagnose failure instances within the organization.</p><h4>Bonus: define a unit that can evolve with the&nbsp;company</h4><p>As mentioned earlier, determining what the metric considers relevant events is a powerful way to focus the organization. <strong>As the problem space evolves, the organization's focus will change.</strong> There may have been good progress in the previous direction, and it will want to tap into a different class of opportunities, or it may have found a solid product-market fit and want to go deeper into one of many classes of opportunities considered earlier.</p><p>Much effort goes into communicating a new KPI if you're doing it right. And if it sticks, references and dependencies will unfold throughout the organization.</p><p>Consider naming the input instances as units (they will likely end up sharing the name of the KPI). When you name a unit, you can evolve its definition over time without compromising its ecosystem and communication framework. But, of course, backward compatibility would be compromised.</p><p>For example, assume a sales organization is looking for ways to improve the last step of the sales funnel for its core revenue stream. It defines a KPI for missed sales opportunities while leaving out developing revenue streams that still need development.</p><p>Fast forward a year, and now one of the developing revenue streams has matured and deserves just as much exposure and focus. Having two separate KPIs might not be ideal, as one would need to communicate heavily to introduce the new KPI and then wait for the ecosystem to catch up while the first KPI continues to get all the attention.</p><p>If, at the first moment, the organization named the opportunity instances as Near Miss Sales (NMS for short), the newer and expanded focus at the second moment could tag along with all that was built around NMS. The organization could then communicate an update on the direction and that the KPI now reflects this new scenario.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f6Xp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80b199-48c5-4ff4-8c38-9c938932ae9e_885x249.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f6Xp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80b199-48c5-4ff4-8c38-9c938932ae9e_885x249.png 424w, https://substackcdn.com/image/fetch/$s_!f6Xp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80b199-48c5-4ff4-8c38-9c938932ae9e_885x249.png 848w, https://substackcdn.com/image/fetch/$s_!f6Xp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80b199-48c5-4ff4-8c38-9c938932ae9e_885x249.png 1272w, https://substackcdn.com/image/fetch/$s_!f6Xp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80b199-48c5-4ff4-8c38-9c938932ae9e_885x249.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f6Xp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80b199-48c5-4ff4-8c38-9c938932ae9e_885x249.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c80b199-48c5-4ff4-8c38-9c938932ae9e_885x249.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A more personal note&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A more personal note" title="A more personal note" srcset="https://substackcdn.com/image/fetch/$s_!f6Xp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80b199-48c5-4ff4-8c38-9c938932ae9e_885x249.png 424w, https://substackcdn.com/image/fetch/$s_!f6Xp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80b199-48c5-4ff4-8c38-9c938932ae9e_885x249.png 848w, https://substackcdn.com/image/fetch/$s_!f6Xp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80b199-48c5-4ff4-8c38-9c938932ae9e_885x249.png 1272w, https://substackcdn.com/image/fetch/$s_!f6Xp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80b199-48c5-4ff4-8c38-9c938932ae9e_885x249.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><a href="https://www.loggi.com/">Loggi</a>, a tech startup for express parcel delivery, was growing very quickly, and its operations were starting to feel the burden of hypergrowth from a quality of service perspective. Logistics processes are arduous to mature when growing at +3x&nbsp;YoY.</p><p>Our only quality metric was SLA, typically used for external client communication. Due to its contractual binding nature, SLA pivots on delivery attempts, not <a href="https://partiu.loggi.com/loggis-operations-product-development-principles-66aac9807e89">consummated deliveries</a>. For example, contracts stated that 98% of all parcels collected from a client had to have a delivery attempt happen at least once until their promised&nbsp;date.</p><p>Loggi chartered <a href="https://medium.com/u/f03efec2f15a">Pedro Passarelli</a>, <a href="https://medium.com/u/6151af47881c">Lucas P. C. Branco</a>, and I with leading the work on quality improvement. Initially, leadership expected us to work on a diagnostic so that teams could prioritize specific improvement opportunities.</p><p>As we looked at examples of delayed parcel deliveries, <strong>we understood that this was a rich exercise and that we should look for ways to enable everyone in the company to do it routinely</strong>. It also struck us that we were not dealing with atypical problems and that there were probably standard metrics to support us. So we decided to study (check out a <a href="https://desirabledifficulty.blog/the-practice-of-studying-about-a-problem-at-work-31e910003af5">previous article</a> about studying at work) and found an excellent<a href="https://sheffi.mit.edu/sites/sheffi.mit.edu/files/2018-07/15_09574099410805171.pdf"> 1994 MIT paper</a> about logistics metrics. We gathered a few compelling concepts from this&nbsp;study:</p><ul><li><p><em>Behavioral soundness</em> discusses that metrics shape how the organization thinks and behaves and must be thought out and communicated to incentivize the expected behavior. As we went through examples of non-delivered parcels, we could detect some ineffective operations driven by the delivery attempt based on SLA KPI. Over time, people tend to play a game against their target&nbsp;metric.</p></li><li><p>Internally focused diagnostic metrics. This was a critical confirmation in favor of our feeling that SLA was not a useful KPI to drive an increase in quality of service as it was too conservative and targeted to an external audience. The idea of defining acceptable standards to describe perfect deliveries was under discussion, but the fact that non-adherence to standards could seamlessly become diagnostic information was a breakthrough.</p></li><li><p>Metric scale can affect behavior, and percentages are inadequate for excellence expectations when 0.1% matters to the business.</p></li></ul><p>Contrary to what I expected when going after literature on the topic, I concluded that we needed to define our internally focused diagnostic metric to promote the company's desired quality of service&nbsp;culture.</p><h4>Defining acceptable standards</h4><p>We described our perfect deliveries and concluded that the parcels were delivered on time and at the first delivery attempt. So, we looked at examples of packages that did not match a perfect delivery, and they all described relevant improvement opportunities. We were thrilled.</p><p>Next, we tried to define our acceptable standards at a higher resolution, thinking of rules such&nbsp;as:</p><ul><li><p>The time of day a parcel should have left a delivery station for last-mile delivery to be considered on&nbsp;time.</p></li><li><p>The time of day a parcel should have left the cross-docking facility towards the delivery station to be considered on&nbsp;time.</p></li><li><p>The various reasons why delivery attempts failed on the last&nbsp;mile.</p></li></ul><p>Some rules ended up being approximations due to the lack of intermediate data. Establishing the rules as priors to the following phases and grouping examples by the first standard non-adherence along the chain started to surface examples grouped by classes of operational errors. Finally, we seemed to be onto something.</p><h4>Communicating a diagnostic</h4><p>We understood that naming the non-adherence groups in a directive and somewhat judgemental way mattered as it would call for ownership and action. It took us many iterations to get it the way we wanted. For the groups before the last mile, we followed the naming template "failed at cross-docking," "failed at the delivery station," etc.</p><p>We were on the right track when we presented the metric, and operation managers wanted to look at the examples and even felt uncomfortable with some of the conclusions, considering the diagnostic a bit unfair. However, <strong>if we communicated that way, they would&nbsp;care</strong>.</p><h4>Setting the bar for excellence</h4><p>When we started putting it all together, something felt off as some relevant classes of opportunities were reading, like 0.6%. In some cases, we were dealing with complex problems with already developed solutions, such as incentives to drivers for delivery consummation. We expected teams to improve on them by 10% over a year, which could mean a change of 0.06pp in the metric. Motivating people to diligently pursue that relatively small contribution for a long time seemed challenging.</p><p>We took the cue on the scale remark and communicated the metric proportionately to 1000 instead of 100. But, even though everyone understood %, we had no good way of communicating per thousand other than defining a new&nbsp;unit.</p><h4>Wrapping it all up and shaping the&nbsp;culture</h4><p>This new metric became a product in itself. So we put much effort into communicating it, from defining the unit, the classes of opportunities, and the dashboard (what goes above the fold and below,&nbsp;etc.).</p><p>We named the unit <em>NOT</em>, which is short for <em>Not On Time</em>. The catchy name helped a lot in getting traction.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cXbU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00ef91f-ce05-46ca-bc60-a89213d2cabe_1024x268.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cXbU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00ef91f-ce05-46ca-bc60-a89213d2cabe_1024x268.png 424w, https://substackcdn.com/image/fetch/$s_!cXbU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00ef91f-ce05-46ca-bc60-a89213d2cabe_1024x268.png 848w, https://substackcdn.com/image/fetch/$s_!cXbU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00ef91f-ce05-46ca-bc60-a89213d2cabe_1024x268.png 1272w, https://substackcdn.com/image/fetch/$s_!cXbU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00ef91f-ce05-46ca-bc60-a89213d2cabe_1024x268.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cXbU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00ef91f-ce05-46ca-bc60-a89213d2cabe_1024x268.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b00ef91f-ce05-46ca-bc60-a89213d2cabe_1024x268.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;1 NOT = 1/1000 parcels that were not a perfect delivery&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="1 NOT = 1/1000 parcels that were not a perfect delivery" title="1 NOT = 1/1000 parcels that were not a perfect delivery" srcset="https://substackcdn.com/image/fetch/$s_!cXbU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00ef91f-ce05-46ca-bc60-a89213d2cabe_1024x268.png 424w, https://substackcdn.com/image/fetch/$s_!cXbU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00ef91f-ce05-46ca-bc60-a89213d2cabe_1024x268.png 848w, https://substackcdn.com/image/fetch/$s_!cXbU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00ef91f-ce05-46ca-bc60-a89213d2cabe_1024x268.png 1272w, https://substackcdn.com/image/fetch/$s_!cXbU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00ef91f-ce05-46ca-bc60-a89213d2cabe_1024x268.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>As we went around the company communicating and working with teams on using NOT, we got a lot of traction and engagement. Operations leadership demanded deep-dive analysis, and teams suddenly had a practical tool and a communication framework to support&nbsp;them.</p><p>Quality has improved consistently since then, with observable impact (global NOT improved by +30% on an excellence grade problem space). We could declare which initiatives were promising or not beforehand, point out regional-specific quality challenges, and rally the whole company towards actionable goals with little communication effort.</p><p>Years later, we learned that using a perfect delivery as the target was no longer valuable. Specific aspects of our operations needed more attention and exposure, such as the recovery process after a failed delivery attempt. <strong>In retrospect, defining a unit was a great idea.</strong> As the focus and maturity of the company evolved, we adjusted what the unit accounted for, taking advantage of the previous communication framework: OKRs, governance rituals, and training materials; everything that referred to NOT as the Northstar quality metric still made sense, even though what the unit represented evolved. (Hat tip to <a href="https://medium.com/u/e3cad50eb0d2">Natacha Alencar</a>, who helped us on NOT&nbsp;2.0)</p><p>I did not see it coming, but NOT was one of the most robust pieces of work I have ever accomplished. Everything in the environment was favorable (team, leadership, problem space), and I'm thankful to all. Also, I hope that what we've learned can be applied elsewhere.</p><div><hr></div><p><a href="https://desirabledifficulty.blog/shaping-the-c%CC%B6u%CC%B6r%CC%B6v%CC%B6e-culture-7a486451ab4b">Shaping the c&#822;u&#822;r&#822;v&#822;e culture</a> was originally published in <a href="https://desirabledifficulty.blog">Desirable Difficulty</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded></item><item><title><![CDATA[The practice of studying about a problem at work]]></title><description><![CDATA[Why you should consider reading review papers]]></description><link>https://www.desirable-difficulty.com/p/the-practice-of-studying-about-a-problem-at-work-31e910003af5</link><guid isPermaLink="false">https://www.desirable-difficulty.com/p/the-practice-of-studying-about-a-problem-at-work-31e910003af5</guid><dc:creator><![CDATA[Diego Nogueira]]></dc:creator><pubDate>Fri, 13 Aug 2021 16:24:26 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f96d896d-c315-48d7-8e81-165b5c2a7440_749x264.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>At work, it&#8217;s common for teams to study new technologies (what platforms or services to use, which libraries to adopt, new programming languages). We&#8217;re also very often sniffing through forums trying to wrap our heads around implementation related problems (e.g. &#8220;<em>why aren&#8217;t my configs working as expected?</em>&#8221; or &#8220;<em>how come my connections are still hanging&nbsp;open?</em>&#8221;).</p><p>However, it&#8217;s not very common for teams to study about <em>more</em> <em>fundamental problems</em>, that could make a critical difference on how products are conceived or designed, or even in how a problem could be leveraged as an opportunity within the company&#8217;s strategy. Here are a few questions that illustrate what I mean by more fundamental problems:</p><ul><li><p><em>What conversion rates should we expect from this product? What are the most probable main&nbsp;drivers?</em></p></li><li><p><em>What are different pricing approaches to explore and how to experiment with&nbsp;them?</em></p></li><li><p><em>What is the most adequate metric we could be using to track our progress at this&nbsp;point?</em></p></li><li><p><em>Do we have all the data we need in order to check for our process conformance?</em></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!umkk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8bf2875-4369-40e0-b960-7a1914e29f59_749x264.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!umkk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8bf2875-4369-40e0-b960-7a1914e29f59_749x264.png 424w, https://substackcdn.com/image/fetch/$s_!umkk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8bf2875-4369-40e0-b960-7a1914e29f59_749x264.png 848w, https://substackcdn.com/image/fetch/$s_!umkk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8bf2875-4369-40e0-b960-7a1914e29f59_749x264.png 1272w, https://substackcdn.com/image/fetch/$s_!umkk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8bf2875-4369-40e0-b960-7a1914e29f59_749x264.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!umkk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8bf2875-4369-40e0-b960-7a1914e29f59_749x264.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8bf2875-4369-40e0-b960-7a1914e29f59_749x264.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Pull quote: your problem is not as unique as you might think.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Pull quote: your problem is not as unique as you might think." title="Pull quote: your problem is not as unique as you might think." srcset="https://substackcdn.com/image/fetch/$s_!umkk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8bf2875-4369-40e0-b960-7a1914e29f59_749x264.png 424w, https://substackcdn.com/image/fetch/$s_!umkk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8bf2875-4369-40e0-b960-7a1914e29f59_749x264.png 848w, https://substackcdn.com/image/fetch/$s_!umkk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8bf2875-4369-40e0-b960-7a1914e29f59_749x264.png 1272w, https://substackcdn.com/image/fetch/$s_!umkk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8bf2875-4369-40e0-b960-7a1914e29f59_749x264.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>For those that went through college, discussing fundamental problems and the frontiers of knowledge around them was routine and there were text books to guide us deep and wide. But, what about&nbsp;work?</p><p>Business books typically cover topics at very high levels, so they can reach a wider audience and succeed commercially. They can help you learn concepts, way of thinking, best practices, but rarely at enough depth to map directly into execution.</p><p>As it turns out, academic research is a lot about diving into specific problems and publishing to the world about their learnings. Many think that consuming from academic publications is reserved to those dealing with highly complex or cutting edge problems described through puzzling mathematical equations, such as route optimization, natural language processing, etc. However, there&#8217;s a lot of business oriented research out there, even in less mathematically intricate fields such as marketing or ecommerce conversion optimization.</p><p>A great way to get started on leveraging academic studies at work is to explore <em>review papers</em> when getting started on a new class of problems. Review papers, referred to as secondary sour&#173;ces in the academic work, are studies that explore a field or problem horizontally, collecting and organizing concepts and discussing what advancements other research work on the topic have accomplished.</p><p>Studying and discussing relevant review papers with the team on early stages of a project may payoff in several ways (in addition to being&nbsp;cool):</p><h4>Discovering the relevant concepts and aligning communication</h4><p>Review papers are typically very good at organizing the relevant concepts related to the problem domain: different categories of the problem, different categories of solution approaches, metrics, solution evaluation criteria, most common input requirements, etc.</p><p>This can help the team not only prune the problem space, but also build a common internal jargon that improves communication.</p><h4>Benchmarking and adjusting expectations</h4><p>Such works typically make reference to industry standard numbers (conversion rates, latency, precision vs recall, etc depending on your problem). If you&#8217;re lucky to find recent enough studies, these numbers can help you and your team set the expectations about how much benefit the considered approach could&nbsp;yield.</p><p>Being able to tell early in the process whether an approach can or cannot bring the result standards you&#8217;re looking for means a lot of time not&nbsp;wasted.</p><h4>Maturity of current solutions and solution&nbsp;insights</h4><p>There&#8217;s hardly any fundamental problem known to humans that hasn&#8217;t been studied extensively. For some, we&#8217;ve found strong and highly applicable solutions. But some times academia hasn&#8217;t advanced enough on a problem space in order to propose usable solutions.</p><p>Also, it can be rare for your problem to match perfectly to those of published studies and the solutions presented might be useful as a source of insights for solving your own instance.</p><h4>Prioritization</h4><p>A better sense of implementation complexity vs potential yields can be very useful for prioritization purposes. You might find out it&#8217;s a low hanging fruit that&#8217;s worth pursuing or that the problem seems too hard for the benefit and explore other opportunities.</p><h4>References</h4><p>Review papers are literature reviews, so they are honed to help you navigate existing studies and prune your search for what are more specific works you could&nbsp;read.</p><h4>Personal development</h4><p>For some team members it could be very impacting to take a measure on how deep one could go on exploring a problem or where are the bars set for someone to become an expert on a&nbsp;field.</p><p>Studying as a group also fosters collaboration and creates opportunities for team members to step up and share knowledge with other colleagues. A classic approach is for the team to take turns on who will present a paper to the team (and often other guests) for a discussion session.</p><p>For others, like me, it could be a striking reminder that smart people have already thought about a problem and it&#8217;s often worth it to take some time to learn from them before jumping into problem&nbsp;solving.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tUaA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed491f8-4ff7-4f0a-a6c0-5824739997d4_866x190.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tUaA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed491f8-4ff7-4f0a-a6c0-5824739997d4_866x190.png 424w, https://substackcdn.com/image/fetch/$s_!tUaA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed491f8-4ff7-4f0a-a6c0-5824739997d4_866x190.png 848w, https://substackcdn.com/image/fetch/$s_!tUaA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed491f8-4ff7-4f0a-a6c0-5824739997d4_866x190.png 1272w, https://substackcdn.com/image/fetch/$s_!tUaA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed491f8-4ff7-4f0a-a6c0-5824739997d4_866x190.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tUaA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed491f8-4ff7-4f0a-a6c0-5824739997d4_866x190.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ed491f8-4ff7-4f0a-a6c0-5824739997d4_866x190.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A more personal note&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A more personal note" title="A more personal note" srcset="https://substackcdn.com/image/fetch/$s_!tUaA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed491f8-4ff7-4f0a-a6c0-5824739997d4_866x190.png 424w, https://substackcdn.com/image/fetch/$s_!tUaA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed491f8-4ff7-4f0a-a6c0-5824739997d4_866x190.png 848w, https://substackcdn.com/image/fetch/$s_!tUaA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed491f8-4ff7-4f0a-a6c0-5824739997d4_866x190.png 1272w, https://substackcdn.com/image/fetch/$s_!tUaA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed491f8-4ff7-4f0a-a6c0-5824739997d4_866x190.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I was lucky to meet some great people back in college years that went on to become true friends and workmates. This strong present tie with academia by working with <a href="https://medium.com/u/13a36f31dadc">Davi de Castro Reis</a>, <a href="https://medium.com/u/215dc819624d">Bruno Fonseca</a>, <a href="https://medium.com/u/250ab464e72f">Akio Nakamura</a> and <a href="https://medium.com/u/edcdbd3bc6cb">Andre Paim Lemos</a> (all who I hope will contribute to this blog at some point) helps me keep an attitude of exploring problems in depth and learn not only the tricks of the trade, but also what fundamental problems are behind the challenges we face in business, tech or people management.</p><p>A few years ago, we kicked off a service quality task force at <a href="https://www.loggi.com/">Loggi</a> and, since I was new to the logistics field, decided to learn more about the basics. So I stumbled upon <a href="https://sheffi.mit.edu/sites/sheffi.mit.edu/files/2018-07/15_09574099410805171.pdf">this amazing review paper</a> titled &#8220;<em>A Review and Evaluation of Logistics Metrics</em>&#8221; by Caplice and Sheffi (MIT). It defines a list of criteria for evaluating logistics metrics. It was just perfect for that moment when we were looking for ways to measure our progress and spark a corporate culture. Essentially all wisdom I have gathered since then in terms of how to think logistics management was inspired by a single (shorter than a page) section titled &#8220;<em>Behavioral Soundness</em>&#8221;. I became such a meta-metrics nerd after reading this paper that I&#8217;ll probably end up writing more about&nbsp;it.</p><p>Here&#8217;s a toast to friends, science and learning (and metrics). Cheers.</p><div><hr></div><p><a href="https://desirabledifficulty.blog/the-practice-of-studying-about-a-problem-at-work-31e910003af5">The practice of studying about a problem at work</a> was originally published in <a href="https://desirabledifficulty.blog">Desirable Difficulty</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded></item></channel></rss>