<?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[Archinometry]]></title><description><![CDATA[A collection of essays and notes on software architecture, technology, and Brunei.]]></description><link>https://newsletter.archinometry.com</link><image><url>https://substackcdn.com/image/fetch/$s_!V6f6!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0310a2-7197-45d5-b9f9-7356d8c8ca19_500x500.png</url><title>Archinometry</title><link>https://newsletter.archinometry.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 07 Aug 2026 13:55:34 GMT</lastBuildDate><atom:link href="https://newsletter.archinometry.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Amirul Menjeni]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[amirulmenjeni@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[amirulmenjeni@substack.com]]></itunes:email><itunes:name><![CDATA[Amirul Menjeni]]></itunes:name></itunes:owner><itunes:author><![CDATA[Amirul Menjeni]]></itunes:author><googleplay:owner><![CDATA[amirulmenjeni@substack.com]]></googleplay:owner><googleplay:email><![CDATA[amirulmenjeni@substack.com]]></googleplay:email><googleplay:author><![CDATA[Amirul Menjeni]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Data Governance Capabilities Should be Self-Reinforcing]]></title><description><![CDATA[The trick is to connect them seamlessly]]></description><link>https://newsletter.archinometry.com/p/data-governance-capabilities-should</link><guid isPermaLink="false">https://newsletter.archinometry.com/p/data-governance-capabilities-should</guid><dc:creator><![CDATA[Amirul Menjeni]]></dc:creator><pubDate>Mon, 13 Jul 2026 03:51:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WlNK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.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_!WlNK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WlNK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!WlNK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!WlNK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!WlNK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WlNK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2792528,&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://amirulmenjeni.substack.com/i/206671542?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.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_!WlNK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!WlNK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!WlNK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!WlNK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F861a477a-c342-4756-b234-b11ab1e882a1_1536x1024.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 aria-hidden="true" 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><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>An organization may already have a data governance policy in place. It may already have a document for data inventory, its classification, its source systems, and its respective data owners. Yet the organization may still suffer from poor data governance, causing low trust in data. Why? Because those things may not be operationally connected.</p><p>The policy document may say sensitive data must be protected, but classification is not linked to access control to be seamlessly enforced. The governance committee may approve standards, but data assets get created faster than they are documented. The spreadsheet says a dataset exists, but analysts cannot find it, verify its lineage, or know whether it is safe to use. And data owners may be named in the spreadsheet, but incidents or any downstream concerns may not be routed back to the owners. Worst, there are no data owners.</p><p>The book <a href="https://www.oreilly.com/library/view/data-governance-the/9781492063483/">Data Governance: The Definitive Guide</a> argues that trust in data increases when (1) someone is accountable for the data, (2) the data are easily observable, and (3) the data are secure from unauthorized access, misuse, or corruption.</p><p>That&#8217;s Accountability, Observability, and Security. They encapsulates the capabilities the many tools and artifacts that is commonplace in data management and governance practices. Examples includes data contracts, metadata management, data catalog, data lineage, data quality tests, access controls, encryption, etc. Some contributes to more than one. Data lineage and data catalog, for example, not only improves observability by improving data discoverability; they also improve accountability by making data asset ownership more explicit and granular, closer to the logical data structure.</p><p>One way to model the interaction between these three capabilities is a <a href="https://thesystemsthinker.com/anatomy-of-a-reinforcing-loop/">self-reinforcing</a> governance loop that continually builds trust in a systemic way:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W_dd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8ea5c58-5191-4952-ac42-46a118e236c8_488x275.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W_dd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8ea5c58-5191-4952-ac42-46a118e236c8_488x275.png 424w, https://substackcdn.com/image/fetch/$s_!W_dd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8ea5c58-5191-4952-ac42-46a118e236c8_488x275.png 848w, https://substackcdn.com/image/fetch/$s_!W_dd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8ea5c58-5191-4952-ac42-46a118e236c8_488x275.png 1272w, https://substackcdn.com/image/fetch/$s_!W_dd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8ea5c58-5191-4952-ac42-46a118e236c8_488x275.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W_dd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8ea5c58-5191-4952-ac42-46a118e236c8_488x275.png" width="488" height="275" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8ea5c58-5191-4952-ac42-46a118e236c8_488x275.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:275,&quot;width&quot;:488,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23142,&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;:&quot;https://amirulmenjeni.substack.com/i/206671542?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8ea5c58-5191-4952-ac42-46a118e236c8_488x275.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_!W_dd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8ea5c58-5191-4952-ac42-46a118e236c8_488x275.png 424w, https://substackcdn.com/image/fetch/$s_!W_dd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8ea5c58-5191-4952-ac42-46a118e236c8_488x275.png 848w, https://substackcdn.com/image/fetch/$s_!W_dd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8ea5c58-5191-4952-ac42-46a118e236c8_488x275.png 1272w, https://substackcdn.com/image/fetch/$s_!W_dd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8ea5c58-5191-4952-ac42-46a118e236c8_488x275.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 aria-hidden="true" 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><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>That is to say, the relationship between these capabilities is cyclical: assigning ownership, with the proper incentives, establishes stronger accountability. It motivates data owners &#8212; through checks and balances such as data contracts and SLAs &#8212; to be accountable to the curation of metadata and improve documentation, making data easier to discover and observe, increasing observability. It also exposes a weak ownership structure if data issues are rampant. Better observability, in turn, enables stronger security controls and faster detection of misuse or quality issues. Those incidents can then be traced back to owners who should be held accountable &#8212; such as by institutional policy &#8212; reinforcing responsibilities and driving further improvements to observability and security. Thus, each cycle increases trust in the data.</p><p>In the world of digital data abundance, software plays a more important role in supporting this system, seamlessly connecting the three important capabilities in data governance, as I noted in <a href="https://amenji.io/post/dfce2025-regulation-innovation-friction/">DFCE 2025: Regulation, Innovation, and Friction</a>. Yet paperwork may never be extinct. It&#8217;s still required for audits, legal accountability, or C-suite sign-offs, but it won&#8217;t be enough to operationalize data governance at scale. Beyond paperwork, however, software helps in making it easier to do the right thing with data, and difficult to do the wrong thing.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.archinometry.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">Thanks for reading Architectural Crossroads! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1>The Governance Loop on Software</h1><p>Generally, data catalogs, used for metadata management, focuses on the observability capabilities (by ingesting technical metadata and curating them) and accountability (by assigning data owners to the ingested metadata). Security, meanwhile, is naturally integrated with the AI and data analytics platform, where data analytics or data engineering works &#8212; together with policy enforcements &#8212; happens.</p><p>To appreciate software&#8217;s role in data governance beyond bureaucratic paperwork, in this post I&#8217;ll use solutions such as OpenMetadata (as the data catalog) and Snowflake (as the AI and data analytics platform) as examples. Note, though, this isn&#8217;t a recommendation of the two solutions. Another powerful competitor to Snowflake is Databricks; and a good curated list of data catalog solutions can be found in the <a href="https://github.com/opendatadiscovery/awesome-data-catalogs">awesome-data-catalogs</a> repository on GitHub.</p><h2>Accountability</h2><p>Documenting asset ownership usually means the following: Either an owner or an asset was identified first. An agreement then has to be made on who is accountable for the asset &#8212; an asset which should be valuable (otherwise why bother?) &#8212; to some stakeholders. Ownership usually lies where it is in his or her interest to keep the asset running, reliable, and sustainable (lest stakeholders can&#8217;t extract value and blame the owner).</p><p>In the corporate world, this is usually structured by some KPI to incentivize the asset owner to do the &#8220;right&#8221; thing with the asset. So far, this kind of incentive structure is straightforward and common. Examples abound, such as KPIs on incident resolution timeliness, data privacy compliance rating, external audit rating score, etc.</p><p>But generic KPIs are not enough. The data assets must also be measured against their intended use, so that dataset used for operational monitoring should have different definition of &#8220;good&#8221; data quality from dataset used in sales forecasts, for example. The owners are therefore not only accountable for IT-centric issues; equally important is accounting for data consumer needs &#8212; to ensure the data is fit-for-purpose and fit-for-use &#8212; which corresponds more strongly to the trust placed in data. Indeed, trust in data is not purely absolute (e.g., no duplicated records); it is also relative to the domain context and intended use (e.g., the records satisfies use case requirements).</p><p>In the world of data abundance, however, this effort of establishing the link between data owners (and their responsibilities) with their data assets has become cumbersome. The reason can be explained briefly in terms of the three V&#8217;s of big data: Volume, Velocity, and Variety<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p><p>Increasing use of digital workflows increases the rate of growth of organization&#8217;s data footprint. The sheer amount of data volume being generated per day &#8212; or even minutes &#8212; may overwhelm unprepared organizations answerable to regulatory policies. At the same time, the rate &#8212; or velocity &#8212; at which data are being created, captured, and processed also increases, each of which proliferates new data assets that stakeholders rely on. Problems and confusion arise when this rate of data creation and usage is faster than the organization&#8217;s capability to document, manage, and control its data assets. Finally, different use cases necessitate the adoption of different variety of data storage formats and data processing technologies, from simple fixed-schedule batch-processing of tabular formats to more complicated event-driven unstructured data processing. Combined, the large volume, high velocity, and wide variety of data assets can compound accountability problems.</p><p>This brings us to another related problem: How do you define the data ownership boundaries? Where does the line begin that delineates one owner&#8217;s assets from the others, so that there&#8217;s no ownership overlap? And how do you even begin to draw that line<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>? The complexity of these questions is further compounded by the three V&#8217;s above. High velocity means data ownership boundaries change frequently. Ownership then needs to be frequently reviewed and updated. That means the inventory to keep track of the increasingly growing data assets with wide varieties needs to be kept up-to-date as frequently, too.</p><p>You can&#8217;t beat this data governance problem in a world of data abundance with more bureaucracy and paperwork. Since you can&#8217;t manage what you can&#8217;t observe &#8212; and what you want to manage scales out quickly in every dimension &#8212; we need to increase our capability to observe at scale, both organization-wise (as seen with data ownership concerns) and technology-wise (along the volume, velocity, and variety dimensions).</p><h2>Observability</h2><p>The oldest observability mechanism in the book involves writing paper documentation of your data assets and manually performing inventory bookkeeping. That usually translates to cumbersome yearly or bi-annual (because any faster will be exhausting) cross-team efforts of surveying and interviewing different teams to understand the data landscape: What are the databases that are currently running? Which database contains sales data? Which ones contains PII data? Which database gets its data from which other databases? If a specific table is corrupted, which downstream stakeholders are affected? As you can imagine, this approach to observability means such information gets stale quickly, and doesn&#8217;t scale well when data footprints grow larger and quicker over the years. Answering each question above may take days or weeks, depending on your three V&#8217;s.</p><p>Despite the increase in data footprints, it&#8217;s not uncommon to see digital things being inventoried manually in an Excel sheets or Word documents. That should change. With regulatory requirements, for example, data catalog plays an important role for data observability.</p><p>To remain compliant with PDPO in Brunei, for example, an artifact called Data Inventory Map was introduced. The fundamental reason for its introduction is, of course, to ensure organizations and regulatory bodies have the capacity to observe data assets and their use. The following is an illustration <a href="https://pdp.aiti.gov.bn/media/jccpm0dx/aiti-pdp-essentials-infokit-jan-2026.pdf">provided by AITI</a> &#8212; the supervisory authority behind PDPO:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sC2l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662a7512-9de7-472c-9628-6667e5816437_940x863.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sC2l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662a7512-9de7-472c-9628-6667e5816437_940x863.png 424w, https://substackcdn.com/image/fetch/$s_!sC2l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662a7512-9de7-472c-9628-6667e5816437_940x863.png 848w, https://substackcdn.com/image/fetch/$s_!sC2l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662a7512-9de7-472c-9628-6667e5816437_940x863.png 1272w, https://substackcdn.com/image/fetch/$s_!sC2l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662a7512-9de7-472c-9628-6667e5816437_940x863.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sC2l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662a7512-9de7-472c-9628-6667e5816437_940x863.png" width="940" height="863" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/662a7512-9de7-472c-9628-6667e5816437_940x863.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:863,&quot;width&quot;:940,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:188626,&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;:&quot;https://amirulmenjeni.substack.com/i/206671542?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662a7512-9de7-472c-9628-6667e5816437_940x863.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_!sC2l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662a7512-9de7-472c-9628-6667e5816437_940x863.png 424w, https://substackcdn.com/image/fetch/$s_!sC2l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662a7512-9de7-472c-9628-6667e5816437_940x863.png 848w, https://substackcdn.com/image/fetch/$s_!sC2l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662a7512-9de7-472c-9628-6667e5816437_940x863.png 1272w, https://substackcdn.com/image/fetch/$s_!sC2l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F662a7512-9de7-472c-9628-6667e5816437_940x863.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 aria-hidden="true" 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><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 captures important metadata about data assets containing personal data: the purpose of collection, the retention period, where they&#8217;re stored, the legal basis behind the collection, etc. The problem with the Data Inventory Map isn&#8217;t the artifact itself; it&#8217;s about keeping a live, granular, and accurate metadata of the data assets.</p><p>This is where data governance platforms like <a href="https://open-metadata.org/">OpenMetadata</a> or <a href="https://datahub.com/">DataHub</a> comes in handy. They can automatically discover, extract, and ingest the technical metadata &#8212;logical and structural information about your data assets, like table schema, view definitions, and lineage &#8212; in your data landscape<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>. </p><p>They generally work as follows. First, once they have read-only access to your data systems (e.g., Oracle and SQL Server RDBMS, or Snowflake data warehouse), they can extract the metadata information from the source systems. For example, on SQL Server, you can find this in the <a href="https://learn.microsoft.com/en-us/sql/relational-databases/system-information-schema-views/system-information-schema-views-transact-sql?view=sql-server-ver17)">information schema views</a>; on an Oracle database, the <a href="https://docs.oracle.com/cd/E11882_01/nav/catalog_views.htm">data catalog views</a>; on Snowflake, the <a href="https://docs.snowflake.com/en/sql-reference/info-schema">information schema</a> (aka &#8220;data dictionary&#8221;) views. The good news is that instead of querying these views yourself &#8212; which usually isn&#8217;t meant for human consumption &#8212; platforms like OpenMetadata already have their own built-in technical metadata ingestion tools (called <a href="https://docs.open-metadata.org/v1.12.x/connectors">connectors</a>) that reads from the catalog views and parses them further to enrich the metadata in the governance platforms. The caveat is that if there&#8217;s no built-in connector for a source system you want to ingest, you&#8217;d have to create a <a href="https://docs.open-metadata.org/v1.12.x/connectors/custom-connectors">custom one</a>.</p><p>Once the data governance platform ingests the technical metadata, the accountability-observability-security activities in the loop above become more streamlined and agile. Data assets inventory can be updated quickly in a matter of seconds or minutes, instead of weeks or months, greatly reducing the data inventory staleness problem. The bottleneck to governance is no longer on extracting information about data in systems, but extracting <a href="https://cekrem.github.io/posts/the-tacit-dimension/">tacit knowledge</a> in people.</p><p>The technical inventory of data assets is also more reliable and accurate because it&#8217;s inferred directly from source. Storing the inventory in the platform allows it to be indexed for search via fuzzy words matching or tags, which improves discoverability.</p><p>The technical metadata can further be curated with information useful for operationalizing data governance, such as data owners for each data assets, the business glossaries, classifications and tagging, and data quality status. While these tasks are traditionally done by human data stewards, future context-aware <a href="https://blog.open-metadata.org/introducing-the-model-context-protocol-mcp-in-openmetadata-e757385f4fb2?_gl=1*ub8loh*_gcl_au*MTE0MTAzNTk4NS4xNzgxMzE4ODgwLjQ3MTM2MzUxNC4xNzgzNTMzMDg4LjE3ODM1MzMwODg.*_ga*Njc0MjM4MDE1LjE3ODEzMTg4ODA.*_ga_8N4ZPTEDL2*czE3ODM3NjU4NzckbzEwJGcwJHQxNzgzNzY1ODc3JGo2MCRsMCRoMA">AI agents might help</a> stewards speeds up tedious data curation exercises.</p><p>In short, the link between the governance contexts of the data &#8212; that is, the purpose of collection, legal basis, and intended recipients, etc. &#8212; and the technical data assets should be unambiguous and clear. Without data catalog, the link gets blurry, giving rise to ambiguity about data ownership and the actual scope of policy implementation.</p><p>With a more precise technical metadata structure, metadata management such as data labeling or classification can become less ambiguous, giving way to transparent traceability of data use and enabling precise policy enforcement, and thus &#8212; as the loop suggests &#8212; enabling better data security.</p><h2>Security</h2><p>If you can&#8217;t manage what you can&#8217;t observe, it goes without saying that you can&#8217;t secure what you can&#8217;t manage. In the context of data governance, securing data goes beyond the prevention of data exfiltration and data misuse. It also extends to include data corruption: the degradation of data integrity, such as inaccurate data updates, or simply technical data consistency failures (remember <a href="https://en.wikipedia.org/wiki/ACID">ACID</a>?). Data corruption hence deserves a similar treatment as the former two, because violating any of them can cause considerable harm to the organization.</p><p>All these can be done by internal or external actors, whether it was done with malicious intent or otherwise. This is why observability is the key enabler for securing data. With the metadata ingested and properly curated, we know what data exists across our data landscape and how it is classified or labeled (e.g., PII, Confidential, Public, etc.). This observability capability allows organizations to better plan and be more proactive to establish the appropriate level of monitoring and controls to right data with the right security controls.</p><p>Let&#8217;s expand on how observability through metadata management enables security across the three security controls introduced above. The first is the most obvious one, which is to prevent data exfiltration by malicious actors. This means you want to safeguard access to your data systems, such as your enterprise data warehouse, to the right people with the right level of privilege. To ensure the control is in place, not only you should be able to know who can access your data systems, it is also important to monitor their usage to alert suspicious activities (a sudden overnight spike in database queries by a single user outside office hour should raise some suspicion); usage are, after all, <a href="https://docs.open-metadata.org/v1.12.x/connectors/ingestion/workflows/usage">metadata that can be ingested</a> by data governance platforms. Naturally, the access control safeguard happens at the data systems level (e.g., SQL Server, Oracle, and Snowflake) &#8212; not the data governance platform such as OpenMetadata or DataHub. How data governance platform complements access control, however, is by making it easier for organizations to design controls commensurate with the classification of data attached to the ingested metadata.</p><p>The second control is relatively harder to manage, which is to control against data misuse. For example, you may have submitted an online survey form containing your personal email &#8212; with your consent in a checkbox &#8212; to allow the researchers to contact you for further inquiries about the research survey. However, privacy laws may prohibit the researchers from using your email for commercial purposes &#8212; as that would have been a misuse of your personal data (and a betrayal to your trust!)</p><p>Purpose-based access control is harder to manage because of low traceability of data usage from data access provision. Mostly, you&#8217;ll find the clues about the purpose the data access &#8212; and hence its usage &#8212; in some email trails, such as emails about data engineers requesting read-only access to a specific table. Indeed, in most cases, purposes are not a first-class citizen in data platforms. Often, they are only weakly inferred from the combination of usernames and roles, and the grants applied to them.</p><p>To tackle this issue, OpenMetadata allows us to represent purpose as metadata with the use of tags or classification attached to catalogued data assets. This can be made even tighter on the data systems level: On Snowflake, for example, access to data is restricted by roles defined not by job description (e.g., <code>SALES_ANALYST</code>), but also by purpose-specific roles (e.g., <code>PURPOSE_REVENUE_REPORTING</code>, <code>PURPOSE_OPERATIONS_MONITORING</code>). These purpose roles can then be combined with <a href="https://docs.snowflake.com/en/user-guide/security-row-intro">row-level access policies</a>, <a href="https://docs.snowflake.com/en/user-guide/security-column-intro">masking policies</a>, and other constraints so that the same data is exposed differently depending on the approved purpose of use.</p><p>The third control on data corruption, is one that&#8217;s often overlooked in the context of data security. Corrupted data may impair decision-making too, and, in the case of AI/ML models, makes them unreliable. This can be damaging to the organization. Again, observability helps. To tackle data corruption issues, organizations should catch data errors as early as possible, ideally within a defined SLA commensurate with the criticality of the data asset. This is usually done by running queries or scripts &#8212; often on schedule &#8212; that tests data assets for the expected data profile or quality. This can be as simple as rigid rule-based checks, such as looking for blank values, or as complex as regression analysis using machine learning models.</p><p>OpenMetadata, for example, has features that allow data  stewards to define and run data quality assertions from its web UI. Test failures notify the stewards &#8212; or whoever is interested to subscribe to the notification &#8212; when quality assertion fail. If the data asset catalogued in OpenMetadata has an owner (as it should!) stakeholders would know who is accountable to move their team to investigate and fix the reported data issue. As discussed above, this is only possible because of accountability that drives the organization to this level of increased observability.</p><p>Remediation that follows the violation of the controls above feeds into accountability, as discussed earlier, in the form of a governance loop. We&#8217;ve seen how observability enables security across the three controls, thus increasing security capability. These controls force organizations to answer data ownership scrutiny. Who defines the quality metrics? How do you guarantee SLAs? Are your data consumer needs met? These questions, at least in theory, reinforce better accountability, and in turn, their incentive to do better on observability and security.</p><h2>Conclusion</h2><p>Data governance is ultimately a systems problem whose objective is to increase trust in data: Trust that the policy intents are applied where and when they should be applied; trust that data is discoverable, understandable, and fit for intended use; trust that sensitive data is protected from misuse, exfiltration, or corruption; and trust that someone is accountable when something breaks.</p><p>By modeling this problem using three underlying reinforcing capabilities &#8212;Accountability, Observability, and Security &#8212; we can reason and explain why their connectedness is important for operationalizing data governance to increase trust. Without closing the connection gap between them, ambiguity rises, accountability becomes blurry, and conformance checks become more costly to conduct. As we&#8217;ve seen, data catalog, by automatically ingesting technical metadata, reduces ambiguity that arises when the data asset inventory does not reliably capture (if at all) granular technical metadata information.</p><p>Indeed, data governance succeeds when the system &#8212; an amalgamation of people, process, and technology &#8212; makes doing the right thing with data easier than doing the wrong thing.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.archinometry.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://newsletter.archinometry.com/subscribe?"><span>Subscribe now</span></a></p><p></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> Sometimes you&#8217;ll find the five V&#8217;s, which includes Veracity (accuracy, correctness) and Value (value of data to the organization).</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Zhamak Deghani&#8217;s <a href="https://www.oreilly.com/library/view/data-mesh/9781492092384/">Data Mesh</a>, a socio-technological data architecture, says the boundary lies along domain boundary.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>A useful curated list of data governance platforms can be found in <a href="https://github.com/opendatadiscovery/awesome-data-catalogs">opendatadiscovery/awesome-data-catalogs</a> repository.</p></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[AI and the Commons]]></title><description><![CDATA[AI breaks the open-source business model&#8212;not the machine]]></description><link>https://newsletter.archinometry.com/p/ai-and-the-commons</link><guid isPermaLink="false">https://newsletter.archinometry.com/p/ai-and-the-commons</guid><dc:creator><![CDATA[Amirul Menjeni]]></dc:creator><pubDate>Sat, 31 Jan 2026 16:04:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nXEL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Recently I stumbled upon a <a href="https://x.com/i/status/2009688028931875156/?rw_tt_thread=True">tweet</a> by an open-source maintainer, ranting about AI and how it affects his ability to monetize his OSS project (emphasis mine):</p><blockquote><p>All my new code will be closed-source from now on. I&#8217;ve contributed millions of lines of carefully written OSS code over the past decade, spent thousands of hours helping other people. If you want to use my libraries (1M+ downloads/month) in the future, you have to pay.</p><p>I made good money funneling people through my OSS and being recognized as expert in several fields. This was entirely based on HUMANS knowing and seeing me by USING and INTERACTING with my code. No humans will ever read my docs again when coding agents do it in seconds. Nobody will even know it&#8217;s me who built it.</p><p>Look at Tailwind: 75 million downloads/month, more popular than ever, revenue down 80%, docs traffic down 40%, 75% of engineering team laid off. Someone submitted a PR to add LLM-optimized docs and Wathan had to decline - optimizing for agents accelerates his business&#8217;s death. He&#8217;s being asked to build the infrastructure for his own obsolescence.</p><p>Two of the most common OSS business models:</p><ul><li><p>Open Core: Give away the library, sell premium once you reach critical mass (Tailwind UI, Prisma Accelerate, Supabase Cloud...)</p></li><li><p>Expertise Moat: Be THE expert in your library - consulting gigs, speaking, higher salary</p></li></ul><p>Tailwind just proved the first one is dying. Agents bypass the documentation funnel. They don&#8217;t see your premium tier. Every project relying on docs-to-premium conversion will face the same pressure: Prisma, Drizzle, MikroORM, Strapi, and many more.</p><p><strong>The core insight: OSS monetization was always about attention. Human eyeballs on your docs, brand, expertise. That attention has literally moved into attention layers. Your docs trained the models that now make visiting you unnecessary. Human attention paid. Artificial attention doesn&#8217;t.</strong></p><p>Some OSS will keep going - wealthy devs doing it for fun or education. That&#8217;s not a system, that&#8217;s charity. Most popular OSS runs on economic incentives. Destroy them, they stop playing. Why go closed-source? When the monetization funnel is broken, you move payment to the only point that still exists: access. OSS gave away access hoping to monetize attention downstream. Agents broke downstream. Closed-source gates access directly. The final irony: OSS trained the models now killing it. We built our own replacement.</p><p><strong>My prediction: a new marketplace emerges, built for agents. Want your agent to use Tailwind? Prisma? Pay per access. Libraries become APIs with meters. The old model: free code -&gt; human attention -&gt; monetization. The new model: pay at the gate or your agent doesn&#8217;t get in.</strong></p></blockquote><p>I don&#8217;t agree with his implication that OSS is now left to &#8220;wealthy devs doing it for fun or education.&#8221; I do agree, though, that eventually there will have to be some kind of pay per access feature to libraries/content for this to be economically sustainable (see <a href="https://arxiv.org/html/2507.21206v1">Agentic Web</a>). Despite that, I think open-source won&#8217;t die out, even without money in the picture, because:</p><ul><li><p>Programmers will still want to code to contribute to open-source software (with or without the help of AI)</p></li><li><p>We still benefit <em>immensely</em> from the compounding value of using and looking at the same code. This is because of something called <em>Inverse Tragedy of the Commons</em>. Open-source won&#8217;t die out; at least not the ones that the commons care about.</p></li></ul><h2>How the Open-Source Machine Works</h2><p>To understand why open-source won&#8217;t die out, and will still be sustainable despite AI, let&#8217;s understand how open-source software survive and self-perpetuates across many industries.</p><p>I find Eric S. Raymond&#8217;s (aka ESR) <a href="http://www.catb.org/~esr/writings/cathedral-bazaar/">essays</a> very helpful in explaining why free and open-source works in great detail&#8212;which I think can be summarized as a virtuous cycle.</p><p>First, for individual programmers, there&#8217;s that itch. A programmer will work on the things that they care about the most; if they&#8217;re doing it for free, they&#8217;re doing it for themselves. Such was how Linux was conceived, and many others that preceded it or followed it. This is especially true when there&#8217;s no other (free) software that exists&#8212;or (free) software that exists but is deemed not good enough&#8212;that solves the programmer&#8217;s problem. To quote ESR:</p><blockquote><p>Every good work of software starts by scratching a developer&#8217;s personal itch.</p></blockquote><p>Now that a programmer has scratched the itch, either by forking an existing (dead) software, making incremental contributions, or by creating a new one from scratch (pun not intended), what keeps them going? Here lies the question of incentives. If they plan to sell the support or maintenance service (e.g., as with enterprise Red Hat Linux), then the incentive is obvious: money. But what about the software that exists <em>without</em> a business model? If we eliminate money from the equation, what&#8217;s the driving force for programmers to maintain and write code, besides the joy of it?</p><p>To answer this question, ESR first described two different ways humans commonly organize themselves to allocate scarce resources: command hierarchy and market economy. As the name suggests, command hierarchy follows a top-down approach of central planning that allocates resources for everyone in the organization. Perhaps the most popular example of command hierarchy in history is also a textbook example of why it doesn&#8217;t scale well and is bound to crumble: the communism in 20th century Soviet Union failed to deliver its promise&#8212;instead of a rich Utopia for the masses, it delivered chronic shortages, <a href="https://www.qminder.com/blog/queue-management/queues-in-ussr/">breadlines</a>, and eventual economic collapse. The clear winning model for allocating scarce resources is that there should be little to no planning at all; instead, in a market economy, individual transactions are driven by supply and demand. This scales better, as prices become the signal for resource allocation, operated over the exchange of money for goods and services.</p><p>Yet neither of these economic models explains the behavior of programmers in the open-source ecosystem: While command hierarchy and market economy are economic models that can explain the allocation of <em>scarce</em> resources, it doesn&#8217;t fit well in a world of abundance! Unlike the resources managed in a command hierarchy model or market economy model, software is a resource that can be duplicated with virtually zero cost, at a very large scale and speed, given the abundance of compute, storage, and network bandwidths (thanks to the 90s <a href="https://stratechery.com/2025/the-benefits-of-bubbles/">dot-com bubbles</a>). Abundance, ESR writes, makes &#8220;command relationships difficult to sustain and exchange relationships an almost pointless game.&#8221;</p><p>There&#8217;s a third model, however, that can help explain the allocation of resources in the open-source ecosystem characterized by abundance: the gift economy. In contrast to a market economy, where goods and services are exchanged for money, a gift economy operates differently. ESR explained the gift economy through an anthropological lens, using Lockean theory of property ownership as an analogy to explain the motivation behind the ownership and &#8220;homesteading&#8221; of open-source projects. Here&#8217;s how he explained it:</p><blockquote><p>On a frontier, where land exists that has never had an owner, one can acquire ownership by homesteading, mixing one&#8217;s labor with the unowned land, fencing it, and defending one&#8217;s title. ... A piece of land that has become derelict in this way may be claimed by adverse possession&#8212;one moves in, improves it, and defends title as if homesteading. This theory, like hacker customs, evolved organically in a context where central authority was weak or nonexistent.</p></blockquote><p>If we think of the open-source ecosystem as a frontier&#8212;ungoverned, with no central authority assigning ownership&#8212;it follows that hackers observe the same customs that Lockean theory describes: claim it through labor, maintain it, defend your title. Let a project go unmaintained, and someone else will fork it:</p><blockquote><p>The Lockean logic of custom suggests strongly that open-source hackers observe the customs they do in order to defend some kind of expected return from their effort. The return must be more significant than the effort of homesteading projects, the cost of maintaining version histories that document &#8220;chain of title&#8221;, and the time cost of making public notifications and waiting before taking adverse possession of an orphaned project.</p></blockquote><p>In other words, open-source software maintainers expect something in return, or a net benefit, for their efforts, even if it isn&#8217;t directly about money.</p><p>When the exchange of goods and services becomes pointless (everyone has access to all goods and services in the world), monetary exchange currency becomes worthless. ESR argues that the principal currency in a rich society blessed with abundance is reputation:</p><blockquote><p>... prestige is a good way (and in a pure gift economy, the only way) to attract attention and cooperation from others. If one is well known for generosity, intelligence, fair dealing, leadership ability, or other good qualities, it becomes much easier to persuade other people that they will gain by association with you.</p></blockquote><p>Obviously, if your gift is crap, the reciprocal is a crappy reputation. So there has to be some value associated with the open-source software that&#8217;s being maintained or built that gives the programmers their expected returns. The higher the value of the software, the better your prestige or status; the better you can make it when you enter the market economy or command hierarchy.</p><p>This is another property of open-source software that makes it different from traditional resources: Not only is it abundant (i.e., not scarce), but it also increases in value the more you use or consume it. The other thing I know that has this property is knowledge, which is befitting, since source code can be thought of as an encoding of someone&#8217;s or an organization&#8217;s knowledge.</p><p>ESR called this phenomena Inverse Tragedy of the Commons, after the popular concept called <a href="https://en.wikipedia.org/wiki/Tragedy_of_the_commons">Tragedy of the Commons</a>:</p><blockquote><p>Over every attempt to explain cooperative behavior there looms the shadow of Garrett Hardin&#8217;s &#8220;Tragedy of the Commons&#8221;. Hardin famously asks us to imagine a green held in common by a village of peasants, who graze their cattle there. But grazing degrades the commons, tearing up grass and leaving muddy patches, which re-grow their cover only slowly. If there is no agreed-upon (and enforced!) policy to allocate grazing rights that prevents overgrazing, all parties&#8217; incentives push them to run as many cattle as quickly as possible, trying to extract maximum value before the commons degrades into a sea of mud.</p><p>...</p><p>[W]idespread use of open-source software tends to increase its value, as users fold in their own fixes and features (code patches). In this inverse commons, the grass grows taller when it&#8217;s grazed upon.</p></blockquote><p>The Inverse Tragedy of the Commons is what completes the open-source virtuous cycle loop. Somewhere down the line there&#8217;ll be some disgruntled programmer who uses the commons, creates a patch or adds new features because he has an itch. While doing that, he&#8217;s also doing it for himself, to earn reputation, and for self-satisfaction. And the open-source software (the commons) only grows taller.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.archinometry.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://newsletter.archinometry.com/subscribe?"><span>Subscribe now</span></a></p><h2>AI in the Open-Source Machine</h2><p>If intelligence is one of the ingredients that fuels the open-source machinery and produces free software, then the programmers are vehicles of the intelligence that transforms ideas to runnable software. Yet while intelligence is scarce, intelligent programmers that are willing to write free software are even scarcer!</p><p>And then AI comes along, which sort of commoditize intelligence, and suddenly the scarce intelligence becomes abundant. I&#8217;ve tried Claude&#8217;s Opus 4.5, and so have many others including many veterans in the industry, and there&#8217;s no denying that AI will effectively be a huge part of the intelligence that creates software.</p><p>What this means to our open-source machinery cycle described above is the following: The cost of scratching an itch is cheaper, either because it takes less time to substantiate code, or because of lower skill ceiling. Whether this is a good thing or a bad thing for the overall quality of open-source source codes, the barrier to entry to scratch an itch is lower. Using the Lockean theory analogy above, one might think that the cost of reaping the benefits of homesteading an open-source project is now cheaper, and thus the return is higher (i.e., it is easier to gain reputation). Unfortunately, that&#8217;s not what happens.</p><p>A consequence of the lower barrier to entry, however, is that it devalues reputation. Or put in terms of currency, the value of reputation is being inflated. But not all reputation inflates equally: What AI commoditize is the <em>execution</em>&#8212;substantiation of code or working the CLI at breakneck speed. What remains scarce is the <em>judgement</em>: identifying which itch is worth scratching, making sound architectural decisions, and stewarding open-source projects over time (i.e., collaborating with some randoms on the Internet, establishing a hacking subculture, etc.)</p><p>This is like the barrel vs. the ammunition analogy. From my post <a href="https://amenji.io/post/of-kind-chess-and-wicked-programming/">Of Kind Chess and Wicked Programming</a>:</p><blockquote><p>This doesn&#8217;t mean I completely disregard the notion of AI replacing human programmers in the future. The key difference between the AI we&#8217;re using right now and the one that Jensen Huang portends is in their capacity (or lack thereof) to be a manager instead of the individual contributor; to be an architect instead of the builder; or, to borrow <a href="https://stratechery.com/2025/deep-research-and-knowledge-value/">Ben Thompson&#8217;s analogy</a>, to be an Artificial Super Intelligence (ASI)&#8212;the rifle barrel&#8212;instead of Artificial General Intelligence (AGI)&#8212;the ammunitions:</p><blockquote><p>What o3 and inference-time scaling point to is something different: AI&#8217;s that can actually be given tasks and trusted to complete them. This, by extension, looks a lot more like an independent worker than an assistant &#8212; ammunition, rather than a rifle sight. That may seem an odd analogy, but it comes from <strong><a href="https://www.youtube.com/watch?v=6fQHLK1aIBs">a talk Keith Rabois gave at Stanford</a></strong>&#8230;My definition of AGI is that it can be ammunition, i.e. it can be given a task and trusted to complete it at a good-enough rate (my definition of Artificial Super Intelligence (ASI) is the ability to come up with the tasks in the first place).</p></blockquote><p>In this perspective the future of programming is certainly bright: We may not be too far from a future where we can &#8220;hire&#8221; cheap individual contributors&#8212;the ammunitions&#8212;to help generate 100% of the code. But ammunitions are only useful when we&#8212;the rifle barrel&#8212;point them to the desired targets. It gets trickier in a wicked world, where the targets would often dance unpredictability. Often times, it is even unclear which targets we should point to. In other words, creativity is about knowing what and where to aim; simply being the projectile isn&#8217;t!</p></blockquote><p>Back to Marc, the disgruntled open-source maintainer from the tweet above: Marc&#8217;s moat&#8212;and the foundation of his business model&#8212;was <em>knowledge</em>, or specifically, the kind of execution-layer expertise that AI now replicates at scale. His deep contextual knowledge about his own codebase was valuable when humans couldn&#8217;t easily acquire it. But now, with AI commoditizing intelligence that can not only easily acquire that knowledge, but also execute on it, his OSS income funnel threatens to collapse.</p><p>This is a classic example of how new technology decimates information asymmetry. To quote Freakonomics:</p><blockquote><p>It is common for one party to a transaction to have better information than another party. In the parlance of economists, such a case is known as an information asymmetry. We accept as a verity of capitalism that someone (usually an expert) knows more than someone else (usually a consumer). But information asymmetries everywhere have in fact been gravely wounded by the Internet.</p></blockquote><p>Then it was the Internet; now, AI collapses that information asymmetry even more by not only giving away the information, but also acting on it.</p><p>Of course, this is only saying that he&#8217;s losing his moat to monetize on his open-source project, but this does not mean that his open-source project is in any way less valuable. In fact, to the community as a whole, his open-source project may get more valuable, thanks to AI agents making it easier (and cheaper) to capture value.</p><p>AI doesn&#8217;t break the commons, but it does break the existing OSS monetization model. Yet programmers will still want to contribute to open-source projects: The broken monetization model is just one way of converting the currency of reputation to fiat currency in the market economy. AI may break <em>that specific</em> monetization model, but the <em>mechanism</em> of converting reputation to monetary currency hasn&#8217;t broken yet.</p><h2>Pushing the Money Downstream</h2><p>While AI doesn&#8217;t kill OSS, it doesn&#8217;t make it any easier for people to make money off it either. If not in the contribution to&#8212;or in the possession of knowledge moat of&#8212;OSS projects, where can monetary rewards be captured?</p><p>I believe OSS will still be alive due to the virtuous cycle I described earlier: Programmers will still get the itch, they will still benefit from the reputation reaped from their OSS contribution in the gift economy, and this in turn will make the open-source ecosystem much better. But while there&#8217;s no money to be made in this cycle, there&#8217;s money to be captured downstream from the products of this cycle, as illustrated below:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nXEL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nXEL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.png 424w, https://substackcdn.com/image/fetch/$s_!nXEL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.png 848w, https://substackcdn.com/image/fetch/$s_!nXEL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.png 1272w, https://substackcdn.com/image/fetch/$s_!nXEL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nXEL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.png" width="637" height="574" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af2f4a34-48a5-427a-8131-f9274d6716a4_637x574.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:574,&quot;width&quot;:637,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:100211,&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;:&quot;https://amirulmenjeni.substack.com/i/186417154?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.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_!nXEL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.png 424w, https://substackcdn.com/image/fetch/$s_!nXEL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.png 848w, https://substackcdn.com/image/fetch/$s_!nXEL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.png 1272w, https://substackcdn.com/image/fetch/$s_!nXEL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf2f4a34-48a5-427a-8131-f9274d6716a4_637x574.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 aria-hidden="true" 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><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 key difference between the commons and the uncommons lies in the nature of the problems they solve. The commons layer addresses problems shared across a domain&#8212;problems whose boundaries often map to industry lines (oil and gas, finance, pharmacy, and so on). Contributors and users benefit from network effects: the more people use and improve the same codebase, the more valuable it becomes for everyone. This isn&#8217;t charity either. Every contribution reflects a cost-benefit calculation, whether explicit or intuitive: is it cheaper to privately fork and bear the full maintenance burden, or to contribute upstream and let the community carry the weight?</p><p>The uncommons, by contrast, solves problems specific to individuals or organizations&#8212;the differentiated logic, the proprietary integrations, the things you don&#8217;t want your competitors to have. But because the uncommons depends on the commons, programmers working in the uncommons layer inevitably encounter friction in the foundations they build on. When they do, they face a choice: fork and maintain privately, or fix it upstream. For non-differentiating fixes, contributing back is almost always cheaper. The uncommons doesn&#8217;t just extract from the commons&#8212;it feeds the commons whenever doing so costs less than going it alone.</p><p>It is also interesting to note the dynamic between agentic AI and the commons and the uncommons. Due to AI slops, thanks to unguided code generation, the maintainers of the commons may react negatively to AI generated contributions. More slops means it can take more time, energy, and resources for the maintainers to do code review, which may lead to stricter governance on how code contributions are made, slowing down progress. Downstream in the uncommons, it&#8217;s a different story: AI helps individuals or organizations with specific problems in the uncommons, problems that otherwise wouldn&#8217;t have been addressed in the commons, and thus are more welcomed. In fact, using AI to aid software development is often encouraged in the name of productivity, as we&#8217;ve seen in many enterprises in the past few years. This is because the closed-source projects in the uncommons enjoy the luxury that open-source projects in the commons don&#8217;t have: a handful of familiar contributors.</p><p>This isn&#8217;t really a happy answer for OSS maintainers like Marc, who depends on the moat of deep source knowledge and expertise to fund his projects. With AI easily collapsing that moat, his choice to close-source his future projects behind a paywall is entirely rational, and perhaps necessary for surviving this paradigm shift. Perhaps the only consolation is that his prestige and personal brand&#8212;the judgement, taste, and stewardship that AI cannot replicate&#8212;remains valuable. The monetization path might have changed, but the currency of reputation hasn&#8217;t disappeared.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.archinometry.com/p/ai-and-the-commons?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.archinometry.com/p/ai-and-the-commons?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p>]]></content:encoded></item><item><title><![CDATA[Of Kind Chess and Wicked Programming: How AI Influences Our Creativity]]></title><description><![CDATA[Creativity is either exploited by AI or capitalized for growth. It just depends on the game you play, and how you play it.]]></description><link>https://newsletter.archinometry.com/p/of-kind-chess-and-wicked-programming</link><guid isPermaLink="false">https://newsletter.archinometry.com/p/of-kind-chess-and-wicked-programming</guid><dc:creator><![CDATA[Amirul Menjeni]]></dc:creator><pubDate>Sun, 08 Jun 2025 14:08:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Im0c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F922356a9-e49d-40da-9c32-f821dcde0698_1280x853.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This post was originally published at my main blog, <a href="https://amenji.io?utm_source=substack">amenji.io</a>.</em></p><p><em><strong>Heads up</strong>: I&#8217;ll be posting new content at <a href="https://amenji.io/?utm_source=substack">amenji.io</a> first, then republishing it here on Abstract Engineering. The subscriber lists are separate, so if you&#8217;d like to keep following, please subscribe at <a href="https://amenji.io/subscribe?utm_source=substack">amenji.io/subscribe</a>.</em></p><p><em>Writing on my own site gives me more creative freedom&#8212;Substack, for instance, still doesn&#8217;t support tables.</em></p><p><em>Thanks for reading, and I hope you&#8217;ll find this post interesting!</em></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Im0c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F922356a9-e49d-40da-9c32-f821dcde0698_1280x853.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Im0c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F922356a9-e49d-40da-9c32-f821dcde0698_1280x853.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Im0c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F922356a9-e49d-40da-9c32-f821dcde0698_1280x853.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Im0c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F922356a9-e49d-40da-9c32-f821dcde0698_1280x853.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Im0c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F922356a9-e49d-40da-9c32-f821dcde0698_1280x853.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Im0c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F922356a9-e49d-40da-9c32-f821dcde0698_1280x853.jpeg" width="1280" height="853" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/922356a9-e49d-40da-9c32-f821dcde0698_1280x853.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:853,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;image from Of Kind Chess and Wicked Programming: How AI Influences Our Creativity&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="image from Of Kind Chess and Wicked Programming: How AI Influences Our Creativity" title="image from Of Kind Chess and Wicked Programming: How AI Influences Our Creativity" srcset="https://substackcdn.com/image/fetch/$s_!Im0c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F922356a9-e49d-40da-9c32-f821dcde0698_1280x853.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Im0c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F922356a9-e49d-40da-9c32-f821dcde0698_1280x853.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Im0c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F922356a9-e49d-40da-9c32-f821dcde0698_1280x853.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Im0c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F922356a9-e49d-40da-9c32-f821dcde0698_1280x853.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 aria-hidden="true" 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><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>Magnus Carlsen announced in a <strong><a href="https://youtu.be/mVzOdnGz2WM?si=0e79iu87Q9DrJTnC&amp;t=3065">podcast</a></strong> that he would no longer defend the title he&#8217;d won in 2022 after consecutively remaining undefeated in the World Chess Championship since 2013. Many critics speculated he had lost his passion or was too afraid to lose to the next generation of players. About two years later, in March 2024, he announced the inaugural tournament of the Freestyle Chess Grand Slam Tour&#8212;a series of five major Chess960 tournaments held across different continents <strong><a href="https://en.wikipedia.org/wiki/Freestyle_Chess_Grand_Slam_Tour#Schedule">throughout 2025</a></strong>.</p><p><strong><a href="https://en.wikipedia.org/wiki/Chess960">Chess960</a></strong>, also known as Freestyle Chess or Fischer Random, radically increases the possible combinations of the starting positions in a game by randomizing the positions of the back-rank pieces, leaving the front-rank pawns untouched. As the name suggests, the number of possible starting positions is increased to 960 possible combinations. The Freestyle Chess Grand Slam Tour, though, bans the traditional Chess starting position, including swapping the King and Queen.</p><p>Clearly, the motivation behind the Freestyle Chess Grand Slam Tour is to make chess more interesting and entertaining in the hope of drawing in a larger audience. This is reflected by the fact the tournament offers a bigger prize pool than traditional chess tournaments and features an innovative player-focused gameplay approach, such as the &#8220;confession booth.&#8221; Players are also equipped with heart rate monitors to provide &#8220;a novel layer of drama,&#8221; as Carlsen puts it.</p><p>I&#8217;m no chess fan, but this seems like a good revitalization of the ancient game, sparking enthusiasm and debate amongst the sport&#8217;s fans and grandmasters alike (though the <strong><a href="https://en.wikipedia.org/wiki/Chess960#First_tournaments">first tournament</a></strong> of Chess960 dates back to 1996). It is definitely pertinent now with how AI has crept into the sport over the last three decades, starting with a brute-force approach of <strong><a href="https://www.ibm.com/history/deep-blue">Deep Blue</a></strong> by IBM in 1997, to the use of artificial neural network and reinforcement learning pioneered by Google DeepMind with <strong><a href="https://deepmind.google/discover/blog/alphazero-shedding-new-light-on-chess-shogi-and-go/">AlphaZero</a></strong> in 2017. It is no surprise then of AI&#8217;s increasing influence on how the game is played. Magnus Carlsen <strong><a href="https://www.economist.com/by-invitation/2025/01/30/magnus-carlsen-on-why-the-future-of-chess-lies-in-freestyle">wrote</a></strong> in <em>The Economists</em> for the <em>By Invitation</em> section:</p><blockquote><p>Why freestyle? Following my fifth consecutive victory in the World Chess Championship in 2022, I announced that I would no longer defend the title. Many speculated that I was exhausted, or that I was scared of the next generation of players. On the contrary, my passion for chess remains as strong as ever, and I am as ambitious as I&#8217;ve always been. What changed was my perspective on the format of the classical world championship itself.</p><p>&#8288;&#8288;The challenge wasn&#8217;t the games, which often stretch for hours. I enjoy the length of time allowed under the rules. My title defence in 2018 against Fabiano Caruana, for instance, pushed us, over 12 drawn games, to our mental and physical limits, before I emerged victorious in the tiebreak. The issue lay elsewhere, in the months of grinding preparation leading up to the event. Modern World Chess Championships demand endless memorisation of computer-generated opening lines, reducing the sport&#8217;s artistry to rote learning. As someone who treasures the creativity of chess, I wanted to focus more on this aspect of the game. Also, life beyond chess deserved my attention too.</p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://amenji.io/subscribe?utm_source=substack&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://amenji.io/subscribe?utm_source=substack"><span>Subscribe</span></a></p><h2><strong>Saving Creativity</strong></h2><p>In a way, I share Carlsen&#8217;s sentiment. Chess960 was originally introduced to reduce the emphasis on opening preparation and encourage creativity. By moving to freestyle, player decision-making in chess may be free from the need to internalize patterns over years of grinding to gain a competitive edge. Going freestyle is how the grandmasters strike back against AI with a renewed hope for creativity in the sport.</p><p>Should the same thought be entertained about programming? Programming, after all, is an art. It is a skill that&#8217;s improved with creativity rather than mere rote memorization of patterns of codes (though having some repertoire of knowledge on software design patterns does help). Many prominent programmers have expressed similar sentiments on the importance of taste, elegance, and beauty with regard to programming. Here&#8217;s how Linus Torvalds, the original hacker behind the Linux kernel and Git, explained good taste in 2007:</p><div id="youtube2-78Y17hAo96I" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;78Y17hAo96I&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/78Y17hAo96I?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><blockquote><p>To me&#8230; the sign of people I really want to work with is that they have good taste&#8230; Good taste is about really seeing the big patterns and kind of instinctively knowing what&#8217;s the right way to do things.</p></blockquote><p>And what are instincts but the use of implicit patterns so deeply familiar that we no longer remember learning them after years of repetition and experience&#8212;embedded deep in the back of our mind? If this is true, then AI is just a monstrous instinct machine that has learned to recognize the big patterns of our collective knowledge that we&#8217;ve put out on the Internet. It doesn&#8217;t truly <em>understand</em> the right way to do things, but it can infer them from the big patterns&#8212;and it will only get better.</p><p>To that point, AI has already internalized a wealth of creative output of perhaps some of the best programmers in the world and makes them readily available as generative code assistants. They help us scaffold code from a blank page, suggest code improvements for refactoring opportunities, and even fix our code plagued with cryptic error messages. If this effectively takes away the creative aspect of programming from the programmers, then will the programmers too, strike back?</p><p>The problem with this line of thinking is that chess is an adversarial zero-sum activity (one must lose for another to win), while programming&#8212;like many productive economic activities&#8212;is a positive-sum activity (everyone wins something). So while AI takes away the creative value of chess from the players (by eating away their creative decision-making opportunities), AI adds creative value to the programmers (by adding more options for creative decision-making opportunities). It makes no sense to strike back. We&#8217;re living the dream!</p><h2><strong>Exploiting the Kind and Capitalizing on the Wicked</strong></h2><p>There&#8217;s also another interesting angle of AI&#8217;s influence on chess, and it is related to learning and decision-making. Carlsen&#8217;s issue with the overreliance on rote learning computer-generated patterns and his desire to revive the creative aspect of chess reminds me of two thought-provoking ideas introduced by <strong><a href="https://davidepstein.substack.com/p/kind-and-wicked-learning-environments">Robin Hogarth</a></strong> about how we learn and make decisions: the kind learning environment and its antithesis, the wicked learning environment.</p><p>To frame the two antithetical learning environments into questions: Does our decision-making improve with more experience? Or does having more experience make us myopic to the broader worldview, making us more susceptible to being biased in our judgment?</p><p>If your belief leans more to the former, then you&#8217;re in the camp of expert intuition who believes that good decision-making comes with years of repeated practice and experience. Otherwise, if you&#8217;re skeptical that having more experience is a good predictor for excellent decision-making, then you&#8217;re in the camp of heuristics and bias, who believe that experience leads to overconfidence and results in more decision errors.</p><p>A seminal paper titled <em><strong><a href="https://www.researchgate.net/publication/26798603_Conditions_for_Intuitive_Expertise_A_Failure_to_Disagree?enrichId=rgreq-fb662e1f7357ab50b011704902a6f1a5-XXX&amp;enrichSource=Y292ZXJQYWdlOzI2Nzk4NjAzO0FTOjI5OTQ5MjcwMTE2MzUyMUAxNDQ4NDE2MDMyMTgz&amp;el=1_x_2&amp;_esc=publicationCoverPdf">Conditions for Intuitive Expertise: A Failure to Disagree</a></strong></em> reconciles the opposing views of these two camps. The two authors, Daniel Kahneman (camp heuristic and bias) and Gary Klein (camp expert intuition) touched on their differing perspectives and their reconciliation:</p><blockquote><p>In this article we report on an effort to compare our views on the issues of intuition and expertise and to discuss the evidence for our respective positions. When we launched this project, we expected to disagree on many issues, and with good reason: One of us (GK) has spent much of his career thinking about ways to promote reliance on expert intuition in executive decision making and identifies himself as a member of the intellectual community of scholars and practitioners who study naturalistic decision making (NDM). The other (DK) has spent much of his career running experiments in which intuitive judgment was commonly found to be flawed; he is identified with the &#8220;heuristics and biases&#8221; (HB) approach to the field.</p><p>A surprise awaited us when we got together to consider our joint field of interest. We found ourselves agreeing most of the time. Where we initially disagreed, we were usually able to converge upon a common position. Our shared beliefs are much more specific than the commonplace that expert intuition is sometimes remarkably accurate and sometimes off the mark. We accept the common-place, of course, but we also have similar opinions about more specific questions: What are the activities in which skilled intuitive judgment develops with experience? What are the activities in which experience is more likely to produce overconfidence than genuine skill?</p></blockquote><p>And so the answer to the above questions is that it depends. Ask a chess grandmaster, and you may get a nod of agreement. Ask a senior programmer, and he may disagree vehemently (simply because programmers are an angry bunch). What sets them apart is the domain in which their decision-making is applied. One lives in a world where the rules seldom change, and the other has to adjust and adapt frequently to meet the demands of the rapidly shifting world (and gets angry every time a new feature is requested &#8220;at the last minute,&#8221; or a change introduced an unexpected behavior).</p><p>Chess is considered the gold standard of a kind learning environment. It has simple and predictable rules and provides immediate feedback, and yet it is quite complex thanks to the astronomical size of the possible positional configuration of the pieces on a 8x8 board. (For traditional chess, a <strong><a href="https://github.com/tromp/ChessPositionRanking">recent estimate</a></strong> is in the order of 10^44 reachable legal positions.) On the contrary, a wicked learning environment is the opposite: the rules are unclear and complex and may change overnight. Feedback in the environment is often delayed. And what you learn today may not be applicable tomorrow. These are the defining features of problems faced by any white-collar workers&#8212;and sure is true for programmers!</p><p>In a kind, zero-sum environment like chess, the incentive is to use AI&#8217;s super computational capability to <em>exploit</em> the solution space&#8212;commonly through &#8220;prepping&#8221;&#8212;to devise optimal opening strategies and gain competitive leverage over competitors. This effectively shrinks the space for human creativity, turning expertise into a matter of rote memorization rather than tactical ingenuity. In contrast, in a wicked, positive-sum environment like programming, the incentive is to <em>capitalize</em> on existing knowledge and tools using AI to accelerate discovery and expanding our horizons. Here, AI doesn&#8217;t limit our creativity; rather, it enables us to explore and traverse more complex solution spaces that were previously beyond our reach. In other words, AI&#8217;s interaction with the kind environment reduces the creativity space for humans; but it expands the creativity space for humans in a wicked environment.</p><p>Though in this post I limit myself to only use chess vs. programming to drive my musing, I&#8217;m sure this observation rings true to many other domains as well. As I&#8217;m writing this post, another example that came to mind is that of F1 (a kind, zero-sum environment) vs. forecasting long-term stock prices (a wicked, positive-sum environment).</p><p>In the case of F1, <strong><a href="https://www.autosport.com/f1/news/how-is-artificial-intelligence-changing-formula-1/10659532/">teams uses AI</a></strong> to exploit the useful patterns from real-time data to help in making fast pit strategy decisions, a job which traditionally relies on a team of engineers to make the call. This narrows down human choices to those already exploited by AI. As for traders interested in the long-term future price of stocks, the logical thing to do is capitalize on the wealth of financial and economical knowledge&#8212;<strong><a href="https://www.forbes.com/councils/forbestechcouncil/2025/03/06/the-disruption-of-ai-in-stock-markets-a-new-era-of-investment-decisions-and-automation/">a job better suited for AI</a></strong> than human&#8212;to help them make better decisions.</p><p>Well, does this mean AI&#8217;s involvement in chess&#8212;or any other kind environment&#8212;is bad? Not really. While it is generally true that in a kind environment AI reduces the number of available choices to go for optimizations, it also shift the creative frontier downstream into regions of small pockets of wicked environment within the domain. This is apparently <strong><a href="https://www.chessable.com/blog/openings-magnus-carlsen/">Magnus Carlsen&#8217;s play style</a></strong>: by going for offbeat opening choices, he embraces ambiguity and face it with ingenuity. By steering away from exploited openings, he&#8217;d purposely land himself and his opponents into small pockets of wicked environments in chess&#8212;in the <strong><a href="https://www.chess.com/terms/chess-middlegame">middlegames</a></strong> and the <strong><a href="https://www.chess.com/terms/chess-endgame">endgames</a></strong>&#8212;where creativity triumphs over rote memorization.</p><h2><strong>Creativity is About Knowing Where to Aim</strong></h2><p>With the advent of AI assistant tools like GitHub CoPilot and Cursor, I&#8217;ve come across many claims about the impending irrelevancy of programmers in the future where AI reigns supreme. In the mean time, the programming culture spawn yet another subculture, called <strong><a href="https://en.wikipedia.org/wiki/Vibe_coding">vibe coding</a></strong>&#8212;where the main language for software development is English, and codes generated by AI are not meant to be fully understood (if you <em>do</em> review, understand, and test the code, <strong><a href="https://arstechnica.com/ai/2025/03/is-vibe-coding-with-ai-gnarly-or-reckless-maybe-some-of-both/">you&#8217;re not vibing</a></strong>).</p><p>Perhaps one of most vocal leader who shared this thought is Jensen Huang, the CEO of NVIDIA. In 2024 last year at World Government Summit, he mentioned something about the future of programming to the chagrin of many programmers (myself included):</p><div id="youtube2-7jBhwRIEfMA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;7jBhwRIEfMA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/7jBhwRIEfMA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><blockquote><p>I&#8217;m going to say something, and it&#8217;s going to sound completely opposite of what people feel.</p><p>You probably recall, over the course of the last 10 to 15 years, almost everybody who sits on a stage like this would tell you it is vital that your children learn computer science. Everybody should learn how to program. In fact, it&#8217;s almost exactly the opposite: it is our job to create computing technology such that nobody has to program, and that the programming language is human.</p><p>Everybody in the world is now a programmer.</p><p>This is the miracle; this is the miracle of artificial intelligence. For the very first time, we have closed the gap. The technology divide has been completely closed, and this is the reason why so many people can engage with artificial intelligence. It is the reason why every single government, every single industry conference, and every single company is talking about artificial intelligence today.</p></blockquote><p>His speech would ring true, if only programming is only constrained to the problem of writing code to make the interpreter or compiler happy. But programming is more than just about generating code. Software needs to be useful in order for it to continue to exist, and much of the input to the activities that generate real values in the software product requires humans. While writing code is an important part of the business, it is not complete in itself to deliver real software value. To give some examples, think <strong><a href="https://martinfowler.com/architecture/">software architecture</a></strong> and <strong><a href="https://martinfowler.com/bliki/DomainDrivenDesign.html">domain-driven design</a></strong>&#8212;both of which require very hard-to-master skills (especially as programmers), like developing <strong><a href="https://en.wikipedia.org/wiki/Business_acumen">business acumen</a></strong>, <strong><a href="https://architectelevator.com/architecture/important-decisions/">making architectural decisions</a></strong>, and <strong><a href="https://architectelevator.com/strategy/complex-topics-stick/">making complex topics stick</a></strong>.</p><p>We should also be aware of the fallacy of thinking that the programming domain is a zero-sum game: That for one party to win, another must lose; that if AI dominates programming, then the programmers are pushed out of job. This worldview disregards the fact that programmers and software developers operate in a collaborative positive-sum world. In fact, as AI joins us in this positive-sum world, it is just so that AI needs to capitalize on human programmers&#8217; inputs for its outputs to be useful, and in turn, human programmers need to capitalize on AI to remain relevant.</p><p>This doesn&#8217;t mean I completely disregard the notion of AI replacing human programmers in the future. The key difference between the AI we&#8217;re using right now and the one that Jensen Huang portends is in their capacity (or lack thereof) to be a manager instead of the individual contributor; to be an architect instead of the builder; or, to borrow <strong><a href="https://stratechery.com/2025/deep-research-and-knowledge-value/">Ben Thompson&#8217;s analogy</a></strong>, to be an Artificial Super Intelligence (ASI)&#8212;the rifle barrel&#8212;instead of Artificial General Intelligence (AGI)&#8212;the ammunitions:</p><blockquote><p>What o3 and inference-time scaling point to is something different: AI&#8217;s that can actually be given tasks and trusted to complete them. This, by extension, looks a lot more like an independent worker than an assistant &#8212; ammunition, rather than a rifle sight. That may seem an odd analogy, but it comes from <strong><a href="https://www.youtube.com/watch?v=6fQHLK1aIBs">a talk Keith Rabois gave at Stanford</a></strong>&#8230;My definition of AGI is that it can be ammunition, i.e. it can be given a task and trusted to complete it at a good-enough rate (my definition of Artificial Super Intelligence (ASI) is the ability to come up with the tasks in the first place).</p></blockquote><p>In this perspective the future of programming is certainly bright: We may not be too far from a future where we can &#8220;hire&#8221; cheap individual contributors&#8212;the ammunitions&#8212;to help generate 100% of the code. But ammunitions are only useful when we&#8212;the rifle barrel&#8212;point them to the desired targets. It gets trickier in a wicked world, where the targets would often dance unpredictability. Often times, it is even unclear which targets we should point to. In other words, creativity is about knowing what and where to aim; simply being the projectile isn&#8217;t!</p><p>In an era where AI reigns supreme, the game we must learn to play will be that of unpredictability, chaos, and ambiguity. It is no longer about perfecting the established art, but mastering the art of exploration and experimentation. And if history is any guide, humanity has always been remarkably good at just that.</p><div><hr></div><p><em>Thanks for reading! Subscribe to my main newsletter at <a href="https://amenji.io?utm_source=substack">amenji.io</a> for free to receive new posts.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://amenji.io/subscribe?utm_source=substack&quot;,&quot;text&quot;:&quot;Subscribe to amenji.io&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://amenji.io/subscribe?utm_source=substack"><span>Subscribe to amenji.io</span></a></p>]]></content:encoded></item><item><title><![CDATA[Why Aren't We Refactoring Yet?]]></title><description><![CDATA[It's not because we're lazy.]]></description><link>https://newsletter.archinometry.com/p/why-arent-we-refactoring-yet</link><guid isPermaLink="false">https://newsletter.archinometry.com/p/why-arent-we-refactoring-yet</guid><dc:creator><![CDATA[Amirul Menjeni]]></dc:creator><pubDate>Fri, 31 May 2024 15:31:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!di9c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee69cba-813c-4649-bc6f-bb10b9853aed_1280x720.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aee69cba-813c-4649-bc6f-bb10b9853aed_1280x720.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aee69cba-813c-4649-bc6f-bb10b9853aed_1280x720.jpeg&quot;}},&quot;isEditorNode&quot;:true}"></div><p>The first few months of my professional programming experience were mostly spent on old codebases. As many programmers can attest, it&#8217;s not unusual to find old source codes that reeks of <a href="https://www.martinfowler.com/bliki/CodeSmell.html">code smells</a> and littered with anti-patterns, making them frustrating to test and maintain. Sure, I could have refactored and cleaned up the code. But that&#8217;s not how my manager&#8212;nor the software users&#8212;measures the value of my work.</p><p>In the race against deadlines, I trudged through the code smells and anti-patterns  before finally delivering the new features and bug fixes on time. The lingering anti-patterns, however, remain&#8212;a decision I know would vex future maintainers as it had vexed me.</p><p>Stopping this vicious cycle seems deceptively simple: <em>just refactor your code!</em> Yet, why aren&#8217;t we doing it as often?</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.archinometry.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://newsletter.archinometry.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h1>Three Reasons Why</h1><p>While most programmers are eager to write code, few are eager to refactor code&#8212;a sin I&#8217;m also guilty of. As discussed below, I think there are a few salient reasons for programmers&#8217; reluctance to refactor codes (and it's not because we're lazy). </p><h2>Broken Windows</h2><p>Imagine that a group of delinquents have recently started throwing rocks at the windows of a nice and cozy apartment.</p><p>The first few broken windows may initially raise voices of concern amongst the tenants. If the police or the people who live in the apartment weren&#8217;t too keen on stopping the petty crime, the delinquents might continue to break more windows&#8212;after all, it seems that &#8220;no one cares.&#8221;</p><p>Frustrated, some people may start to move out. Rents may dwindle, the price of the apartment may drop, and the upkeeping costs may incessantly increase. Unwelcome idlers, loiters, and vagrants may eventually take their place. Those who stay are becoming disaffected and are normalized by the growing disorder, which, in effect, lowers the average &#8220;accepted&#8221; civility level of the community.</p><p>Over time, the voices of concern slowly turned into silence and indifference. As the apartment grew more dilapidated, abandonment soon exponentially followed. If only we&#8217;ve nipped the delinquents in the butts&#8212;as the old wisdom goes.</p><p>This is the core idea of Broken Windows Theory in criminology, and I was first introduced to it in <em><a href="https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/">The Pragmatic Programmer</a></em> when the authors drew a parallel of the theory with refactoring.</p><p>According to <em>The Atlantic Monthly</em> <a href="https://web.archive.org/web/20080517150143/http://www.theatlantic.com/doc/198203/broken-windows">article</a> titled <em>Broken Windows</em> which first introduces the theory<a href="https://web.archive.org/web/20080517150143/http://www.theatlantic.com/doc/198203/broken-windows"><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></a>, the &#8220;no one cares&#8221; behavior of the community&#8212;in response to the vandalism (or lack thereof)&#8212;gives off signals that can lead to the breaking down of the mutual sense of regard and civil obligations. The authors wrote:</p><blockquote><p>[V]andalism can occur anywhere once communal barriers&#8212;the sense of mutual regard and the obligations of civility&#8212;are lowered by actions that seem to signal that "no one cares."</p></blockquote><p>The lowered &#8220;communal barriers&#8221; lead to a downward spiral of a vicious cycle where less serious crimes begets the more serious ones, as described in the same article:</p><blockquote><p>[&#8230;] A stable neighborhood of families who care for their homes, mind each other's children, and confidently frown on unwanted intruders can change, in a few years or even a few months, to an inhospitable and frightening jungle. A piece of property is abandoned, weeds grow up, a window is smashed. Adults stop scolding rowdy children; the children, emboldened, become more rowdy. Families move out, unattached adults move in. Teenagers gather in front of the corner store. The merchant asks them to move; they refuse. Fights occur. Litter accumulates. People start drinking in front of the grocery; in time, an inebriate slumps to the sidewalk and is allowed to sleep it off. Pedestrians are approached by panhandlers.</p></blockquote><p>Back to our topic of refactoring: The temptation to ignore the problem at its onset is similar to how a programmer would ignore the signal of code smells during the early phase of its development. It is easier to say that we&#8217;ll fix the problem tomorrow or after delivering some important feature than to fix it on the spot when you&#8217;re racing to the deadlines.</p><p>In the programming world, we sugar-coat this bad habit with a term called &#8220;technical debt.&#8221; But we all know too well that as more of these debts are incurred (often at an exponential rate), we grow more reluctant to pay them. In reality, technical debt is a proxy for lowering the &#8220;accepted&#8221; level of code quality, not unlike how the neighborhood described in the <em>Broken Windows</em> article tends to become normalized with the lowered level of communal barriers. Indeed, each technical debt that goes unpaid over time amplifies the signal that says, &#8220;No one cares.&#8221;</p><h2>The Price of Engineering</h2><p>Even if we do manage to overcome the temptation and react early to the onset of code smells, we may face some difficulty in nipping the buds. How we make decisions to restructure and refactor our code&#8212;to fix the code defect as signaled by anti-patterns and code smells&#8212;can be positively influenced by our knowledge and expertise in the broader field of software engineering.</p><p>One tool that makes design decisions easier in software engineering is borne out of the realization that many problems&#8212;when we look at them at a high enough level&#8212;share some similarities that can be solved by similar design patterns. From <a href="https://refactoring.guru/">refactoring.guru</a>:</p><blockquote><p><strong>Design patterns</strong> are typical solutions to common problems in software design. Each pattern is like a blueprint that you can customize to solve a particular design problem in your code.</p></blockquote><p>Since design patterns are established as typical solutions to common problems programmers face, most programmers in the industry should at least consider them when building software, right? After all, as the <a href="https://www.digitalocean.com/community/tutorials/gangs-of-four-gof-design-patterns">Gang of Four</a> puts it: &#8220;Once you know the pattern, a lot of design decisions follow automatically.&#8221;</p><p>But not every programmer is willing to invest in learning design patterns when, realistically speaking, they can write away codes&#8212;while being oblivious to the &#8220;blueprints&#8221;&#8212;and still deliver working features. Why take the time to painstakingly learn the biblical <em><a href="https://www.goodreads.com/book/show/85009.Design_Patterns">Design Patterns</a></em><a href="https://www.goodreads.com/book/show/85009.Design_Patterns"> </a>by the Gang of Four when you can write working code <em>now</em><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>?</p><p>One superficial answer is this: In every engineering profession, having the appropriate degree of engineering knowledge is critical for an engineer to observe the fine details that are easy to miss&#8212;to know that something&#8217;s not right&#8212;and, consequently, to have the know-how to make things right. </p><p>That may sound like a truism.</p><p>But when you observe the rise of a phenomenon such as <a href="http://radar.oreilly.com/2014/10/resume-driven-development.html">resume-driven development</a>&#8212;where narrow expertise on specific tools is given merit for hiring over &#8220;good taste&#8221; in software design&#8212;it seems that the superficial answer above may not be as evident.</p><p>The recently hired &#8220;Python API developer&#8221; may have done their job by the job description; after all, they have developed a web service with an API using Python. But does it scale <em>to infinity</em><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>? Does the software design conform to the <a href="https://en.wikipedia.org/wiki/SOLID">SOLID </a>design principle? Do they design the application so that it is easily <a href="https://martinfowler.com/testing/">testable</a><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a>? Clearly, there are many more abstract engineering factors that need to be considered when building any software&#8212;not just the language or tools with which the software is built. Design patterns are just one of them.</p><p>For software engineers, negligence to anti-patterns and the lack of necessary application of design patterns to combat them means that their source code&#8212;without clever refactoring to drive the positive evolution of the software&#8212;would eventually fall prey to <a href="https://en.wikipedia.org/wiki/Software_rot">software rot</a>. In other words, being more knowledgeable in design patterns can help you articulate and reason about the anti-patterns and code smells plaguing your code, enabling you to develop a well-informed refactoring decision.</p><p>Of course, all these are necessarily shadowed by extra costs. The extra costs are the time spent <em>not</em> working on writing codes to learn about software engineering concepts and money spent to pay for the learning materials or training. Are these extra costs worth it? With a pair of myopic eyes, it may not be perceived to be so.</p><p>A politician may make a decision and enforce a policy that may sound good in the short term, just enough to rally voters to have a higher chance of winning the upcoming election. A programmer may also choose to divest from software engineering concepts and deliberations to quickly write away codes to meet the upcoming deadline, code quality be damned.</p><p>On both accounts, their choices can lead to consequences with terrible costs that only reveal themselves months or years in the future, perhaps after they&#8217;re no longer working on the project and have since moved on (perhaps to a higher position in the career ladder.)</p><p>As <a href="https://www.tsowell.com/">Thomas Sowell</a> wrote in <em><a href="https://www.goodreads.com/en/book/show/3023">Basic Economics</a></em>:</p><blockquote><p>The fact that economic consequences take time to unfold has enabled government officials in many countries to have successful political careers by <em>creating current benefits at future costs</em>.</p></blockquote><p>In other words, the fact that short-term benefits are easier to measure and observe than long-term benefits can be a boon to many politicians (and also&#8212;<em>cough</em>&#8212;to many programmers).</p><p>One of the examples the author used to illustrate this point concerns the problem of maintaining and replacing municipal buses, where it&#8217;s getting more expensive and costly. To keep the business afloat, the logical response for the bus service operator is to increase the fare price to cover the increasing cost of replacing the buses as they wear out. Yet the act of opposing such an &#8220;unjustified&#8221; increase in bus fares (as the politicians put it) by putting a price cap on the fare may be well received by oblivious bus riders. While this can, in the short term, reduce the cost of travel for many bus riders, it can increase the costs for travelers in the long term as the buses wear out throughout the years.</p><p>On the long-term consequences of force-capping the price fare, Thomas Sowell wrote:</p><blockquote><p>It may be some years before enough buses start breaking down and wearing out, without adequate replacements, for the bus riders to notice that there now seem to be longer waits between buses and buses do not arrive on schedule as often as they used to.</p></blockquote><p>When you also take into account the compounding effect of the Broken Windows theory, the overall economic penalty for the affected community can be quite high.</p><p>Using the municipal bus analogy, refactoring is the &#8220;price&#8221; increase the business has to pay to the engineers to cover the increasing maintenance &#8220;costs&#8221; thanks to anti-patterns and code smells. Due to this seemingly higher price of writing software than what would be otherwise with code that isn&#8217;t being regularly refactored&#8212;and compounded by how hard it is to measure the long-term benefits of such undertaking versus the allure of short-term benefits&#8212;it is easy to dismiss refactoring as unjustified extra work, as politicians do with the &#8220;unjustified&#8221; bus fare increase to cover the increasing replacement costs.</p><p>What can make refactoring expensive is the fact that good refactoring decisions require a solid grasp of software engineering concepts and knowledge&#8212;both of which require more time and effort for the programmer to learn and implement. This is simply the price to pay if you want well-engineered source code that will be easier to maintain, integrate, and test in the long run than you would otherwise with poorly engineered source code. At the managerial level, this translates to more expensive labor.</p><p>In short, if you want to write code that can stand the test of time, pay the price of engineering now or regret needing to pay for more later. Unfortunately, in reality, the person who chose <em>not</em> to pay the price of engineering and the person who <em>does</em> have to pay more some years later isn&#8217;t always the same person.</p><h2>Incentives and Information Asymmetry</h2><p>Perhaps programmers (or their managers) perceive little to no value in refactoring. As previously discussed, it may be viewed as extra work that can get in the way of delivering users the features or changes they want. Some, perhaps the clients for whom the software was developed, may even remark: <em>Why bother fixing codes that aren&#8217;t broken?</em></p><p>Steven Levitt and Stephen Dubner, in their book <a href="https://freakonomics.com/books/">Freakonomics</a>, wrote that humans are driven by incentives:</p><blockquote><p><em>Doctors, lawyers, contractors, stockbrokers, auto mechanics, mortgage brokers, financial planners: they all enjoy a gigantic information advantage. And they use that advantage to help you, the person who hired them, get exactly what you want for the best price.</em></p><p><em>Right?</em></p><p><em>It would be lovely to think so. But experts are human, and humans respond to incentives. How any given experts treat you, therefore, will depend on how that expert&#8217;s incentives are set up.</em></p></blockquote><p>These incentives that influence the experts can work in your favor or against you. Car manufacturers, for example, are incentivized by designing better aesthetics, safety controls, comfortability, and durability of their cars to attract prospective buyers or risk losing their customers to their competitors (in a free market economy, of course). On the other hand, <a href="https://www.researchgate.net/publication/5188763_How_Much_Value_Do_Real_Estate_Brokers_Add_A_Case_Study">real estate agents may sell your house cheaper than they would their own house</a> to sell your house quicker, and in doing so, they would lose only a meager couple of hundred dollars in commission compared to you, who potentially could lose a couple of thousands. (You will probably sell your house faster, though.)</p><p>Programmers&#8212;as their clients are often led to believe&#8212;are experts in writing software that delivers features deemed valuable to them. If their clients want some fancy features, the programmers are incentivized to do just that: Write codes to deliver the fancy features, often sacrificing best practices and code quality to meet deadlines and secure project milestones.</p><p>As the project evolves (or perhaps even later after &#8220;go-live&#8221;), however, the source code tends to grow unwieldy: Integrating new features becomes increasingly complex, and bugs become harder to catch and fix. But the programmers were effectively inculpable&#8212;for they had lived up to their promise of delivering the requested features in the initial allotted time frame, and the clients were still no less oblivious about their unfortunate situation.</p><p>Here, we can see an example of <a href="https://en.wikipedia.org/wiki/Information_asymmetry">information asymmetry</a>: a typical situation where one party of a transaction has better information than the other. Naturally, the party with more information would be incentivized to withhold some information so as to maximize their reward or minimize penalty. Thus, while neglecting refactoring works may save the programmers some effort, unbeknownst to their trustful clients, they will have to pay the hefty consequences of hard-to-maintain software in the future (e.g., paying more for support and more costly maintenance). In other words, the programmers are rewarded with more work (and pay) to fix the growing problems thanks to poor design decisions early in the development cycle.</p><p>Interestingly, the example above may not hold true in the Software-as-a-Service (SaaS) model, where the client would make recurring payments&#8212;as opposed to the traditional model of paying for the software to be developed (usually by outsourcing) and run in the client&#8217;s own infrastructure operated by the client&#8217;s own team. In this case, the programmers are incentivized to maintain high-quality source code, motivating them to make changes, add new features, and catch bugs more efficiently, thus ensuring better customer retention and attracting prospective new subscribers. If they were to do otherwise, they'd risk losing their customers&#8217; subscriptions, who would rather move to better SaaS providers. Like what Gregor Hohpe (an enterprise architect at AWS) had advised, <a href="https://architectelevator.com/cloud/dont-run-what-didnt-build/">don&#8217;t run what you didn&#8217;t build</a>!</p><h1>Moral of The Story</h1><p>A good piece of advice is to refactor whenever you see the signals&#8212;the smell of code stinks. That&#8217;s when you know there&#8217;s some refactoring to do. At the very least, if you cannot refactor immediately, make a note of it&#8212;raise an issue or a backlog to highlight the code that needs refactoring. Other programmers in your team may not be aware that the code suffers from anti-patterns and can be further cleaned and improved. Don&#8217;t let that one broken window instigate more code smells being left unattended. It is far easier to refactor small pieces of code than to refactor a giant, <a href="https://thedomaindrivendesign.io/big-ball-of-mud/">big ball of mud</a>.</p><p>Apart from the deterioration of code quality over time, the continuing shifts in the knowledge and available technology that went into the design and implementation of the software are another reason that refactoring is inherently a never-ending task. For example, gaining more clarity into the business domain may guide you to better design decisions<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a>, as does learning about design patterns appropriate for your use cases. In addition, adopting new technology that wasn&#8217;t available even a few years ago might make your code a hundred times easier to maintain.</p><p>Alas, you can never really end the cycle. The vicious cycle will always be alive, and with each cycle, your source code can grow insidiously. It is thus crucial for you and your team to understand that refactoring is an essential, perpetual task; negligence of this fact would ensue further disarray and anti-patterns proliferating the source code&#8212;plunging you, your team, or future maintainers into <a href="https://blog.codecentric.de/maintenance-hell-no-thanks">maintenance hell</a>.</p><h1>The <em>Real</em> Moral of the Story</h1><p>Perhaps it&#8217;s too easy to give such advice that puts the burden of change on the individual programmer. Instead, let us ask ourselves: <em>Are we working in an environment where it&#8217;s easier to do the right thing than the wrong thing?</em> Can we be incentivized to refactor code&#8212;an unglamorous and underappreciated work&#8212;so that we&#8217;re not only myopically focused on short-term rewards (i.e., features and bug fixes) but also on long-term values (i.e., maintainability, testability, and scalability)?</p><p>In <em><a href="https://jamesclear.com/atomic-habits">Atomic Habits</a></em>, the author James Clear wrote:</p><blockquote><p>Environment is the invisible hand that shapes human behavior.</p></blockquote><p>If we as programmers can&#8217;t change our behavior&#8212;to fix broken windows early, to pay the price of engineering, or to be more vigilant on code quality&#8212;by simply trying to be more proactive and disciplined, then perhaps it&#8217;s time to scrutinize the environment that shapes how we work.</p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.archinometry.com/p/why-arent-we-refactoring-yet?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Did you learn something from this post? Feel free to share it. It&#8217;s public!</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.archinometry.com/p/why-arent-we-refactoring-yet?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.archinometry.com/p/why-arent-we-refactoring-yet?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><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>According to the Wikipedia <a href="https://en.wikipedia.org/wiki/Broken_windows_theory">page </a>on Broken Windows Theory, the article was from the March 1982 issue of <em>The Atlantic Monthly</em>, where this theory emerged. </p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>While I appreciate the Gang of Four's contribution to bringing Design Patterns to light in the art of programming, I find the book too dry and boring. Its examples are also a bit dated by today&#8217;s standards. For the aspiring computer whizz kids in the <em>current year</em>, I&#8217;d recommend <a href="http://refactoring.guru/">refactoring.guru</a>.gra</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>On the initial conception of Amazon&#8217;s AWS, according to <em><a href="https://www.goodreads.com/book/show/56695159-amazon-unbound">Amazon Unbound</a></em>:</p><blockquote><p>The business plan [of building a cloud service] was barely understandable to many of Amazon&#8217;s own employees and board members. But the forty-year-old Bezos believed in it, micromanaging the project and sending extraordinarily detailed recommendations and goals to AWS team leaders, often at night. <strong>&#8220;This has to scale to infinity with no planned downtime,&#8221; he told the beleagured engineers working on the project. &#8220;Infinity!&#8221;</strong></p></blockquote></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>See <a href="https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html">Clean Architecture</a>, by Robert C. Martin (Uncle Bob).</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false" target="_self">5</a><div class="footnote-content"><p>The book <a href="https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215">Domain-Driven Design</a> by Eric Evans is a good starting point.</p></div></div>]]></content:encoded></item><item><title><![CDATA[Masquerading Digitalization]]></title><description><![CDATA[Simply procuring emerging tech in your org is a facade of &#8220;being digital&#8221;.]]></description><link>https://newsletter.archinometry.com/p/masquerading-digitalization</link><guid isPermaLink="false">https://newsletter.archinometry.com/p/masquerading-digitalization</guid><dc:creator><![CDATA[Amirul Menjeni]]></dc:creator><pubDate>Thu, 11 Apr 2024 03:41:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fU7n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa360df1f-0811-4396-b870-81e47933a03d_4320x3240.jpeg" 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_!fU7n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa360df1f-0811-4396-b870-81e47933a03d_4320x3240.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fU7n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa360df1f-0811-4396-b870-81e47933a03d_4320x3240.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fU7n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa360df1f-0811-4396-b870-81e47933a03d_4320x3240.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fU7n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa360df1f-0811-4396-b870-81e47933a03d_4320x3240.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fU7n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa360df1f-0811-4396-b870-81e47933a03d_4320x3240.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fU7n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa360df1f-0811-4396-b870-81e47933a03d_4320x3240.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a360df1f-0811-4396-b870-81e47933a03d_4320x3240.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1450175,&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_!fU7n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa360df1f-0811-4396-b870-81e47933a03d_4320x3240.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fU7n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa360df1f-0811-4396-b870-81e47933a03d_4320x3240.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fU7n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa360df1f-0811-4396-b870-81e47933a03d_4320x3240.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fU7n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa360df1f-0811-4396-b870-81e47933a03d_4320x3240.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 aria-hidden="true" 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><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><h1>The Masquerade</h1><p>Digitalization, or digital transformation, has long since become a key factor responsible for the progress and development of the world's economies. "Every company is a technology company," or variations of the phrase, is an oft-spoken mantra for highlighting the importance of digitalization to every organization, no matter the industry. Recently, the push for digital transformation is usually induced by the furor surrounding <a href="https://www.youtube.com/watch?v=bqqCTC9nQDY">emerging technologies</a>, such as artificial intelligence (AI), cloud computing, big data, and blockchain.</p><p>With the hype around the emerging tech, many organizations, perhaps due to fear of missing out, are racing to transform their business to be "digital". But what does that mean? If it's about adopting digital technology, we've had a track record of that going back to a few decades ago. (The <a href="https://en.wikipedia.org/wiki/Digital_clock#History">first digital alarm clock</a> was first patented in 1956.)</p><p>From experience, when people talk about going digital, they usually mean adopting emerging technologies to realize its lofty promises: that big data and data analytics enable data-driven business decisions, and in some way or another, AI is a silver bullet that can solve an organization's myriad problems.</p><p>Of course, the promises of big data and AI <em>are</em> real. However, they have led some organizations to develop a lackadaisical strategy for digital transformation. Decisions for digital transformation are mostly pivoted around the procurement of emerging technologies, rather than by reimagining the operating system of the business and changing the ways of working; that is, transforming the business operating model.</p><p>This is unfortunate. Digitalization should be an enabler and offer opportunities for lifestyle change instead of a mere leap in the technology being used. To do otherwise is to only assume the appearance of a smart organization. A masquerade.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.archinometry.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://newsletter.archinometry.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h1>Masquerading Digitalization with Digitization</h1><p>Simply carrying out a mere transition from paper to its digital forms (e.g., PDF documents, image files, etc.) does not imply digitalization. Here's an example.</p><p>There are a few local restaurants that I've personally experienced where their effort to digitalize backfires miserably, to the point where it would have been much easier to order the menu <em>without</em> the digital technology.</p><p>There's no longer any physical menu placed on the counter or the dining table. QR code stickers, however, are conspicuously glued onto each table. When scanned, it would lead to a shared Google Photos link containing the images of the restaurant menu. With a bad cellular connection, it would take a while for the thumbnails of the images to load at their full quality. There was quite a number of images; one image for each page. After a few swipes left and right or scrolling up and down the list of images, it can take a while to read most of the menus to find what I'm looking for before I can finalize my order.</p><p>In the end, replacing physical menus with digital copies does not make discovering (and re-discovering) menus easier. The overall experience turned out to be frustrating. To make things worse, everyone can see who has visited the shared Google Photos link.</p><p>Clearly, whoever decided to replace the physical menu with digital pictures muddled digitization for digitalization. Lifting and shifting your physical copies of data into a digital landscape does not make your organization digital. In fact, <a href="https://cloud.google.com/blog/transform/the-meaning-of-digital-transformation-is-changing">the meaning of digital transformation is evolving</a>, with more than 72% of industry leaders viewing digitalization as much more than lift-and-shift.</p><p>To give them the benefit of the doubt, for all I know, the restaurants were just trying to save some paper, albeit at the cost of a somewhat disappointing customer experience. But some of the worst offenders yet are those who lauded and coveted digitalization the most: Enterprise IT.</p><h1>Masquerading Digitalization with Emerging Technology</h1><p>Migrating to the cloud is a no-brainer when organizations decide to "go digital". The cloud had risen in favor over on-premise infrastructure for more than a decade since Amazon first revealed a unique business model at the time, stemming from an idea -- a multi-billion dollar idea<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> -- that their existing compute and storage infrastructure <em>can</em> be offered as a service, with great agility and scalability.</p><p>According to a <a href="https://www.zippia.com/advice/cloud-adoption-statistics/">2023 cloud adoption statistics by Zippia</a>, 61% of businesses migrated their workloads to the cloud in 2020, although the share of workflows on the cloud is quite low, at only 25%, according to <em><a href="https://www.economist.com/finance-and-economics/2023/07/16/your-employer-is-probably-unprepared-for-artificial-intelligence">The Economist</a></em>.</p><p>In Brunei, <a href="https://aiti.gov.bn/surveys/brunei-darussalam-ict-business-report-2019/">a 2019 report</a> by the <em>Authority for Info-communications Technology</em> (AITI), a statutory body that focuses on the development of IT in Brunei, showed that most IT services infrastructure (e.g., data analytic tools, business process automation, HR management system, etc.) are on-premise<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>, with less than 5% cloud adoption for each sector. That was five years ago. (Unfortunately, I couldn't find recent reports on cloud adoption in Brunei.)</p><p>Nevertheless, over the past few years, signs for cloud adoptions by local businesses are increasingly popping up, such as the <a href="https://www.linkedin.com/posts/andyw_partnerships-project-steering-activity-7001738528099356672-q4lu?utm_source=share&amp;utm_medium=member_desktop">adoption</a> of AWS Managed Services by Datastream Digital Sdn Bhd (DST) and Progresif's <a href="https://www.linkedin.com/posts/progresif-sdn-bhd_progresif-launches-enterprise-xperience-center-activity-7042459469741522944-VPaM?utm_source=share&amp;utm_medium=member_desktop">partnership</a> with Alibaba Cloud. Brunei's <a href="https://www.mtic.gov.bn/DE2025/documents/Digital%20Economy%20Masterplan%202025.pdf">Digital Economy Masterplan 2025</a> by the Digital Economy Council (DEC) even mentioned "Public Cloud Adoption" as part of its key projects in 2021, among other digital transformation initiatives.</p><p>It is all the more important, then, to understand what it really takes for an organization, especially those already operating for decades with the support of Enterprise IT to undergo digital transformation.</p><p>Many Enterprise IT are prone to hold on to their long-held traditions. Most are unable to forgo IT processes and operational culture that are already well-established and deeply entrenched in their organization. The processes are followed almost down to a dogmatic level, in the name of minimizing risks and ensuring stability and reliability.</p><p>The typical tradition includes loathsome bureaucratic IT processes. They are the manual and tedious checks and balances organically injected at almost every step of the <a href="https://en.wikipedia.org/wiki/Value_stream">value streams</a> throughout the organization's lifetime, thanks to the learnings from past incidents and failures. In other words, they're the organization's counter-responses to past disappointments, which, unfortunately, end up introducing waste in the organization's value streams. Fittingly, in the DevOps community, they are referred to as "scar tissues".</p><p>Traditional change management processes are one example of scar tissue, where each "normal" change requires a lengthy process of approvals, careful planning and coordination, and manual testing and deployment methods. To make things worse, these are usually exacerbated by the lack of cooperation between teams in organizations that suffers the symptoms of organizational silos.</p><p>Organizational silos are the defining feature of traditional IT, where teams are locally optimized, but end-to-end cross-team value delivery are not. Thus, works that require cross-team collaborations are impeded due to friction. The existence of the friction is easy to explain from economic standpoint: the builders (e.g., software engineers, data engineers, data scientists) are incentivized by making more changes or adding more features in response to the changing business needs, whereas the infrastructure team and the support team are disincentivized because they want to keep the software reliable and easy to support (by the virtue of less frequent changes and fewer features to support). As economists are wont to say, our actions are driven by incentives. When the incentives are not aligned, you get friction.</p><p>Without fixing the organization's processes and organizational structure, whatever fancy technology the organization is trying to adopt will go to waste. Suppose you have set up Continuous Integration and Continuous Delivery pipelines (CI/CD) which automatically run unit tests and integration tests against your application each time a change is made to your code in your version control repository. Suppose also that you've painstakingly written some custom scripts to allow an application custodian to pick a snapshot version of the application to be automatically deployed to the production environment. If your organization still fanatically follows a traditional change management process -- the likes that require approvals across multiple stages and require you to fill in numerous forms -- the value proposition of the <em>continuous</em> property made available by the CI/CD pipelines will be diminished. In short, the inherent culture of dogmatism and fanaticism for traditional ways of working inhibits digital transformation from squeezing out its maximal value outcome.</p><p>Understanding the implication of this masquerade, as described above, is paramount for successful digital transformation. In the effort to transform an organization to be digital, it would be neglectful to be obsessed with the procurement and implementation of emerging technologies without expending more energy and resources on transforming their people and the operating model they're clinging to.</p><h1>Seeing Through the Masquerade</h1><p>Mixing emerging technology with traditional IT culture is a recipe for disaster. As Gregor Hohpe, an Enterprise Strategist at <em>Amazon Web Services</em> wrote in his book <em>Cloud Strategy</em>:</p><blockquote><p>If you don't know how to drive, buying a faster car is the worst thing you can do.</p></blockquote><p>Viral videos online showing amateur drivers driving recklessly and crashing their cars are all too common. Its dour consequences are obvious; and, grim as they may be, they serve as effective reminders and warnings to other drivers.</p><p>Organizations driving the digitalization vehicle do not normally have this luxury. Instead, digitalization mishaps are difficult to notice: <em>We're using the cloud now, we're digital!</em>, or <em>We're using Docker to do the deployment!</em> are just fanciful masquerades if symptoms of organizational silos are still rampant across the organization, or deliverables take months before they can be deployed and realized.</p><p>For digitalization strategy and execution to be successful, it is paramount that everyone across all levels in the organization can see through the masquerades and understand the desired outcome of digitalization for the organization that maximizes its business value.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.archinometry.com/p/masquerading-digitalization?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thank you for reading Abstract Engineering. This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.archinometry.com/p/masquerading-digitalization?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.archinometry.com/p/masquerading-digitalization?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><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>According to <em>Amazon Unbounded</em>, Amazon would initially disguise the profits and revenues its AWS division generated so that other tech giants such as Microsoft and Google wouldn't pick up on the attractiveness of cloud computing. (They're required to report the division's revenue by 2015, when it's approaching 10 percent of Amazon's overall sales, which is required by federal law in the US.)</p><p></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Most (62.1%) use cloud services for SaaS office offerings such as Office 365 and Google Apps</p></div></div>]]></content:encoded></item></channel></rss>