<?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[Extreme A]]></title><description><![CDATA[Insights into building and supporting software systems: DevOps, Automation Tooling, Software Delivery, Team Structures, Strategy and more.]]></description><link>https://insights.extremeautomation.io</link><image><url>https://substackcdn.com/image/fetch/$s_!xRlj!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba341556-07b2-43bd-ba75-41bc1f6ca1da_768x768.png</url><title>Extreme A</title><link>https://insights.extremeautomation.io</link></image><generator>Substack</generator><lastBuildDate>Fri, 01 May 2026 03:29:05 GMT</lastBuildDate><atom:link href="https://insights.extremeautomation.io/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Andrey Adamovich]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[extremeautomation@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[extremeautomation@substack.com]]></itunes:email><itunes:name><![CDATA[Andrey Adamovich]]></itunes:name></itunes:owner><itunes:author><![CDATA[Andrey Adamovich]]></itunes:author><googleplay:owner><![CDATA[extremeautomation@substack.com]]></googleplay:owner><googleplay:email><![CDATA[extremeautomation@substack.com]]></googleplay:email><googleplay:author><![CDATA[Andrey Adamovich]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Drawing Strategy (for Platform Ops)]]></title><description><![CDATA[My journey into Wardley maps]]></description><link>https://insights.extremeautomation.io/p/drawing-strategy-for-platform-ops</link><guid isPermaLink="false">https://insights.extremeautomation.io/p/drawing-strategy-for-platform-ops</guid><dc:creator><![CDATA[Andrey Adamovich]]></dc:creator><pubDate>Wed, 04 Sep 2024 05:05:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_BNp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><h1>Where are we going?</h1><p>I think that&#8217;s the main question that a good strategy should answer. But it's hard to answer without knowing:</p><ul><li><p><strong>Where are we now?</strong></p></li><li><p><strong>How well are we positioned</strong> against other forces in our environment?</p></li><li><p><strong>What are the impediments</strong> that block us from achieving our target?</p></li></ul><p>If we don&#8217;t answer these questions, <strong>our desired direction may just be wishful thinking</strong>. But if we do answer them, it can actually change the direction or path we follow.</p><p>Simon Wardley introduced his strategy visualization technique in 2005. If you&#8217;ve never heard of Wardley maps before, I think <strong><a href="https://videopress.com/v/yvKVzlKb">this video</a></strong> is the shortest introduction. If you have more time, I recommend reading Simon&#8217;s <strong><a href="https://github.com/HiredThought/wardley-maps-ebook/raw/main/bin/Wardley%20Maps%20-%20Simon%20Wardley.pdf">book</a></strong> (it&#8217;s free).</p><p>As he writes in the book:</p><blockquote><p>&#8230; six absolute basic elements for any map which are <strong>visual</strong> representation, <strong>context</strong> specific, <strong>position</strong> of components relative to some form of <strong>anchor</strong> and <strong>movement</strong> of those <strong>components</strong>.</p></blockquote><p>The first map I drew was related to my attempts to make sense of IT systems involved in payroll and invoicing. It&#8217;s not perfect, but it helped me start searching in the right direction.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_BNp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_BNp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!_BNp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!_BNp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!_BNp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_BNp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:153678,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_BNp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!_BNp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!_BNp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!_BNp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7c3bfb-b1f7-47c8-8aaa-15bea120bc4d_2526x1578.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>The X-axis represents the <strong>evolutionary phase of components</strong> involved in the system/organization &#8212; starting on the left with &#8220;nobody has ever done this before&#8221; and ending on the right with fully industrialized experience. Imagine the electricity in 1800s and in 2000s as an example.</p><p>The Y-axis shows <strong>visibility/value of the component to the actor</strong> we are mapping for. If we use electricity analogy, a lamp is super high on the value chain for the customer, but industrial transformer (despite being an important bit of infrastructure) is way lower. </p><p>The main trick that makes a map powerful is that <strong>moving elements around will change the meaning</strong> of the map. That&#8217;s a vast difference from a simple diagram.  </p><h1>Platform Engineering</h1><p>A topic close to my heart is <strong><a href="https://platformengineering.org/blog/what-is-platform-engineering">platform engineering</a></strong>. Creating the rails that help companies deliver changes to business applications is what I do for a living. </p><p>Let&#8217;s use this as a playground for a mapping experiment.</p><h2>Empty canvas</h2><p>Of course, we always start with an empty canvas.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w14Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b9bc75a-71fa-41c2-9884-b68d6ef8e95c_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w14Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b9bc75a-71fa-41c2-9884-b68d6ef8e95c_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!w14Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b9bc75a-71fa-41c2-9884-b68d6ef8e95c_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!w14Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b9bc75a-71fa-41c2-9884-b68d6ef8e95c_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!w14Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b9bc75a-71fa-41c2-9884-b68d6ef8e95c_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w14Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b9bc75a-71fa-41c2-9884-b68d6ef8e95c_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b9bc75a-71fa-41c2-9884-b68d6ef8e95c_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81328,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w14Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b9bc75a-71fa-41c2-9884-b68d6ef8e95c_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!w14Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b9bc75a-71fa-41c2-9884-b68d6ef8e95c_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!w14Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b9bc75a-71fa-41c2-9884-b68d6ef8e95c_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!w14Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b9bc75a-71fa-41c2-9884-b68d6ef8e95c_2526x1578.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><h2>Who&#8217;s the customer?</h2><p>The first thing we need to understand is who the users are that we&#8217;re building for. In this case, <strong>the beneficiaries</strong> are the developers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nD_l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd76c03-f9df-4289-97b1-24a9870ccb63_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nD_l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd76c03-f9df-4289-97b1-24a9870ccb63_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!nD_l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd76c03-f9df-4289-97b1-24a9870ccb63_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!nD_l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd76c03-f9df-4289-97b1-24a9870ccb63_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!nD_l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd76c03-f9df-4289-97b1-24a9870ccb63_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nD_l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd76c03-f9df-4289-97b1-24a9870ccb63_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9bd76c03-f9df-4289-97b1-24a9870ccb63_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:89824,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nD_l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd76c03-f9df-4289-97b1-24a9870ccb63_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!nD_l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd76c03-f9df-4289-97b1-24a9870ccb63_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!nD_l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd76c03-f9df-4289-97b1-24a9870ccb63_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!nD_l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bd76c03-f9df-4289-97b1-24a9870ccb63_2526x1578.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>We could probably add other stakeholders, but doing so might introduce too much detail into the map.</p><h2>What are the most visible elements?</h2><p>The next step is to determine <strong>the</strong> <strong>touchpoints</strong>. </p><p>Let&#8217;s assume that we know our developers interact with the platform through different interfaces:</p><ul><li><p>Custom-built UIs (e.g., development environment status page)</p></li><li><p>Preconfigured products (e.g., Kubernetes cluster) </p></li><li><p>Cloud services (e.g., AWS CloudWatch)</p></li></ul><p>Let&#8217;s represent this by placing abstract platform elements on different <strong>evolutionary phases</strong>:  </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yzfR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd620334-1302-43f8-a455-f6d687887a53_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yzfR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd620334-1302-43f8-a455-f6d687887a53_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!yzfR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd620334-1302-43f8-a455-f6d687887a53_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!yzfR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd620334-1302-43f8-a455-f6d687887a53_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!yzfR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd620334-1302-43f8-a455-f6d687887a53_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yzfR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd620334-1302-43f8-a455-f6d687887a53_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd620334-1302-43f8-a455-f6d687887a53_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:104784,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yzfR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd620334-1302-43f8-a455-f6d687887a53_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!yzfR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd620334-1302-43f8-a455-f6d687887a53_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!yzfR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd620334-1302-43f8-a455-f6d687887a53_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!yzfR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd620334-1302-43f8-a455-f6d687887a53_2526x1578.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>The red arrows on the map above indicate the platform team&#8217;s overall desire to move from custom-built elements to &#8220;as-a-service&#8221; offerings where possible. This shift alone can foster <strong>interesting discussions</strong> among team members. </p><h2>Down the rabbit hole</h2><p>We can denote that the platform team treats the composition of platform interfaces as a single entity by drawing a rectangle around them. It&#8217;s a minor detail, but it can help guide the discussion.</p><p>Next, we add more <strong>building blocks</strong> that support the touchpoints.  </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zY-P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F609cc8b2-5e36-4e2e-b1b0-c2fb0439bb1f_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zY-P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F609cc8b2-5e36-4e2e-b1b0-c2fb0439bb1f_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!zY-P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F609cc8b2-5e36-4e2e-b1b0-c2fb0439bb1f_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!zY-P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F609cc8b2-5e36-4e2e-b1b0-c2fb0439bb1f_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!zY-P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F609cc8b2-5e36-4e2e-b1b0-c2fb0439bb1f_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zY-P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F609cc8b2-5e36-4e2e-b1b0-c2fb0439bb1f_2526x1578.png" width="728" height="455" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/609cc8b2-5e36-4e2e-b1b0-c2fb0439bb1f_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:138693,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zY-P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F609cc8b2-5e36-4e2e-b1b0-c2fb0439bb1f_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!zY-P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F609cc8b2-5e36-4e2e-b1b0-c2fb0439bb1f_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!zY-P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F609cc8b2-5e36-4e2e-b1b0-c2fb0439bb1f_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!zY-P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F609cc8b2-5e36-4e2e-b1b0-c2fb0439bb1f_2526x1578.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>Context is always important. Let&#8217;s imagine that we&#8217;re drawing this map for internal process improvement discussions. This context will require us to plot more lower-level dependencies as well as our desired state on the map.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WkCs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8a1387-644f-43de-9719-03bf14d55a03_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WkCs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8a1387-644f-43de-9719-03bf14d55a03_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!WkCs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8a1387-644f-43de-9719-03bf14d55a03_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!WkCs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8a1387-644f-43de-9719-03bf14d55a03_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!WkCs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8a1387-644f-43de-9719-03bf14d55a03_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WkCs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8a1387-644f-43de-9719-03bf14d55a03_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f8a1387-644f-43de-9719-03bf14d55a03_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:183666,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WkCs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8a1387-644f-43de-9719-03bf14d55a03_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!WkCs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8a1387-644f-43de-9719-03bf14d55a03_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!WkCs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8a1387-644f-43de-9719-03bf14d55a03_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!WkCs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8a1387-644f-43de-9719-03bf14d55a03_2526x1578.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>Note that the distances between: </p><ul><li><p>in-house Kubernetes cluster and managed Kubernetes cluster</p></li><li><p>custom GitOps flows and Argo CD integration</p></li></ul><p>These distances may represent the team&#8217;s perception of how long it might take to transform from one state to another. The red block indicates an <strong>impediment</strong> on the path to the desired state. These impediments could include:</p><ul><li><p>Internal politics</p></li><li><p>Lack of certain skills within the team</p></li><li><p>Important business requirements that cannot be met</p></li><li><p>Higher cost of ownership</p></li></ul><p>These obstacles can be added as notes to the map or might naturally emerge as discussion topics during the drawing session. </p><h2>Is it really what customer wants?</h2><p>Drawing the first version of the map may lead to a series of questions: </p><ul><li><p>Do developers really need a platform?</p></li><li><p>Does the term &#8220;platform&#8221; too broadly define the overall direction?</p></li><li><p>What&#8217;s higher up in the developer&#8217;s value chain?</p></li></ul><p>Let&#8217;s imagine that what our developers need most are self-service environments. This is crucial because they frequently need to verify deployments in pull requests and experiment with new functional features.</p><p>In light of this, let&#8217;s set aside the first map and draw a new one with a more focused context.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zNDV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0803903f-1c48-428b-aace-77ee6809b1e7_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zNDV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0803903f-1c48-428b-aace-77ee6809b1e7_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!zNDV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0803903f-1c48-428b-aace-77ee6809b1e7_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!zNDV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0803903f-1c48-428b-aace-77ee6809b1e7_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!zNDV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0803903f-1c48-428b-aace-77ee6809b1e7_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zNDV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0803903f-1c48-428b-aace-77ee6809b1e7_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0803903f-1c48-428b-aace-77ee6809b1e7_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101260,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zNDV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0803903f-1c48-428b-aace-77ee6809b1e7_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!zNDV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0803903f-1c48-428b-aace-77ee6809b1e7_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!zNDV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0803903f-1c48-428b-aace-77ee6809b1e7_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!zNDV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0803903f-1c48-428b-aace-77ee6809b1e7_2526x1578.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><h2>Into the abyss</h2><p>The current state discovery process might lead us to this map: </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dnhb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1050954-5f20-4b8f-9d34-d2d8e748f3b9_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dnhb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1050954-5f20-4b8f-9d34-d2d8e748f3b9_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!Dnhb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1050954-5f20-4b8f-9d34-d2d8e748f3b9_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!Dnhb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1050954-5f20-4b8f-9d34-d2d8e748f3b9_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!Dnhb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1050954-5f20-4b8f-9d34-d2d8e748f3b9_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dnhb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1050954-5f20-4b8f-9d34-d2d8e748f3b9_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1050954-5f20-4b8f-9d34-d2d8e748f3b9_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:121444,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Dnhb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1050954-5f20-4b8f-9d34-d2d8e748f3b9_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!Dnhb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1050954-5f20-4b8f-9d34-d2d8e748f3b9_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!Dnhb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1050954-5f20-4b8f-9d34-d2d8e748f3b9_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!Dnhb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1050954-5f20-4b8f-9d34-d2d8e748f3b9_2526x1578.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>The most valuable piece of our platform is a custom AngularJS application running on a manually configured virtual machine, set up several years ago. The reason it hasn&#8217;t been migrated to a productized Kubernetes cluster is simply due to a lack of time and the &#8220;if it works, don&#8217;t touch it&#8221; mentality. </p><p>Another potential conclusion we might reach as we continue mapping is that <strong>the world around us has changed</strong>. There are now many simple ways to create per pull-request environments that integrate well with the Git ecosystem and chat tools. These modern tools are well-known and can fully replace custom-built components. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EPbS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d194e-8784-4f45-9b94-10735f3c2fd6_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EPbS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d194e-8784-4f45-9b94-10735f3c2fd6_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!EPbS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d194e-8784-4f45-9b94-10735f3c2fd6_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!EPbS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d194e-8784-4f45-9b94-10735f3c2fd6_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!EPbS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d194e-8784-4f45-9b94-10735f3c2fd6_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EPbS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d194e-8784-4f45-9b94-10735f3c2fd6_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f94d194e-8784-4f45-9b94-10735f3c2fd6_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:184996,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EPbS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d194e-8784-4f45-9b94-10735f3c2fd6_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!EPbS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d194e-8784-4f45-9b94-10735f3c2fd6_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!EPbS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d194e-8784-4f45-9b94-10735f3c2fd6_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!EPbS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff94d194e-8784-4f45-9b94-10735f3c2fd6_2526x1578.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>The beauty of mapping lies in its ability to capture the details of your internal state and the state of the world around you, enabling you to make informed decisions.</p><p>At this point, we can set aside the current map and start drawing another one.</p><h1>Summary</h1><p>What I&#8217;ve learned through experimentation:</p><ul><li><p><strong>Mapping is an iterative process</strong>.</p></li><li><p>Version one will never reveal everything.</p></li><li><p>Draw a map. Discuss it. Discard it. Repeat.  </p></li></ul><p>The <strong>purpose of mapping is not the map</strong> itself &#8212; it&#8217;s the discussions that happen around it.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insights.extremeautomation.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Extreme A! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Scary Stories about Software Supply Chains]]></title><description><![CDATA[Critical lessons from software supply chain failures.]]></description><link>https://insights.extremeautomation.io/p/scary-stories-about-software-supply</link><guid isPermaLink="false">https://insights.extremeautomation.io/p/scary-stories-about-software-supply</guid><dc:creator><![CDATA[Andrey Adamovich]]></dc:creator><pubDate>Sat, 24 Aug 2024 13:02:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Mde3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the light of the recent <strong><a href="https://en.wikipedia.org/wiki/2024_CrowdStrike_incident">Crowdstrike outage</a></strong>, it&#8217;s crucial to review how organizations receive their software updates and how they mitigate related issues. The verification procedures and update channels for Falcon &#8212; the software that caused all the chaos &#8212; <strong><a href="https://www.crowdstrike.com/wp-content/uploads/2024/08/Channel-File-291-Incident-Root-Cause-Analysis-08.06.2024.pdf">were broken</a></strong>.</p><p>Let's explore some other incidents that might be relevant in this context.</p><h2>xz</h2><p>How much time can a hacker devote to compromising a system?</p><p>As we learned from the <code>xz</code> <strong><a href="https://en.wikipedia.org/wiki/XZ_Utils_backdoor">incident</a> </strong>earlier this year (2024), the answer is quite a lot.</p><p>The <strong><a href="https://github.com/tukaani-project/xz">xz library</a></strong> is widely used for compression, including in SSH traffic, which is often the primary way to access Linux machines. Imagine the potential consequences of embedding malicious code into this critical library.</p><p>Whether it was the work of a single person or a group remains unknown. However, Jia Tan spent several years building trust within the <code>xz</code> community by contributing useful code to the repository. They also manipulated the author by creating fake accounts to generate social pressure, pushing for certain changes. Eventually, Jia Tan was promoted to co-maintainer and managed to submit a disguised backdoor into the library.</p><p>Given that this library is used by virtually all Linux distributions, the potential for widespread compromise was enormous.</p><p>Fortunately, the backdoor was discovered before updates hit the disks. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Mde3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Mde3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!Mde3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!Mde3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!Mde3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Mde3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:175776,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Mde3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!Mde3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!Mde3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!Mde3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18512c26-318e-48e5-a778-4f0e184f74de_2526x1578.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><h4>Mitigation</h4><p>What can we do?</p><p>It's currently too easy to create an account on GitHub. I believe Microsoft, along with other service providers with significant social impact, should <strong>strengthen identity verification processes</strong>. For instance, implementing a KYC (know-your-customer) process that includes credit card or identity document verification would be a good start. Software security is simply too important to leave unchecked.</p><p>Additionally, major vendors should increase their <strong>support for critical library authors through sponsorship</strong> programs. While <strong><a href="https://opensource.microsoft.com/program/">some already do</a></strong>, it's not enough.</p><p>Linux OS distributors (e.g., RedHat, Canonical) need to invest more heavily in <strong>regression testing</strong> and thorough investigations. Yes, <strong><a href="https://wiki.ubuntu.com/ReleaseValidationProcess">they do this already</a></strong>, but more can be done.</p><p>Organizations that rely on external software &#8212; which is nearly everyone &#8212; should definitely adopt <strong>data collection and anomaly detection</strong> strategies. With thousands of dependencies, you never know which might harbor a zero-day vulnerability or malicious code.</p><h2>sunburst</h2><p><strong><a href="https://www.solarwinds.com/">Solarwinds</a></strong> is the company providing monitoring software. The hacker had access to their release system for more than a year. They managed to install malicious code into the update package that was automatically distributed to thousands of companies. The <strong><a href="https://venafi.com/blog/solarwinds-sunburst-attack-explained-what-really-happened/">incident</a> </strong>affected many government organizations.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!g4E2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffddc6a05-5164-4181-83fb-37816edb6e9d_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g4E2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffddc6a05-5164-4181-83fb-37816edb6e9d_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!g4E2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffddc6a05-5164-4181-83fb-37816edb6e9d_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!g4E2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffddc6a05-5164-4181-83fb-37816edb6e9d_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!g4E2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffddc6a05-5164-4181-83fb-37816edb6e9d_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g4E2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffddc6a05-5164-4181-83fb-37816edb6e9d_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fddc6a05-5164-4181-83fb-37816edb6e9d_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:108935,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!g4E2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffddc6a05-5164-4181-83fb-37816edb6e9d_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!g4E2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffddc6a05-5164-4181-83fb-37816edb6e9d_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!g4E2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffddc6a05-5164-4181-83fb-37816edb6e9d_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!g4E2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffddc6a05-5164-4181-83fb-37816edb6e9d_2526x1578.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><h4>Mitigation</h4><p>The breach was eventually detected due to <strong>anomaly detection</strong> mechanisms and <strong>accidental observations</strong> on the client side. This underscores an important rule:</p><blockquote><p><strong>Never ignore unusual data points.</strong></p></blockquote><p>Another helpful measure is <strong>artifact validation</strong>. At a minimum, verifying the checksum of any package obtained from external channels is essential.</p><p>Additionally, most ecosystems support package signing, including:</p><ul><li><p><strong><a href="https://access.redhat.com/articles/3359321">RPM signing</a></strong></p></li><li><p><strong><a href="https://www.debian.org/doc/manuals/securing-debian-manual/deb-pack-sign.en.html">DEB signing</a></strong></p></li><li><p><strong><a href="https://docs.docker.com/engine/security/trust/">Docker image signing</a></strong></p></li><li><p><strong><a href="https://docs.oracle.com/javase/tutorial/deployment/jar/signing.html">JAR signing</a></strong></p></li><li><p><strong><a href="https://docs.npmjs.com/about-registry-signatures">NPM signing</a></strong></p></li></ul><p>This should be a de facto standard for any company serious about security. Package signing is a simple yet effective method to detect corrupted artifacts. This leads to another simple rule:</p><blockquote><p><strong>Only use signed packages; fail deployment if the signature mismatches.</strong></p></blockquote><p>Finally, don&#8217;t underestimate the importance of <strong>network perimeter protection</strong> &#8212; yes, the old reliable firewall.</p><h2>browsealoud</h2><p>Have you heard of crypto-jacking? It&#8217;s a type of cyberattack where compromised infrastructure is used to mine cryptocurrency without the user&#8217;s knowledge. This can even happen directly in your browser, whether you're on a desktop or mobile device. </p><p>A notable <strong><a href="https://cside.dev/blog/the-browsealoud-supply-chain-attack-a-case-study-in-cryptojacking">incident</a></strong> occurred in 2018 when hackers exploited release infrastructure of BrowseAloud, a popular JavaScript library designed to read website text aloud. Thousands of websites, many of them government-related, included this library as part of their functionality. The hackers injected malicious code into BrowseAloud, turning every device that loaded these websites into unwilling participants in a cryptocurrency mining operation. </p><p>What&#8217;s even more alarming is that crypto-jacking might have been just the tip of the iceberg. The attackers could have used the same method to steal personal information, including credit card details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U_Uq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff966dcdd-93f3-44ee-873c-919e7786d3df_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U_Uq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff966dcdd-93f3-44ee-873c-919e7786d3df_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!U_Uq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff966dcdd-93f3-44ee-873c-919e7786d3df_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!U_Uq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff966dcdd-93f3-44ee-873c-919e7786d3df_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!U_Uq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff966dcdd-93f3-44ee-873c-919e7786d3df_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U_Uq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff966dcdd-93f3-44ee-873c-919e7786d3df_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f966dcdd-93f3-44ee-873c-919e7786d3df_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133720,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U_Uq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff966dcdd-93f3-44ee-873c-919e7786d3df_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!U_Uq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff966dcdd-93f3-44ee-873c-919e7786d3df_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!U_Uq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff966dcdd-93f3-44ee-873c-919e7786d3df_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!U_Uq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff966dcdd-93f3-44ee-873c-919e7786d3df_2526x1578.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><h4>Mitigation</h4><p>Most of the users of this library were linking directly to the latest version hosted (and hacked) on AWS. The same link was used by all &#8212; convenient, but very dangerous!</p><p>The key advice here is to <strong>avoid using the "latest" version of dependencies</strong> and always specify the exact version. Additionally, always <strong>verify the authenticity and integrity of the artifacts</strong> you use.</p><p>In fact, the HTML standard allows specifying the checksum for remote artifacts:</p><pre><code><code>&lt;script
  src="https://code.jquery.com/jquery-3.7.0.slim.min.js"
  integrity="sha256-tG5mcZUtJsZvyKAxYLVXrmjKBVLd6VpVccqz/r4ypFE="
  crossorigin="anonymous"&gt;
