<?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[Software Design: Tidy First?: Incentives]]></title><description><![CDATA[Folks create incentive systems all the time, sometimes without realizing that's what they are doing, often not contemplating the next move of the person to whom those incentives apply. My work on incentives aims to illuminate the creation, observation, & adjustment of incentives systems broadly defined (i.e. not just money, but status, intrinsic incentives, storytelling, etc.)]]></description><link>https://tidyfirst.substack.com/s/incentives</link><image><url>https://substackcdn.com/image/fetch/$s_!RtcJ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Ftidyfirst.substack.com%2Fimg%2Fsubstack.png</url><title>Software Design: Tidy First?: Incentives</title><link>https://tidyfirst.substack.com/s/incentives</link></image><generator>Substack</generator><lastBuildDate>Sat, 18 Apr 2026 06:39:55 GMT</lastBuildDate><atom:link href="https://tidyfirst.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Kent Beck]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[sponsorships@kentbeck.com]]></webMaster><itunes:owner><itunes:email><![CDATA[sponsorships@kentbeck.com]]></itunes:email><itunes:name><![CDATA[Kent Beck]]></itunes:name></itunes:owner><itunes:author><![CDATA[Kent Beck]]></itunes:author><googleplay:owner><![CDATA[sponsorships@kentbeck.com]]></googleplay:owner><googleplay:email><![CDATA[sponsorships@kentbeck.com]]></googleplay:email><googleplay:author><![CDATA[Kent Beck]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Social AI Adoption: Lessons from Hybrid Corn]]></title><description><![CDATA[Reflexive AI usage is now a baseline expectation at Shopify]]></description><link>https://tidyfirst.substack.com/p/social-ai-adoption-lessons-from-hybrid</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/social-ai-adoption-lessons-from-hybrid</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Thu, 10 Apr 2025 13:03:45 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e888f155-b2b1-4a79-8218-eb90df03d246_1835x1129.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="pullquote"><p>Reflexive AI usage is now a baseline expectation at Shopify</p></div><p>With these words, Shopify CEO Tobi L&#252;tke attempted to reset the behavior of his employees. I say &#8220;attempted&#8221; because history suggests that (bad news for him) this isn&#8217;t how change happens. (Good news) there are predictable, actionable patterns for how change, particularly the adoption of technical innovations, how that change happens.</p><p>In our excitement about the new new (&amp; believe me I&#8217;m full of excitement&#8212;coding at 3AM for the first time in decades) we forget that technologies, even revolutionary ones, don't spread instantly based on technical superiority. They grow in the medium of individual &amp; community connections.</p><p>It&#8217;s not our first time. We enter the Wayback Machine.</p><h2>Hybrid Corn</h2><p>Around the beginning of the 20th century, agricultural researchers started applying the sparkling new knowledge of genetics <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC5586364/">first published by Mendel</a> in 1866 (note we&#8217;re already 40 years along). Hybridization is cool, unintuitive, &amp; too much to go into in detail here, but the basic idea is to in-breed 4 lines of plants for several generations, then cross-breed pairs, then cross-breed those cross breeds. Voila! 15% better yields.</p><p>15%. Same farming process. Same land. Same equipment. 15%. So every farmer started using hybrid corn, right? Right?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qV-T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qV-T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png 424w, https://substackcdn.com/image/fetch/$s_!qV-T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png 848w, https://substackcdn.com/image/fetch/$s_!qV-T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png 1272w, https://substackcdn.com/image/fetch/$s_!qV-T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qV-T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png" width="462" height="457" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:457,&quot;width&quot;:462,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:407796,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://tidyfirst.substack.com/i/160775816?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qV-T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png 424w, https://substackcdn.com/image/fetch/$s_!qV-T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png 848w, https://substackcdn.com/image/fetch/$s_!qV-T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png 1272w, https://substackcdn.com/image/fetch/$s_!qV-T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa35be4-2130-43ba-9d85-bd8c14b6c083_462x457.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The first hybrid seed company was founded in 1926 (60 years). Adoption clustered in Iowa at first, then spread. By 1945, 90% of the Corn Belt was planted in hybrid seed (80 years, 20 years from commercial availability). European adoption followed in the 1950s, followed by the rest of the world in the 1960s. [ed: he says, from a naively American perspective].</p><h2>The Better Mousetrap vs. The Logistic Curve</h2><p>Rural sociologists Bryce Ryan and Neal Gross published &#8220;<a href="https://didawiki.cli.di.unipi.it/lib/exe/fetch.php/wma/agricultural_research_bulletin-v029-b372.pdf">The Diffusion of Hybrid Seed Corn in Two Iowa Communities</a>&#8221; in 1943, examining the mystery of &#8220;It&#8217;s better, why don&#8217;t they?&#8221; They interviewed 259 farmers about their adoption decisions and found:</p><ol><li><p><strong>Adoption Categories</strong>: Different categories of adopters follow different incentives (innovators, early adopters, majority adopters, and laggards)</p></li><li><p><strong>S-Shaped Diffusion Curve</strong>: Adoption followed an S-shaped curve over time, with &#8220;slow&#8221; initial uptake, followed by rapid acceleration, then leveling off</p></li><li><p><strong>Information Sources</strong>: Initial awareness sources (commercial seed dealers and salesmen) and influence sources (neighboring farmers) leading to actual adoption</p></li><li><p><strong>Two-Step Flow of Communication</strong>: Information flows from external sources to opinion leaders and then to followers</p></li><li><p><strong>Adoption as a Process</strong>: Adoption is not a single decision but a process with multiple stages (awareness, interest, trial, evaluation, adoption)</p></li></ol><h2>Economics</h2><p>Money is not the only driver of adoption, but money matters. Zvi Griliches published &#8220;<a href="https://escholarship.org/uc/item/9gw9z7j7">Hybrid Corn: An Exploration in the Economics of Technological Change</a>&#8221; in 1957. He found:</p><ul><li><p>Adoption rates varied by region based on economic profitability</p></li><li><p>Regions with higher expected returns adopted hybrid corn more quickly</p></li><li><p>Adoption followed a logistic growth curve</p></li></ul><p>He created a model that could predict the timing and rate of adoption based on economic variables.</p><h2>The Logistic Curve</h2><p>The S-shaped logistic curve is another deep dive we don&#8217;t have time for here. While there are closed form expressions of the logistic curve, I think of it in terms of a tug of war between two feedback loops. The growth side is a reinforcing loop where the bigger you grow, the easier it is to grow bigger:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4mFW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29c8910-ae57-416b-945f-ac8293910611_2671x1347.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4mFW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29c8910-ae57-416b-945f-ac8293910611_2671x1347.png 424w, https://substackcdn.com/image/fetch/$s_!4mFW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29c8910-ae57-416b-945f-ac8293910611_2671x1347.png 848w, https://substackcdn.com/image/fetch/$s_!4mFW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29c8910-ae57-416b-945f-ac8293910611_2671x1347.png 1272w, https://substackcdn.com/image/fetch/$s_!4mFW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29c8910-ae57-416b-945f-ac8293910611_2671x1347.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4mFW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29c8910-ae57-416b-945f-ac8293910611_2671x1347.png" width="1456" height="734" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c29c8910-ae57-416b-945f-ac8293910611_2671x1347.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:734,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11187476,&quot;alt&quot;:&quot;A graph showing growth over time with an exponential curve &amp; a positive feedback loop&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://tidyfirst.substack.com/i/160775816?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29c8910-ae57-416b-945f-ac8293910611_2671x1347.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A graph showing growth over time with an exponential curve &amp; a positive feedback loop" title="A graph showing growth over time with an exponential curve &amp; a positive feedback loop" srcset="https://substackcdn.com/image/fetch/$s_!4mFW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29c8910-ae57-416b-945f-ac8293910611_2671x1347.png 424w, https://substackcdn.com/image/fetch/$s_!4mFW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29c8910-ae57-416b-945f-ac8293910611_2671x1347.png 848w, https://substackcdn.com/image/fetch/$s_!4mFW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29c8910-ae57-416b-945f-ac8293910611_2671x1347.png 1272w, https://substackcdn.com/image/fetch/$s_!4mFW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc29c8910-ae57-416b-945f-ac8293910611_2671x1347.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>Left to its own devices, growth goes (from our perspective) vertical forever. We know that doesn&#8217;t happen, though. An inhibiting loop comes along &amp; overpowers the reinforcing loop at some point. The inhibiting loop introduces friction&#8212;the larger you grow, the harder it is to grow larger:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jI6D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jI6D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.png 424w, https://substackcdn.com/image/fetch/$s_!jI6D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.png 848w, https://substackcdn.com/image/fetch/$s_!jI6D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.png 1272w, https://substackcdn.com/image/fetch/$s_!jI6D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jI6D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.png" width="1456" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5197039,&quot;alt&quot;:&quot;The curve has gone flat instead of continuing up forever, with a negative feedback loop&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://tidyfirst.substack.com/i/160775816?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The curve has gone flat instead of continuing up forever, with a negative feedback loop" title="The curve has gone flat instead of continuing up forever, with a negative feedback loop" srcset="https://substackcdn.com/image/fetch/$s_!jI6D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.png 424w, https://substackcdn.com/image/fetch/$s_!jI6D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.png 848w, https://substackcdn.com/image/fetch/$s_!jI6D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.png 1272w, https://substackcdn.com/image/fetch/$s_!jI6D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f9d0e-7c66-4622-abc6-ca190892ef02_1835x1129.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>There&#8217;s so much more to say about this, some of which I&#8217;ve said in talking about 3X: Explore/Expand/Extract. The relevant point here is that growth follows laws &amp; it&#8217;s way more complicated than &#8220;build a better thing &amp; then everyone will instantly use it&#8221;.</p><h2>Risk Mitigation</h2><p>If you&#8217;re a peddler of innovation, as I have been for lo these decades, the logistic curve seems like friction. &#8220;But my stuff is <em>better</em>! Why isn&#8217;t everybody using it?&#8221; Well (and this is hard for us peddlers to swallow) maybe your stuff is better and maybe it&#8217;s not. The logistic curve protects the tribe from unintended negative consequences of innovation.</p><p>Lots of people will try lots of innovations. Yours is just one. Maybe there&#8217;s a hidden gotcha in your idea. The &#8220;slow&#8221; adoption gives the tribe the chance to explore the whole space. Sometimes this results in delays in adoption versus instantly adopting the best innovation, but the information to evaluate &#8220;best&#8221; doesn&#8217;t exist at the moment that decision would have to be made.</p><p>VHS is the price you pay for avoiding disaster.</p><h2>Why AI Is Adopted Slowly</h2><p>Maybe it is, maybe it isn&#8217;t. You can&#8217;t tell yet. That&#8217;s the first lesson of the logistic curve&#8212;early failure &amp; early success look identical early.</p><p>The second lesson is that adoption follows social lines, not technical analysis. Other people like you will use an innovation when they see you using it. Or vice versa.</p><p>The third lesson is that &#8220;like you&#8221; is not homogenous. There are folks incentivized by novelty [ed: raises hand], folks incentivized by finding early advantage, folks incentivized by risk reduction, &amp; folks incentivized to maintain the status quo.</p><p>The fourth lesson (&#8220;crossing the chasm&#8221;) is that cross-pollination between those seeking early advantage &amp; those seeking risk mitigation is rare. Reaching that early majority requires different tactics, different messages, different market structures.</p><p>The final lesson is that all this takes time. Even if time is compressed, it&#8217;s still time. Pages will need to be pulled from calendars before lots of folks program with agents.</p><h2>Predicted AI Adoption Timeline</h2><p>So what would I say to the Tobi L&#252;tkes of the world?</p><ul><li><p><strong>It&#8217;s still early</strong>: Despite the explosion of interest in generative AI over the past year, we're likely still in the early adopter phase for most AI applications. The steep part of the curve is ahead of us, not behind us.</p></li><li><p><strong>Social</strong>: The most effective driver of AI adoption isn't better models or improved accuracy&#8212;it's success stories from peers and respected figures in professional networks. Rather than push AI, encourage communities that will push AI.</p></li><li><p><strong>Time</strong>: Organizations need time to adapt workflows, retrain staff, address valid concerns, and develop the complementary skills needed to extract value from AI.</p></li><li><p><strong>Malicious compliance</strong>: The implied threat in the opening quote means that the downside of appearing not to use AI is a more powerful motivator than the upside of actually using it. Beware of getting what you asked for in ways that interfere with what you actually want. </p></li></ul><h2>Surfing the Logistic Wave</h2><p>The logistic curve isn't a limitation to overcome, it's a rhythm to understand and work with.</p><p>To my frustrated &#8220;everybody in 18 months&#8221; friends: vibe coding isn't failing, it's growing. Naturally. The S-curve is the shape of success. But it won&#8217;t be 18 months. It&#8217;s both already here &amp; it&#8217;ll take a decade.</p><p>Like the hybrid corn that transformed agriculture field by field, farm by farm, the truly transformative AI applications will spread not through marketing campaigns or technical superiority alone, but through the social fabric that connects us all, one trusted relationship at a time.</p><blockquote><p>Here is the Claude chat I used as research for this piece: https://claude.ai/share/2d0e502d-c1a7-4e06-bb4f-d3e91fded2e0</p></blockquote>]]></content:encoded></item><item><title><![CDATA[Retrospective Performance Reviews]]></title><description><![CDATA[First published November 2016]]></description><link>https://tidyfirst.substack.com/p/retrospective-performance-reviews</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/retrospective-performance-reviews</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Fri, 28 Mar 2025 14:33:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!j8Na!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>First published November 2016</p></blockquote><p>I&#8217;m hearing many stories about performance review cycles and the incentives they create, but I&#8217;m also getting a very reasonable question: what should we do now? Here&#8217;s an immediate suggestion.</p><div><hr></div><p><em>Thanks to today&#8217;s sponsor Unblocked.</em></p><p>When I was a young programmer we were berated for not writing more documentation, but that documentation always turned out to be useless by the time we needed it. That experience was my impetus for writing about communicative code (Smalltalk Best Practice Patterns &amp; Implementation Patterns).</p><p><a href="https://getunblocked.com/?utm_source=tidyfirst&amp;utm_medium=email&amp;utm_campaign=tidyfirst">Unblocked</a> meets the same need in the same moment--I have to change this code but what is going on? Unblocked answers this question with less effort on the part of the original programmer &amp; the answers are always up-to-date.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://getunblocked.com/?utm_source=tidyfirst&amp;utm_medium=email&amp;utm_campaign=tidyfirst" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j8Na!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.png 424w, https://substackcdn.com/image/fetch/$s_!j8Na!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.png 848w, https://substackcdn.com/image/fetch/$s_!j8Na!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.png 1272w, https://substackcdn.com/image/fetch/$s_!j8Na!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j8Na!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4183565,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://getunblocked.com/?utm_source=tidyfirst&amp;utm_medium=email&amp;utm_campaign=tidyfirst&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://tidyfirst.substack.com/i/159429711?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!j8Na!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.png 424w, https://substackcdn.com/image/fetch/$s_!j8Na!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.png 848w, https://substackcdn.com/image/fetch/$s_!j8Na!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.png 1272w, https://substackcdn.com/image/fetch/$s_!j8Na!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424d0895-88e5-4f5e-9370-e32be34c9221_3692x1846.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><div><hr></div><p>Performance review is a lousy planning tool [ed: see also predicted key results in OKRs], because it:</p><ul><li><p>Requires that you predict the unpredictable</p></li><li><p>Attribute all impact to an individual</p></li><li><p>Slice impact to fit into six months. Then five. Then four...</p></li></ul><p>What if you and your team used performance review retrospectively? Engineer the way you should engineer together:</p><ul><li><p>Balance long- and short-term</p></li><li><p>Balance features and quality</p></li><li><p>Help each other</p></li><li><p>Experiment cheaply</p></li><li><p>Dig in hard when you find value. </p></li></ul><p>Then, at the end of the cycle you all sit down together and divide up the pie. Y&#8217;all know how to engineer.</p><p>This only works if everyone on the team does it. One &#8220;free rider&#8221; will ruin it for everyone. The manager needs to accept the responsibility for keeping the team roped together &amp; telling everyone&#8217;s individual story at review time.</p><p>Every once in a while this is going to backfire. You won&#8217;t have enough impact or as much impact as you&#8217;d like. As a way to bet, though, it&#8217;s likelier that you will have more stories to tell at the end of the cycle this way than if you divide up a non-existent pie before you start.</p>]]></content:encoded></item><item><title><![CDATA[Moving Mental Mountains]]></title><description><![CDATA[When I was developing a piece of rural property, I was in awe of the guy who ran the &#8220;escavator&#8221;.]]></description><link>https://tidyfirst.substack.com/p/moving-mental-mountains</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/moving-mental-mountains</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Mon, 28 Oct 2024 14:43:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CCuG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382c2aee-9d0c-4b2e-84a5-11747e191cbe_542x526.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I was developing a piece of rural property, I was in awe of the guy who ran the &#8220;escavator&#8221;. Not excavator. Escavator. But he&#8217;d been running one for 30 years so I wasn&#8217;t about to &#8220;correct&#8221; his pronunciation. Also he cooked meth on the side &amp; he was scary when he was high. But that&#8217;s not my point.</p><p>My point is that he looked at terrain completely differently from how I looked at terrain. I&#8217;d see a hill &amp; think, &#8220;Well, I&#8217;ve got to go around that.&#8221; He&#8217;d look at a hill &amp; think of all the different places he could put it, all the shapes he could leave it in.</p><p>Warning: In what follows my main point is about digging into what I call background work more frequently because it&#8217;s become so much cheaper &amp; easier. That seems to get lost in the example I chose&#8212;AI potentially replacing programmers&#8212;&amp; the means I chose for analysis&#8212;namely Claude. Neither AI <em>vis a vis</em> programmer employment nor LLM hallucination invalidate my main point&#8212;be more curious, it&#8217;s cheaper now.</p><h2>Analysis</h2><p>When I had the impulse to use Thinkie Reverse Causality on <a href="https://tidyfirst.substack.com/p/maybe-accumulating-employees-is-a">the relationship between employee count &amp; revenue</a>, the subsequent analysis took most of a day. I was digging data out of SEC filings, figuring out how to render the data, iterating on the analysis. </p><p>All this is hard enough work that I hesitate to undertake it more than once a month. I think, &#8220;I wonder&#8230;&#8221;, grimace &#128556;, &amp; move along. Those &#8220;I wonder&#8221; moments are what I need to change. Analysis just got cheaper.</p><p>I posted the following on LinkedIn the other day.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.linkedin.com/posts/kentbeck_ceos-cfos-seem-excited-by-the-prospect-activity-7255577585370181633-R4QO?utm_source=share&amp;utm_medium=member_desktop" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CCuG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382c2aee-9d0c-4b2e-84a5-11747e191cbe_542x526.png 424w, https://substackcdn.com/image/fetch/$s_!CCuG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382c2aee-9d0c-4b2e-84a5-11747e191cbe_542x526.png 848w, https://substackcdn.com/image/fetch/$s_!CCuG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382c2aee-9d0c-4b2e-84a5-11747e191cbe_542x526.png 1272w, https://substackcdn.com/image/fetch/$s_!CCuG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382c2aee-9d0c-4b2e-84a5-11747e191cbe_542x526.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CCuG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382c2aee-9d0c-4b2e-84a5-11747e191cbe_542x526.png" width="542" height="526" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/382c2aee-9d0c-4b2e-84a5-11747e191cbe_542x526.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:526,&quot;width&quot;:542,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:118964,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/posts/kentbeck_ceos-cfos-seem-excited-by-the-prospect-activity-7255577585370181633-R4QO?utm_source=share&amp;utm_medium=member_desktop&quot;,&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_!CCuG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382c2aee-9d0c-4b2e-84a5-11747e191cbe_542x526.png 424w, https://substackcdn.com/image/fetch/$s_!CCuG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382c2aee-9d0c-4b2e-84a5-11747e191cbe_542x526.png 848w, https://substackcdn.com/image/fetch/$s_!CCuG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382c2aee-9d0c-4b2e-84a5-11747e191cbe_542x526.png 1272w, https://substackcdn.com/image/fetch/$s_!CCuG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382c2aee-9d0c-4b2e-84a5-11747e191cbe_542x526.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>60K impressions, 480 likes, 80 comments &amp; here&#8217;s the thing&#8212;nobody did the assignment. Nobody drafted a before &amp; after income statement &amp; balance sheet. This is the moment I&#8217;m trying to call out. Because it&#8217;s easy now to start to do the assignment.</p><h2>Claude&#8217;s Answer</h2><p>I asked Claude the same question. A minute later I got this. Of course the analysis is shallow &amp; flawed. Not the point! What I have here is good enough to decide whether I want to dig deeper.</p><p>That same moment, that &#8220;gotta go around this hill&#8221; moment, has changed. We can now decide to routinely dig into analysis that would have been too expensive to even start previously.</p><h3>Financial Impact Analysis: Tech Company Before &amp; After AI-Enabled Staff Reduction</h3><h4>Base Assumptions</h4><ul><li><p>50% reduction in software engineering headcount</p></li><li><p>Maintained productivity through AI augmentation</p></li><li><p>Using average tech company compensation metrics from 2023</p></li><li><p>Analysis based on public financial data from major software companies</p></li></ul><h4>Income Statement Impact</h4><p>(All figures in millions USD)</p><h5>Before AI Implementation</h5><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8VoF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16966d41-041b-4615-a403-caa4c9914e2a_301x199.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8VoF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16966d41-041b-4615-a403-caa4c9914e2a_301x199.png 424w, https://substackcdn.com/image/fetch/$s_!8VoF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16966d41-041b-4615-a403-caa4c9914e2a_301x199.png 848w, https://substackcdn.com/image/fetch/$s_!8VoF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16966d41-041b-4615-a403-caa4c9914e2a_301x199.png 1272w, https://substackcdn.com/image/fetch/$s_!8VoF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16966d41-041b-4615-a403-caa4c9914e2a_301x199.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8VoF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16966d41-041b-4615-a403-caa4c9914e2a_301x199.png" width="301" height="199" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16966d41-041b-4615-a403-caa4c9914e2a_301x199.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:199,&quot;width&quot;:301,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23468,&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_!8VoF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16966d41-041b-4615-a403-caa4c9914e2a_301x199.png 424w, https://substackcdn.com/image/fetch/$s_!8VoF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16966d41-041b-4615-a403-caa4c9914e2a_301x199.png 848w, https://substackcdn.com/image/fetch/$s_!8VoF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16966d41-041b-4615-a403-caa4c9914e2a_301x199.png 1272w, https://substackcdn.com/image/fetch/$s_!8VoF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16966d41-041b-4615-a403-caa4c9914e2a_301x199.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h5>After AI Implementation</h5><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jiYY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75508ae9-69c2-4808-a776-65c47df878b4_672x244.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jiYY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75508ae9-69c2-4808-a776-65c47df878b4_672x244.png 424w, https://substackcdn.com/image/fetch/$s_!jiYY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75508ae9-69c2-4808-a776-65c47df878b4_672x244.png 848w, https://substackcdn.com/image/fetch/$s_!jiYY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75508ae9-69c2-4808-a776-65c47df878b4_672x244.png 1272w, https://substackcdn.com/image/fetch/$s_!jiYY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75508ae9-69c2-4808-a776-65c47df878b4_672x244.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jiYY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75508ae9-69c2-4808-a776-65c47df878b4_672x244.png" width="672" height="244" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75508ae9-69c2-4808-a776-65c47df878b4_672x244.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:244,&quot;width&quot;:672,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:47306,&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_!jiYY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75508ae9-69c2-4808-a776-65c47df878b4_672x244.png 424w, https://substackcdn.com/image/fetch/$s_!jiYY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75508ae9-69c2-4808-a776-65c47df878b4_672x244.png 848w, https://substackcdn.com/image/fetch/$s_!jiYY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75508ae9-69c2-4808-a776-65c47df878b4_672x244.png 1272w, https://substackcdn.com/image/fetch/$s_!jiYY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75508ae9-69c2-4808-a776-65c47df878b4_672x244.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>Balance Sheet Impact</h4><p>(Key changes only)</p><h5>Assets</h5><ul><li><p>Increase in Cash (+$150M annually from improved operating income)</p></li><li><p>New Intangible Assets: AI software licenses &amp; implementation costs</p></li><li><p>Potential reduction in office space &amp; equipment</p></li><li><p>One-time increase in restructuring reserves for severance</p></li></ul><h5>Liabilities</h5><ul><li><p>New technology lease obligations or licensing payables</p></li><li><p>One-time increase in severance liabilities</p></li><li><p>Reduced ongoing compensation liabilities</p></li></ul><h4>Real-World Examples</h4><h5>Microsoft (2023)</h5><ul><li><p>Laid off 10,000 employees (~5% of workforce)</p></li><li><p>Reported $1.2B in severance costs</p></li><li><p>Maintained revenue growth while reducing headcount</p></li><li><p>Invested heavily in AI infrastructure</p></li></ul><h5>Meta (2022-2023)</h5><ul><li><p>Cut 21,000 jobs</p></li><li><p>Saved $1B+ in annual costs</p></li><li><p>Maintained user growth and ad revenue</p></li><li><p>Increased AI investment by $4B</p></li></ul><h5>IBM (2020-2023)</h5><ul><li><p>Ongoing restructuring with AI focus</p></li><li><p>~$1.5B average annual savings from automation</p></li><li><p>Reinvested savings into AI/cloud capabilities</p></li><li><p>Maintained service delivery with reduced headcount</p></li></ul><h2>Emotional Burps</h2><p>20 years of the internet have trained us to respond purely emotionally. Look at the comments on my original post.</p><blockquote><p>Business is about maximizing profits..however that can be achieved..</p></blockquote><blockquote><p>Generating tonnes of code via GenAI, claim tax relief as R&amp;D, huge balance sheet assets, inflated valuation, sell to clueless investors, profit &#128176;&#128176;&#128176;<br><br>But the code is unmanageable and riddled with 0-day vulnerabilities.</p></blockquote><blockquote><p>The best trick that engineering has pulled off to date is to convince marketing that what amounts to a glorified guessing game - one that consumes energy like it's mining cryptocurrency - is, in fact, a manifestation of intelligence.</p></blockquote><p>Again! Nobody did the assignment! We have gotten into the habit of responding in emotional burps instead of doing the work. I&#8217;m noting, not blaming. The incentives encourage burping&#8212;burping is less effort with more upside if you spark outrage.</p><h2>Caveats</h2><p>If you&#8217;re going to do this kind of analysis, be responsible.</p><ul><li><p>Make progressive investments. Spend the first 5 minutes finding out if the next hour is going to be worth it. Spend the hour finding out if a day will be worth it.</p></li><li><p>Double check everything. Make sure numbers add up. I fed Claude&#8217;s analysis to Perplexity &amp; got good pointers for where to follow up.</p></li><li><p>Publish your results. Write up what you find. Whether people are interested or not, writing will accelerate your learning.</p></li></ul><p>But for goodness sake, dig in! It&#8217;s cheaper now, more fun, &amp; potentially accelerates our collective learning. We no longer have to steer around &#8220;I wonder&#8221;s. We can plow right through them.</p><h2>P.S.</h2><p>When I said a while back &#8220;the economic value of 90% of my skills just went to $0 but the value of the other 10% just increased by 1000X&#8221;, people reasonably asked, &#8220;What&#8217;s the 10%&#8221; &amp; I reasonably responded, &#8220;How would I know?&#8221; The above is an example of that 10%&#8212;asking good &#8220;I wonder&#8221; questions &amp; then following up.</p>]]></content:encoded></item><item><title><![CDATA[Why Insurance Companies Are Rationally Failing Their Social Purpose]]></title><description><![CDATA[[Disclosure: Kent has worked in insurance since 1996.]]></description><link>https://tidyfirst.substack.com/p/why-insurance-companies-are-rationally</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/why-insurance-companies-are-rationally</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Fri, 25 Oct 2024 13:57:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cGh3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>[Disclosure: Kent has worked in insurance since 1996. He is an investor in SquareLife, one of the companies mentioned below.]</p><p>Insurance activates otherwise-idle resources for socially productive purposes. People need houses. Banks have money. The risk that a house will burn down &amp; leave the bank with a loss, though, rationally prevents banks from lending.</p><p>Home-owner&#8217;s insurance comes along &amp; transforms risk into opportunity. Now the bank&#8217;s risk of loss disappears. The bank writes the loan. People get a house. Contractors get work. The bank locks in a profit. Society benefits. (There are benefits to the policy holder too, but that&#8217;s not today&#8217;s topic.)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cGh3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cGh3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cGh3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cGh3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cGh3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cGh3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg" width="1456" height="742" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:742,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:277302,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&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_!cGh3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cGh3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cGh3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cGh3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9404769d-768b-49db-a5cf-5a7c3f23ea6c_1932x984.jpeg 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>Try a more personal case&#8212;an entrepreneur who happens to be a cancer survivor. They have an idea that could create social value. The bank has money to lend. The bank, though, responsibly takes into account the increased risk that the entrepreneur will die during the term of the loan &amp; leave the bank with a loss.</p><p>Again, insurance transforms risk into opportunity. By taking out a life insurance policy with the bank as the beneficiary, the bank can now lend, the entrepreneur can start their business, society benefits.</p><h2>Reality</h2><p>That&#8217;s the theory. In reality, the entrepreneur is unlikely to find coverage. Insurance companies, following a rational series of decisions I outline below, have for decades continually reduced the risks they cover, and so fail to fulfill their social purpose.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bJ87!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777aa7c3-d2e3-4f9b-ab61-af59d5e903c8_2124x985.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bJ87!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777aa7c3-d2e3-4f9b-ab61-af59d5e903c8_2124x985.heic 424w, https://substackcdn.com/image/fetch/$s_!bJ87!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777aa7c3-d2e3-4f9b-ab61-af59d5e903c8_2124x985.heic 848w, https://substackcdn.com/image/fetch/$s_!bJ87!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777aa7c3-d2e3-4f9b-ab61-af59d5e903c8_2124x985.heic 1272w, https://substackcdn.com/image/fetch/$s_!bJ87!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777aa7c3-d2e3-4f9b-ab61-af59d5e903c8_2124x985.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bJ87!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777aa7c3-d2e3-4f9b-ab61-af59d5e903c8_2124x985.heic" width="1456" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/777aa7c3-d2e3-4f9b-ab61-af59d5e903c8_2124x985.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:199019,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&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_!bJ87!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777aa7c3-d2e3-4f9b-ab61-af59d5e903c8_2124x985.heic 424w, https://substackcdn.com/image/fetch/$s_!bJ87!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777aa7c3-d2e3-4f9b-ab61-af59d5e903c8_2124x985.heic 848w, https://substackcdn.com/image/fetch/$s_!bJ87!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777aa7c3-d2e3-4f9b-ab61-af59d5e903c8_2124x985.heic 1272w, https://substackcdn.com/image/fetch/$s_!bJ87!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777aa7c3-d2e3-4f9b-ab61-af59d5e903c8_2124x985.heic 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>For example, according to the terms of my divorce agreement, I&#8217;m obligated to carry $1 million in life insurance coverage with my ex-wife as the beneficiary. Here&#8217;s what it looks like when I&#8217;m shopping for a policy.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T2ek!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67eafaaa-ffdb-46c4-aba8-a46c9b4e78e8_632x1244.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T2ek!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67eafaaa-ffdb-46c4-aba8-a46c9b4e78e8_632x1244.jpeg 424w, https://substackcdn.com/image/fetch/$s_!T2ek!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67eafaaa-ffdb-46c4-aba8-a46c9b4e78e8_632x1244.jpeg 848w, https://substackcdn.com/image/fetch/$s_!T2ek!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67eafaaa-ffdb-46c4-aba8-a46c9b4e78e8_632x1244.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!T2ek!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67eafaaa-ffdb-46c4-aba8-a46c9b4e78e8_632x1244.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T2ek!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67eafaaa-ffdb-46c4-aba8-a46c9b4e78e8_632x1244.jpeg" width="632" height="1244" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67eafaaa-ffdb-46c4-aba8-a46c9b4e78e8_632x1244.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1244,&quot;width&quot;:632,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:225713,&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_!T2ek!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67eafaaa-ffdb-46c4-aba8-a46c9b4e78e8_632x1244.jpeg 424w, https://substackcdn.com/image/fetch/$s_!T2ek!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67eafaaa-ffdb-46c4-aba8-a46c9b4e78e8_632x1244.jpeg 848w, https://substackcdn.com/image/fetch/$s_!T2ek!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67eafaaa-ffdb-46c4-aba8-a46c9b4e78e8_632x1244.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!T2ek!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67eafaaa-ffdb-46c4-aba8-a46c9b4e78e8_632x1244.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><p>I naturally want to pay as little as possible for this coverage, so I pick the vendor at the top. Turns out I&#8217;m not alone &#8212;the vast majority of shoppers [what is the percentage?] choose the cheapest policy. Why not? The service is a commodity.</p><p>Imagine you&#8217;re an insurance company. You want to make more sales. You have to lower prices to get that coveted top spot.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5A9z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1b79ca1-3abc-464c-a53f-76e5ff968ee1_1882x489.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5A9z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1b79ca1-3abc-464c-a53f-76e5ff968ee1_1882x489.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5A9z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1b79ca1-3abc-464c-a53f-76e5ff968ee1_1882x489.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5A9z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1b79ca1-3abc-464c-a53f-76e5ff968ee1_1882x489.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5A9z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1b79ca1-3abc-464c-a53f-76e5ff968ee1_1882x489.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5A9z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1b79ca1-3abc-464c-a53f-76e5ff968ee1_1882x489.jpeg" width="1456" height="378" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1b79ca1-3abc-464c-a53f-76e5ff968ee1_1882x489.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:378,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:151149,&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_!5A9z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1b79ca1-3abc-464c-a53f-76e5ff968ee1_1882x489.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5A9z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1b79ca1-3abc-464c-a53f-76e5ff968ee1_1882x489.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5A9z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1b79ca1-3abc-464c-a53f-76e5ff968ee1_1882x489.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5A9z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1b79ca1-3abc-464c-a53f-76e5ff968ee1_1882x489.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><p>(Read this is as: we push price down because that strongly effects ranking going up which strongly affects sales going up.)</p><p>You can&#8217;t, though, in good faith or in fear of regulators, just lower your prices below profitability.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7rkM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb853c-5e83-485d-b265-d22274609a4e_2189x734.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7rkM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb853c-5e83-485d-b265-d22274609a4e_2189x734.heic 424w, https://substackcdn.com/image/fetch/$s_!7rkM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb853c-5e83-485d-b265-d22274609a4e_2189x734.heic 848w, https://substackcdn.com/image/fetch/$s_!7rkM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb853c-5e83-485d-b265-d22274609a4e_2189x734.heic 1272w, https://substackcdn.com/image/fetch/$s_!7rkM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb853c-5e83-485d-b265-d22274609a4e_2189x734.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7rkM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb853c-5e83-485d-b265-d22274609a4e_2189x734.heic" width="1456" height="488" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dfbb853c-5e83-485d-b265-d22274609a4e_2189x734.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:488,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:160973,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&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_!7rkM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb853c-5e83-485d-b265-d22274609a4e_2189x734.heic 424w, https://substackcdn.com/image/fetch/$s_!7rkM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb853c-5e83-485d-b265-d22274609a4e_2189x734.heic 848w, https://substackcdn.com/image/fetch/$s_!7rkM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb853c-5e83-485d-b265-d22274609a4e_2189x734.heic 1272w, https://substackcdn.com/image/fetch/$s_!7rkM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb853c-5e83-485d-b265-d22274609a4e_2189x734.heic 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>(Read this as: also, as price goes down, our chance of survival goes down. Whoopsie!)</p><p>What other levers are there? Another way to lower prices without affecting profit or survival is to take on less risk.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QTql!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ac46c4-9a1e-4dc9-8379-e4222695e84f_2579x744.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QTql!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ac46c4-9a1e-4dc9-8379-e4222695e84f_2579x744.heic 424w, https://substackcdn.com/image/fetch/$s_!QTql!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ac46c4-9a1e-4dc9-8379-e4222695e84f_2579x744.heic 848w, https://substackcdn.com/image/fetch/$s_!QTql!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ac46c4-9a1e-4dc9-8379-e4222695e84f_2579x744.heic 1272w, https://substackcdn.com/image/fetch/$s_!QTql!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ac46c4-9a1e-4dc9-8379-e4222695e84f_2579x744.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QTql!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ac46c4-9a1e-4dc9-8379-e4222695e84f_2579x744.heic" width="1456" height="420" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23ac46c4-9a1e-4dc9-8379-e4222695e84f_2579x744.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:420,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:214691,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&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_!QTql!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ac46c4-9a1e-4dc9-8379-e4222695e84f_2579x744.heic 424w, https://substackcdn.com/image/fetch/$s_!QTql!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ac46c4-9a1e-4dc9-8379-e4222695e84f_2579x744.heic 848w, https://substackcdn.com/image/fetch/$s_!QTql!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ac46c4-9a1e-4dc9-8379-e4222695e84f_2579x744.heic 1272w, https://substackcdn.com/image/fetch/$s_!QTql!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ac46c4-9a1e-4dc9-8379-e4222695e84f_2579x744.heic 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>Those low prices are an illusion to me as a customer. The policy offered by the cheapest vendor requires that I prove that I&#8217;m not taking any risks. Not big risks like bungee jumping or hang gliding. I won&#8217;t be able to actually get a policy if I mountain bike. Or work on a container ship. Or god forbid that I actually survived cancer. The smallest additional risk increases prices &amp; results in the vendor selling drastically fewer policies. The vendor excludes all possible risks.</p><h2>Industry</h2><p>If just one vendor faced these incentives, the industry as a whole would still create social value. However, every insurance company is trapped in the same game. In the struggle to claim that productive top spot, all insurance companies tend towards only writing policies for people who won&#8217;t conceivably submit a claim.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Oxp_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63f88a6-442f-4858-8eef-2bd84d1ac0cf_2323x882.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Oxp_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63f88a6-442f-4858-8eef-2bd84d1ac0cf_2323x882.heic 424w, https://substackcdn.com/image/fetch/$s_!Oxp_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63f88a6-442f-4858-8eef-2bd84d1ac0cf_2323x882.heic 848w, https://substackcdn.com/image/fetch/$s_!Oxp_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63f88a6-442f-4858-8eef-2bd84d1ac0cf_2323x882.heic 1272w, https://substackcdn.com/image/fetch/$s_!Oxp_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63f88a6-442f-4858-8eef-2bd84d1ac0cf_2323x882.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Oxp_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63f88a6-442f-4858-8eef-2bd84d1ac0cf_2323x882.heic" width="1456" height="553" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c63f88a6-442f-4858-8eef-2bd84d1ac0cf_2323x882.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:553,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:183619,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&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_!Oxp_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63f88a6-442f-4858-8eef-2bd84d1ac0cf_2323x882.heic 424w, https://substackcdn.com/image/fetch/$s_!Oxp_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63f88a6-442f-4858-8eef-2bd84d1ac0cf_2323x882.heic 848w, https://substackcdn.com/image/fetch/$s_!Oxp_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63f88a6-442f-4858-8eef-2bd84d1ac0cf_2323x882.heic 1272w, https://substackcdn.com/image/fetch/$s_!Oxp_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc63f88a6-442f-4858-8eef-2bd84d1ac0cf_2323x882.heic 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>Both companies face the same incentives. But sales are (to a first approximation) a zero-sum game.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W9PG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43918b29-99c4-4f18-a4fc-2ced201297ad_2300x818.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W9PG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43918b29-99c4-4f18-a4fc-2ced201297ad_2300x818.heic 424w, https://substackcdn.com/image/fetch/$s_!W9PG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43918b29-99c4-4f18-a4fc-2ced201297ad_2300x818.heic 848w, https://substackcdn.com/image/fetch/$s_!W9PG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43918b29-99c4-4f18-a4fc-2ced201297ad_2300x818.heic 1272w, https://substackcdn.com/image/fetch/$s_!W9PG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43918b29-99c4-4f18-a4fc-2ced201297ad_2300x818.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W9PG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43918b29-99c4-4f18-a4fc-2ced201297ad_2300x818.heic" width="1456" height="518" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43918b29-99c4-4f18-a4fc-2ced201297ad_2300x818.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:518,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:184868,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&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_!W9PG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43918b29-99c4-4f18-a4fc-2ced201297ad_2300x818.heic 424w, https://substackcdn.com/image/fetch/$s_!W9PG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43918b29-99c4-4f18-a4fc-2ced201297ad_2300x818.heic 848w, https://substackcdn.com/image/fetch/$s_!W9PG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43918b29-99c4-4f18-a4fc-2ced201297ad_2300x818.heic 1272w, https://substackcdn.com/image/fetch/$s_!W9PG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43918b29-99c4-4f18-a4fc-2ced201297ad_2300x818.heic 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>So we make the counter move &amp; shave off even more risk to get back that coveted top spot.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x7zU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed07e028-5fd7-4f81-8b3d-a0bb9cc3a2fa_2373x880.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x7zU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed07e028-5fd7-4f81-8b3d-a0bb9cc3a2fa_2373x880.heic 424w, https://substackcdn.com/image/fetch/$s_!x7zU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed07e028-5fd7-4f81-8b3d-a0bb9cc3a2fa_2373x880.heic 848w, https://substackcdn.com/image/fetch/$s_!x7zU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed07e028-5fd7-4f81-8b3d-a0bb9cc3a2fa_2373x880.heic 1272w, https://substackcdn.com/image/fetch/$s_!x7zU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed07e028-5fd7-4f81-8b3d-a0bb9cc3a2fa_2373x880.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x7zU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed07e028-5fd7-4f81-8b3d-a0bb9cc3a2fa_2373x880.heic" width="1456" height="540" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ed07e028-5fd7-4f81-8b3d-a0bb9cc3a2fa_2373x880.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:540,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:214128,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&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_!x7zU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed07e028-5fd7-4f81-8b3d-a0bb9cc3a2fa_2373x880.heic 424w, https://substackcdn.com/image/fetch/$s_!x7zU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed07e028-5fd7-4f81-8b3d-a0bb9cc3a2fa_2373x880.heic 848w, https://substackcdn.com/image/fetch/$s_!x7zU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed07e028-5fd7-4f81-8b3d-a0bb9cc3a2fa_2373x880.heic 1272w, https://substackcdn.com/image/fetch/$s_!x7zU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed07e028-5fd7-4f81-8b3d-a0bb9cc3a2fa_2373x880.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But that cuts into our competitor&#8217;s sales, so they risk shave too.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X9b4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc54efd4-11ae-4447-8e17-ae63fadee785_2467x1015.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X9b4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc54efd4-11ae-4447-8e17-ae63fadee785_2467x1015.heic 424w, https://substackcdn.com/image/fetch/$s_!X9b4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc54efd4-11ae-4447-8e17-ae63fadee785_2467x1015.heic 848w, https://substackcdn.com/image/fetch/$s_!X9b4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc54efd4-11ae-4447-8e17-ae63fadee785_2467x1015.heic 1272w, https://substackcdn.com/image/fetch/$s_!X9b4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc54efd4-11ae-4447-8e17-ae63fadee785_2467x1015.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X9b4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc54efd4-11ae-4447-8e17-ae63fadee785_2467x1015.heic" width="1456" height="599" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bc54efd4-11ae-4447-8e17-ae63fadee785_2467x1015.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:599,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:247935,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&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_!X9b4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc54efd4-11ae-4447-8e17-ae63fadee785_2467x1015.heic 424w, https://substackcdn.com/image/fetch/$s_!X9b4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc54efd4-11ae-4447-8e17-ae63fadee785_2467x1015.heic 848w, https://substackcdn.com/image/fetch/$s_!X9b4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc54efd4-11ae-4447-8e17-ae63fadee785_2467x1015.heic 1272w, https://substackcdn.com/image/fetch/$s_!X9b4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc54efd4-11ae-4447-8e17-ae63fadee785_2467x1015.heic 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>It&#8217;s at this point in a system diagram that I like to simplify. In short, the less risk we take, the less risk they take, all mediated through this &#8220;cheapest take all&#8221; sales process.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Begu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d5ce30-4e24-4c68-af76-93f4cd5d685e_2405x874.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Begu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d5ce30-4e24-4c68-af76-93f4cd5d685e_2405x874.heic 424w, https://substackcdn.com/image/fetch/$s_!Begu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d5ce30-4e24-4c68-af76-93f4cd5d685e_2405x874.heic 848w, https://substackcdn.com/image/fetch/$s_!Begu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d5ce30-4e24-4c68-af76-93f4cd5d685e_2405x874.heic 1272w, https://substackcdn.com/image/fetch/$s_!Begu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d5ce30-4e24-4c68-af76-93f4cd5d685e_2405x874.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Begu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d5ce30-4e24-4c68-af76-93f4cd5d685e_2405x874.heic" width="1456" height="529" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4d5ce30-4e24-4c68-af76-93f4cd5d685e_2405x874.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:529,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:169703,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&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_!Begu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d5ce30-4e24-4c68-af76-93f4cd5d685e_2405x874.heic 424w, https://substackcdn.com/image/fetch/$s_!Begu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d5ce30-4e24-4c68-af76-93f4cd5d685e_2405x874.heic 848w, https://substackcdn.com/image/fetch/$s_!Begu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d5ce30-4e24-4c68-af76-93f4cd5d685e_2405x874.heic 1272w, https://substackcdn.com/image/fetch/$s_!Begu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4d5ce30-4e24-4c68-af76-93f4cd5d685e_2405x874.heic 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>Every insurance company is part of this system. Collectively, the industry is shaving off the risk that could be turned into opportunity.&nbsp;The social benefit for which insurance was created is vanishing.</p><p>The companies aren&#8217;t doing anything morally wrong. If I was a short-term investor I would insist that they behave exactly as they are. What emerges from all of these rational decisions, though, is an industry failing society.</p><h2>Remedy</h2><p>One solution is to offer coverage for actual people, not for a theoretically perfectly safe customer. For example, SquareLife, Check24, and DeHoop have combined to offer individually priced <a href="https://www.check24.de/risikolebensversicherung/schutz-trotz-vorerkrankungen/">life</a> <a href="https://www.check24.de/risikolebensversicherung/squarelife/">insurance</a> in Germany. Every applicant is separately underwritten &amp; priced. The result is a fair price for the risk &amp; a sustainable business for the vendors. The combination of vendors is powerful:</p><ul><li><p><a href="https://www.dhreinsurance.com/">DeHoop</a> has spent the century underwriting non-standard risk, precisely to expand the social benefit of insurance.</p></li><li><p>Check24 is Europe&#8217;s largest comparison shopping site.</p></li><li><p>SquareLife efficiently administers special-purpose insurance policies.</p></li></ul><p>Instead of being told, &#8220;Sorry, no insurance for you. You have a mildly risky job.&#8221;, these vendors can take into account significant health risks like addiction, obesity, or previous conditions &amp; still write policies.</p><p>It is hard work to scale custom underwriting. However, it is possible. Without covering actual risk, the insurance industry risks social irrelevance. The insurance industry needs to abandon commoditization, embrace insuring actual people, &amp; activate idle assets for society.</p><p>It&#8217;s always good news when I find a reinforcing loop that just happens to be running backwards from my goal. Reversing a reinforcing loop is a powerful lever for creating large changes to behavior with small changes to inputs. However, the system will have to change for society to recover the promised benefits of insurance.</p>]]></content:encoded></item><item><title><![CDATA[Product is a Party, Not Chess]]></title><description><![CDATA[Be smart about introducing programmers to customers, but do it!]]></description><link>https://tidyfirst.substack.com/p/product-is-a-party-not-chess</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/product-is-a-party-not-chess</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Mon, 16 Sep 2024 14:44:56 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6aeeb84e-bd38-47ef-9d48-827964a1e036_401x215.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>My blood is boiling. I&#8217;ve been researching the CTO role, trying to understand the technical executive responsibilities &amp; the various ways they can bundle together. I was listening to the CTO Insights podcast, when I heard this.</p><blockquote><p>&#8220;Yeah, I totally agree. I mean, look, the other piece of this is, some engineers aren't customer-facing ready. And I mean, no offense, but the neckbeard types, and there's a few people with ASD in our world, and that's okay.</p><p>That's great. I mean, it takes all kinds. And it's probably extremely uncomfortable for some of those people to do that.&#8221;</p><p>From CTO Insights Podcast: Mastering the CTO Role with Drew Falkman, Sep 13, 2024</p><div class="apple-podcast-container" data-component-name="ApplePodcastToDom"><iframe class="apple-podcast " data-attrs="{&quot;url&quot;:&quot;https://embed.podcasts.apple.com/us/podcast/cto-insights-podcast/id1743166543?i=1000669434752&quot;,&quot;isEpisode&quot;:true,&quot;imageUrl&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/podcast-episode_1000669434752.jpg&quot;,&quot;title&quot;:&quot;Mastering the CTO Role with Drew Falkman&quot;,&quot;podcastTitle&quot;:&quot;CTO Insights Podcast&quot;,&quot;podcastByline&quot;:&quot;&quot;,&quot;duration&quot;:3404000,&quot;numEpisodes&quot;:&quot;&quot;,&quot;targetUrl&quot;:&quot;https://podcasts.apple.com/us/podcast/mastering-the-cto-role-with-drew-falkman/id1743166543?i=1000669434752&amp;uo=4&quot;,&quot;releaseDate&quot;:&quot;2024-09-13T11:43:30Z&quot;}" src="https://embed.podcasts.apple.com/us/podcast/cto-insights-podcast/id1743166543?i=1000669434752" frameborder="0" allow="autoplay *; encrypted-media *;" allowfullscreen="true"></iframe></div><p>This material may be protected by copyright.</p></blockquote><p>I had to stop listening. Walk faster. Stop for breakfast. Walk some more.</p><p>Of all the arrogant, contemptuous, infantilizing, narrow-minded, self-centered things to say. In 2024.</p><p>Here&#8217;s what I heard:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;b342f73d-d7df-4b7d-8afa-a1441d61bdbb&quot;,&quot;duration&quot;:null}"></div><h2>Compassion</h2><p>Okay, <a href="https://tidyfirst.substack.com/p/emotions-a-code-book">anger is a reminder to defend one&#8217;s boundaries</a>. I&#8217;ve heard that reminder. I&#8217;m about to defend my boundaries, but with compassion &amp; constructive conversation. Contempt is also a reminder, a reminder of self-doubt.</p><p>I don&#8217;t know the folks involved in the podcast personally, so I can only speculate &amp; extrapolate from my own experience. In my experience, product people who try to &#8220;protect&#8221; customers from programmers (or is it protect programmers from customers, I can never quite tell?) seem insecure about the value they bring to the whole team. If every request doesn&#8217;t filter through them, well, then what are they adding? If they don&#8217;t make the priority decisions, well, then maybe they are superfluous to the process.</p><p>Hey, product folks, I see you. You&#8217;re going to be okay. You have substantial contributions to make to software development. Just not like this.</p><h2>Programmers Are People</h2><p>I&#8217;m not going to go on &amp; on here. I wanted to be sure to plant my flag on the subject. Here&#8217;s the thing&#8212;direct contact between programmers &amp; customers of all kinds is a powerful tool:</p><ul><li><p>Programmers understanding the nuances of users needs can make small adjustments that have large outcomes.</p></li><li><p>Programmers gain emotional energy from seeing the consequences of their work. This energy turns into better results.</p></li><li><p>Programmers understanding the cost of features can identify subtle opportunities for features in conversation with customers.</p></li></ul><p>I&#8217;m not saying it&#8217;s a free-for-all, just throw the programmers &amp; customers together (well, actually I <em>am</em> saying that&#8212;see also XP&#8212;but only after thorough preparation). Help programmers learn customer communication skills, what kinds of things to say &amp; what kinds of things not to say (I&#8217;m still learning these lessons).</p><p>The comment above about autists is both ignorant &amp; condescending. My sense is that while autists are often drawn to programming, the density has diminished over the years as more normies become programmers. And the autists can also learn communication skills, so that&#8217;s a dumb excuse.</p><p>My metaphor for product leadership is less chess player moving helpless pieces &amp; more party host. &#8220;You really should talk to so-and-so! I think you&#8217;d really get along.&#8221; Keep a sense of the mood of the party, where &amp; how to intervene.</p><h2>Responsibility</h2><p>I&#8217;ll finish with a cautionary word to anyone who has a platform. Don&#8217;t say stupid shit, discriminatory shit, contemptuous shit. Your platform comes with responsibility. You won&#8217;t feel the consequences of your mistakes, so you need to make yourself feel those consequences. Otherwise you&#8217;re running open loop &amp; that never ends well.</p><p>Peace.</p>]]></content:encoded></item><item><title><![CDATA[Private Reflections on Founder Mode]]></title><description><![CDATA[The stuff I don't want to say in public]]></description><link>https://tidyfirst.substack.com/p/private-reflections-on-founder-mode</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/private-reflections-on-founder-mode</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Sat, 07 Sep 2024 15:42:29 GMT</pubDate><content:encoded><![CDATA[<p>Recapping, Paul Graham wrote a post about how a naive interpretation of the conventional advice to Founder CEOs doesn&#8217;t work&#8212;hiring experts as direct reports, delegating all responsibility to these experts, only communicating with them, &amp; then lo &amp; behold, it all falls apart. Here&#8217;s the money quote:</p><div class="pullquote"><p>hire professional fakers and let them drive the company&#8230;</p></div>
      <p>
          <a href="https://tidyfirst.substack.com/p/private-reflections-on-founder-mode">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[No "We" in IC]]></title><description><![CDATA[First published 2017.]]></description><link>https://tidyfirst.substack.com/p/no-we-in-ic</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/no-we-in-ic</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Fri, 09 Aug 2024 12:45:56 GMT</pubDate><content:encoded><![CDATA[<blockquote><p>First published 2017. I was talking to an organization where individual performance ratings had taken on too much importance. They never tried the experiment, but I&#8217;m curious what would have happened if they had tried.</p><p>While this post is From the Archives I listed it under Incentives. I&#8217;m being reminded of all the work I did then &amp; subsequently on incentive systems for engineers. I&#8217;m convinced that our local Google-copying maximum is not the best we can do.</p></blockquote><p>There is a story in The Goal about a Scout troop on a hike. The first day, the implicit goal is to get the first person to camp. Everyone is left to get to camp at their own speed. One person is slow and out of shape, so everyone has to go search in the gathering dusk. The next day, the troop leader decides that the completion criterion should be when the <em>last </em>person arrives at camp.</p><p>Chaos ensues. The fast hikers go charging ahead and have to be pulled back. The troop leader changes the order so the <em>slowest </em>hiker is in front. Frustration, but then magic happens. The faster hikers channel their frustration into helping the slowest hiker go faster&#8211;unload their pack, make sure they take proper rests, help with foot care. The troop goes faster and everybody gets to camp in the early afternoon, together.</p><h2><strong>Thought Experiment</strong></h2><p>I remembered this story during a conversation with a former Marine in Afghanistan who said, &#8220;There is no individual success without mission success.&#8221; I proposed a thought experiment based on this statement:</p><ol><li><p>Teams get ratings too</p></li><li><p>No individual can get a rating higher than their team&#8217;s rating</p></li></ol><p>No individual success without mission success.</p><h2><strong>Consequences</strong></h2><p>The discussion of this thought experiment surprised me. I was hoping that the consequence would be that stronger members of the team would help weaker members be more successful so the team would be more successful. Most of the comments were about perverse incentives that would make the organization as a whole <em>less </em>successful:</p><ul><li><p>Good performers would flock together, leaving many teams under-talented.</p></li><li><p>Good performers would plow ahead, hoping to carry their teams to success, and try to dump poor performers.</p></li><li><p>Junior engineers would avoid long-term projects that are practically guaranteed middling ratings for 2-3 review cycles. They want a big win &amp; a promotion. [ed: this was an up-or-out organization].</p></li></ul><h2><strong>Conclusion</strong></h2><p>It&#8217;s called an &#8220;experiment&#8221; because you don&#8217;t know how it&#8217;s going to turn out. Every set of incentives has consequences, including the incentives we have now and any set of incentives we replace them with. I&#8217;m beginning to appreciate how straightforward the consequences of &#8220;everybody has a pile of illiquid equity&#8221; was, but that&#8217;s not a state of affairs we can recreate.</p><p>Someone (out yourself in the comments if you&#8217;d like) donated the title of this note: &#8220;there is no &#8216;WE&#8217; in &#8216;IC&#8217;&#8221;. I wonder if a change of vocabulary would help a little. Managers &#8220;support&#8221; teams. Maybe if we changed &#8220;individual contributor&#8221; to &#8220;team member&#8221; that would help?</p>]]></content:encoded></item><item><title><![CDATA[Humans >> Data]]></title><description><![CDATA[&#8220;Wanna understand developer productivity?]]></description><link>https://tidyfirst.substack.com/p/humans-data</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/humans-data</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Thu, 08 Aug 2024 18:08:24 GMT</pubDate><content:encoded><![CDATA[<p>&#8220;Wanna understand developer productivity? Look at <em>this</em> set of numbers!&#8221;</p><p>&#8220;No, no, those numbers can be gamed. Look at <em>this</em> set of numbers! They are based on a <em>survey</em>!&#8221;</p><p>&#8220;No, those micro-optimize. Look at <em>these</em> numbers over here!&#8221;</p><p>I&#8217;m getting tired of this dance. If you want to lead geeks effectively, at whatever scale, you need to be a person &amp; interact with them as people. You need to build, maintain, &amp; repair relationships. You need to be vulnerable while setting boundaries. You need to pay attention &amp; exercise judgement. The foundation is person-to-person, in spite of the power differential.</p><p>Looking at numbers is one way to pay attention, but it&#8217;s a limited, biased, &amp; temporary way. There is no perfectly balanced set of metrics that will &#8220;drive&#8221; better behavior. As soon as such a set is introduced, clever folks will begin to subvert the numbers to their own benefit (they aren&#8217;t trying to make things worse for their colleagues, users, &amp; investors&#8212;that&#8217;s just how it works out).</p><h2>Productivity</h2><p>Back to first principles. Productivity is the ratio of output to input. If we put $1 in &amp; get $2 out, then productivity is 200%.</p><p>If we spent $100m on engineering and we get $200m in sales, then engineering productivity is 200%. But wait, I hear you say, there&#8217;s a lot more going on than programming. Product, design, customer support, marketing&#8212;we don&#8217;t get the $200m if they don&#8217;t also do their jobs.</p><p>Kinda my point. As soon as we zoom in to &#8220;just&#8221; engineering, we&#8217;re no longer measuring productivity, we&#8217;re measuring something else. And all the something elses we can measure have the potential to distort development.</p><p>Reward more deploys, you&#8217;ll get more deploys. Punish more incidents, you get fewer incidents. Users unhappy, profits down, employees bailing? At least it&#8217;s not engineering&#8217;s fault. We made our numbers.</p><h2>Conclusion</h2><p>What&#8217;s a leader to do, if you can&#8217;t &#8220;hold them accountable&#8221;? As I said above, be a person. Tell stories. Listen, empathetically but critically. Set an example. Read the room. Create skin-in-the-game situations, not by giving cash (another distorting move) but by making sure, for example, that folks play the game they&#8217;re writing or their kids do or their parents do.</p><p>People suck at being machines. Treat them as you would a machine &amp; they are going to suck.</p>]]></content:encoded></item><item><title><![CDATA[Standups: Individual → Teammate]]></title><description><![CDATA[I was asked about standup meetings the other day&#8212;]]></description><link>https://tidyfirst.substack.com/p/standups-individual-teammate</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/standups-individual-teammate</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Mon, 08 Jul 2024 15:49:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-Vz0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99166f31-8019-4f83-8dee-ffde3c06056d_809x751.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I was asked about standup meetings the other day&#8212;</p><ul><li><p>When should they be run?</p></li><li><p>How long?</p></li><li><p>What topics?</p></li><li><p>How big a team?</p></li><li><p>What questions?</p></li></ul><h2>People</h2><p>Hang on. We&#8217;re missing the point here. What fundamental human need is met by a morning standup? Not what does the team need or the organization need or the users need. The geeks, when they meet in the morning, what&#8217;s going on?</p><p>It&#8217;s tempting to view the activities of a software development team as a kind of board full of knobs/levers/gauges. Too many bugs? Turn up the tests. Not enough responsiveness? Plan more often.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-Vz0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99166f31-8019-4f83-8dee-ffde3c06056d_809x751.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-Vz0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99166f31-8019-4f83-8dee-ffde3c06056d_809x751.png 424w, https://substackcdn.com/image/fetch/$s_!-Vz0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99166f31-8019-4f83-8dee-ffde3c06056d_809x751.png 848w, https://substackcdn.com/image/fetch/$s_!-Vz0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99166f31-8019-4f83-8dee-ffde3c06056d_809x751.png 1272w, https://substackcdn.com/image/fetch/$s_!-Vz0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99166f31-8019-4f83-8dee-ffde3c06056d_809x751.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-Vz0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99166f31-8019-4f83-8dee-ffde3c06056d_809x751.png" width="809" height="751" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99166f31-8019-4f83-8dee-ffde3c06056d_809x751.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:751,&quot;width&quot;:809,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:766426,&quot;alt&quot;:&quot;Cockpit with a million dials &amp; gauges&quot;,&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="Cockpit with a million dials &amp; gauges" title="Cockpit with a million dials &amp; gauges" srcset="https://substackcdn.com/image/fetch/$s_!-Vz0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99166f31-8019-4f83-8dee-ffde3c06056d_809x751.png 424w, https://substackcdn.com/image/fetch/$s_!-Vz0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99166f31-8019-4f83-8dee-ffde3c06056d_809x751.png 848w, https://substackcdn.com/image/fetch/$s_!-Vz0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99166f31-8019-4f83-8dee-ffde3c06056d_809x751.png 1272w, https://substackcdn.com/image/fetch/$s_!-Vz0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99166f31-8019-4f83-8dee-ffde3c06056d_809x751.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><figcaption class="image-caption">Not Software Development</figcaption></figure></div><p>While practices do have observable effects, there is a deeper, more human &amp; humane, interpretation of the activities of software development. We aren&#8217;t engineers in a giant, insubstantial locomotive. We&#8217;re people. Dealing with people.</p><h2>Person &#8594; Teammate</h2><p>Capitalism requires code switching. From the close of business one day to the start of business the next, we are parents, spouses, musicians, writers, runners, movie critics, comedians. Then when that whistle blows in the morning, we are instantly transformed into workers &amp; teammates. Our individual goals &amp; aspirations &amp; skills are seconded to the team, to a degree &amp; for a while.</p><p>I&#8217;m not going to guess which one of these sets of roles is Bruce Banner &amp; which is The Hulk for you, but the transition between is painful. It may be the sort of pain we just get used to &amp; so pretend it doesn&#8217;t exist, but it&#8217;s still there.</p><p><em>That&#8217;s</em> what the standup meeting is there for&#8212;to give everyone a moment to say, &#8220;Oh, yeah, okay, these people &amp; their needs are going to be important to me for the next 9 hours.&#8221; Take a breath. Get to work.</p><p>Different contexts will require different approaches to this transition. If the team is co-located &amp; used to showing up at around the same time &amp; pairs switch frequently &amp; folks gather around the espresso maker most mornings, then maybe folks don&#8217;t need a ritual to manage the transition from person to worker. If the team is fully remote &amp; in different timezones &amp; just getting used to each other then likely yes, the need for ritual supporting the transition is greater (also harder because of the time shifts, which is why Mechanical Orchard teams tend to be organized by longitude).</p><p>At Gusto a group of us used to gather by the coffee machines &amp; give everyone walking to their morning coffee a giant &#8220;woo woo&#8221; &amp; an arm wave. If you&#8217;re looking for efficiency, that&#8217;s a damned efficient way to get folks out of &#8220;me&#8221; mode &amp; into &#8220;us&#8221; mode. Doesn&#8217;t look great from a bits/person/second metric but hey metrics don&#8217;t tell the whole story.</p><p>Treating standup meetings as a technical solution to a technical problem&#8212;we need to communicate this many bits of information to this many people as efficiently as possible&#8212;misses the real point. We&#8217;re people. With needs. The better those needs are met, the better we can meet the needs of others.</p>]]></content:encoded></item><item><title><![CDATA[The Documentation Tradeoff]]></title><description><![CDATA[A little, sure, but be careful about more]]></description><link>https://tidyfirst.substack.com/p/the-documentation-tradeoff</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/the-documentation-tradeoff</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Wed, 12 Jun 2024 16:46:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I saw one too many posts about how <em>responsible</em> programmers document their code. I put out the short form of my position:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.linkedin.com/feed/update/urn:li:activity:7205974279572668416/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Sh_3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52cdb011-5dd8-440b-a655-b4bf1787908a_542x381.png 424w, https://substackcdn.com/image/fetch/$s_!Sh_3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52cdb011-5dd8-440b-a655-b4bf1787908a_542x381.png 848w, https://substackcdn.com/image/fetch/$s_!Sh_3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52cdb011-5dd8-440b-a655-b4bf1787908a_542x381.png 1272w, https://substackcdn.com/image/fetch/$s_!Sh_3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52cdb011-5dd8-440b-a655-b4bf1787908a_542x381.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Sh_3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52cdb011-5dd8-440b-a655-b4bf1787908a_542x381.png" width="542" height="381" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/52cdb011-5dd8-440b-a655-b4bf1787908a_542x381.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:381,&quot;width&quot;:542,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:91705,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/feed/update/urn:li:activity:7205974279572668416/&quot;,&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_!Sh_3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52cdb011-5dd8-440b-a655-b4bf1787908a_542x381.png 424w, https://substackcdn.com/image/fetch/$s_!Sh_3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52cdb011-5dd8-440b-a655-b4bf1787908a_542x381.png 848w, https://substackcdn.com/image/fetch/$s_!Sh_3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52cdb011-5dd8-440b-a655-b4bf1787908a_542x381.png 1272w, https://substackcdn.com/image/fetch/$s_!Sh_3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52cdb011-5dd8-440b-a655-b4bf1787908a_542x381.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>As with all short takes, I elided nuance to keep the word count down. Below&#8217;s a more thorough treatment of how I see documentation &amp; when to write it.</p><h2>Straw Arguments</h2><p>&#8220;Irresponsible&#8221;. It is the responsibility of all programmers to communicate effectively with their colleagues (and their future self). Even if the business doesn&#8217;t ask you to communicate, or actively discourages you from taking the time to communicate, programmers have a duty of care to communicate. I&#8217;m not saying &#8220;don&#8217;t communicate&#8221;. I&#8217;m saying think about the tradeoffs when you consider what &amp; how to communicate.</p><p>&#8220;No documentation&#8221;. I didn&#8217;t say &#8220;no documentation&#8221;. People reasonably commented:</p><div class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/home&quot;,&quot;commentId&quot;:58807202,&quot;comment&quot;:{&quot;id&quot;:58807202,&quot;date&quot;:&quot;2024-06-11T20:15:23.870Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;I find it so helpful when I see docs that help me get started on a new codebase\n\nIt tells the command(s) to install all requirements and run a test suite \n\nIt explains how people can contribute to our\n\nIt gives a quick overview of the structure&quot;,&quot;body_json&quot;:{&quot;type&quot;:&quot;doc&quot;,&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;I find it so helpful when I see docs that help me get started on a new codebase&quot;}]},{&quot;type&quot;:&quot;bulletList&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;listItem&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;It tells the command(s) to install all requirements and run a test suite &quot;}]}]},{&quot;type&quot;:&quot;listItem&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;It explains how people can contribute to our&quot;}]}]},{&quot;type&quot;:&quot;listItem&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;It gives a quick overview of the structure&quot;}]}]}]}]},&quot;restacks&quot;:0,&quot;reaction_count&quot;:1,&quot;attachments&quot;:[],&quot;name&quot;:&quot;Fernando Cordeiro&quot;,&quot;user_id&quot;:11287840,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/ed9fe66a-726e-49a5-8a01-0e457438af45_3000x2000.png&quot;,&quot;user_bestseller_tier&quot;:null}}" data-component-name="CommentPlaceholder"></div><p>I don&#8217;t have a problem with that level of documentation.</p><p>&#8220;Self-documenting code&#8221;. Not what I&#8217;m advocating. Near as I can tell, &#8220;self-documenting code&#8221; was invented as yet another excuse for programmers not to have to talk to other people. Yes, communicating through code is one of the media we should get good at using, but that&#8217;s different than whistling past &#8220;self-documenting&#8221;.</p><h2>Cycle</h2><p>I&#8217;ll admit to being triggered by the calls for more documentation. It&#8217;s part of the neo-waterfall movement rising recently.</p><ul><li><p>Just write the specification first, then development will go more smoothly.</p></li><li><p>Design up front, then development will go more smoothly.</p></li><li><p>Have product people pick the features &amp; hand them to programmers, then development will go more smoothly.</p></li><li><p>Don&#8217;t waste programmers&#8217; time with tests. Have a QA department test, then development will go more smoothly.</p></li></ul><p>(One wonders if &#8220;development goes more smoothly&#8221; is just the wrong goal, but that&#8217;s a topic for another day.)</p><p>I&#8217;ve been through this documentation story before. I can predict how it ends. By the time you read the documentation it&#8217;s out of sync with the code so you end up reading the code anyway. But then you feel bad, so you write more documentation &amp; force yourself to update documentation whenever the code changes. But that takes time away from development &amp; the pressure is on, so you stop writing/updating. So the next time you read the docs they don&#8217;t help. Damned if you do, damned if you don&#8217;t.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zM8N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zM8N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic 424w, https://substackcdn.com/image/fetch/$s_!zM8N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic 848w, https://substackcdn.com/image/fetch/$s_!zM8N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic 1272w, https://substackcdn.com/image/fetch/$s_!zM8N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zM8N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic" width="1456" height="548" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:548,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:152431,&quot;alt&quot;:&quot;More documentation leads to more decay leads to more maintenance leads to more pressure leads to less documentation&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&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="More documentation leads to more decay leads to more maintenance leads to more pressure leads to less documentation" title="More documentation leads to more decay leads to more maintenance leads to more pressure leads to less documentation" srcset="https://substackcdn.com/image/fetch/$s_!zM8N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic 424w, https://substackcdn.com/image/fetch/$s_!zM8N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic 848w, https://substackcdn.com/image/fetch/$s_!zM8N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic 1272w, https://substackcdn.com/image/fetch/$s_!zM8N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66e6de94-3308-4999-aaa8-48d6660168da_2352x886.heic 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 more documentation the greater the burden, the greater the burden the less useful the documentation.</p><p>As I said up front, I&#8217;m not anti-documentation, I&#8217;m just anti-authority-misaligned-with-responsibility calls for more documentation.</p><h2>Tradeoff</h2><p>Just as every line of code you write should be justified in some way, every document you write should be justified. Here are the factors that create the sweet spot for a document:</p><ul><li><p>Large audience. Erich &amp; I happily wrote Javadoc for JUnit because we had hundreds of thousands of users. If we were writing for 3 colleagues, then we could just explain stuff in person.</p></li><li><p>Stability. If the information conveyed doesn&#8217;t change much, then documentation costs less to write/update. After the first couple of years, the JUnit API stabilized, so documenting was also stable.</p></li><li><p>Low cost of delay. If you could be writing another user experiment potentially unlocking 50% growth &amp; instead you stop to write docs, then that&#8217;s an exorbitantly expensive document.</p></li></ul><h2>Alternatives</h2><p>I started by saying that communication is a programming imperative. What else is a programmer to do to communicate besides writing documents?</p><ul><li><p>Simplify. As someone who has spent thousands of hours writing literate programs, I appreciate the moment when I have to choose between explaining something unnecessarily complicated &amp; removing the unnecessary complication. To paraphrase the quote about pilots, the superior programmer exercises superior design skills to avoid having to exercise superior communication skills.</p></li><li><p>Socialize. Pairing. Whiteboarding. Story-telling over lunch. We humans have used social methods for millennia to communicate our most sacred concepts.</p></li><li><p>Test. Passing tests are guaranteed to be in sync with the code. If you focus on tests as a communication medium as well as a double-check on system health, you can make them speak.</p></li><li><p>Code. Likewise, focusing on code as a communication medium yields, surprise, surprise, better communication. (I&#8217;ve written 2 books on the subject.)</p></li></ul><p>In the end, write the docs you want to write. If no one reads them, or if readers find they are out of date, then consider not writing them next time. But don&#8217;t let anyone shame you into wasting time. The question is not, &#8220;Do you have documentation?&#8221; but rather, &#8220;Do you communicate clearly?&#8221;</p><p>I find it ironic that calls to increase documentation come just at the moment that LLMs are getting good at explaining code. At Mechanical Orchard we&#8217;ve developed some amazing internal tools to answer our questions about legacy mainframe code. These tools are only going to improve. The one part of software development that LLMs are clearly better at than humans is one task reactionaries have latched onto.</p>]]></content:encoded></item><item><title><![CDATA[I Learn a Surprising Lesson About Human Motivation]]></title><description><![CDATA[Last Chance for $70/Year Pricing]]></description><link>https://tidyfirst.substack.com/p/i-learn-a-surprising-lesson-about</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/i-learn-a-surprising-lesson-about</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Sat, 13 Jan 2024 15:01:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZsSr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>I&#8217;ve had a couple of followups about the <a href="https://tidyfirst.substack.com/p/professional-pricing">coming price increase</a>. Subscribe now &amp; pay the current price forever (well, as long as the newsletter lasts) (and as long as you want to keep reading). On Monday the price goes to $25/month or $250/year, in line with other professionally-oriented newsletters.</p></blockquote><p>That&#8217;s not what I want to talk about, though. I want to reflect here on a huge misunderstanding I&#8217;ve been carrying for 62 years about human motivation, how my mistaken belief has held me back from business prosperity, &amp; what I&#8217;m going to do about what I&#8217;ve learned.</p><h2>Naive Model</h2><p>Here&#8217;s how I thought this newsletter would work. I would create some valuable stuff &amp; charge people for it. More value, more money. (You can also change the slope of the line through better marketing &amp; sales, but that&#8217;s way outside my bailiwick.)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZsSr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZsSr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZsSr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZsSr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZsSr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZsSr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg" width="1456" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:272717,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&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_!ZsSr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZsSr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZsSr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZsSr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F785bae08-a57f-4205-907b-8b6117990780_2164x1094.jpeg 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>&#8220;The margin&#8221; is one of the great concepts of economics&#8212;there are some people who will transact for sure, others who will never transact, &amp; a gray area in the middle. Move the margin &amp; some folks will transact who wouldn&#8217;t have before.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TifQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ee6c6-57b6-4b93-819b-27677dcedb27_2202x1239.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TifQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ee6c6-57b6-4b93-819b-27677dcedb27_2202x1239.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TifQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ee6c6-57b6-4b93-819b-27677dcedb27_2202x1239.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TifQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ee6c6-57b6-4b93-819b-27677dcedb27_2202x1239.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TifQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ee6c6-57b6-4b93-819b-27677dcedb27_2202x1239.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TifQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ee6c6-57b6-4b93-819b-27677dcedb27_2202x1239.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e62ee6c6-57b6-4b93-819b-27677dcedb27_2202x1239.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:322855,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&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_!TifQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ee6c6-57b6-4b93-819b-27677dcedb27_2202x1239.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TifQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ee6c6-57b6-4b93-819b-27677dcedb27_2202x1239.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TifQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ee6c6-57b6-4b93-819b-27677dcedb27_2202x1239.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TifQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ee6c6-57b6-4b93-819b-27677dcedb27_2202x1239.jpeg 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><figcaption class="image-caption">Naive Model</figcaption></figure></div><p>Once I focused on creating a sustainable business model for this newsletter, my investment became clear&#8212;create more value. More value, more customers. More customers, more revenue. More revenue, more focus on stuff that matters to living a good life.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wyWQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bfdabd-95ee-4dce-85de-ed5a9fff52da_676x288.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wyWQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bfdabd-95ee-4dce-85de-ed5a9fff52da_676x288.png 424w, https://substackcdn.com/image/fetch/$s_!wyWQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bfdabd-95ee-4dce-85de-ed5a9fff52da_676x288.png 848w, https://substackcdn.com/image/fetch/$s_!wyWQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bfdabd-95ee-4dce-85de-ed5a9fff52da_676x288.png 1272w, https://substackcdn.com/image/fetch/$s_!wyWQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bfdabd-95ee-4dce-85de-ed5a9fff52da_676x288.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wyWQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bfdabd-95ee-4dce-85de-ed5a9fff52da_676x288.png" width="676" height="288" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26bfdabd-95ee-4dce-85de-ed5a9fff52da_676x288.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:288,&quot;width&quot;:676,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:20195,&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_!wyWQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bfdabd-95ee-4dce-85de-ed5a9fff52da_676x288.png 424w, https://substackcdn.com/image/fetch/$s_!wyWQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bfdabd-95ee-4dce-85de-ed5a9fff52da_676x288.png 848w, https://substackcdn.com/image/fetch/$s_!wyWQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bfdabd-95ee-4dce-85de-ed5a9fff52da_676x288.png 1272w, https://substackcdn.com/image/fetch/$s_!wyWQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bfdabd-95ee-4dce-85de-ed5a9fff52da_676x288.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><figcaption class="image-caption">ARR Growing Steadily, Linearly</figcaption></figure></div><p>The more value &#8594; more revenue &#8594; more sustainability strategy kind of worked. Over the past six months I poured myself into the newsletter, optimized everything I could find to optimize, experimented with different formats &amp; topics. On the scale of my financial milestones the results still weren&#8217;t significant, which led to the strategy not being sustainable, but it kind of worked.</p><h2>Intervention</h2><p>As part of my optimization, one of my advisers asked me, &#8220;Why $7/month? That&#8217;s pricing for personal newsletters. Anything that gets expensed is going for $20+/month.&#8221; I didn&#8217;t have anything to lose, really. I was running out of energy for just trying to pump up the value. May as well try raising prices. (I didn&#8217;t consciously choose the $7/month price. It was Substack&#8217;s default. I was just trying to shame myself into finishing <em>Tidy First?</em>.)</p><p>Two weeks ago I announced the price increase. The results astounded me. Here, I&#8217;ll just show you the graph.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MAW5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7cd33b3-3233-4e8d-b5ec-d6ab77733071_1394x736.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MAW5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7cd33b3-3233-4e8d-b5ec-d6ab77733071_1394x736.png 424w, https://substackcdn.com/image/fetch/$s_!MAW5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7cd33b3-3233-4e8d-b5ec-d6ab77733071_1394x736.png 848w, https://substackcdn.com/image/fetch/$s_!MAW5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7cd33b3-3233-4e8d-b5ec-d6ab77733071_1394x736.png 1272w, https://substackcdn.com/image/fetch/$s_!MAW5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7cd33b3-3233-4e8d-b5ec-d6ab77733071_1394x736.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MAW5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7cd33b3-3233-4e8d-b5ec-d6ab77733071_1394x736.png" width="1394" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a7cd33b3-3233-4e8d-b5ec-d6ab77733071_1394x736.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1394,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81200,&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_!MAW5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7cd33b3-3233-4e8d-b5ec-d6ab77733071_1394x736.png 424w, https://substackcdn.com/image/fetch/$s_!MAW5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7cd33b3-3233-4e8d-b5ec-d6ab77733071_1394x736.png 848w, https://substackcdn.com/image/fetch/$s_!MAW5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7cd33b3-3233-4e8d-b5ec-d6ab77733071_1394x736.png 1272w, https://substackcdn.com/image/fetch/$s_!MAW5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7cd33b3-3233-4e8d-b5ec-d6ab77733071_1394x736.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>Nothing I&#8217;ve done to &#8220;create more value&#8221; has had anywhere near as big an effect on my business than this. 40% increase in 2 weeks. People, apparently, don&#8217;t make decisions the way I thought they made decisions.</p><p>I was imagining someone &#8220;on the margin&#8221;, thinking, &#8220;Yeah, there&#8217;s some value, but not enough.&#8221; Then they see more value. Then they think, &#8220;Yeah, okay, I&#8217;ll sign up.&#8221; Nope. Not according to the data.</p><h2>Re-Interpretation</h2><p>More value didn&#8217;t result in more sign-ups. It was more like, &#8220;If I don&#8217;t sign up now for this price, it&#8217;s going to cost more more later.&#8221;</p><p>One of the Thinkies (Thinkies are habits of creative thought that I&#8217;ve gathered&#8212;I publish one to paying subscribers every Tuesday) is called Trust the Market. If the market is acting in a way that doesn&#8217;t make sense, back up &amp; ask yourself what would have to be true for the market to be right &amp; you to be wrong. (Markets can be wrong, to be sure, this is just a way to generate an idea that will then be evaluated.)</p><p>Folks signing up recently already knew about the value. They are converting from unpaid subscribers. The value didn&#8217;t change. Now, though, something is worth $7/month that wasn&#8217;t worth it before. What?</p><p>This kind of thinking is really, really hard for me. People &amp; their motivations are mostly opaque to me. Not just opaque, actively camouflaged. Cloaked.</p><p>I&#8217;ll give it a whirl, but this is really raw thinking. One possibility is that they knew that they could sign up at the current price. Now they are faced with the possibility that they couldn&#8217;t justify signing up at the new price. They avoid the loss by signing up today.</p><p>&#8220;I could sign up today &amp; get value but never mind. Oh, I might not be able to sign up tomorrow? I&#8217;d better sign up today!&#8221;</p><p>I think I&#8217;ve rediscovered the Going Out Of Business Sale.</p><h2>Ethics</h2><p>There are (at least) 2 sets of needs to care for in this situation:</p><ul><li><p>My need for a sustainable business</p></li><li><p>Subscribers&#8217; needs for, well, learning &amp; skills &amp; community &amp; encouragement &amp; &#8230;</p></li></ul><p>What I don&#8217;t want to do is any of my grandfather&#8217;s sleazy car sales stuff. I don&#8217;t want to use fear to get my needs met at the expense of subscribers. I don&#8217;t want anyone to sign up who is making an objectively bad decision by signing up.</p><p>At the same time I&#8217;d like everyone to sign up who would genuinely benefit. I suspect that is far more people than have signed up so far.</p><h2>Next?</h2><p>First, I&#8217;m going through with the price increase Monday as planned. No reason not to. Upside with no downside. Part of me is worried that new signups will drop to zero, but okay. Get your employer to pay for it, folks! They are reaping the rewards!</p><p>Second, in a couple of weeks I&#8217;ll send a discount coupon with an expiration date so folks who didn&#8217;t get $7/month can still pay less than $25/month. (For this to be effective I shouldn&#8217;t tell y&#8217;all this, but whatever.)</p><p>Third, I&#8217;m going to think about what I&#8217;ve learned about human motivation &amp; decision making. I want to understand how it affects my own decisions. I want to understand how to use the information for mutual benefit. I want to understand the perverse incentives it creates &amp; how to avoid them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tidyfirst.substack.com/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">Sign up today to receive geeky insights for $7/month in perpetuity. Monday will be TOO LATE!</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[Debut of Rent-a-Kent]]></title><description><![CDATA[Please Give It A Try]]></description><link>https://tidyfirst.substack.com/p/debut-of-rent-a-kent</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/debut-of-rent-a-kent</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Thu, 11 Jan 2024 18:56:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u6yV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I talked about books as the new vinyl of the intellectual life. You can be the first to try the first glimmerings of that new form of literature.</p><p>If you read today&#8217;s blog post on measuring productivity as a tradeoff, I invite you to interact with a model trained on some of my previous writings but more particularly that post. <a href="https://rent-a-kent.azurewebsites.net/">Here it is</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!u6yV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u6yV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.png 424w, https://substackcdn.com/image/fetch/$s_!u6yV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.png 848w, https://substackcdn.com/image/fetch/$s_!u6yV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.png 1272w, https://substackcdn.com/image/fetch/$s_!u6yV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u6yV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.png" width="1456" height="672" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:672,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:196533,&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_!u6yV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.png 424w, https://substackcdn.com/image/fetch/$s_!u6yV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.png 848w, https://substackcdn.com/image/fetch/$s_!u6yV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.png 1272w, https://substackcdn.com/image/fetch/$s_!u6yV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b6204d2-063a-4fa0-90a2-81e3f313b44b_2556x1179.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>Have at it! Ask t&#8230;</p>
      <p>
          <a href="https://tidyfirst.substack.com/p/debut-of-rent-a-kent">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Productivity Measurement as a Tradeoff]]></title><description><![CDATA[Bad news: measuring engineering productivity is doomed]]></description><link>https://tidyfirst.substack.com/p/productivity-measurement-as-a-tradeoff</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/productivity-measurement-as-a-tradeoff</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Thu, 11 Jan 2024 15:06:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!29K_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Bad news: measuring engineering productivity is doomed</p><p>Good news: there are effective ways to address the needs of all involved&#8212;engineers, managers, executives, &amp; customers</p><p>The desire to measure engineering productivity expresses a genuine human need. The problem is that trying to meet that need through metrics or even surveys inevitably poisons the data on which productivity measurement relies. Let&#8217;s dive into the structure of this dilemma before talking about the actual needs &amp; how they can actually be addressed.</p><h2>Tradeoffs</h2><p>Paying subscribers to Tidy First? receive weekly Thinkies, habits of creative thought I&#8217;ve collected. Lately I&#8217;ve been particularly interested in thinking in terms of tradeoffs. Tradeoffs have a surprisingly subtle structure, leading me to write a booklet diving into the details (also available to paying subscribers).</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://tidyfirst.substack.com/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://tidyfirst.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>Measuring engineering productivity is an excellent example of a tradeoff. It has all the anatomical elements of a tradeoff:</p><ul><li><p>A goal to be improved upon&#8212;reducing wasted effort.</p></li><li><p>A continuum of possibilities for addressing the goal&#8212;measurement from none to surveys to increasingly detailed metrics.</p></li><li><p>A response curve&#8212;how much waste you expect to eliminate for each of interventions.</p></li><li><p>A counter response curve&#8212;waste created because you went too far</p></li></ul><p>Graphically, it can be rendered like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!29K_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!29K_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.jpeg 424w, https://substackcdn.com/image/fetch/$s_!29K_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.jpeg 848w, https://substackcdn.com/image/fetch/$s_!29K_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!29K_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!29K_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.jpeg" width="1456" height="1176" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1176,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:248975,&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_!29K_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.jpeg 424w, https://substackcdn.com/image/fetch/$s_!29K_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.jpeg 848w, https://substackcdn.com/image/fetch/$s_!29K_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!29K_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c42b05-08d3-47aa-833e-f66b49b3d243_1758x1420.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><p>Seems sensible&#8212;diminishing marginal returns &amp; increasing overhead for greater measurement precision. Sensible but wildly wrong.</p><h2>Better Picture</h2><p>The response curves:</p><ul><li><p>Are the wrong shape.</p></li><li><p>Are out of proportion.</p></li><li><p>The counter-response curve in particular misses gigantic effects.</p></li></ul><p>The potential gains from productivity improvement aren&#8217;t infinite. You have an organization now. You have customers now. You&#8217;re doing something. It works. Some.</p><p>If you kept improving for years, yes you might make dramatic improvements, but that will come through all kinds of interventions, not just measuring productivity. Measuring &amp; responding may net a win but then the bottleneck will move elsewhere.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JmO0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce354d0-1734-4361-a0e7-bfe1b51152bc_1692x1367.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JmO0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce354d0-1734-4361-a0e7-bfe1b51152bc_1692x1367.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JmO0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce354d0-1734-4361-a0e7-bfe1b51152bc_1692x1367.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JmO0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce354d0-1734-4361-a0e7-bfe1b51152bc_1692x1367.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JmO0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce354d0-1734-4361-a0e7-bfe1b51152bc_1692x1367.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JmO0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce354d0-1734-4361-a0e7-bfe1b51152bc_1692x1367.jpeg" width="1456" height="1176" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ce354d0-1734-4361-a0e7-bfe1b51152bc_1692x1367.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1176,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:206709,&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_!JmO0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce354d0-1734-4361-a0e7-bfe1b51152bc_1692x1367.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JmO0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce354d0-1734-4361-a0e7-bfe1b51152bc_1692x1367.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JmO0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce354d0-1734-4361-a0e7-bfe1b51152bc_1692x1367.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JmO0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ce354d0-1734-4361-a0e7-bfe1b51152bc_1692x1367.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><p>Overhead &amp; analysis remain. Who knows their magnitude compared to the potential efficiency gains. I&#8217;ll just make them similar. Draw your own curves for your own tradeoff.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tfxa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568518aa-c9f5-4440-8acc-2d008c587d46_1750x1020.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tfxa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568518aa-c9f5-4440-8acc-2d008c587d46_1750x1020.png 424w, https://substackcdn.com/image/fetch/$s_!tfxa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568518aa-c9f5-4440-8acc-2d008c587d46_1750x1020.png 848w, https://substackcdn.com/image/fetch/$s_!tfxa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568518aa-c9f5-4440-8acc-2d008c587d46_1750x1020.png 1272w, https://substackcdn.com/image/fetch/$s_!tfxa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568518aa-c9f5-4440-8acc-2d008c587d46_1750x1020.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tfxa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568518aa-c9f5-4440-8acc-2d008c587d46_1750x1020.png" width="1456" height="849" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/568518aa-c9f5-4440-8acc-2d008c587d46_1750x1020.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:849,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163274,&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_!tfxa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568518aa-c9f5-4440-8acc-2d008c587d46_1750x1020.png 424w, https://substackcdn.com/image/fetch/$s_!tfxa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568518aa-c9f5-4440-8acc-2d008c587d46_1750x1020.png 848w, https://substackcdn.com/image/fetch/$s_!tfxa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568518aa-c9f5-4440-8acc-2d008c587d46_1750x1020.png 1272w, https://substackcdn.com/image/fetch/$s_!tfxa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568518aa-c9f5-4440-8acc-2d008c587d46_1750x1020.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>As soon as metrics have consequences, gaming begins. Goodhart&#8217;s Law kicks in<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. The cost rises as people spend effort gaming the system instead of doing useful work. Also, the distortion of the measurement reduces any value to be derived.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Znr3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e0b80b-13da-49c8-8cb9-219b30c29053_1732x1006.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Znr3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e0b80b-13da-49c8-8cb9-219b30c29053_1732x1006.png 424w, https://substackcdn.com/image/fetch/$s_!Znr3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e0b80b-13da-49c8-8cb9-219b30c29053_1732x1006.png 848w, https://substackcdn.com/image/fetch/$s_!Znr3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e0b80b-13da-49c8-8cb9-219b30c29053_1732x1006.png 1272w, https://substackcdn.com/image/fetch/$s_!Znr3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e0b80b-13da-49c8-8cb9-219b30c29053_1732x1006.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Znr3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e0b80b-13da-49c8-8cb9-219b30c29053_1732x1006.png" width="1456" height="846" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06e0b80b-13da-49c8-8cb9-219b30c29053_1732x1006.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:846,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:175463,&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_!Znr3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e0b80b-13da-49c8-8cb9-219b30c29053_1732x1006.png 424w, https://substackcdn.com/image/fetch/$s_!Znr3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e0b80b-13da-49c8-8cb9-219b30c29053_1732x1006.png 848w, https://substackcdn.com/image/fetch/$s_!Znr3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e0b80b-13da-49c8-8cb9-219b30c29053_1732x1006.png 1272w, https://substackcdn.com/image/fetch/$s_!Znr3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06e0b80b-13da-49c8-8cb9-219b30c29053_1732x1006.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 it&#8217;s hard to catch gaming, exactly because it&#8217;s intended to be invisible to operation of the metrics. How much effort do you want to expand catching cheaters instead of setting up a system where cheating doesn&#8217;t make sense?</p><p>Precise measurement rises further. As departments&#8217; incentives diverge, the incentive to collaborate diminishes. Why would I make you look good if that&#8217;s going to make me look worse by comparison? Work that would have been done together for mutual benefit ceases.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wasJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4479a29c-7600-4fbf-b537-6112ef01c1b9_1670x1028.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wasJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4479a29c-7600-4fbf-b537-6112ef01c1b9_1670x1028.png 424w, https://substackcdn.com/image/fetch/$s_!wasJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4479a29c-7600-4fbf-b537-6112ef01c1b9_1670x1028.png 848w, https://substackcdn.com/image/fetch/$s_!wasJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4479a29c-7600-4fbf-b537-6112ef01c1b9_1670x1028.png 1272w, https://substackcdn.com/image/fetch/$s_!wasJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4479a29c-7600-4fbf-b537-6112ef01c1b9_1670x1028.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wasJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4479a29c-7600-4fbf-b537-6112ef01c1b9_1670x1028.png" width="1456" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4479a29c-7600-4fbf-b537-6112ef01c1b9_1670x1028.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201367,&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_!wasJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4479a29c-7600-4fbf-b537-6112ef01c1b9_1670x1028.png 424w, https://substackcdn.com/image/fetch/$s_!wasJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4479a29c-7600-4fbf-b537-6112ef01c1b9_1670x1028.png 848w, https://substackcdn.com/image/fetch/$s_!wasJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4479a29c-7600-4fbf-b537-6112ef01c1b9_1670x1028.png 1272w, https://substackcdn.com/image/fetch/$s_!wasJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4479a29c-7600-4fbf-b537-6112ef01c1b9_1670x1028.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>Again, these costs are completely off the books, unaccounted for. Engineering just seems slow. I know! Moar mezzures!</p><h2>Alternative</h2><p>The most surprising lesson for me about the whole &#8220;measuring engineering productivity&#8221; conversation  has been trying to get a straight answer to the question of, &#8220;Why?&#8221; As an engineer I get why I would want to measure my own efforts&#8212;I want to improve &amp; I can improve faster if I know what I&#8217;m currently doing. I have no incentive to game the system. I can balance how much I want to invest in doing my work versus analyzing how I do my work.</p><p>That&#8217;s not who McKinsey is talking to. The case that keeps getting quietly mentioned is a board meeting. Sales &amp; Engineering have both asked for more budget. Sales says, &#8220;We get $1m of sales per person, each of whom costs $500K. Give us $20m &amp; we&#8217;ll deliver $40m in additional revenue.&#8221; Engineering says, &#8220;Um, yeah, well, uh, we need more headcount mumble mumble technical debt mumble scaling mumble keeping the lights on.&#8221; Uncomfortable!</p><p>Another way this scenario is introduced is, &#8220;The CFO wants to know if they are getting their money&#8217;s worth from Engineering.&#8221; If I was the VP Engineering in that room, I&#8217;d want to be able to answer that question. The CFO has a genuine need. The VP Eng has a genuine need. &#8220;Measuring&#8221; &#8220;productivity&#8221; may seem to meet those needs, but at enormous cost.</p><p>What&#8217;s the alternative? Listening &amp; thinking. The best executives I&#8217;ve worked with used data, yes, but they always had direct connection to the work. They had a diverse group of individual contributors they talked to on a regular basis. Trusted relationships let them identify misaligned &amp; perverse incentives. It may seem like scaling requires interacting with abstractions like charts &amp; graphs, but relying solely on abstractions puts you at the mercy of whoever creates those abstractions. They have their own agenda &amp; it might not match yours.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>I love the original formulation of Goodhart&#8217;s Law: Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes. Requires more thinking on my part, though.</p></div></div>]]></content:encoded></item><item><title><![CDATA[Private Estimates, Public Progress]]></title><description><![CDATA[I remember back when being on one of those gigantic, long-lived software projects when I was a wee programmer.]]></description><link>https://tidyfirst.substack.com/p/private-estimates-public-progress</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/private-estimates-public-progress</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Wed, 25 Oct 2023 15:25:16 GMT</pubDate><content:encoded><![CDATA[<p>I remember back when being on one of those gigantic, long-lived software projects when I was a wee programmer. Professional project managers had laid out the entire thing before we started coding. <em>Enlightened</em> professional project managers&#8212;they only assumed 4.2 hours of coding per programmer per day.</p><p>When the whole thing was axle-deep in mud about two thirds of the way through, some bright person realized that we could restore the &#8220;deadline&#8221; by increasing the coding schedule to 5.3 hours per programmer per day. Never mind that everyone was already going flat out. Change one number &amp; everything was &#8220;alright&#8221;. For now.</p><p>I draw a merciful curtain across this story. You can guess the rest.</p><p>One lesson I took from this episode was that playing with the map didn&#8217;t change the territory. Another lesson was that for every reality-defying management move there is a counteracting engineering move. And for every reality-defying engineering move there is a counteracting management move.</p><h2>Inside A Week</h2><p>As I&#8217;ve started to publicly reiterate many of the themes of Extreme Programming (XP), I&#8217;ve started receiving the same simplistic <em>ad hominem</em> criticism that made the last time around so much fun. &#8220;You&#8217;re just anti-accountability&#8221;, &#8220;you just want everyone to take engineers&#8217; word for everything&#8221;, &#8220;you&#8217;re anti-measurement&#8221;.</p><p>I&#8217;m not going to pick apart the fallacies involved, so I&#8217;ll just say, &#8220;Huh uh&#8221;. I&#8217;m interested in exploring ideas that work. So, here&#8217;s a planning process that works.</p><p>On Monday morning the whole team (engineering, product, customers, testers, designers, managers, marketing, sales, whoever is on the team) &amp; answers the question, &#8220;What is most important for us to accomplish this week?&#8221; Then ask, &#8220;What can we actually accomplish this week?&#8221; Figure on that.</p><p>On Friday afternoon (or Thursday if that&#8217;s the end of your week) get together &amp; say, &#8220;How did we do? How did we react to surprises? Customers, how are you feeling? Engineers, how did the work flow? Product, how are customers acting in aggregate? Designers, how did your work flow &amp; how are customers reacting? Sales, marketing, support&#8212;sup? Everybody have a great weekend. Get some rest. See you Monday!&#8221;</p><h2>Consequences</h2><p>I&#8217;m proposing an investment here. You&#8217;re going to spend an hour or two on Monday &amp; another hour Friday, almost a tenth of your available hours. What do you get?</p><ul><li><p>Energy. A team used to delivering comes to work ready to deliver. Aren&#8217;t delivering? Sign up for less.</p></li><li><p>Scope. You create value by answering the question, &#8220;I need to do this. How much of this do I need to do right now?&#8221;</p></li><li><p>Collaboration. &#8220;Oh, we&#8217;re adding a field to Contract? I&#8217;ll work with you on that because I did it last time.&#8221;</p></li><li><p>Alignment. Everyone can see &amp; negotiate each others&#8217; priorities. This isn&#8217;t easy. It takes building &amp; maintaining relationships across sometimes-divergent incentives, personalities, &amp; perspectives. If it was easy, regular people could do it.</p></li><li><p>Adaptation. If scope is falling short of desire, I&#8217;d rather know that today &amp; communicate that today rather than sacrifice all the above benefits maintaining a lie.</p></li></ul><h2>Don&#8217;t</h2><p>This kind of weekly rhythm &amp; habit of delivery takes months to build. Once it&#8217;s in place it tends to continue, but it&#8217;s also fragile. You can send it back to the waterfall death spiral easily. Please don&#8217;t:</p><ul><li><p>Add weeks up. Weeks aren&#8217;t additive any more than recipes are additive. &#8220;I like oatmeal chocolate chip cookies. I like ceviche. I&#8217;ll add them together!&#8221; Doesn&#8217;t work like that. &#8220;How much will we get done in the next quarter? Let&#8217;s add up the last 13 weeks.&#8221; Whether you use story points or time tracking or fibonacci or task counting, the answer you get from, &#8220;What&#8217;s this week&#8217;s worth of work?&#8221; doesn&#8217;t combine with any other week, any more than you&#8217;re eating lime chocolate chip halibut walnut cookies.</p></li><li><p>Compare weeks over time. Weeks aren&#8217;t fungible. You can&#8217;t use the numbers from a month ago to make any confident conclusions about how you&#8217;re doing today. Observe. Judge. Experiment. But ffs don&#8217;t say, &#8220;You only delivered 12 story points last week, down from 18 the week before. Get back up to 18 or heads will roll!&#8221;<br>You&#8217;ll never get another honest plan or report after that.</p></li><li><p>Compare weeks across teams. Whatever process a team uses to ask &amp; answer, &#8220;What&#8217;s this week&#8217;s worth of work?&#8221; doesn&#8217;t compare to another team&#8217;s process. Even if they seem to use the same mechanism, they aren&#8217;t. My delicious meal is your light snack. (All these food metaphors are reminding me I need to eat breakfast.)</p></li></ul><h2>Scenario: VP Demo Friday</h2><p>Nick Maravich was good enough to send me the following scenario:</p><blockquote><p>When the SVP has a meeting on Friday which depends on 2 or 3 items in the backlog getting done and it is Monday - what is the right message here?</p></blockquote><p>First question, what does the SVP do now if Friday comes &amp; all 3 items aren&#8217;t done? That happens, right? The SVP adapts the meeting. It&#8217;s not like they expect you to be perfect. Not in their heart of hearts.</p><p>We say, &#8220;3 items&#8221; like that&#8217;s a fixed quantity, like &#8220;3 kilograms of bologna&#8221; (again with the food). It&#8217;s not a fixed quantity. We will discover what scope matters &amp; what scope doesn&#8217;t as we go along.</p><p>Okay, so what do we do? Ask, &#8220;Which item would you like to see first? Let&#8217;s demo that together on Tuesday.&#8221; What&#8217;s the least of item 1 that would allow the SVP to add value? Okay, maybe that&#8217;s enough of that for the Friday meeting. Get started on 2. Demo that Wednesday. Oops, it&#8217;s going to be Thursday.</p><p>The best we can possibly achieve is as much of the most valuable stuff by the time the Friday meeting starts. Let&#8217;s see how close we can come to that.</p><blockquote><p>What if I convince the CFO to support Agile Delivery, but they are asking about deadlines and doing basic math on backlog items? I think this can be done - I think it is ok to do math and arithmetic on backlogs. If and only if I have the right Business Partners that are willing to partner with Agile Delivery and not sabotage it ... knowingly or unknowingly.</p></blockquote><p>I would ask them why they are doing math on backlog items. We&#8217;ll never implement all of them. Never. We&#8217;ll implement the most important ones. Meanwhile new ones will crop up.</p><p>Deadlines are mostly just lines. Nobody dies. If someone wants to say, &#8220;By next quarter we&#8217;d like X users,&#8221; then we can work towards that. Or, &#8220;We&#8217;d like revenue to be like this,&#8221; or, &#8220;Costs to go down like that.&#8221; Those seem like fine, shared goals. But if the CFO is saying, &#8220;Story points per programmer per day needs to improve by 15%. Or else!&#8221; then I think they have better things to focus on.</p><p>I&#8217;m not asking to be trusted. I&#8217;m not asking to be let off the hook. I&#8217;m asking to work toward shared goals everybody cares about &amp; to be left all the tools in my belt to reach those goals. I think, sweet naive geeky me, that this would be better for everybody.</p><blockquote><p>If I fail to convince the business partners that Agile is pro business then Waterfall wins again.</p></blockquote><p>Our development practices are the shadows cast by the power structures of our companies. We can invite folks to a new power structure but then they get to choose. And if waterfall development is all they need to get their needs met, well, waterfall is what they will get. I just don&#8217;t have to participate.</p>]]></content:encoded></item><item><title><![CDATA[Measuring developer productivity? A response to McKinsey 2]]></title><description><![CDATA[The consultancy giant has devised a methodology it claims measures software developer productivity.]]></description><link>https://tidyfirst.substack.com/p/measuring-developer-productivity-440</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/measuring-developer-productivity-440</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Thu, 31 Aug 2023 16:00:27 GMT</pubDate><content:encoded><![CDATA[<p><em>The consultancy giant has devised a methodology it claims measures software developer productivity. They only measure activity, not productivity from a business perspective. And measuring activity comes with costs &amp; risks they do not address. Here&#8217;s how we think about measurement. Part 2. (Gergely&#8217;s version is <a href="https://newsletter.pragmaticengineer.com/p/measuring-developer-productivity-part-2">here</a>.)</em></p><p>In the first part of this two-part article, we covered:</p><ul><li><p>A mental model of the software engineering cycle</p></li><li><p>Where does the need for measuring productivity come from?</p></li><li><p>How do sales and recruitment measure productivity so accurately?</p></li><li><p>Measurement tradeoffs in software engineering&nbsp;</p></li></ul><p>We now wrap up this topic with:</p><ul><li><p>The danger of measuring only outcomes and impact</p></li><li><p>Team vs individual performance</p></li><li><p>Why does engineering cost so much?</p></li><li><p>How do you decide how much to invest in engineering?</p></li><li><p>How do you measure developers?</p></li></ul><h2>The danger of <em>only</em> measuring outcomes and impact</h2><p>So far, sales and recruitment have been on something of an accountability pedestal, as both capture team performance and individual performance with indisputable metrics. However, we have seen the dark side of only focusing on measuring &#8211; and rewarding &#8211; outcomes and impact: that people game the system for their own benefit in ways that defeat the purpose of measurement, and ultimately disadvantage the business by generating junk data.</p><p>Below, Kent shares what he&#8217;s seen happen when the only thing that matters is sales quotas:</p><blockquote><p>&#8220;Individual goals discourages people from working together, as everyone is chasing their own quota. And this can lead to missed opportunities.</p><p>For example, take the opportunity to close a mega-sale that spans several regions. For this, multiple sales representatives must work together, and the sale would be credited to the representative who discovered the opportunity. But other sales folks are incentivized not to help. The company loses an attractive prospect without knowing it. Individual incentives can work against the long-term profitability goals of the company.</p><p>I saw firsthand how a &#8216;star&#8217; salesperson operated. They always hit their quota, and collected a hefty bonus. How did they do it? Well, they knew that sales could fall through any time, so they always had several prospects &#8216;in the pocket&#8217; who they could convert anytime, and so put them off until the end of each quarter. They only converted them if they needed to hit their quota. In order to maximize personal gains, they did not maximize the company&#8217;s gain.&#8221;</p></blockquote><p>In the area of recruitment, Gergely experienced how rewarding recruiters by candidates closed, can backfire later:</p><blockquote><p>&#8220;I once worked with a recruiter whom other hiring managers raved about. This recruiter had a 100% close rate. Closing means that when a candidate gets an offer, we get them to sign. Back then, my part of the organization was so stretched that recruiters did most of the closing conversations and took care of details. Most recruiters closed 70-80% at most. I was told this recruiter is a &#8216;rockstar&#8217; among their peers.</p><p>I discovered in a painful way how they did it. About 6 months after this recruiter left, performance reviews and bonuses time came around. Several engineers in our group complained about their bonus amounts, saying they&#8217;d been &#8220;guaranteed&#8221; 10x the amount then they actually got. After some digging, all signs pointed to the rockstar recruiter; they&#8217;d made verbal promises to engineers in private settings, which were outrageously untrue.</p><p>This recruiter focused on outcomes, and unwritten &#8211; as well as written &#8211; rules. It took us managers months to sort out the mess, and left engineers feeling tricked and with declining faith in the company.&#8221;</p></blockquote><p>Measuring outcomes and impact is important, but there must be checks and balances which ensure outcomes are reached the right way. In the end, this is exactly what a healthy company culture is about. In contrast, in a &#8220;cutthroat&#8221; or toxic culture only easily-measurable outcomes and impact matter &#8211; and ends always justify means. A healthier culture takes outcomes and impact into account, and will curtail the rewards of outcomes achieved in unprofessional ways, or ways that don&#8217;t consider collaboration or the bigger picture.</p><h2>Team vs individual performance</h2><p>What&#8217;s more important, team performance or individual performance? Sport provides a pointer, as an industry where individual performance can be measured quite accurately.</p><p>Take soccer as an example. There are many examples that prove team performance trumps individual performance. A team with objectively worse players can beat an opponent with more talented players by playing as a team. This was resoundingly proved when Greece <a href="https://en.wikipedia.org/wiki/UEFA_Euro_2004">won</a> the Euro 2004 international soccer tournament with a squad ranked the 15th most likely to triumph from 16 national teams taking part. The secret behind this success? The documentary <a href="https://www.kingottodocumentary.com/">King Otto</a> reveals it came down to teamwork, playing to players&#8217; strength, and an outstanding German coach, Otto Rehhagel.</p><p>It&#8217;s common for teams filled with star players to struggle for success, despite possessing individuals with objectively superior skills. The Spanish club team Real Madrid proved this with its &#8220;Gal&#225;cticos&#8221; recruitment policy in the early-mid 2000s, where superstar players were signed but the team regularly failed to win trophies.</p><p>We see similar dynamics in software engineering: teams punching well above their skill and experience level by working together, morale being high, and a manager with the right intuition. I&#8217;ve also seen a team filled with senior-or-above engineers that struggle to deliver expected outcomes, suffer low morale, confused direction, as well as poor management and leadership.</p><p>Let&#8217;s look at another sport, ice hockey. This uses an interesting statistic called &#8220;plus-minus:&#8221; which measures a player&#8217;s goal differential, which captures how many more goals a team scores and how many fewer it concedes, when that player is on the ice. It&#8217;s a sort of &#8220;contribution to the team success&#8221; indicator, and is useful for identifying players who make a team much more efficient.</p><p>Could we find a kind of &#8220;plus-minus&#8221; indicator for software engineers?<strong> </strong>If such an indicator existed, it could be worth measuring. However, a five-on-five hockey game and a software engineering project consisting of 5-10 engineers, designers, testers, and product specialists is very different. Hockey teams play games weekly, there&#8217;s strict time limits; and the terms of victory are very clear: score more. In contrast, software projects tend to last much longer, may have no time limit, and there&#8217;s no simple scoring system.</p><p><strong>Individual performance does not </strong><em><strong>directly</strong></em><strong> predict team performance.</strong> And if it&#8217;s not possible to deduct team performance from individual performance in a domain that&#8217;s as easy to measure as sports, then we can expect even less success in software engineering.</p><p><strong>Team performance is easier to measure than individual performance.</strong> Engineering teams track performance by projects shipped, business impact, and other indicators, similarly to how sports teams track performance via numbers of wins, losses, and other stats.&nbsp;</p><h2>Why does engineering cost so much?</h2><p>The question of &#8220;why does engineering cost so much&#8221; is one that will be a surprisingly frequent one. Here&#8217;s a suggestion on how to tackle this specific question:</p><ul><li><p>Imagine a world where the company spends 0% of its budget on engineering. I know: it&#8217;s absurd. But do this. What would this mean for the company? What would customers experience? How would business trend?</p></li><li><p>Now, imagine where the company spends 100% on engineering, and 0% on everything else. What would happen?</p></li><li><p>Now that we know the two extremes: what percentage of the overall budget does the company spend on engineering? With this number: the decision is what would happen if we moved this number down by a few percentages, or increased it by a few percentages. Which approach would benefit the business more, and why?</p></li></ul><p>This exercise turns the question from &#8220;why does engineering cost so much&#8221; to a comparison exercise, where the decision is whether to reduce or increase engineering spend by $X, versus make this investment &#8211; or reduction &#8211; with another area.</p><h2>How do you decide how much to invest in engineering?</h2><p>Another common reason that C-level executives want to measure the productivity of engineering is because they want to get a sense of how much it&#8217;s worth to invest further into engineering &#8211; versus allocating the planned investment in, say, sales, or marketing.</p><p>The real question an executive is asking, however, is not about productivity. The question is: &#8220;How much should we invest into engineering?&#8221;</p><p>To answer this question, consider that software engineering results are unpredictable, especially measured on a small scale. Sure: there are industries where you know exactly what you want to build, and engineering is merely an execution game. But at companies where engineering innovates: the decision on what to invest is more akin to how oil companies decide where and what to invest.</p><p>Oil companies don&#8217;t know for sure how much profit an oil drilling operation will build. So they make smart investments. It&#8217;s impossible to tell if any single exploratory drill will uncover a new and profitable oil field: so they fund several of these at once; expecting that some will, eventually bring promising results. Armed with more data, bigger investment decisions are then made.</p><p>It is a pragmatic approach for engineering leaders &#8211; and executives &#8211; to approach investing in software engineering, as a research and development activity, in a similar way. Place small but inexpensive bets: and double down on the ones that show tangible promise.</p><h2>How do you answer the question?</h2><p>Kent here.</p><ol><li><p>Be clear about why you are asking &amp; what your power relationship is with the person or people being measured. When the person with power is measuring the person without, you&#8217;re going to get distortions.</p></li><li><p>Self-measurement for self-improvement is great! My test-driven development book includes an analysis of the delay between test runs as I developed the sample code for the book. I found that experience enlightening.</p></li><li><p>Avoid perverse incentives by analyzing data at the same level as you collect the data. I can analyze my own data. My team can analyze its own aggregated data.</p></li><li><p>If you choose to create incentives (broadly defined&#8212;money, status, promotion, autonomy) around measures, know that you will never again receive accurate data.</p></li><li><p>Red Team any incentives. What would a clever (you hired them, of course they are clever), motivated person do to make the numbers look better. How much damage could they cause in the process.</p></li><li><p>Get comfortable with your own judgement. Executives relying unnecessarily on &#8220;data&#8221; seem to be running from responsibility. Grasp that nettle. Ask for explanations that make sense to you. Then own your own conclusions.</p></li><li><p>Measure developer productivity? Not possible. There are too many confounding factors, network effects, variance, observation effects, and feedback loops to get sensible answers to questions like, &#8220;How many times more profit did Joan create than Harry?&#8221; or, &#8220;How much better (or worse) is Harry doing this quarter than last?&#8221; You can measure activity, but not without directing that activity <em>away</em> from the ends you care about. And your customers. And your investors.</p></li><li><p>Be suspicious of anyone claiming to measure developer productivity. Ask who is asking &amp; why. Ask them what unit they are measuring &amp; how those units are connected to profit.</p></li><li><p>I am 100% pro-accountability. Weekly delivery of customer-appreciated value is the best accountability, the most aligned, the least distorting.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[Measuring developer productivity? A response to McKinsey]]></title><description><![CDATA[Part 1 of 2]]></description><link>https://tidyfirst.substack.com/p/measuring-developer-productivity</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/measuring-developer-productivity</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Tue, 29 Aug 2023 15:39:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Wghg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ec316e-41f3-4368-9a3f-835757f08882_1600x934.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The consultancy giant has devised a methodology it claims measures software developer productivity. They only measure activity, not productivity from a business perspective. And measuring activity comes with costs &amp; risks they do not address. Here&#8217;s how we think about measurement. Part 1. (Gergely&#8217;s version of this post is <a href="https://newsletter.pragmaticengineer.com/p/measuring-developer-productivity">here</a>.)</em></p><blockquote><p>At Facebook we [Kent here] instituted the sorts of surveys McKinsey recommends. That was good for about a year. The surveys provided valuable feedback about the current state of developer sentiment.</p><p>Then folks decided that they wanted to make the survey results more legible so they could track trends over time. They computed an overall score from the survey. A 4.5 became a 4. What happened? Very reasonable thing to do. That was good for another year</p><p>Then those scores started cropping up in performance reviews, just as a "and they are doing such a good job that their score is 4.5". That was good for another year.&nbsp;</p><p>Then those scores became goals. &#8220;Move from 4.2 to 4.5 during this performance review period.&#8221; And the scores started getting rolled up. A manager&#8217;s score was the average of their reports&#8217; scores. A director's score was the average of their reporting managers&#8217; scores.&nbsp;</p><p>Now things started getting unhinged. Directors put pressure on managers for better scores. Managers started negotiating with individual contributors for better survey scores. &#8220;Give me a 5 &amp; I&#8217;ll make sure you get an &#8216;exceeds expectations&#8217;.&#8221; Directors started cutting managers &amp; teams with poor scores, whether those cuts made organizational sense or not.</p></blockquote><p>Things went from, &#8220;we&#8217;d like to know how things are going,&#8221; to, &#8220;we know even less about how things are going. But they are definitely going worse because people are now gaming the system.&#8221; How did this occur? Well, because we started to measure &amp; incentivize (with money &amp; status) changes in the measures! And measuring leads to behavior change &#8211; behavior change including coming up with creative ways to improve those measurement scores even at the expense of results that everyone agrees matter.</p><p><strong>In this two-part article, we seek to arm engineering leaders with perspectives to the question: Can you measure developer productivity? </strong>It&#8217;s the sum of our viewpoints, professional experiences, and what we&#8217;ve seen work, firsthand:</p><ul><li><p><strong>Kent Beck</strong> brings 40 years of software engineering experience, and has tried, failed, and tried again to measure developer productivity for almost all this time.</p></li><li><p><strong>Gergely Orosz</strong> brings 15 years of software engineering experience, including 5 years&#8217; managing engineering teams.</p></li></ul><p>Two weeks ago, McKinsey published <a href="https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/yes-you-can-measure-software-developer-productivity">the article</a> &#8220;Yes, you can measure software developer productivity.&#8221; In it, the company claimed it has an approach for measuring software developer productivity that nearly 20 companies already use, and that the consultancy is ready to extend the roll out of the custom approach.</p><p>As tempting as it is, we won&#8217;t go into a detailed critique of the McKinsey article and the measurement methodology. The thinking that&#8217;s evident in the article is absurdly naive and ignores the dynamics of high-performing software engineering teams. But it was written for a reason: CEOs and CFOs are increasingly frustrated by CTOs throwing up their hands and saying software engineering is too nuanced to measure, when sales teams have individual measurements and quotas to hit, as do recruitment teams in the number of positions to fill. The executive reasoning goes: if other groups can measure individual performance, it&#8217;s absurd that engineering cannot.</p><p>The reality is engineering leaders cannot avoid the question of how to measure developer productivity, today. If they try to, they risk the CEO or CFO turning instead to McKinsey, who <em>will</em> bring their custom framework, deploy it &#8211; even as the CTO protests &#8211; and start reporting on custom McKinsey metrics like &#8220;Developer Velocity Benchmark Index,&#8221; &#8220;Contribution Analysis,&#8221; and &#8220;Talent Capability.&#8221;&nbsp;</p><p>We believe that introducing such a framework is wrong-headed and certain to backfire. The McKinsey framework will most likely do far more harm than good to organizations &#8211; and to the engineering culture at companies. Such damage could take years to undo. So let&#8217;s get around to answering this question without evasion, and give demanding CEOs and CFOs what they want.</p><p>We cover:</p><ul><li><p>A mental model of the software engineering cycle</p></li><li><p>Where does the need for measuring productivity come from?</p></li><li><p>How do sales and recruitment measure productivity so accurately?</p></li><li><p>Measurement tradeoffs in software engineering</p></li></ul><p><strong>Who is this article for? </strong>We wrote this article for software developers and engineering leaders, and anybody who cares about nurturing high-performing software development teams. By &#8220;high performing&#8221; we mean teams where developers satisfy their customers, feel good about coming to work, and don&#8217;t feel like they&#8217;re constantly measured on senseless metrics which work against building software that solves customers&#8217; problems. Our goal is to help hands-on leaders to make suggestions for measuring <em>without</em> causing harm, and to help software developers become more productive.</p><p>When reading articles like McKinsey&#8217;s, keep in mind they&#8217;re written for a very different, and specific, audience: untechnical CEOs and CFOs with little to zero experience with software development. Engineering is just another department. They need to treat engineering the same way they treat Sales or Recruitment &#8211; and will do so, regardless of the damage misconceived frameworks do to development culture.</p><h2>A mental model of the software engineering value</h2><p>How does software engineering create value? Take the typical example of building a feature, then launching it to customers, and iterating on it. What does this cycle look like? Say we&#8217;re talking about a pretty autonomous and empowered software engineering team working at a startup, who are in tune with customers:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wghg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ec316e-41f3-4368-9a3f-835757f08882_1600x934.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wghg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ec316e-41f3-4368-9a3f-835757f08882_1600x934.png 424w, https://substackcdn.com/image/fetch/$s_!Wghg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ec316e-41f3-4368-9a3f-835757f08882_1600x934.png 848w, https://substackcdn.com/image/fetch/$s_!Wghg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ec316e-41f3-4368-9a3f-835757f08882_1600x934.png 1272w, https://substackcdn.com/image/fetch/$s_!Wghg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ec316e-41f3-4368-9a3f-835757f08882_1600x934.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wghg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ec316e-41f3-4368-9a3f-835757f08882_1600x934.png" width="1456" height="850" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3ec316e-41f3-4368-9a3f-835757f08882_1600x934.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:850,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wghg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ec316e-41f3-4368-9a3f-835757f08882_1600x934.png 424w, https://substackcdn.com/image/fetch/$s_!Wghg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ec316e-41f3-4368-9a3f-835757f08882_1600x934.png 848w, https://substackcdn.com/image/fetch/$s_!Wghg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ec316e-41f3-4368-9a3f-835757f08882_1600x934.png 1272w, https://substackcdn.com/image/fetch/$s_!Wghg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ec316e-41f3-4368-9a3f-835757f08882_1600x934.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 start by deciding what to do next, and then we do it. This is the <strong>effort</strong> like planning, coding and so on. Through this effort, we produce tangible things like the feature itself, the code, design documents, etc. These are the <strong>output</strong>. Customers will behave differently as a result of this output, which is our <strong>outcome</strong>. For example, thanks to the feature they might get stuck less during the onboarding flow. As a result of this behavior change, we will see value flowing back to us like feedback, revenue, referrals. This is the <strong>impact</strong>.</p><p>So let&#8217;s update our mental model with these terms:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ekwI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d05c3d6-fbf0-4d1d-a5c9-3bc62eeee88f_1600x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ekwI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d05c3d6-fbf0-4d1d-a5c9-3bc62eeee88f_1600x928.png 424w, https://substackcdn.com/image/fetch/$s_!ekwI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d05c3d6-fbf0-4d1d-a5c9-3bc62eeee88f_1600x928.png 848w, https://substackcdn.com/image/fetch/$s_!ekwI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d05c3d6-fbf0-4d1d-a5c9-3bc62eeee88f_1600x928.png 1272w, https://substackcdn.com/image/fetch/$s_!ekwI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d05c3d6-fbf0-4d1d-a5c9-3bc62eeee88f_1600x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ekwI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d05c3d6-fbf0-4d1d-a5c9-3bc62eeee88f_1600x928.png" width="1456" height="844" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d05c3d6-fbf0-4d1d-a5c9-3bc62eeee88f_1600x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:844,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ekwI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d05c3d6-fbf0-4d1d-a5c9-3bc62eeee88f_1600x928.png 424w, https://substackcdn.com/image/fetch/$s_!ekwI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d05c3d6-fbf0-4d1d-a5c9-3bc62eeee88f_1600x928.png 848w, https://substackcdn.com/image/fetch/$s_!ekwI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d05c3d6-fbf0-4d1d-a5c9-3bc62eeee88f_1600x928.png 1272w, https://substackcdn.com/image/fetch/$s_!ekwI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d05c3d6-fbf0-4d1d-a5c9-3bc62eeee88f_1600x928.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 effort-output-outcome-impact model describes software engineering, and works just as well for smaller tasks as it does to model thinking about feature development, or shipping complex projects.</p><p>We reference this model throughout this article.</p><h2>Where does the need for measuring productivity come from?</h2><p>Before we answer how to measure, let&#8217;s start with the more important question:</p><p><strong>Who wants to measure productivity, and why?</strong></p><p>This is such an important question to start with. The answer will differ dramatically, depending on who&#8217;s asking, and what the goal of the question is. Here&#8217;s a few common examples:</p><p><strong>#1: a CTO who wants to identify which engineers to fire. </strong>&#8220;How can I measure the productivity of engineers in the organization, to identify the least productive 10%, and let them go?&#8221;</p><p>Unfortunately, this case is timely in the wake of recent layoffs across the tech industry. Here are some ways to answer it:</p><ul><li><p>Identify the lowest performers based on the latest performance review scores. This approach uses historical data that is likely somewhat outdated.</p></li><li><p>Decide based on tenure, and lay off based on the &#8220;last in, first out&#8221; method. This uses no performance-related data and simply assumes that the exit of recent joiners will affect productivity less.</p></li><li><p>Decide on a few easy-to-measure metrics like the number of pull requests, number of tickets closed, and so on. Basically, to decide by effort and output.</p></li><li><p>Ask managers to identify the number of engineers to be let go. This approach can harness team dynamics and unquantifiable information like a manager knowing which engineers are about to hand in their resignation, which quantitative metrics miss.</p></li></ul><p>With layoffs, team dynamics are impacted, and any approach which fails to take this into account, is likely to result in a less than ideal outcome. At the same time, layoffs often come with constraints, like senior leadership not wanting to get line managers involved. As a result, decisions are often made based on metrics known to be incorrect.</p><p><strong>#2: To compare two investment opportunities. </strong>&#8220;How can I measure the productivity of teams, and allocate additional headcount to the team that will make the most efficient use of additional headcount?&#8221;</p><p>To answer this question, you want to compare the return on investment. This is not a question about productivity, it&#8217;s about the impact of allocating more headcount to one team or another</p><p><strong>#3: To manage performance.</strong> &#8220;How can I measure engineers&#8217; productivity to identify and reward the top 10%, and to identify the bottom quarter in order to debug and improve their performance?&#8221;</p><p>There are plenty of ways to go about measuring performance, and doing so with metrics is possible, though error prone. A hands-on manager can immediately name their bottom and top performers, and then examine and debug outputs, and look closer at how engineers do their work (their effort.) <a href="https://newsletter.pragmaticengineer.com/p/performance-calibrations">Performance calibrations</a> are a standard way to do this.</p><p><strong>#4: a software engineer who wants to grow at their craft</strong>. The question could be: &#8220;How can I measure my own productivity, and which metrics can I improve to become a better engineer?&#8221; This is a question more engineers should ask of themselves! Here are two helpful approaches:</p><ul><li><p>Aim to only have one red test at a time when using test driven development (TDD). This approach measures both effort and output. Get to the point where you can confidently, deliberately and consistently have one red test, when you expect one red test.</p></li><li><p>Set a goal to merge a pull request every day, and track this goal over a week. This measure includes both effort and output. This goal forces you to do smaller commits, which are easier to review and get signed off quicker. It also pushes you to write code that&#8217;s correct and follows team standards.</p></li></ul><p>As long as you keep tracking these &#8220;scores&#8221; and work on improving them, you&#8217;ll almost certainly improve your efficiency as a software engineer.</p><p>But what would happen if you showed these metrics to your manager and your performance was then judged by them? It would be a disaster: you&#8217;d be measured not on outcomes or impact, but by output. When you experiment with approaches &#8211; for example, learning a new language to help a team in need &#8211; then your output could drop, even though you are helping the team achieve a better outcome!</p><h2>Why can sales and recruitment measure productivity so accurately?</h2><p>As the software engineering industry, we should collectively admit we&#8217;ve done a much worse job of measuring productivity down to the individual level, than other functions have. Take sales as an example. Here is Kent&#8217;s account of the level of accountability Sales operates at, from a meeting of sales and engineering leadership at one of his past companies:</p><blockquote><p>&#8220;I clearly remember this meeting where it was engineering and sales leadership reporting on progress. Each person from the sales team spoke and gave an update which went something like this:</p><p>&#8216;My team&#8217;s target for the quarter was $600K, and we delivered $520K. I take accountability for the miss. Here are the reasons it happened, and here is my plan of what I&#8217;m changing to hit next quarter&#8217;s goal of $650K. Additionally, here is a two-quarter-long initiative I am putting in place, which I expect will bring an incremental $100K for each quarter, once complete. Any questions?&#8217;</p><p>If anyone had questions, the sales leader would drill down all the way to the individual level &#8211; which sales reps were above quota and which were below it, and by how much &#8211; and do so in a way that everyone in the room understood.</p><p>And then, it was engineering&#8217;s turn. My goodness, the contrast was stark. The typical engineering update went something like this:</p><p>&#8216;So, this quarter we shipped Feature A, and we are slightly behind on some tech debt migration, and next quarter we&#8217;ll ship Feature B and catch up on the migration. Any questions?&#8217;</p><p>If anyone had questions about some delay, the answer was never about individuals &#8211; as with sales &#8211; and usually included factors like unforeseen difficulties, tech debt, APIs; all things which non-engineers in the room didn&#8217;t really understand.&#8221;</p></blockquote><p>The level of accountability which sales and customer support work with is on a completely different scale from what a CEO observes from engineering. But when the CEO examines overall departmental costs, engineering probably costs more than sales!</p><p>It&#8217;s not just sales that demonstrates higher levels of accountability. Recruiting teams have targets for &#8220;heads to fill.&#8221; A recruitment team can without hesitation answer the question of what percentage of their targets have been met, how many more recruiters they need to meet aggressive hiring targets, and to identify the top and the bottom recruiters, purely based on metrics.</p><p>Let&#8217;s put ourselves in the shoes of a CEO. Sales has ways to clearly measure productivity, as does recruitment. So why not engineering?</p><p>Let&#8217;s return to our effort-output-outcome-impact mental model of how software engineering works. We can apply this model to sales and recruitment. The sales team measures itself by deals closed, so where does this metric go in the model? It falls into &#8220;outcome&#8221; or &#8220;impact:&#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_!k6eX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cdca70-caf4-405f-b907-c83a6016a55d_1600x907.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k6eX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cdca70-caf4-405f-b907-c83a6016a55d_1600x907.png 424w, https://substackcdn.com/image/fetch/$s_!k6eX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cdca70-caf4-405f-b907-c83a6016a55d_1600x907.png 848w, https://substackcdn.com/image/fetch/$s_!k6eX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cdca70-caf4-405f-b907-c83a6016a55d_1600x907.png 1272w, https://substackcdn.com/image/fetch/$s_!k6eX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cdca70-caf4-405f-b907-c83a6016a55d_1600x907.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!k6eX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cdca70-caf4-405f-b907-c83a6016a55d_1600x907.png" width="1456" height="825" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2cdca70-caf4-405f-b907-c83a6016a55d_1600x907.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:825,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!k6eX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cdca70-caf4-405f-b907-c83a6016a55d_1600x907.png 424w, https://substackcdn.com/image/fetch/$s_!k6eX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cdca70-caf4-405f-b907-c83a6016a55d_1600x907.png 848w, https://substackcdn.com/image/fetch/$s_!k6eX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cdca70-caf4-405f-b907-c83a6016a55d_1600x907.png 1272w, https://substackcdn.com/image/fetch/$s_!k6eX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cdca70-caf4-405f-b907-c83a6016a55d_1600x907.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>What about the recruitment team&#8217;s main metric: the number of heads filled? It&#8217;s also categorized as &#8220;impact:&#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_!19bE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51b4def-e2ee-4135-a07a-0e89e8c0443f_1600x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!19bE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51b4def-e2ee-4135-a07a-0e89e8c0443f_1600x941.png 424w, https://substackcdn.com/image/fetch/$s_!19bE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51b4def-e2ee-4135-a07a-0e89e8c0443f_1600x941.png 848w, https://substackcdn.com/image/fetch/$s_!19bE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51b4def-e2ee-4135-a07a-0e89e8c0443f_1600x941.png 1272w, https://substackcdn.com/image/fetch/$s_!19bE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51b4def-e2ee-4135-a07a-0e89e8c0443f_1600x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!19bE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51b4def-e2ee-4135-a07a-0e89e8c0443f_1600x941.png" width="1456" height="856" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a51b4def-e2ee-4135-a07a-0e89e8c0443f_1600x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:856,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!19bE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51b4def-e2ee-4135-a07a-0e89e8c0443f_1600x941.png 424w, https://substackcdn.com/image/fetch/$s_!19bE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51b4def-e2ee-4135-a07a-0e89e8c0443f_1600x941.png 848w, https://substackcdn.com/image/fetch/$s_!19bE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51b4def-e2ee-4135-a07a-0e89e8c0443f_1600x941.png 1272w, https://substackcdn.com/image/fetch/$s_!19bE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51b4def-e2ee-4135-a07a-0e89e8c0443f_1600x941.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 can repeat this exercise for other functions with high accountability in how they work. For example, customer support can be measured by the number of tickets closed (an outcome), the time it takes to close a ticket (also an outcome,) and by customer satisfaction scores (impact.)</p><p>Neither Kent nor I have seen accountable teams within tech companies which are <em>not</em> measured by outcome and impact. In order to make software engineering more accountable, we need to look at how to do this.</p><h2>Measurement tradeoffs in software engineering</h2><p>One popular framework to measure software engineering team efficiency is the <a href="https://dora.dev/">DORA framework</a>. Let&#8217;s map out the focus of this framework measurement:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PTDD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0878da71-7633-4602-a016-8e09577726fc_1600x956.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PTDD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0878da71-7633-4602-a016-8e09577726fc_1600x956.png 424w, https://substackcdn.com/image/fetch/$s_!PTDD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0878da71-7633-4602-a016-8e09577726fc_1600x956.png 848w, https://substackcdn.com/image/fetch/$s_!PTDD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0878da71-7633-4602-a016-8e09577726fc_1600x956.png 1272w, https://substackcdn.com/image/fetch/$s_!PTDD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0878da71-7633-4602-a016-8e09577726fc_1600x956.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PTDD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0878da71-7633-4602-a016-8e09577726fc_1600x956.png" width="1456" height="870" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0878da71-7633-4602-a016-8e09577726fc_1600x956.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:870,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PTDD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0878da71-7633-4602-a016-8e09577726fc_1600x956.png 424w, https://substackcdn.com/image/fetch/$s_!PTDD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0878da71-7633-4602-a016-8e09577726fc_1600x956.png 848w, https://substackcdn.com/image/fetch/$s_!PTDD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0878da71-7633-4602-a016-8e09577726fc_1600x956.png 1272w, https://substackcdn.com/image/fetch/$s_!PTDD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0878da71-7633-4602-a016-8e09577726fc_1600x956.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><em>The 4 DORA metrics: each measures outcome or impact</em></p><p>All DORA metrics measure outcomes or impact.</p><p>Let&#8217;s look at another way to measure developer productivity: the SPACE framework. It seeks to capture satisfaction, performance, activity, communication, and efficiency (SPACE.) It&#8217;s not only outcomes and impact, as with DORA. The SPACE framework does not outline definite metrics &#8211; but gives example ones. Several of the metrics come with a warning, like measuring lines of code. Metrics that come with a warning from the SPACE framework authors &#8211; such as the &#8216;lines of code&#8217; metric &#8211; tend to measure effort or outcome.</p><p>One critique of McKinsey&#8217;s system we have is that <em>nearly every single one </em>of its custom metrics which differ from DORA and SPACE metrics, measure effort or output:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PEE-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdba9183a-3d52-4353-94e4-3de19ede9f55_1600x961.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PEE-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdba9183a-3d52-4353-94e4-3de19ede9f55_1600x961.png 424w, https://substackcdn.com/image/fetch/$s_!PEE-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdba9183a-3d52-4353-94e4-3de19ede9f55_1600x961.png 848w, https://substackcdn.com/image/fetch/$s_!PEE-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdba9183a-3d52-4353-94e4-3de19ede9f55_1600x961.png 1272w, https://substackcdn.com/image/fetch/$s_!PEE-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdba9183a-3d52-4353-94e4-3de19ede9f55_1600x961.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PEE-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdba9183a-3d52-4353-94e4-3de19ede9f55_1600x961.png" width="1456" height="875" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dba9183a-3d52-4353-94e4-3de19ede9f55_1600x961.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:875,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PEE-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdba9183a-3d52-4353-94e4-3de19ede9f55_1600x961.png 424w, https://substackcdn.com/image/fetch/$s_!PEE-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdba9183a-3d52-4353-94e4-3de19ede9f55_1600x961.png 848w, https://substackcdn.com/image/fetch/$s_!PEE-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdba9183a-3d52-4353-94e4-3de19ede9f55_1600x961.png 1272w, https://substackcdn.com/image/fetch/$s_!PEE-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdba9183a-3d52-4353-94e4-3de19ede9f55_1600x961.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><em>4 out of the 5 new metrics suggested by McKinsey&#8217;s measure effort or output</em></p><p>What&#8217;s wrong with this approach? First, the only folks who care about these metrics are the people collecting them. Customers don&#8217;t care. Executives don&#8217;t care. Investors don&#8217;t care. Second, and most crucially, collecting &amp; evaluating these metrics interferes with the team delivering on the measures downstream folks actually do care about, like profitability.</p><p>Why is McKinsey adding ways to measure effort? One reason is that it&#8217;s the easiest thing to measure! But the McKinsey approach ignores an important truth: the act of measurement changes how developers work, as they try to &#8220;game&#8221; the system.</p><p><strong>The earlier in the cycle you measure, the easier it is to measure. And also the more likely that you introduce unintended consequences. </strong>Let&#8217;s take the extreme of measuring only profits. The good news is that everyone is aligned, across the company! The bad news: attributing who contributed how much to the profit is nearly impossible! You can &#8216;fix&#8217; the attribution question by measuring outputs, or effort. But the cost is that you change people&#8217;s behavior, as it incentivizes them to game the system to &#8216;score&#8217; better on those metrics:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!52T-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc10994a2-d86d-44a8-bed8-0d799380c32c_1600x1045.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!52T-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc10994a2-d86d-44a8-bed8-0d799380c32c_1600x1045.png 424w, https://substackcdn.com/image/fetch/$s_!52T-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc10994a2-d86d-44a8-bed8-0d799380c32c_1600x1045.png 848w, https://substackcdn.com/image/fetch/$s_!52T-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc10994a2-d86d-44a8-bed8-0d799380c32c_1600x1045.png 1272w, https://substackcdn.com/image/fetch/$s_!52T-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc10994a2-d86d-44a8-bed8-0d799380c32c_1600x1045.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!52T-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc10994a2-d86d-44a8-bed8-0d799380c32c_1600x1045.png" width="1456" height="951" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c10994a2-d86d-44a8-bed8-0d799380c32c_1600x1045.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:951,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!52T-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc10994a2-d86d-44a8-bed8-0d799380c32c_1600x1045.png 424w, https://substackcdn.com/image/fetch/$s_!52T-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc10994a2-d86d-44a8-bed8-0d799380c32c_1600x1045.png 848w, https://substackcdn.com/image/fetch/$s_!52T-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc10994a2-d86d-44a8-bed8-0d799380c32c_1600x1045.png 1272w, https://substackcdn.com/image/fetch/$s_!52T-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc10994a2-d86d-44a8-bed8-0d799380c32c_1600x1045.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><em>Measurement tradeoffs: capturing impact and outcomes boosts alignment, but makes it harder to attribute individuals&#8217; contribution. But measuring earlier in the cycle creates unintended consequences, as people stop caring about group or company goals</em></p><p>Let&#8217;s take the case of a company that&#8217;s reasonably profitable and in the upper quartile for the industry. The company&#8217;s leadership dislikes being unable to attribute individuals&#8217; performance in contributing to profitability.</p><p>Would you be tempted to screw up your company&#8217;s business by introducing micro-measuring? Hell no!</p><p><strong>We urge engineering leaders to look to outcome and impact measurements, to identify what to measure. </strong>It&#8217;s true that it is tempting to measure effort. But there&#8217;s a reason why sales and recruitment teams are not judged by their performance in being in the office at 9am sharp, or by the number of emails sent &#8211; which are both effort or output.</p><p>So which outcomes and impacts can be measured for engineering teams? DORA and SPACE give some pointers, and we offer two more:</p><ul><li><p><strong>Please the customer at least once per team, per week</strong>. This output might not sound so impressive, but in practice is very hard to achieve. The most productive teams &#8211; and nimble companies &#8211; can pull this off, though. If you consider why a startup moves so fast and executes so well, it&#8217;s because they have to do so out of necessity, even if they do not measure this.</p></li><li><p><strong>Delivering business impact committed to by the team. </strong>There is a good reason why &#8220;impact&#8221; is so prevalent at the likes of Meta, Uber, and other fast-moving tech companies. By rewarding impact, the business incentivizes software engineers to understand the business, and to prioritize helping it reach its goals. Is shipping a $2M/year cost-saving exercise via a configuration change, less valuable than shipping a $500K/year cost-saving exercise that takes 5 engineering months? No! You don&#8217;t want to focus solely on impact, but not focusing on the end goal of delivering business value is a poor choice.</p></li></ul><h2>Takeaways</h2><p>There is, undoubtedly, mounting pressure from the business in wanting to quantify the productivity of software development teams. Companies like McKinsey are responding to this clear demand by providing frameworks that promise to do exactly this.</p><p>Measuring effort and output is attractive. These come with tradeoffs that will negatively impact the engineering culture. As engineering leaders: be sure to consider this tradeoff, and how it could change the incentives of developers.</p><p>In Part 2 of this article &#8211; coming out on Thursday &#8211;, we will go into the dangers of only measuring outcomes and impact; and offer our answer to the question on whether &amp; how to measure developer productivity.</p><p>(Kent here: I am writing this with <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Gergely Orosz&quot;,&quot;id&quot;:30107029,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/802a32bb-2048-428b-bdb5-d6acd1e2b2d5_48x48.png&quot;,&quot;uuid&quot;:&quot;276ce6e4-4e2e-4c36-8cba-8155061e723f&quot;}" data-component-name="MentionToDOM"></span> and his valuable <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;The Pragmatic Engineer&quot;,&quot;id&quot;:458709,&quot;type&quot;:&quot;pub&quot;,&quot;url&quot;:&quot;https://open.substack.com/pub/pragmaticengineer&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5ecbf7ac-260b-423b-8493-26783bf01f06_600x600.png&quot;,&quot;uuid&quot;:&quot;782b9b09-86fc-46d1-b07d-ac987b19c6ce&quot;}" data-component-name="MentionToDOM"></span> stack. Please consider subscribing. Thursday&#8217;s piece will give you my personal takes on what to do &amp; what not to do when it comes to measurement.)</p>]]></content:encoded></item><item><title><![CDATA[Effort/Output/Outcome/Impact, Take 2]]></title><description><![CDATA[I apologize for the double posting.]]></description><link>https://tidyfirst.substack.com/p/effortoutputoutcomeimpact-take-2</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/effortoutputoutcomeimpact-take-2</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Mon, 28 Aug 2023 15:51:51 GMT</pubDate><enclosure url="https://substack-video.s3.amazonaws.com/video_upload/post/136490332/a593684c-0d62-4453-a2dc-d82b279360ff/transcoded-00001.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I apologize for the double posting. That&#8217;s what I get for rushing.</p><p>Here is an engineering-oriented perspective on creating value, where to measure, &amp; what each measurement point means. tl;dr measure too early in the chain &amp; you risk worse results at the end of the chain where you actually care about results (profits, in this case).</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://tidyfirst.substack.com/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://tidyfirst.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Sign-up Versus Assignment]]></title><description><![CDATA[Usually I build posts around 1 story but this time I&#8217;m going to use 2.]]></description><link>https://tidyfirst.substack.com/p/sign-up-versus-assignment</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/sign-up-versus-assignment</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Thu, 05 Jan 2023 20:52:36 GMT</pubDate><content:encoded><![CDATA[<p>Usually I build posts around 1 story but this time I&#8217;m going to use 2.</p><p>Story 1: I was talking with someone from Boeing who told me how the best mechanical engineers design the wing spars, the most complicated &amp; consequential part of the design. My immediate reaction was, &#8220;I want <em>everybody</em> to be the best if I&#8217;m going to ride in that plane.&#8221; I quickly realized I was being unrealistic. Of <em>course</em> there&#8217;s a distribution of talent &amp; of <em>course</em> you want the best talent on the hardest problem. Anything less &amp; you&#8217;ll end up with a worse plane &amp; worse planes are really worse.</p><p>Story 2: I was talking with a research group headed by Dan Ingalls. They were using new hardware so they needed to implement graphics primitives. He said, &#8220;Everyone on the team had implemented graphics primitives [Dan invented BitBLT] except X, so of course we had X do it.&#8221; It was the &#8220;of course&#8221; that confused me. Why would you have the <em>least</em> qualified person do a task?</p><h2>Task Matching</h2><p>The apparent contradiction between the stories reveals a tradeoff. Different strategies for deciding who does what work meet different criteria. Broadly speaking, there are 2 common strategies:</p><ul><li><p>Assignment. Someone with a broad view chooses &#8220;the right person for the job&#8221;.</p></li><li><p>Sign-up. Those doing the work choose what they are going to do.</p></li></ul><p>One of the innovations of Extreme Programming was a radical reliance on sign-up-based task matching. The zeitgeist has since shifted back to assignment which I think is a pity. Another story for another day.</p><p>As I started writing this piece I realized I could easily get in the weeds about the tradeoff between these strategies. I&#8217;m not going to do that just yet (but I certainly will in the future). I want to focus on the incentive effects of each strategy.</p><h2>Motivation Matters?</h2><p>We&#8217;ll start with the incentives of the people doing the work. The first question is: does engineer motivation matter?</p><p>I think it does. When I was engineering day-to-day, if I cared about what I was working on I was just plain more effective. More energized. More creative. More responsible.</p><p>Sign-up creates motivation. <em>I</em> chose this task. <em>I</em> will do my best.</p><p>Assignment bleaches responsibility&#8212;you chose this task for me. If it goes badly it&#8217;s at least partly your fault.</p><h2>Up The Chain</h2><p>As a manager, the incentive to revert to assignment is clear. I&#8217;m a manager. I&#8217;ve chosen a life of service, not action. One of the few levers I have for direct control of what happens is assignment. I want the best people doing the most important jobs, because if they aren&#8217;t then I&#8217;m going to have less progress to report.</p><p>As I mentioned, how &amp; when to move away from this incentive to take advantage of the incentives of sign-ups is a complicated tradeoff. Managers can create the social &amp; organizational feedback loops to mitigate the weaknesses of sign-up.</p><h2>Mindful Choice</h2><p>The choice between assignment &amp; sign-up is a choice. Choose but be aware of the incentives you are creating &amp; responding to as you choose.</p><p>(There&#8217;s so much more to write about this topic, but that&#8217;s all for today. Please post your questions, stories, &amp; dilemmas.)</p>]]></content:encoded></item><item><title><![CDATA[The Pie Problem]]></title><description><![CDATA[Once upon a time there was a guild of bakers.]]></description><link>https://tidyfirst.substack.com/p/the-pie-problem</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/the-pie-problem</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Tue, 20 Dec 2022 16:44:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.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_!aCyt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aCyt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.png 424w, https://substackcdn.com/image/fetch/$s_!aCyt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.png 848w, https://substackcdn.com/image/fetch/$s_!aCyt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.png 1272w, https://substackcdn.com/image/fetch/$s_!aCyt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aCyt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.png" width="505" height="334" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:334,&quot;width&quot;:505,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:335804,&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_!aCyt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.png 424w, https://substackcdn.com/image/fetch/$s_!aCyt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.png 848w, https://substackcdn.com/image/fetch/$s_!aCyt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.png 1272w, https://substackcdn.com/image/fetch/$s_!aCyt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2011a541-8c89-4b16-ba36-9d12e001a0ee_505x334.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>Once upon a time there was a guild of bakers. Bakers belonged to a kitchen and the kitchens belonged to the guild. They were fortunate enough to live in a town simply mad for pies. As soon as they baked a pie it was bought and eaten.</p><p>The bakers all dreamed of flour and lard and fillings of apple and cranberry and chocolate and caramel. When they awoke, it was to the realities of another day of mixing and kneading and rolling and baking.</p><h2>Tarts</h2><p>The townsfolk all wanted different pies. As a result, each baker baked their own tarts, just enough for one customer to eat.</p><p>To keep track, each baker stamped their initials on each pie they baked. After a while, the kitchens would collect all the stamps, then get together to compare the jobs the bakers had been doing.</p><h2>Tarts &#8594; Pies</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uRJz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2d57f7a8-67af-44d3-8e6e-2f1360691a37_622x346.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uRJz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2d57f7a8-67af-44d3-8e6e-2f1360691a37_622x346.png 424w, https://substackcdn.com/image/fetch/$s_!uRJz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2d57f7a8-67af-44d3-8e6e-2f1360691a37_622x346.png 848w, https://substackcdn.com/image/fetch/$s_!uRJz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2d57f7a8-67af-44d3-8e6e-2f1360691a37_622x346.png 1272w, https://substackcdn.com/image/fetch/$s_!uRJz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2d57f7a8-67af-44d3-8e6e-2f1360691a37_622x346.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uRJz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2d57f7a8-67af-44d3-8e6e-2f1360691a37_622x346.png" width="622" height="346" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/2d57f7a8-67af-44d3-8e6e-2f1360691a37_622x346.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:346,&quot;width&quot;:622,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:408634,&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_!uRJz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2d57f7a8-67af-44d3-8e6e-2f1360691a37_622x346.png 424w, https://substackcdn.com/image/fetch/$s_!uRJz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2d57f7a8-67af-44d3-8e6e-2f1360691a37_622x346.png 848w, https://substackcdn.com/image/fetch/$s_!uRJz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2d57f7a8-67af-44d3-8e6e-2f1360691a37_622x346.png 1272w, https://substackcdn.com/image/fetch/$s_!uRJz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2d57f7a8-67af-44d3-8e6e-2f1360691a37_622x346.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>The town grew, based largely on the prosperity created by the thriving pie trade. As demand for pies grew, tarts were no longer necessary. Several people wanted apple pie in a day, so it made sense to bake whole pies at a time. This let the person who wanted to learn to make crusts just make crusts and the person who wanted to learn to make fillings to just make fillings.</p><p>The tradition of stamping pies with the initials of the bakers continued. Since several people made each pie, it was necessary to slice the pies and stamp the slices. This was merely a nod to tradition, though, since everyone knew that any one pie was the product of several people together.</p><h2>The Pie Problem</h2><p>Soon two kinds of kitchens emerged. In the first kind, the focus remained on making bigger and better pies. Slicing and stamping was seen as something that happened for historical reasons but it had no influence on the making of the pies. How could it?</p><p>In the second kind of kitchen, however, stamping and slicing became the primary activities. It seemed as if the pie itself was nothing more than an excuse to play the Slicing and Stamping Game. These kitchens naturally turned out smaller pies and worse pies, since they weren&#8217;t actually focused on the pie but on the game.</p><p>It would be easy to dismiss the second kind of kitchen. We all know that pie is the point, not who gets credit. That&#8217;s only true, however, as long as there is enough credit to go around. When fear of lack of credit becomes stronger than excitement about accomplishment, it&#8217;s a natural human reaction to dream of slices and stamping and neglect the pie.</p><p>I leave this story unfinished, as it is in truth. Will the bakers:</p><ul><li><p>Continue the trend toward focus on slicing and stamping? Re-focus on pies and let the slicing and stamping fall where it will?</p></li><li><p>Find a new way to acknowledge the diverse contributions of bakers to pies?</p></li></ul><p>We will find out. But we will also create the answer by our own behavior.</p>]]></content:encoded></item><item><title><![CDATA[Team Matching Creates Incentives]]></title><description><![CDATA[Buried in this tweet by Gergely Orosz is an interesting quote: &#8220;Team matching was very frustrating for hiring managers.&#8221;]]></description><link>https://tidyfirst.substack.com/p/team-matching-creates-incentives</link><guid isPermaLink="false">https://tidyfirst.substack.com/p/team-matching-creates-incentives</guid><dc:creator><![CDATA[Kent Beck]]></dc:creator><pubDate>Mon, 19 Dec 2022 17:58:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fpbs.substack.com%2Fmedia%2FFkCOVJ1WAAAkJ_Z.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/GergelyOrosz/status/1603438161492951041&quot;,&quot;full_text&quot;:&quot;I talked with more than 30 hiring managers to try and answer the question: just how much is the tech job market cooling? Is it even cooling?\n\nSeems like it is. In the US and Europe: definitely. In India and LatAm: less so.\n\nIn the US, it's a great time to be a HM. &quot;,&quot;username&quot;:&quot;GergelyOrosz&quot;,&quot;name&quot;:&quot;Gergely Orosz&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Thu Dec 15 17:13:42 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://pbs.substack.com/media/FkCOVJ1WAAAkJ_Z.png&quot;,&quot;link_url&quot;:&quot;https://t.co/fg3hXsH3ZI&quot;,&quot;alt_text&quot;:&quot;US West Coast and East Coast\nHiring managers are seeing a huge spike in the number of applicants applying, and in the number of qualified applicants. Several call this jump surprisingly high. For engineering management positions, director-level people seem to be applying for line manager positions, in search of more job security.\n\nFrom a hiring manager&#8217;s point of view, this is an ideal market to hire senior engineers, as there is no shortage of candidates.\n\nA public tech company, hiring in the Bay Area and New York:\n\n&#8216;I have a team of ~10, and am hiring for 2 positions. My company is technically only hiring for backfills. I see an insane amount of inbound candidates for our open positions. I&#8217;m not that surprised, given the market.\n\n&#8216;The silver lining is that there is no more internal competition for candidates who pass the interview loop, as we had in the past. We no longer have a &#8216;team matching&#8217; phase.&quot;}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:5,&quot;like_count&quot;:43,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:false}" data-component-name="Twitter2ToDOM"></div><p>Buried in this tweet by Gergely Orosz is an interesting quote: &#8220;Team matching was very frustrating for hiring managers.&#8221;</p><p>Briefly, team matching is the process where hiring an employee is separated from the decision of which team the new employee will join. Back when I was a wee engineer, I was always interviewed &amp; approved by the team I was to join. When I got to Facebook in 2011 I was surprised to find that 1) I would be hired without having a team assigned and 2) I had significant control over which team I would join.</p><p>One theory behind team matching is that engineers work significantly better if they are excited about what the problem they are addressing. Since most can&#8217;t know pre-employment which problem they will find most motivating, late binding to teams increases overall motivation &amp; thus effectiveness.</p><h2>Impact on Managers</h2><p>As the quote above highlights, team matching creates challenges for managers. What if you are managing a team &amp; no one picks you? What if all the new candidates try out working with you &amp; your team &amp; decide to apply their talents elsewhere? Well, what happens is that your team&#8217;s performance dwindles &amp; you&#8217;re out of a job.</p><p>You can react a couple of ways to this. You can go back to early/forced team choice. You&#8217;ll see shorter &amp; shorter lists of &#8220;approved&#8221; teams, even if the trappings of team matching remain. Eventually you&#8217;re left with Hobson&#8217;s Choice.</p><p>What I saw at early(-ish) Facebook, though, was that if executives hold the line on team matching, it creates powerful incentives for managers to improve. To survive in the competition for talent:</p><ul><li><p>Managers need to articulate a vision for why their team&#8217;s scope is important.</p></li><li><p>Managers need to find &amp; communicate ways for new team members to meaningfully contribute.</p></li><li><p>Managers need to encourage the growth &amp; development of existing team members (team members do most of the work selling the team to prospects).</p></li><li><p>Managers need to avoid the most egregious bad behavior&#8212;the bathroom telegraph broadcasts managerial abuse.</p></li></ul><p>I can imagine the frustration of a manager unable to do one or more things on this list. As an executive or investor, I want the manager to learn &amp; grow. It&#8217;s not my job to free their job of frustration. Nor is it my job to shield unskilled managers from the consequences of their shortcomings.</p><p>I <em>like</em> that team matching frustrates some managers. Those are the managers I want to frustrate, even as I offer them coaching &amp; training to improve their skills.</p>]]></content:encoded></item></channel></rss>