&lt;/script&gt;</code></code></pre><h2>Log4Shell</h2><p><code>Log4Shell</code> is a classic zero-day vulnerability. By providing a maliciously crafted URL or HTTP header, a hacker can trick an application into making a callback to a remote server, which can then deliver and execute malicious Java bytecode on the victim&#8217;s server.</p><p>This vulnerability had a massive impact on the Java ecosystem. Although the exact numbers are unclear, it's estimated that over 80% of applications were using a vulnerable version of the <code>log4j</code> library at the time of discovery. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1nQ5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32dbf45d-1385-434f-a35d-ec38fc997d06_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1nQ5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32dbf45d-1385-434f-a35d-ec38fc997d06_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!1nQ5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32dbf45d-1385-434f-a35d-ec38fc997d06_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!1nQ5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32dbf45d-1385-434f-a35d-ec38fc997d06_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!1nQ5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32dbf45d-1385-434f-a35d-ec38fc997d06_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1nQ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32dbf45d-1385-434f-a35d-ec38fc997d06_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32dbf45d-1385-434f-a35d-ec38fc997d06_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:125188,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1nQ5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32dbf45d-1385-434f-a35d-ec38fc997d06_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!1nQ5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32dbf45d-1385-434f-a35d-ec38fc997d06_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!1nQ5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32dbf45d-1385-434f-a35d-ec38fc997d06_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!1nQ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32dbf45d-1385-434f-a35d-ec38fc997d06_2526x1578.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>The impact was so significant in the enterprise world that even unrelated Docker images on Docker Hub had to be marked as <code>log4shell</code>-free:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CdvQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058883f1-ccfd-4c7d-9d65-faa2ca76910f_2208x958.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CdvQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058883f1-ccfd-4c7d-9d65-faa2ca76910f_2208x958.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CdvQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058883f1-ccfd-4c7d-9d65-faa2ca76910f_2208x958.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CdvQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058883f1-ccfd-4c7d-9d65-faa2ca76910f_2208x958.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CdvQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058883f1-ccfd-4c7d-9d65-faa2ca76910f_2208x958.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CdvQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058883f1-ccfd-4c7d-9d65-faa2ca76910f_2208x958.jpeg" width="1456" height="632" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/058883f1-ccfd-4c7d-9d65-faa2ca76910f_2208x958.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:632,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:252541,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&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="" srcset="https://substackcdn.com/image/fetch/$s_!CdvQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058883f1-ccfd-4c7d-9d65-faa2ca76910f_2208x958.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CdvQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058883f1-ccfd-4c7d-9d65-faa2ca76910f_2208x958.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CdvQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058883f1-ccfd-4c7d-9d65-faa2ca76910f_2208x958.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CdvQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058883f1-ccfd-4c7d-9d65-faa2ca76910f_2208x958.jpeg 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><h4>Mitigation</h4><p>In reality, <strong>most applications don't need to make external calls</strong> to the Internet. <strong>Default network policies</strong> should simply block all communication with external entities.</p><p>Log4Shell exploited JNDI and RMI, protocols that are rarely used by modern Java applications. This raises an important question for both library authors and users: Why keep outdated, unused code in your applications? <strong>Old code is a ticking time bomb</strong>.</p><p>Another critical aspect of handling such vulnerabilities is having a fast and efficient deployment process to apply fixes as soon as they become available. I've encountered companies that didn&#8217;t even have the original source code or CI/CD pipelines to redeploy their production applications with updated code.</p><blockquote><p><strong>The ability to rebuild and redeploy code at any time is crucial for security.</strong></p></blockquote><p>You&#8217;ve probably heard the saying, &#8220;If it works, don&#8217;t touch it.&#8221; This mindset is dangerous. We should <strong>continuously verify that critical elements work and remain adaptable to change</strong>. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1VJV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d75d3f8-3b7b-4c9e-b832-d41d0d20a45f_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1VJV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d75d3f8-3b7b-4c9e-b832-d41d0d20a45f_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!1VJV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d75d3f8-3b7b-4c9e-b832-d41d0d20a45f_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!1VJV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d75d3f8-3b7b-4c9e-b832-d41d0d20a45f_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!1VJV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d75d3f8-3b7b-4c9e-b832-d41d0d20a45f_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1VJV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d75d3f8-3b7b-4c9e-b832-d41d0d20a45f_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d75d3f8-3b7b-4c9e-b832-d41d0d20a45f_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99698,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1VJV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d75d3f8-3b7b-4c9e-b832-d41d0d20a45f_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!1VJV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d75d3f8-3b7b-4c9e-b832-d41d0d20a45f_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!1VJV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d75d3f8-3b7b-4c9e-b832-d41d0d20a45f_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!1VJV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d75d3f8-3b7b-4c9e-b832-d41d0d20a45f_2526x1578.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><h2>leftPad</h2><p>The <code>leftPad</code> <strong><a href="https://qz.com/646467/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code">incident</a></strong> in 2016 caused a significant disruption in the Node.js ecosystem, making most applications <strong>unbuildable</strong> for several hours.</p><p>Azer Ko&#231;ulu, the author of several libraries published on <strong><a href="http://npmjs.com">npmjs.com</a></strong>, had his "<code>kik</code>" library forcibly removed by the governing organization due to a legal complaint. In protest, Azer removed all of his libraries from the repository, including <code>leftPad</code> &#8212; a dependency for many Node.js applications.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jeii!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F368e6047-f95c-4659-b93d-9feb6ddc929c_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jeii!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F368e6047-f95c-4659-b93d-9feb6ddc929c_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!Jeii!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F368e6047-f95c-4659-b93d-9feb6ddc929c_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!Jeii!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F368e6047-f95c-4659-b93d-9feb6ddc929c_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!Jeii!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F368e6047-f95c-4659-b93d-9feb6ddc929c_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jeii!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F368e6047-f95c-4659-b93d-9feb6ddc929c_2526x1578.png" width="728" height="455" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/368e6047-f95c-4659-b93d-9feb6ddc929c_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:164633,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Jeii!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F368e6047-f95c-4659-b93d-9feb6ddc929c_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!Jeii!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F368e6047-f95c-4659-b93d-9feb6ddc929c_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!Jeii!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F368e6047-f95c-4659-b93d-9feb6ddc929c_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!Jeii!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F368e6047-f95c-4659-b93d-9feb6ddc929c_2526x1578.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><h4>Mitigation</h4><p>I sympathize with Azer's stance, as the legal complaint seemed insufficient to justify enforcement. I might have reacted similarly in protest.</p><p>However, this incident raised two critical issues:</p><ul><li><p>How much can we trust public repositories or the companies managing them?</p></li><li><p>Why did the world come to depend so heavily on an 11-line code library like LeftPad?</p></li></ul><p>Typically, I follow this motto:</p><blockquote><p>The code you don&#8217;t need to write is the code you don&#8217;t need to test.</p></blockquote><p>However, in light of this incident, <strong>insourcing</strong> a simple 11-line code block doesn&#8217;t seem unreasonable. Any developer can write it quickly, including unit tests.</p><p>Since public repositories can&#8217;t be trusted to maintain packages indefinitely, <strong>caching packages</strong> within your organization through public <strong>repository mirroring</strong> is also a prudent strategy.</p><p>Dependencies often have their own dependencies, leading deep down a rabbit hole. Ultimately, you need to understand what your applications rely on. <strong>Dependency tree analysis</strong> is a crucial aspect of an organization&#8217;s security procedures. The Software Bill of Materials (<strong><a href="https://en.wikipedia.org/wiki/Software_supply_chain">SBOM</a></strong>) has existed for more than a decade, and tools like <strong><a href="https://dependencytrack.org/">Dependency-Track</a></strong> can help build a comprehensive overview.</p><h2>Conclusion</h2><p>We can't fix the world completely &#8212; vulnerabilities, compromised delivery channels, and hacks will continue to occur. However, from a business perspective, we can minimize risk by implementing:</p><ul><li><p>Stricter default network policies</p></li><li><p>Comprehensive audit data collection, analysis, and anomaly detection</p></li><li><p>Use of signed packages and artifact validation</p></li><li><p>Public repository mirroring and critical evaluation of dependency sources</p></li><li><p>Dependency on specific versions of external OSS components</p></li><li><p>Continuous dependency tree and unused code analysis</p></li><li><p>Fast delivery procedures and effective patch management</p></li><li><p>Always functional CI/CD pipelines</p></li></ul><p>Let&#8217;s strengthen our supply chains!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insights.extremeautomation.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Extreme A! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Multi-cloud Reality]]></title><description><![CDATA[It's better to stay with one vendor, but it's hardly possible.]]></description><link>https://insights.extremeautomation.io/p/multi-cloud-reality</link><guid isPermaLink="false">https://insights.extremeautomation.io/p/multi-cloud-reality</guid><dc:creator><![CDATA[Andrey Adamovich]]></dc:creator><pubDate>Sat, 03 Aug 2024 14:52:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1aJy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The cloud computing landscape is constantly evolving, making it challenging to keep up with all the changes. However, one thing has become clear in recent years: the multi-cloud reality is here to stay.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1aJy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1aJy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!1aJy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!1aJy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!1aJy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1aJy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:178867,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1aJy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!1aJy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!1aJy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!1aJy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ec511fd-b102-40d1-9301-b2da0462eacd_2526x1578.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>Should enterprises use multiple clouds? In fact, many of them already do.</p><p>One strategy is to use a single cloud as long as it fits the needs. Another strategy is to employ the best cloud for the job and combine clouds as a result. Of course, there are nuances to consider.</p><p>The bigger the company, the greater the chance that you are already using multiple clouds. Generic public clouds (AWS, GCP, Azure), private clouds (VMware, Nutanix), and specialized clouds (Cloudflare, Vercel) can all be combined for the benefit of your organization. Some clouds offer irreplaceable functionality that simplifies aspects of your product, while others are used for historical reasons.</p><h2>Traffic</h2><p>If you have just a few gigabytes of traffic a month, this would likely not have a significant impact on your cloud costs. However, if you have more than a few gigabytes per hour, a multi-cloud setup may bring you some surprises.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!R7F7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc91ac3-491a-4f9c-a7b9-475ef169fb0a_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!R7F7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc91ac3-491a-4f9c-a7b9-475ef169fb0a_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!R7F7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc91ac3-491a-4f9c-a7b9-475ef169fb0a_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!R7F7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc91ac3-491a-4f9c-a7b9-475ef169fb0a_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!R7F7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc91ac3-491a-4f9c-a7b9-475ef169fb0a_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!R7F7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc91ac3-491a-4f9c-a7b9-475ef169fb0a_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abc91ac3-491a-4f9c-a7b9-475ef169fb0a_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:189585,&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;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!R7F7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc91ac3-491a-4f9c-a7b9-475ef169fb0a_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!R7F7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc91ac3-491a-4f9c-a7b9-475ef169fb0a_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!R7F7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc91ac3-491a-4f9c-a7b9-475ef169fb0a_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!R7F7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc91ac3-491a-4f9c-a7b9-475ef169fb0a_2526x1578.png 1456w" sizes="100vw"></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>Traffic in and out of your load balancers, CDNs, on-prem resources, and between clouds is not free. For example, in AWS, transferring one gigabyte into or out of their networks may cost between $0.01 and $0.08 per GB. This can result in hundreds or even <strong>thousands of dollars</strong> for high-traffic configurations, such as image processing, financial transactions, and analytical data streams.</p><p>Even within the same cloud, traffic can be costly if it spans several regions or availability zones.</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/7tN5Z/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5736d954-ca1d-42a2-b4b9-98df905920ae_1260x660.png&quot;,&quot;thumbnail_url_full&quot;:&quot;&quot;,&quot;height&quot;:463,&quot;title&quot;:&quot;Cloud Traffic Prices&quot;,&quot;description&quot;:&quot;&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/7tN5Z/1/" width="730" height="463" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>So, if you decide to go with multiple clouds or multi-regional setups, you definitely need a multi-cloud strategy that takes traffic costs into account.</p><h2><strong>Mono-cloud</strong></h2><p>In general, I advocate for using only <strong>one cloud platform</strong> and using it well. With the maturity of cloud platforms, vendor lock-in is not a significant problem if you are concerned about it. </p><p>If you are satisfied with the provided services, you should leverage the cloud platform to the fullest extent. This will also help you be truly cloud-native. You will be able to utilize all the extra services built into your cloud provider, such as identity management, encryption services, and network integrations. These services are usually cloud-specific but add significant value, sometimes even free of charge. For example, you pretty much always get:</p><ul><li><p>API-driven infrastructure management</p></li><li><p>Built-in IAM (identity and access management)</p></li><li><p>Encryption services turned on by default </p></li><li><p>Cheap configuration and secret management </p></li></ul><h2><strong>Common denominator</strong></h2><p>On the other hand, there are use cases and products where it makes sense to have the option to jump between clouds. For example:</p><ul><li><p>Video rendering services (e.g. <a href="https://us.rebusfarm.net/en/">RebusFarm GmbH</a>)</p></li><li><p>Decentralized network services (e.g. <a href="https://www.mysteriumvpn.com/">Mysterium Network</a>)</p></li><li><p>Data extract/transform/load services (e.g. <a href="https://matrixify.app/">Matrixify</a>)</p></li></ul><p>I do not know if the products mentioned above use multiple clouds, but doing so would give them a strategic advantage. They would be able to migrate or replicate the infrastructure across multiple providers.</p><p>Not all clouds are equal, but there is always a common denominator that you can use to jump between them to optimize costs or gain a strategic advantage.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yXDa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5614538e-74ff-46b0-bb7c-565a1025df21_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yXDa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5614538e-74ff-46b0-bb7c-565a1025df21_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!yXDa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5614538e-74ff-46b0-bb7c-565a1025df21_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!yXDa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5614538e-74ff-46b0-bb7c-565a1025df21_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!yXDa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5614538e-74ff-46b0-bb7c-565a1025df21_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yXDa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5614538e-74ff-46b0-bb7c-565a1025df21_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5614538e-74ff-46b0-bb7c-565a1025df21_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:111608,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yXDa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5614538e-74ff-46b0-bb7c-565a1025df21_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!yXDa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5614538e-74ff-46b0-bb7c-565a1025df21_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!yXDa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5614538e-74ff-46b0-bb7c-565a1025df21_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!yXDa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5614538e-74ff-46b0-bb7c-565a1025df21_2526x1578.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>The common denominator includes the basic Infrastructure-as-a-Service components such as servers, networking, data storage, and security. In some cases, the common denominator could be Kubernetes.</p><p>All general-purpose clouds have the required capabilities. The glue code needed to achieve portability is minimal as well.</p><p>The benefits include:</p><ul><li><p><strong>Optimizing running costs:</strong> By using the cheapest cloud at the moment, you can take advantage of price drops.</p></li><li><p><strong>Ensuring uptime:</strong> Stay online regardless of a single cloud region's downtime, which can happen.</p></li><li><p><strong>Improving performance:</strong> Place your workloads closer to clients, as clouds have different regional availabilities.</p></li></ul><h2><strong>In short&#8230;</strong></h2><p>You probably can&#8217;t escape multi-cloud reality. But you can be prepared for that.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insights.extremeautomation.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Extreme A! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Why are Software Folks Bad at Estimates?]]></title><description><![CDATA[Hint: They are not!]]></description><link>https://insights.extremeautomation.io/p/why-are-software-folks-bad-at-estimates</link><guid isPermaLink="false">https://insights.extremeautomation.io/p/why-are-software-folks-bad-at-estimates</guid><dc:creator><![CDATA[Andrey Adamovich]]></dc:creator><pubDate>Mon, 29 Jul 2024 05:26:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Y0_i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>We&#8217;ve all been there. You make a guess, and then you are held accountable for not guessing right. </p><h2>Estimate is not a promise!</h2><p>An estimate is your best <strong>prediction</strong> based on the current knowledge of the situation at the time the estimate is given, assuming you devote all your time and focus to the estimated task. </p><p>If you as a project manager treat estimate as a hard deadline without taking into account other aspects, then you probably don't understand the <strong>complexity</strong> of the domain (hidden requirements, unknown unknowns) or the <strong>volatility</strong> of the environment (incidents, meetings, emails) you are in. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y0_i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y0_i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!Y0_i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!Y0_i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!Y0_i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:122853,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Y0_i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!Y0_i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!Y0_i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!Y0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5a76c2-f2c1-4f13-be6f-de8793856c35_2526x1578.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>Of course, we can expect that developers will take into account the degree of complexity and volatility when they provide the estimate. They actually do. But the thing is, it will hardly ever be precise anyway. Read on.  </p><h2>Precise estimates are possible, but&#8230;</h2><p>Creating a landing page with predefined design guidelines and adding a lead collection form can most likely be estimated precisely, because it&#8217;s a simple and well-known domain for many professional front-end developers on the market.</p><p>Writing a script to transform data from one well-defined data source to another well-defined data storage (given that the data models match) can be estimated precisely, because there are plenty of data engineers on the market who have done that many times.</p><p>A web application with dozens of screens and custom logic can never be estimated precisely. Yes, we can plan and dissect the tasks, but it will never be precise simply because: </p><ul><li><p>requirements will add up</p></li><li><p>scope will change</p></li><li><p>people will join and leave</p></li><li><p>new knowledge will be discovered on the way</p></li><li><p>market will change</p></li></ul><div class="pullquote"><p>&#8220;Walking on water and developing software from a specification are easy if both are frozen.&#8221;</p><p>&#8212; Edward Berard</p></div><p>In fact, this is similar to other domains.  </p><p>A car service can give you a precise estimate for changing a tire, provided they have one (or usually a pair) in stock. It&#8217;s a simple, well-defined task. They have experience, and they know how to do it.</p><p>A car service can only give you a guess when you report 'something is clunking when the steering wheel is turned left.' Most likely, this will only be a timebox that allows them to find more information, but it will hardly be enough to solve the actual problem.</p><p>A car service can hardly give you any estimate if they have 50 customers with different problems knocking on their door at the same time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hxsk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec050164-cff9-472b-9cde-b61f542a81b8_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hxsk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec050164-cff9-472b-9cde-b61f542a81b8_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!Hxsk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec050164-cff9-472b-9cde-b61f542a81b8_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!Hxsk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec050164-cff9-472b-9cde-b61f542a81b8_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!Hxsk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec050164-cff9-472b-9cde-b61f542a81b8_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hxsk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec050164-cff9-472b-9cde-b61f542a81b8_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec050164-cff9-472b-9cde-b61f542a81b8_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:152571,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hxsk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec050164-cff9-472b-9cde-b61f542a81b8_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!Hxsk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec050164-cff9-472b-9cde-b61f542a81b8_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!Hxsk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec050164-cff9-472b-9cde-b61f542a81b8_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!Hxsk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec050164-cff9-472b-9cde-b61f542a81b8_2526x1578.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>The <strong>prerequisites for a precise estimate</strong> are:</p><ul><li><p>Accumulated experience with the specific task type</p></li><li><p>Clear and well-defined requirements</p></li><li><p>A stable and predictable implementation environment</p></li></ul><p>Those are almost never guaranteed.</p><h2>Complexity is, well&#8230; complex</h2><p>Quite rarely do you see the full picture. In software development and operations, there are tasks that can be estimated precisely, but in many (if not most) cases, you'll miss that one dependency, hidden requirement, or underestimate the complexity.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OvlT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96d93e05-abf9-4318-98b9-e96b2043434e_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OvlT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96d93e05-abf9-4318-98b9-e96b2043434e_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!OvlT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96d93e05-abf9-4318-98b9-e96b2043434e_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!OvlT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96d93e05-abf9-4318-98b9-e96b2043434e_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!OvlT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96d93e05-abf9-4318-98b9-e96b2043434e_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OvlT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96d93e05-abf9-4318-98b9-e96b2043434e_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/96d93e05-abf9-4318-98b9-e96b2043434e_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:161639,&quot;alt&quot;:&quot;&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!OvlT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96d93e05-abf9-4318-98b9-e96b2043434e_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!OvlT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96d93e05-abf9-4318-98b9-e96b2043434e_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!OvlT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96d93e05-abf9-4318-98b9-e96b2043434e_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!OvlT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96d93e05-abf9-4318-98b9-e96b2043434e_2526x1578.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>Humans are optimists. That might be the reason we tackle complex tasks without having all the data. We explore the task domain. <strong>Exploration</strong> leads to new knowledge and more questions. </p><p>Quite often in software, we are not just changing a tire but designing a new custom engine that meets the customer's requirements. </p><p>Of course, the software world is becoming more industrialized. We have more platforms and frameworks and define more standards. This makes us faster, but it does not eliminate the &#8216;<strong>unknown unknowns</strong>&#8217; that we face daily. </p><h2>Simple tasks take time</h2><p>Have you ever been asked, 'Is it difficult to implement this?' The expected answer is binary: 'yes' or 'no.' But in reality, the person is actually questioning the speed of implementation. If it&#8217;s not difficult, then you can probably do it quickly, right?</p><p>The twist is that simple tasks take time. If someone tells you a task is simple, it does not mean the task can be done in five minutes. Complexity or simplicity does not directly correlate with time consumption. 'Simple' means that it's all clear and everything is known to implement it, but it can still take three days. It can also delay other 'simple' tasks in the pipeline.</p><h2>Context switching is not free</h2><p>Quite often, we exist in many contexts at the same time:</p><ul><li><p>project A</p></li><li><p>annual meeting B</p></li><li><p>strategic initiative C</p></li><li><p>research D</p></li><li><p>family problem E</p></li></ul><p>The more contexts task implementor is in, the more likely they will lose time going between different contexts. Focus is important for faster task completion. If focus is not given, then expect estimates to grow. Naturally.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wxqa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff083a02-09b0-4232-9088-d14c69e9be42_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wxqa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff083a02-09b0-4232-9088-d14c69e9be42_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!wxqa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff083a02-09b0-4232-9088-d14c69e9be42_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!wxqa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff083a02-09b0-4232-9088-d14c69e9be42_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!wxqa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff083a02-09b0-4232-9088-d14c69e9be42_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wxqa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff083a02-09b0-4232-9088-d14c69e9be42_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff083a02-09b0-4232-9088-d14c69e9be42_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:92469,&quot;alt&quot;:null,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wxqa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff083a02-09b0-4232-9088-d14c69e9be42_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!wxqa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff083a02-09b0-4232-9088-d14c69e9be42_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!wxqa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff083a02-09b0-4232-9088-d14c69e9be42_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!wxqa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff083a02-09b0-4232-9088-d14c69e9be42_2526x1578.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>The other problem with frequent context switching is that your brain loses ability to do <strong>deep work</strong>, because it prepares you for the next switch. </p><p>This constant state of readiness for change hinders implementor&#8217;s capacity to dive deeply into any single task, leading to superficial engagement rather than thorough understanding and completion. </p><p>As a result, tasks that require intense focus suffer, impacting the <strong>quality</strong> of your work. Over time, this can erode your skills in critical thinking and problem-solving, making it harder to achieve a state of flow where productivity and creativity peak.</p><p>To improve the likelihood of meeting the estimate, you must care about the implementation environment and reduce context switching as much as possible.</p><h2>Should we drop using estimates altogether?</h2><p>You may have seen reports stating that '70% of software projects fail.' They went over budget and were not delivered on schedule. </p><p>The thing is, it's the same with construction projects. Have you ever heard of a bridge or public building being completed on time and within budget? Good luck finding one.</p><p>Some believe we should adopt the #NoEstimates approach, at least in software development, because we are rarely right about those estimates. </p><p>On the other hand, you can&#8217;t really give infinite money and time to implement something. It will be not sustainable for the business. </p><p>So, what should we do?</p><div class="pullquote"><p>&#8220;Plans are useless but planning is indispensable.&#8221;</p><p>&#8212; Dwight D. Eisenhower</p></div><p>I believe we should continue estimating tasks, but we must recognize that the precision of these estimates can be significantly affected by factors beyond the professionalism or experience of the software team. </p><p>Software development is often an act of exploration. We know how much it will take to reach the mountain, but we have only a vague idea what&#8217;s on the other side.</p><p>Here are some key points to consider:</p><ol><li><p><strong>Estimates vs. Commitments</strong>: Never treat an estimate as a commitment unless the task is exceptionally simple or well-known. </p></li><li><p><strong>Task Complexity</strong>: Always consider the complexity of the task domain. Higher complexity, lower precision. </p></li><li><p><strong>Research Time</strong>: Acknowledge that research (or more accurate estimation) is a task that requires its own time allocation. The more time you spend researching, the more precise the estimate will be. But sometimes (or actually quite often) it is better to go into the exploration/implementation mode and get results faster.</p></li><li><p><strong>Task Outcome</strong>: Precise estimate is never the target. Value that customer gets is the target. Always search for the shortest path to that value.</p></li><li><p><strong>Time Boxing</strong>: Professional software development team can deliver value daily/weekly/monthly. Focus on what&#8217;s achievable within the time box.</p></li><li><p><strong>Continuous Plan Refinement</strong>: Plans are not set in stone. They change. Every time box/iteration will bring adjustments. </p></li><li><p><strong>Task Breakdown</strong>: Always dissect tasks into smaller, more manageable units.</p></li><li><p><strong>Implementation Environment</strong>: Minimize context switching. Reduce time spent on wasteful activities. Aggressively remove unnecessary tasks from your backlog.</p></li><li><p><strong>Building Trust</strong>: Foster a strong trust relationship between the customer and the software folks. </p></li><li><p><strong>Transparency</strong>: Be transparent about progress and any impediments that arise.</p></li></ol><p> Good luck with your projects!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insights.extremeautomation.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading eXtreme Automation! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Coming Soon...]]></title><description><![CDATA[Extreme A's newsletter is starting soon!]]></description><link>https://insights.extremeautomation.io/p/coming-soon</link><guid isPermaLink="false">https://insights.extremeautomation.io/p/coming-soon</guid><dc:creator><![CDATA[Andrey Adamovich]]></dc:creator><pubDate>Tue, 16 Jul 2024 07:44:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!muhE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to Extreme A! </p><p>The <strong><a href="https://newsletter.extremeautomation.io/">Extreme A</a></strong> will be about many things, but they all revolve around building and supporting software systems: <strong>#DevOps</strong>, <strong>#Automation Tooling</strong>, <strong>#Software Delivery</strong>, <strong>#Team Structures</strong>, <strong>#Strategy</strong> and more.</p><p>I&#8217;m a big fan of visualizations (sometimes even more than writing), so you can look forward to a picture or two in every post.</p><p>For shorter shots of <strong><a href="https://newsletter.extremeautomation.io/">Extreme A</a></strong> come and hang out on <strong><a href="https://newsletter.extremeautomation.io/notes">Substack Notes</a></strong> &#8212; it&#8217;s a bit like Twitter, but nice.</p><p>Happy reading! Content is coming soon!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!muhE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!muhE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!muhE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!muhE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!muhE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!muhE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.png" width="728" height="455" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:601357,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!muhE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!muhE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!muhE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!muhE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F113a2199-bddd-40ce-865d-9a69e4d2947a_2526x1578.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></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://insights.extremeautomation.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://insights.extremeautomation.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Modern Domain Registration]]></title><description><![CDATA[How many DNS entries do you need?]]></description><link>https://insights.extremeautomation.io/p/modern-domain-registration</link><guid isPermaLink="false">https://insights.extremeautomation.io/p/modern-domain-registration</guid><dc:creator><![CDATA[Andrey Adamovich]]></dc:creator><pubDate>Mon, 17 Apr 2023 19:14:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!L7Gw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L7Gw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L7Gw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!L7Gw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!L7Gw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!L7Gw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L7Gw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:218357,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L7Gw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!L7Gw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!L7Gw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!L7Gw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F499e62aa-f509-4de9-b3a0-f0e99860f442_2526x1578.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>What is needed to setup a domain for a modern organization? Just buying a domain from a registrar is not enough.</p><p>You have to:</p><ul><li><p>Decide whether you will use your registrar for DNS record management or you will use a different DNS provider (e.g. Cloudflare or Microsoft).</p></li><li><p>Select a hosting provider where your website code will be deployed. Or deploy it to your own servers.</p></li><li><p>Of course, the website has to be developed as well but that&#8217;s out-of-scope for this post.</p></li><li><p>Add an <code>A</code> or <code>CNAME</code> DNS record to point to the location of your website.</p></li><li><p>Ensure that your hosting provider gives you an SSL certificate for your domain. Or generate/buy your own from a different provider and upload that to your hosting provider.</p></li><li><p>Ensure that there is a redirect (on the hosting provider level) or <code>CNAME</code> record (on the DNS provider level) to automatically go from <code>www.mydomain.com</code> to just <code>mydomain.com</code>. The <code>www</code> prefix was cool in 1999, but in 2023 even browsers hide it by default.</p></li><li><p>Ensure that you redirect from port 80 to 433. Nobody wants to visit a website that does not show a lock icon in 2023.</p></li><li><p>Does your DNS provider support DNSSEC? Domain hijacking is not a myth. You better enable <code>DNSSEC</code>. A couple of DNS records need to be added.</p></li><li><p>The domain registrar stores information about you that is publicly visible. Things like your email address or physical address may appear in the records of public <code>WHOIS</code> databases that registrars are mandated to support. If it contains just official company data, then it&#8217;s probably OK. But quite often those records reflect private data of company owners. That&#8217;s not OK. On the other hand, many registrars support <code>WHOIS</code> information protection services. For extra fee, of course.</p></li><li><p>Then you have to select a mailing provider.</p></li><li><p>Add <code>MX</code> records to point to your mailing provider.</p></li><li><p>To fight spammers who pretend to send e-mails on your behalf, you have to add an <code>SPF</code> record that contains a list of allowed IP addresses from which you expect to send e-mails to your clients. Even though this record format maybe a bit outdated, it is still widely supported.</p></li><li><p>Additional protection can be reached by adding <code>DKIM</code> record with the public key of your mailing provider to sign messages that you send.</p></li><li><p>To get insights into <code>SPF</code>/<code>DKIM</code> alignment from the perspective of your e-mail receivers, you may also add a <code>DMARC</code> record that contains policy settings and mailbox that will get reports from other mail servers.</p></li><li><p>Those reports are quite technical, so, you may want to sign up for a <code>DMARC</code> service that will analyze those reports for you. For an additional fee.</p></li><li><p>Add a <code>BIMI</code> record that will contain the link to your brand logo. That maybe used by mail clients and search engines to show your brand identity.</p></li><li><p>For even better brand exposure, you may need to buy a Verified Mark Certificate (<code>VMC</code>) and add another entry in your DNS provider. That&#8217;s quite expensive.</p></li><li><p>Setup <code>MTA-STS</code> and <code>TLS-RPT</code> records to ensure that messages between your SMTP servers are encrypted.</p></li><li><p>Planning to run ads? You may have to add several <code>TXT</code> records to verify domain ownership at different providers.</p></li></ul><p>Did I forget anything?</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insights.extremeautomation.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Extreme A! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Irony of Software Terms]]></title><description><![CDATA[Outsider will not get it!]]></description><link>https://insights.extremeautomation.io/p/the-irony-of-software-terms</link><guid isPermaLink="false">https://insights.extremeautomation.io/p/the-irony-of-software-terms</guid><dc:creator><![CDATA[Andrey Adamovich]]></dc:creator><pubDate>Thu, 15 Sep 2022 07:07:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cKJF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The irony of the software industry is that we select terms that eventually (or initially) do not mean what they were supposed to mean or otherwise are very &#8220;cloudy&#8221;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cKJF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cKJF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!cKJF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!cKJF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!cKJF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cKJF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:120111,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cKJF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!cKJF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!cKJF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!cKJF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9622d434-b5e2-4dda-99ec-1fff22818bca_2526x1578.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></p><p>For example, <strong>cloud-native</strong> does not mean it runs in the cloud. It means, it surely can. But it rather means that the application or automation component has certain properties that, in fact, make it very convenient to run <strong>anywhere</strong>: on your laptop, inside a Raspberry Pi, inside an on-prem data center, or in any region of AWS, GCP, Azure, and other clouds.</p><p>On the contrary, you can run a non-cloud-native application inside the cloud as well. Take a big Java monolith running only on WebLogic, and deploy it to a big fat EC2 instance running as part of an EKS cluster in AWS. It will work. It does not make the app cloud-native, though.</p><p>The hub of cloud-native technologies - the Cloud Native Computing Foundation (<strong><a href="https://www.cncf.io/">CNCF</a></strong>) - <strong><a href="https://github.com/cncf/toc/blob/main/DEFINITION.md">defines</a></strong> it like that:</p><blockquote><p><em><strong>Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds.</strong></em></p></blockquote><p>Scalable, dynamic, modern. Those are the keywords. Cloud is just an example of the modern runtime environment, where we can deploy our cloud-native technology or application.</p><p>Did you know that <strong><a href="https://thenewstack.io/how-the-u-s-air-force-deployed-kubernetes-and-istio-on-an-f-16-in-45-days/">F16 fighter jets</a></strong> also run on a cloud-native technology - <strong>Kubernetes</strong>? That is probably as close to the clouds as it gets.</p><p>Some other <strong><a href="https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition">define</a></strong> cloud-native as leveraging the cloud computing model:</p><blockquote><p><em><strong>Cloud-native architecture and technologies are an approach to designing, constructing, and operating workloads that are built in the cloud and take full advantage of the cloud computing model.</strong></em></p></blockquote><p>According to the above definition, cloud-native is something that is built specifically for the cloud. Honestly, that would be a more correct and self-explanatory definition. But that&#8217;s not how people use the word.</p><p>All-in-all, it&#8217;s a nice <strong>marketing</strong> term that seems to be a synonym of cool and lightweight. Maybe we should blame the marketing department for the confusion.</p><p>Another term - <strong>Serverless</strong> - does not mean there are no servers. It rather means that servers are hidden enough by the platform abstraction layer. But they are there. For sure. Serverless is more about effective integration with existing managed services and cloud offerings. <strong>Serviceful</strong>, if you will. It&#8217;s reliable, scalable, event-driven.</p><p>Serverless tech is cloud-native, by the way.</p><p>Serverless is also a different <strong>billing</strong> model compared to the traditional server approach. Pay-as-you-go instead of pay-for-uptime. So, serverless is about billing and integrations, not about the absence of servers.</p><p>Software industry outsiders will definitely not get all the nuances &#128578;. Insiders are confused as well. Sometimes.</p><p>P.S. On a side note, cloud computing actually happens on the ground. Sometimes <strong><a href="https://datacentremagazine.com/data-centres/top-10-underground-data-centres">underground</a></strong>. Sometimes <strong><a href="https://news.microsoft.com/innovation-stories/project-natick-underwater-datacenter/">underwater</a></strong>.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insights.extremeautomation.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Extreme A! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The New Wall of Confusion]]></title><description><![CDATA[Was the fight with silos worth it?]]></description><link>https://insights.extremeautomation.io/p/the-new-wall-of-confusion</link><guid isPermaLink="false">https://insights.extremeautomation.io/p/the-new-wall-of-confusion</guid><dc:creator><![CDATA[Andrey Adamovich]]></dc:creator><pubDate>Wed, 14 Sep 2022 19:18:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!t9zD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong><a href="https://en.wikipedia.org/wiki/DevOps">DevOps</a></strong> was meant to break the rigid <strong><a href="https://devops.com/devops-the-ultimate-way-to-break-down-silos/">silos</a></strong> of the enterprise to improve the flow of changes through the system. To bring together Devs and Ops and reduce the confusion, reduce the cognitive load and let the team build a coherent value together.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t9zD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t9zD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!t9zD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!t9zD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!t9zD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t9zD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:57467,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t9zD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!t9zD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!t9zD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!t9zD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe945e803-c740-4d3c-88e0-574b1d1126b1_2526x1578.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>Now we have DevOps engineers, DevOps teams, and DevOps departments. New silos? Maybe not.</p><p>It makes sense! If done right. DevOps people are building rails for development work to run smoothly through the organization.</p><p>Today, DevOps has basically turned mostly into <strong><a href="https://platformengineering.org/">Platform Engineering</a></strong> with many good practices formed around it and lots of useful tools reaching their maturity. Meaning that we can outsource many things and get running and reliable infrastructure/pipelines within days.</p><p>OTOH, I see situations when the industrialization of DevOps stands in the way of development.</p><p>Platforms become so complex that they require more effort to maintain than business applications. Processes are built around blocking interactions between Devs and DevOps.</p><p>Is a new wall being built? I hope not.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insights.extremeautomation.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Extreme A! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Three Decades of Revolution]]></title><description><![CDATA[From Scrum to GitOps.]]></description><link>https://insights.extremeautomation.io/p/three-decades-of-revolution</link><guid isPermaLink="false">https://insights.extremeautomation.io/p/three-decades-of-revolution</guid><dc:creator><![CDATA[Andrey Adamovich]]></dc:creator><pubDate>Fri, 10 Jun 2022 19:05:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3oI1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3oI1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3oI1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!3oI1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!3oI1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!3oI1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3oI1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:141325,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3oI1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!3oI1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!3oI1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!3oI1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49682275-1527-4436-b7aa-e7b842cab4cc_2526x1578.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>I&#8217;ve started my professional career in 1999. A lot of rather revolutionary events have happened since. They have shaped modern software delivery, infrastructure management, automation, and me.</p><p>The below events are important to me as a professional. What are yours?</p><p>&#128161; 1999 - <strong><a href="https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658">Extreme Programming</a></strong> (or XP for short) practices are defined.</p><p>&#128161; 2001 - <strong><a href="https://agilemanifesto.org/">Agile manifesto</a></strong> is written.</p><p>&#128161; 2003 - <strong><a href="https://www.amazon.com/Lean-Software-Development-Agile-Toolkit/dp/0321150783">Lean Software Development</a></strong> book is released.</p><p>&#128161; 2006 - <strong><a href="https://aws.amazon.com/about-aws/">AWS</a></strong> is born. First global infrastructure as a service (IaaS) provider. It was called &#8220;Lego for IT world&#8221;.</p><p>&#128161; 2007 - <strong><a href="https://en.wikipedia.org/wiki/Heroku">Heroku</a></strong> is born. One of the first global platforms as a service (PaaS) provider.</p><p>&#128161; 2007 - <strong><a href="https://en.wikipedia.org/wiki/Infrastructure_as_code#Overview">Infrastructure-As-Code</a></strong> is becoming a mainstream concept.</p><p>&#128161; 2008 - <strong><a href="https://devops.com/the-origins-of-devops-whats-in-a-name/">DevOps</a></strong> term is born and the community starts active discussions around it.</p><p>&#128161; 2010 - DevOps = <strong><a href="https://medium.com/@seanguthrie/devops-principles-the-cams-model-9687591ca37a">C.A.M.S.</a></strong> (culture, automation, measurement, sharing)</p><p>&#128161; 2011 - <strong><a href="https://continuousdelivery.com/">Continuous Delivery</a></strong> practices are defined by Jez Humble and Dave Farley.</p><p>&#128161; 2011 - Folks from Heroku define <strong><a href="https://12factor.net/">the 12-factor</a></strong> application manifesto (a.k.a cloud-native).</p><p>&#128161; 2012 - <strong><a href="https://readwrite.com/why-the-future-of-software-and-apps-is-serverless/">Serverless</a></strong> is mentioned for the first time.</p><p>&#128161; 2013 - <strong><a href="https://www.docker.com/blog/tag/docker-birthday">Docker</a></strong> is born. That changed the way we look at application deployment forever.</p><p>&#128161; 2014 - <strong><a href="https://en.wikipedia.org/wiki/Kubernetes#History">Kubernetes</a></strong> is born. The future winner of the orchestrator wars.</p><p>&#128161; 2014 - AWS releases <strong><a href="https://en.wikipedia.org/wiki/AWS_Lambda">Lambda</a></strong> = function-as-a-service (FaaS). Serverless approaches growing in popularity.</p><p>&#128161; 2017 - <strong><a href="https://www.gitops.tech/">GitOps</a></strong> is defined by folks from WeaveWorks.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insights.extremeautomation.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Extreme A! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[About Stupid Questions]]></title><description><![CDATA[Don't be afraid to ask!]]></description><link>https://insights.extremeautomation.io/p/about-stupid-questions</link><guid isPermaLink="false">https://insights.extremeautomation.io/p/about-stupid-questions</guid><dc:creator><![CDATA[Andrey Adamovich]]></dc:creator><pubDate>Wed, 10 Nov 2021 08:17:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vT2T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vT2T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vT2T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!vT2T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!vT2T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!vT2T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vT2T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80159,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vT2T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.png 424w, https://substackcdn.com/image/fetch/$s_!vT2T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.png 848w, https://substackcdn.com/image/fetch/$s_!vT2T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.png 1272w, https://substackcdn.com/image/fetch/$s_!vT2T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ef3660-dad7-44ee-bed9-586c6a4b9869_2526x1578.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>Imagine you find yourself in the middle of a city you have never been to before. No phone, no money. What would be the first question you ask a stranger coming your way?</p><p>I guess: &#8220;What is this city?&#8221; or &#8220;What is this country?&#8221;</p><p>How stupid do you think it will sound to that person? <strong>Very stupid!</strong></p><p>But you need the answer in order to start your journey home or any other desired destination.</p><p>Whenever you start learning, ask questions you need an answer to keep you going. It does not matter what other people might think.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insights.extremeautomation.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Extreme A! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item></channel></rss>