<?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[Agile Data N’ Info]]></title><description><![CDATA[Simply Magical content about Agile Data Ways of Working]]></description><link>https://agiledata.info</link><image><url>https://substackcdn.com/image/fetch/$s_!ErtR!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png</url><title>Agile Data N’ Info</title><link>https://agiledata.info</link></image><generator>Substack</generator><lastBuildDate>Sat, 22 Aug 2026 02:30:08 GMT</lastBuildDate><atom:link href="https://agiledata.info/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Agile Data Limited]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[DataNInfo@agiledataguides.com]]></webMaster><itunes:owner><itunes:email><![CDATA[DataNInfo@agiledataguides.com]]></itunes:email><itunes:name><![CDATA[Shagility]]></itunes:name></itunes:owner><itunes:author><![CDATA[Shagility]]></itunes:author><googleplay:owner><![CDATA[DataNInfo@agiledataguides.com]]></googleplay:owner><googleplay:email><![CDATA[DataNInfo@agiledataguides.com]]></googleplay:email><googleplay:author><![CDATA[Shagility]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Watch now | Recording of AURA - Chris Gambill & Shane Gibson 14th August 2026]]></title><description><![CDATA[Raw and unedited]]></description><link>https://agiledata.info/p/watch-now-recording-of-aura-chris-0ce</link><guid isPermaLink="false">https://agiledata.info/p/watch-now-recording-of-aura-chris-0ce</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Sat, 15 Aug 2026 15:38:58 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/207002694/e4df711545107f7f062375d37475c734.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Thank you to everyone who tuned into our latest AURA Ask Us Anything live session.</p><div><hr></div><h3 style="text-align: center;"><strong>Join us for the next AURA session in the app.</strong></h3><p style="text-align: center;"></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;efbc51fc-bbac-41da-9988-3213f9fc4bcf&quot;,&quot;caption&quot;:&quot;Another AURA session is booked!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AURA - Anna Bergevin - Friday, 21 August 2026 - 8AM MDT / 3PM GMT&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:2774203,&quot;name&quot;:&quot;Shagility&quot;,&quot;bio&quot;:&quot;I help data and analytics teams change the Way they Work in a Simply Magical Way&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4d2966a-845b-403c-9032-b542684ad1af_2213x2213.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-09T10:16:00.801Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!njJR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://agiledata.info/p/aura-anna-bergevin-friday-21-august&quot;,&quot;section_name&quot;:&quot;AURA - Ask Us Anything Live&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:210330286,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:952247,&quot;publication_name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ErtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p style="text-align: center;">Got a Question you want to ask and have answered in the next AURA session, leave a comment and we got you!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledata.info/p/watch-now-recording-of-aura-chris-0ce/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://agiledata.info/p/watch-now-recording-of-aura-chris-0ce/comments"><span>Leave a comment</span></a></p><p style="text-align: center;"></p>]]></content:encoded></item><item><title><![CDATA[Using Claude Design to Pattern Storm a MDM "Golden Record" Accept/Decline/Pass app]]></title><description><![CDATA[The process I currently use to prototype and iterate app designs using Claude Design]]></description><link>https://agiledata.info/p/using-claude-design-to-pattern-storm</link><guid isPermaLink="false">https://agiledata.info/p/using-claude-design-to-pattern-storm</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Thu, 13 Aug 2026 09:50:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fe75a89e-405e-4f0e-ad59-d43ff9716e26_933x415.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As part of designing and building the MediaView360.com Information Products we need a way to have a human in the loop for matching Content Titles. </p><h2>The Problem</h2><p>The problem to be solved is that we collect data from multiple platforms and multiple publishers, and the Content Titles don&#8217;t align, so being able to show a single measurement number for a piece of content is a challenge.</p><p>For example the Content Titles used for Shortland Street on Linear are often slightly different to the Content Titles used for Shortland Street on Video on Demand.</p><p>When we get to YouTube then the problem get a lot bigger, content publishers want to be able to tweak the titles they use to try and increase engagement and reach, but we always need to know which funded content those YouTube videos relate to.</p><h2>The Blueprint</h2><p>As we build this out we always start with a light architectural Blueprint so that Nigel and I are on the same page and talking about the same things. (we call this our agile-tecture sessions)</p><p>For this one we ended up with 5 pattern components we cared about:</p><ol><li><p><strong>Matching Engine <br></strong>(AutomatedAI)<br>The Pattern(s) that create the suggested matches for Content Titles </p></li><li><p><strong>Matching Store</strong> <br>(Operational Context)<br>The place we store those suggested matches</p></li><li><p><strong>Human in the Loop<br></strong>(AssistedAI)<br>The interface that allows a Human to be in the loop and approve/decline/pass the suggested match </p></li><li><p><strong>Mastering Policy<br></strong>(Business Context)<br>The place where we store those human matching decisions as policies </p></li><li><p><strong>Mastering Execution<br></strong>(Business Context and Code)<br>The business logic that applies those matching decisions in a repeatable way every time we collect or consume the data</p></li></ol><h2>Experimenting with Agility</h2><p>We tend to work on these architectural components in parallel as a decision for one will often impact the decision for another.</p><p>And we will often discover something we haven&#8217;t thought about that means we end up needed an additional component or two.</p><p>For example what we decide for #2 and #4 impacts what we build for #3.</p><p>We can use a relational physical data model or a graph model and we can use Spanner, Spanner Graph, BigQuery, BigQuery Graph.  These decisions impact what we build for #3.</p><p>But also the design of #3 will also impact teh choices we make for #2 and #4.</p><p>In the past we had awesome humans help us prototype our app, Chris did the awesome Design and Richard did the awesome Build.  Nigel had of course automated the Deploy.</p><p>The challenge was the cost of change.  It reduced our agility.</p><p>So I have been experimenting with the use of Claude Design and then Claude Code to see if we can reduce the time and cost of those experimentation loops.</p><h2>My Claude Design Process</h2><p>Here is the process I go though using the Human in the Loop #3 component above as the example.</p><h3>1 - Pattern Storming ideas, the Town Plan</h3><p>The first thing I do is give it some light instructions on the intent of the app and then ask for 10 options.</p><div class="callout-block" data-callout="true"><p><span data-color="#4a41ff" style="color: rgb(74, 65, 255);">We have to create a sceen that a;lows people to accept or delince matches of core concepts like Customers, Suppliers, Porudcts or COntent Titles.<br><br>A back end process will crate the match candidates.<br><br>this screen will show tthe potential matches.<br><br>the user then needs ro accept, decline or delay the match.<br><br>We shouls gamify the process in the acreen to give the user a sense of acheivement eaxh tiome thwy complete a match and start to cleare the screen.<br><br>Give me 10 options for this screen</span></p></div><p>As you can see I don&#8217;t worry about spelling etc.</p><p>Claude Design came back with this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mj4L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mj4L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp 424w, https://substackcdn.com/image/fetch/$s_!mj4L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp 848w, https://substackcdn.com/image/fetch/$s_!mj4L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp 1272w, https://substackcdn.com/image/fetch/$s_!mj4L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mj4L!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp" width="1200" height="943.6813186813187" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1145,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:99530,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agiledata.info/i/211005250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!mj4L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp 424w, https://substackcdn.com/image/fetch/$s_!mj4L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp 848w, https://substackcdn.com/image/fetch/$s_!mj4L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp 1272w, https://substackcdn.com/image/fetch/$s_!mj4L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f35108e-5471-4d36-9568-f128567fc724_1456x1145.webp 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><div class="callout-block" data-callout="true"><p>10 directions (plus the shared &#8220;all clear&#8221; payoff state as 1k), all accept / decline / delay, each with a different gamification hook:</p><ul><li><p><strong>1a</strong> Steward Queue &#8212; progress bar + streak, rows collapse away</p></li><li><p><strong>1b</strong> Match Deck &#8212; one card at a time, XP toast per swipe</p></li><li><p><strong>1c</strong> Clear the Board &#8212; tile wall that greys out as you go</p></li><li><p><strong>1d</strong> Triage Board &#8212; drag to decision columns, badge for emptying</p></li><li><p><strong>1e</strong> Inbox Zero &#8212; countdown to an empty inbox</p></li><li><p><strong>1f</strong> Speed Session &#8212; timed 10-match sprint, combo + level bar</p></li><li><p><strong>1g</strong> Confidence Lanes &#8212; bulk-accept the sure things</p></li><li><p><strong>1h</strong> Daily Quests &#8212; quest checklist + badges</p></li><li><p><strong>1i</strong> Map Cleanup &#8212; resolving matches heals the data map score</p></li><li><p><strong>1j</strong> Team Leaderboard &#8212; friendly competition</p></li></ul><p>Tell me which to build out as a working prototype, or mix elements (e.g. 1a + 1h&#8217;s quests).</p></div><p>What I am doing in this step is looking for UI design ideas.</p><p>I always have an idea of what I think these screens will look like before I start the design process and how they will flow.  But often Claude Design will come up with a UI or UX pattern I hadn&#8217;t thought of, and I then get it to help me rift with those ideas to see if they have legs or not.</p><h3>2 - Explore the possible Houses on the Street</h3><p>Next I step back and look at the UI Patterns across all the options.  Either one will stand out as the my clear preference and I will start iterating that or I will want to experiment at the higher level, lets call it the town plan level.</p><p>In this case I went with the town plan level and so asked for another round.</p><div class="callout-block" data-callout="true"><p><span data-color="#4a41ff" style="color: rgb(74, 65, 255);">I thin the left and right things need to be seperate raterh than treated as one thing.<br><br>give me 10 more otpions based on that</span></p><p></p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7sFc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7sFc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.png 424w, https://substackcdn.com/image/fetch/$s_!7sFc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.png 848w, https://substackcdn.com/image/fetch/$s_!7sFc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.png 1272w, https://substackcdn.com/image/fetch/$s_!7sFc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7sFc!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.png" width="1200" height="860.4395604395604" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1044,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:286236,&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://agiledata.info/i/211005250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7sFc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.png 424w, https://substackcdn.com/image/fetch/$s_!7sFc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.png 848w, https://substackcdn.com/image/fetch/$s_!7sFc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.png 1272w, https://substackcdn.com/image/fetch/$s_!7sFc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda510b0e-6535-4d46-a5b2-a23c3fa6fa0a_1521x1091.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><div class="callout-block" data-callout="true"><p>10 new pair-based options in turn 2 (top of the canvas) &#8212; the two records are now separate cards in every layout:</p><ul><li><p><strong>2a</strong> Linked Tiles &#8212; decision lives on the link node between tiles</p></li><li><p><strong>2b</strong> Versus &#8212; face-off with centre confidence badge</p></li><li><p><strong>2c</strong> Field Ladder &#8212; agreement scored per field down the middle</p></li><li><p><strong>2d</strong> Golden Record vs Candidate &#8212; trusted anchor vs challenger</p></li><li><p><strong>2e</strong> Dossier Compare &#8212; full profiles with own stats</p></li><li><p><strong>2f</strong> Pair Queue &#8212; worklist where each row keeps the pair separate</p></li><li><p><strong>2g</strong> Drag to Link &#8212; pull cards together / apart</p></li><li><p><strong>2h</strong> Anchor &amp; Candidates &#8212; one record, its candidate queue</p></li><li><p><strong>2i</strong> Evidence Scales &#8212; chips tip a same/different gauge</p></li><li><p><strong>2j</strong> Connector Spine &#8212; field-to-field connectors, green/orange</p></li></ul><p>Pick one to build out, or mix (e.g. 2a with 2c&#8217;s field scoring).</p></div><p>If you have seen any of the designs in our AgileData UI you will see how Claude Design is re-using the &#8220;tile card&#8221; component from our Design System for these iterations.</p><p>While I love reusing that design component, i&#8217;m not sure it fits well for this use case. So we need to iterate that.</p><h3>3 &amp; 4 - Design the Rooms in the House</h3><p>One of the things I love about Claude Design os the way it numbers each option.  So it allows me to say, take this bit from 2b and this bit from 2d and then give me new versions</p><p>It also allows me to add comments to specific parts of each option and then get it to generate new versions based on those comments.</p><p>In this flow I did both.</p><p>I wanted to focus on one Component and validate it is what we want, so first I picked a specific option and asked for a new version of it.</p><p>Focusing on the design of one room in the house so to speak.</p><div class="callout-block" data-callout="true"><p><span data-color="#4a41ff" style="color: rgb(74, 65, 255);">gie me this as another design option</span></p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zdqC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zdqC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.png 424w, https://substackcdn.com/image/fetch/$s_!zdqC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.png 848w, https://substackcdn.com/image/fetch/$s_!zdqC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.png 1272w, https://substackcdn.com/image/fetch/$s_!zdqC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zdqC!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.png" width="1200" height="1799.2297817715018" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1168,&quot;width&quot;:779,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:186766,&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://agiledata.info/i/211005250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zdqC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.png 424w, https://substackcdn.com/image/fetch/$s_!zdqC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.png 848w, https://substackcdn.com/image/fetch/$s_!zdqC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.png 1272w, https://substackcdn.com/image/fetch/$s_!zdqC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F739d7048-6541-4cdf-b419-a0901c8978a2_779x1168.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><div class="callout-block" data-callout="true"><p>Added as 3a at the top of the canvas &#8212; the full Content Title Matching screen from the spec: header with count pill + Compact toggle, four cards (high-confidence match, runtime difference with ad-break variance action, Variant mode, Create mode), each with source evidence left / decision area right, Match&#183;Variant&#183;Create&#183;Discuss tabs, "Resolved this session" list and an undo toast. Say the word to build it as a working prototype with live tabs, confirm animations and queue behaviour.</p></div><p>It still wasn&#8217;t quite want I wanted so back to designing all the rooms again.</p><p>This time I provided  more guidance using comments.  This allows me to tag comments about different parts of the options, highlight the bits I liked and want to keep and the bits I don&#8217;t like and don&#8217;t want reused.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c3Ml!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c3Ml!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.png 424w, https://substackcdn.com/image/fetch/$s_!c3Ml!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.png 848w, https://substackcdn.com/image/fetch/$s_!c3Ml!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.png 1272w, https://substackcdn.com/image/fetch/$s_!c3Ml!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c3Ml!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.png" width="1200" height="801.0989010989011" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:972,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:417921,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agiledata.info/i/211005250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!c3Ml!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.png 424w, https://substackcdn.com/image/fetch/$s_!c3Ml!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.png 848w, https://substackcdn.com/image/fetch/$s_!c3Ml!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.png 1272w, https://substackcdn.com/image/fetch/$s_!c3Ml!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cd4520f-1b77-4cd5-b03f-4586292f1276_1834x1224.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><div class="callout-block" data-callout="true"><p><span data-color="#4a41ff" style="color: rgb(74, 65, 255);">all my feedback is on comments, give me 10 more optins to review</span></p><p></p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uP2L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uP2L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.png 424w, https://substackcdn.com/image/fetch/$s_!uP2L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.png 848w, https://substackcdn.com/image/fetch/$s_!uP2L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.png 1272w, https://substackcdn.com/image/fetch/$s_!uP2L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uP2L!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.png" width="1200" height="976.1442441054091" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1173,&quot;width&quot;:1442,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:310540,&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://agiledata.info/i/211005250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uP2L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.png 424w, https://substackcdn.com/image/fetch/$s_!uP2L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.png 848w, https://substackcdn.com/image/fetch/$s_!uP2L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.png 1272w, https://substackcdn.com/image/fetch/$s_!uP2L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F622d1513-63ef-43a7-afcd-8d2a072c2646_1442x1173.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><div class="callout-block" data-callout="true"><p>Turn 4 is up top &#8212; 11 riffs built straight from your comments. Applied throughout: <strong>no points</strong>, records as flat value panels (tiles stay reserved for concept types), &#8220;Keep separate&#8221; in neutral Purple Rain instead of red, confidence badge sitting between the halves, and match-rule visibility.</p><ul><li><p><strong>4a</strong> the assembled screen (status bar + 3a card + centre badge + grey-out + undo toast)</p></li><li><p><strong>4b</strong> compact density &#8212; the minimal view your Compact comment described</p></li><li><p><strong>4c / 4d</strong> top border encoding: confidence vs match-rule type (with legend)</p></li><li><p><strong>4e</strong> field connectors labelled with the rule logic (fuzzy 0.87, exact, &#177;10s)</p></li><li><p><strong>4f</strong> &#8220;why this match?&#8221; expandable rule-chain drawer + catalog search</p></li><li><p><strong>4g</strong> queue grouped by rule type, bulk-confirm exact IDs</p></li><li><p><strong>4h</strong> Full vs Compact of the same card</p></li><li><p><strong>4i</strong> Match/Variant/Create/Discuss as inline segmented control</p></li><li><p><strong>4j</strong> points-free end-of-queue summary</p></li><li><p><strong>4k</strong> three status-bar treatments</p></li></ul><p>Comment on what sticks and I&#8217;ll converge, or ask for a working prototype of the winner.</p></div><p></p><h3>5 - Design the flow between the Rooms in the House</h3><p>Once I think I have an idea of the moving parts, I start to refine each one.</p><p>In this round I want to focus on the different flows through the screens depending on the Matching Pattern that was used to selected the recommended match.</p><p>I want to be clear to the Human in the loop which matches are pretty confident and which require more curation.</p><div class="callout-block" data-callout="true"><p><span data-color="#4a41ff" style="color: rgb(74, 65, 255);">another version based on the comments,  Just one version of the screen on reach of its proess states</span></p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bKQ4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bKQ4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.png 424w, https://substackcdn.com/image/fetch/$s_!bKQ4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.png 848w, https://substackcdn.com/image/fetch/$s_!bKQ4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.png 1272w, https://substackcdn.com/image/fetch/$s_!bKQ4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bKQ4!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.png" width="1200" height="503.25379609544467" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:580,&quot;width&quot;:1383,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:172237,&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://agiledata.info/i/211005250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bKQ4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.png 424w, https://substackcdn.com/image/fetch/$s_!bKQ4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.png 848w, https://substackcdn.com/image/fetch/$s_!bKQ4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.png 1272w, https://substackcdn.com/image/fetch/$s_!bKQ4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e3b896-95f0-4cd6-9be8-425fd33de361_1383x580.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></p><div class="callout-block" data-callout="true"><p>Turn 5 is at the top &#8212; one converged design walked through its six process states:</p><ul><li><p><strong>5a</strong> session start &#8212; fresh queue, active card + up-next rows</p></li><li><p><strong>5b</strong> reviewing &#8212; &#8220;why this match?&#8221; rule chain + catalog search open</p></li><li><p><strong>5c</strong> decision made &#8212; grey/strike collapse, undo toast, streak ticks</p></li><li><p><strong>5d</strong> no match &#8212; right half becomes the Create form</p></li><li><p><strong>5e</strong> delayed &#8212; parked tray with reasons, retried when data lands</p></li><li><p><strong>5f</strong> queue cleared &#8212; per-outcome counts, undo list, next batch ETA</p></li></ul><p>Everything honours your comments: no points, flat value panels, neutral &#8220;Keep separate&#8221;, confidence badge between the halves, rule chips visible. Comment on the states or say &#8220;build it&#8221; for a working prototype.</p></div><p></p><h3>6 - And back to the Furniture in a Room</h3><p>Once I ham happy we have the high level flow of the screens sorted, then I start to focus on the detail.<br><br>This time I want to return to focussing on the components within the match that provide the context for the recommended match.</p><p>I can&#8217;t quite decide how I want those to look, so rather than specific instructions for that part of the design, its back to the &#8220;give me 10 ideas&#8221; pattern storming  </p><div class="callout-block" data-callout="true"><p><span data-color="#4a41ff" style="color: rgb(74, 65, 255);">I like the lines in 4e, they allow me to quickly see what wws used fo rth ematch.<br><br>give me a 10 versions of 5b based on the that use the line desing from 4e</span></p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zM1G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zM1G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.png 424w, https://substackcdn.com/image/fetch/$s_!zM1G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.png 848w, https://substackcdn.com/image/fetch/$s_!zM1G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.png 1272w, https://substackcdn.com/image/fetch/$s_!zM1G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zM1G!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.png" width="1200" height="835.7142857142857" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1014,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:280690,&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://agiledata.info/i/211005250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zM1G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.png 424w, https://substackcdn.com/image/fetch/$s_!zM1G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.png 848w, https://substackcdn.com/image/fetch/$s_!zM1G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.png 1272w, https://substackcdn.com/image/fetch/$s_!zM1G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feae3cba4-171a-435f-a99a-67ba45bdb4f3_1484x1034.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></p><div class="callout-block" data-callout="true"><p>Turn 6 at the top &#8212; 10 versions of 5b, all built on 4e&#8217;s labelled connector lines (green solid = exact, orange dashed = fuzzy/differs):</p><ul><li><p><strong>6a</strong> connectors always visible, no drawer</p></li><li><p><strong>6b</strong> compact 5b card; connectors appear in the &#8220;why?&#8221; drawer</p></li><li><p><strong>6c</strong> badge as hub &#8212; lines route through the 71% circle</p></li><li><p><strong>6d</strong> field ladder &#8212; full-width row per field, label mid-line</p></li><li><p><strong>6e</strong> weighted lines &#8212; thickness = contribution (+45, +30, &#8722;4)</p></li><li><p><strong>6f</strong> glyph nodes (= &#8776; &#8800;) with rule labels beneath</p></li><li><p><strong>6g</strong> actionable connector &#8212; mismatch line carries its own fix</p></li><li><p><strong>6h</strong> collapsed one-line spine that expands to the full diagram</p></li><li><p><strong>6i</strong> vertical rule checklist between the halves</p></li><li><p><strong>6j</strong> lines land on tinted field strips inside each panel</p></li></ul><p>Comment on the keepers and I&#8217;ll fold the winner into the 5a&#8211;5f state flow, or say &#8220;build it&#8221;.</p></div><p></p><h2>7 - Iterate a specific item of Furniture</h2><div class="callout-block" data-callout="true"><p><span data-color="#4a41ff" style="color: rgb(74, 65, 255);">I like 6c but want the grey / white option with no gapsfrom 6b</span></p></div><div class="callout-block" data-callout="true"><p>Added 7a at the top: 6c&#8217;s hub &#8212; curved connectors meeting at the 71% badge &#8212; laid over 6b&#8217;s gapless grey/white card, with the badge sitting on the seam and a rule-line legend in the footer beside the actions.</p></div><div class="callout-block" data-callout="true"><p><span data-color="#4a41ff" style="color: rgb(74, 65, 255);">iterate 7<br><br>Make the cirlce kpi in between the rtwo titles<br><br>and oick up the matching lines from 6a</span></p></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4Jtx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4Jtx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.png 424w, https://substackcdn.com/image/fetch/$s_!4Jtx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.png 848w, https://substackcdn.com/image/fetch/$s_!4Jtx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.png 1272w, https://substackcdn.com/image/fetch/$s_!4Jtx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4Jtx!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.png" width="1200" height="412.1212121212121" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:374,&quot;width&quot;:1089,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:79727,&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://agiledata.info/i/211005250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4Jtx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.png 424w, https://substackcdn.com/image/fetch/$s_!4Jtx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.png 848w, https://substackcdn.com/image/fetch/$s_!4Jtx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.png 1272w, https://substackcdn.com/image/fetch/$s_!4Jtx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0eef03e-3151-4130-8d69-fe6f0caea61d_1089x374.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><div class="callout-block" data-callout="true"><p>Added 7b next to 7a: the 71% circle now sits between the two titles on the seam, and the field values are joined by 6a&#8217;s straight labelled lines (green solid exact, orange dashed fuzzy/differs) spanning the gap.</p></div><h2>8 - Time for the Human</h2><p>I could keep going iterating this way for ever, but I would quickly hit the diminishing returns anti-pattern.</p><p>Plus the closer I get to supposed Done Done, the less likely the people who will validate these screen designs will feel like they can can provide feedback or suggest changes.</p><p>So now its time to create a prototype app they can try and see what they like, dislike and hate.</p><div class="callout-block" data-callout="true"><p>7b it is</p></div><div class="callout-block" data-callout="true"><p>7b it is &#8212; building it as the working prototype.</p><p>Built <strong>Match Titles Prototype.dc.html</strong> &#8212; a working version of 7b:</p><ul><li><p>6-title queue (incl. a no-match item that switches to &#8220;Create master title&#8221;)</p></li><li><p>Confirm / Keep separate / Delay all live, with undo from the toast or the resolved list</p></li><li><p>Progress bar, streak chip (points-free), up-next rows, delayed tray with &#8220;Review now&#8221;, and the all-clear summary when the queue empties</p></li><li><p>Tweaks: legend and streak chip can be toggled off</p></li></ul><p>Click through a few decisions to feel the flow; the options canvas is still there for reference.</p></div><p>Claude Design creates an prototype you can click though.  Haven&#8217;t tried that in anger as a way of getting feedback, so keen to give that a try and will report back later. </p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;6b6e4dc1-ed05-45bb-9af3-842f2ef377f8&quot;,&quot;duration&quot;:null}"></div><h2>Mature Design System</h2><p>One of the gifts we have is Chris our Designer was fastidious on creating a Design System for all the UI components he designed.  </p><p>This was in Figma and we were able to import that from Figma into Claude Design, as the basis of the design system for prototyping.</p><p>I think that saved us a lot of time and effort in the initial setup.</p><p>Claude Design will still ignore some of the design system components, specifically fonts for some reason, so I always have to reinforce for Claude Code that its to use the Prototype designs as the ideas not the spec and it must reuse the AgileData App Design System when its creating new screens for our AgileData App UI.</p><h2>Define Once, Reuse Often (DORO)</h2><p>One of the things I keep in mind throughout this design process is reuse.</p><p>This series of screens will be used for more than just matching Content Titles, we will use it to help match Customers, Suppliers, Products etc for other AgileData Information Products for other customers.</p><p>But I don&#8217;t want to over engineering it right now, so I focus on the use case in front of me.</p><p>That is a bit of a balancing act.</p><h2>Next Steps</h2><p>Next I will get feedback from the key stakeholders on how they find this design based on the Claude Design interactive prototype.</p><p>And I will share it with Nigel as context for our conversations on what we are going to do for the other moving parts,</p><p>The key being this was a minimal investment in time and effort to get this far, and so the cost of change is low.</p><p>Its the value we get from this AssistedAI pattern.</p><p>And that give us agility to iterate this as much as we need to.</p>]]></content:encoded></item><item><title><![CDATA[Watch now | Recording of AURA - Tim Frazer & Shane Gibson on 5th August 2026]]></title><description><![CDATA[Raw and unedited]]></description><link>https://agiledata.info/p/watch-now-recording-of-aura-tim-frazer-0d1</link><guid isPermaLink="false">https://agiledata.info/p/watch-now-recording-of-aura-tim-frazer-0d1</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Thu, 06 Aug 2026 08:29:27 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/207128153/bbfb96acda52353b0ae46ef9fad9a7e4.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Thank you to everyone who tuned into our latest AURA Ask Us Anything live session.</p><div><hr></div><h3 style="text-align: center;"><strong>Join us for the next AURA session in the app.</strong></h3><p style="text-align: center;"></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;754e61bb-cfed-4a95-9030-0351f635d607&quot;,&quot;caption&quot;:&quot;Another AURA session is scheduled!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AURA - Chris Gambill - Friday, 14 August 2026 - 1pm EDT / 6pm UK&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:2774203,&quot;name&quot;:&quot;Shagility&quot;,&quot;bio&quot;:&quot;I help data and analytics teams change the Way they Work in a Simply Magical Way&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4d2966a-845b-403c-9032-b542684ad1af_2213x2213.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-14T11:49:41.981Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!WfGP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80e84dce-46f2-4a00-a1c6-2dd38d76eeb3_5000x2348.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://agiledata.info/p/aura-chris-gambill-friday-14-august&quot;,&quot;section_name&quot;:&quot;AURA - Ask Us Anything Live&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:207003489,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:952247,&quot;publication_name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ErtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p style="text-align: center;">Got a Question you want to ask and have answered in the next AURA session, leave a comment and we got you!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledata.info/p/watch-now-recording-of-aura-tim-frazer/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://agiledata.info/p/watch-now-recording-of-aura-tim-frazer/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[AURA - Ask Us Anything - Upcoming Schedule]]></title><description><![CDATA[Whats Coming to your screen soon]]></description><link>https://agiledata.info/p/aura-ask-us-anything-upcoming-schedule</link><guid isPermaLink="false">https://agiledata.info/p/aura-ask-us-anything-upcoming-schedule</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Tue, 04 Aug 2026 08:35:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Rd4C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.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_!Rd4C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Rd4C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 424w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 848w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Rd4C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png" width="1456" height="481" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:481,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4587721,&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://agiledata.info/i/203396053?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.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_!Rd4C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 424w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 848w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.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 class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledata.info/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://agiledata.info/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;4c1e2e1b-ca8f-4e6e-8a14-370e2e22e7e2&quot;,&quot;caption&quot;:&quot;Another AURA session is booked!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AURA - Anna Bergevin - Friday, 21 August 2026 - 8AM MDT / 3PM GMT&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:2774203,&quot;name&quot;:&quot;Shagility&quot;,&quot;bio&quot;:&quot;I help data and analytics teams change the Way they Work in a Simply Magical Way&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4d2966a-845b-403c-9032-b542684ad1af_2213x2213.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-08-04T10:16:00.592Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!njJR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://agiledata.info/p/aura-anna-bergevin-friday-21-august&quot;,&quot;section_name&quot;:&quot;AURA - Ask Us Anything Live&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:210330286,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:952247,&quot;publication_name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ErtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledata.info/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://agiledata.info/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c8e77500-7b1c-40f5-bcd9-5f20f532e5ca&quot;,&quot;caption&quot;:&quot;Another AURA session is scheduled!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AURA - Juha Korpela - Friday, 28th August 2026 - 3PM EET / 1PM UK&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:2774203,&quot;name&quot;:&quot;Shagility&quot;,&quot;bio&quot;:&quot;I help data and analytics teams change the Way they Work in a Simply Magical Way&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4d2966a-845b-403c-9032-b542684ad1af_2213x2213.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-08-14T11:22:23.184Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!cXLi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://agiledata.info/p/aura-juha-korpela-friday-28th-august&quot;,&quot;section_name&quot;:&quot;AURA - Ask Us Anything Live&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:211165294,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:952247,&quot;publication_name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ErtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledata.info/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://agiledata.info/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[Watch now | Recording of AURA - Juha Korpela & Shane Gibson on 31st July 2026]]></title><description><![CDATA[Raw and unedited]]></description><link>https://agiledata.info/p/watch-now-recording-of-aura-juha</link><guid isPermaLink="false">https://agiledata.info/p/watch-now-recording-of-aura-juha</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Fri, 31 Jul 2026 13:58:22 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/203394664/54a150c503f7d1ca1ff0a3009eb1b23a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Thank you to everyone who tuned into the fourth AURA Ask Us Anything live session.</p><div><hr></div><h3 style="text-align: center;"><strong>Join us for the next AURA session in the app</strong></h3><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;540e217f-3c98-40fb-8af9-f903ac6dffbe&quot;,&quot;caption&quot;:&quot;Another AURA session is scheduled!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AURA - Tim Frazer - Wednesday, 05 August 2026 - 12pm EDT / 5pm UK&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:2774203,&quot;name&quot;:&quot;Shagility&quot;,&quot;bio&quot;:&quot;I help data and analytics teams change the Way they Work in a Simply Magical Way&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4d2966a-845b-403c-9032-b542684ad1af_2213x2213.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-15T08:00:00.986Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!dXdu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf33cfdb-6004-4a6f-a739-7bbfac23dfbb_5000x2348.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://agiledata.info/p/aura-tim-frazer-wednesday-05-august&quot;,&quot;section_name&quot;:&quot;AURA - Ask Us Anything Live&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:207128348,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:952247,&quot;publication_name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ErtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p style="text-align: center;">Got a Question you want to ask and have answered in the next AURA session, leave a comment and we got you!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledata.info/p/watch-now-recording-of-aura-chris/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://agiledata.info/p/watch-now-recording-of-aura-chris/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[Watch now | Recording of AURA - Anna Bergevin & Shane Gibson on 13th July 2026]]></title><description><![CDATA[Raw and unedited]]></description><link>https://agiledata.info/p/watch-now-recording-of-aura-anna</link><guid isPermaLink="false">https://agiledata.info/p/watch-now-recording-of-aura-anna</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Tue, 14 Jul 2026 08:52:14 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/203394425/efb927137d5e19e801e015a8904660b2.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Thank you to everyone who tuned into the third AURA Ask Us Anything live session.</p><div><hr></div><h3 style="text-align: center;"><strong>Join us for the next AURA session in the app</strong></h3><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a0113680-4030-4576-a89b-79f2909915e0&quot;,&quot;caption&quot;:&quot;The fourth AURA session is booked!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AURA - Juha Korpela - Friday, 31st July 2026 - 3PM EET / 1PM UK&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:2774203,&quot;name&quot;:&quot;Shagility&quot;,&quot;bio&quot;:&quot;I help data and analytics teams change the Way they Work in a Simply Magical Way&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4d2966a-845b-403c-9032-b542684ad1af_2213x2213.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-13T15:44:50.870Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!6eng!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19dbb45a-e589-4587-90aa-c811202db9da_5000x2348.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://agiledata.info/p/aura-juha-korpela-friday-31-july&quot;,&quot;section_name&quot;:&quot;AURA - Ask Us Anything Live&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:206868481,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:952247,&quot;publication_name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ErtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p style="text-align: center;">Got a Question you want to ask and have answered in the next AURA session, leave a comment and we got you!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledata.info/p/watch-now-recording-of-aura-chris/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://agiledata.info/p/watch-now-recording-of-aura-chris/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[Watch now | Recording of AURA - Chris Gambill & Shane Gibson on 10th July 2026]]></title><description><![CDATA[Raw and unedited]]></description><link>https://agiledata.info/p/watch-now-recording-of-aura-chris</link><guid isPermaLink="false">https://agiledata.info/p/watch-now-recording-of-aura-chris</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Sat, 11 Jul 2026 10:31:18 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/203394113/788dcbf9af8036d71d100ac9711a39c6.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Thank you to everyone who tuned into the second AURA Ask Us Anything live session and all the great questions.</p><div><hr></div><h3 style="text-align: center;">Join us for the next AURA session in the app</h3><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;edd28975-2874-4869-8e24-4e9aa8721ba3&quot;,&quot;caption&quot;:&quot;Third AURA session is booked!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AURA - Anna Bergevin - Monday, 13 July 2026 - 8AM MDT / 3PM GMT&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:2774203,&quot;name&quot;:&quot;Shagility&quot;,&quot;bio&quot;:&quot;I help data and analytics teams change the Way they Work in a Simply Magical Way&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4d2966a-845b-403c-9032-b542684ad1af_2213x2213.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-06T08:32:29.313Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!p6fY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e345151-174c-473d-935e-676ae0e67afe_5000x2348.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://agiledata.info/p/aura-anna-bergevin-monday-13-july&quot;,&quot;section_name&quot;:&quot;AURA - Ask Us Anything Live&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:205470028,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:952247,&quot;publication_name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ErtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p style="text-align: center;">Got a Question you want to ask and have answered in the next AURA session, leave a comment and we got you!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledata.info/p/watch-now-recording-of-aura-chris/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://agiledata.info/p/watch-now-recording-of-aura-chris/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[AURA - Anna Bergevin - Friday, 21 August 2026 - 8AM MDT / 3PM GMT]]></title><description><![CDATA[Ask Us Anything]]></description><link>https://agiledata.info/p/aura-anna-bergevin-friday-21-august</link><guid isPermaLink="false">https://agiledata.info/p/aura-anna-bergevin-friday-21-august</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Thu, 09 Jul 2026 10:16:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!njJR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.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_!njJR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!njJR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png 424w, https://substackcdn.com/image/fetch/$s_!njJR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png 848w, https://substackcdn.com/image/fetch/$s_!njJR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png 1272w, https://substackcdn.com/image/fetch/$s_!njJR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!njJR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png" width="1456" height="684" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:684,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7831986,&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://agiledata.info/i/210330286?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.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_!njJR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png 424w, https://substackcdn.com/image/fetch/$s_!njJR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png 848w, https://substackcdn.com/image/fetch/$s_!njJR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.png 1272w, https://substackcdn.com/image/fetch/$s_!njJR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a970e0-ef2c-4573-8f17-dafacb0c7a5b_5000x2348.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>Another AURA session is booked!</p><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Anna Bergevin&quot;,&quot;id&quot;:61243663,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e28abf1-5727-46f2-a8e3-3bada57f99fc_518x518.jpeg&quot;,&quot;uuid&quot;:&quot;cd6e09b9-b5da-4a2a-95c6-52327e973d74&quot;}" data-component-name="MentionToDOM"></span> and I will chat on Monday, 21st August 2026, 8am MDT / 3pm GMT.</p><p>You can join the Substack Live and ask your questions live here:<br><br><a href="https://open.substack.com/live-stream/295955">https://open.substack.com/live-stream/295955</a></p><p>If you cant make it, the recording will be published on the Agile Data N&#8217; Info substack after the live session.</p><p>Feel free to ask any questions you have in the comments here and we will answer them in the live session.</p><div><hr></div><p>While you wait for the session you can read Anna&#8217;s awesome content here:</p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:1142790,&quot;embedding_publication_id&quot;:null,&quot;name&quot;:&quot;When Data Met Product&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!e0xS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44040bb-65c6-42ac-881c-c824457e7045_827x827.png&quot;,&quot;base_url&quot;:&quot;https://dataprodmgmt.substack.com&quot;,&quot;hero_text&quot;:&quot;A substack about how product management can help drive better outcomes with data - frameworks, case studies, and lessons learned from a product leader in data &amp; AI platforms.&quot;,&quot;author_name&quot;:&quot;Anna Bergevin&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:&quot;#ffffff&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://dataprodmgmt.substack.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!e0xS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd44040bb-65c6-42ac-881c-c824457e7045_827x827.png" width="56" height="56" style="background-color: rgb(255, 255, 255);"><span class="embedded-publication-name">When Data Met Product</span><div class="embedded-publication-hero-text">A substack about how product management can help drive better outcomes with data - frameworks, case studies, and lessons learned from a product leader in data &amp; AI platforms.</div><div class="embedded-publication-author-name">By Anna Bergevin</div></a><form class="embedded-publication-subscribe" method="GET" action="https://dataprodmgmt.substack.com/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div><div><hr></div><h2><strong>The AURA Session Format</strong></h2><p>AURA is aimed at working Data Practitioners who are tired of polished webinars and want the real, in-the-weeds conversation, where the live audience sets the agenda and the unedited recording gets published afterwards</p><p>Data Practitioners get to ask us questions and we will try to answer them.</p><p><span>There is no agenda, each of the AURA foursome have </span><em>&#8220;a very particular set of skills, skills they have acquired over a very long career &#8230;&#8221;, </em><span>the live audience will drive the focus of the conversations.</span></p><p>If the room goes quiet, we will just chat amongst ourselves about what we see is actually happening in the data world right now and what we each worked on and wrestled with last month.</p><h2><strong>Come join us</strong></h2><p>It will be quite the ride!</p>]]></content:encoded></item><item><title><![CDATA[AURA - Juha Korpela - Friday, 28th August 2026 - 3PM EET / 1PM UK]]></title><description><![CDATA[Ask Us Anything]]></description><link>https://agiledata.info/p/aura-juha-korpela-friday-28th-august</link><guid isPermaLink="false">https://agiledata.info/p/aura-juha-korpela-friday-28th-august</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Tue, 07 Jul 2026 11:22:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cXLi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.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_!cXLi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cXLi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.png 424w, https://substackcdn.com/image/fetch/$s_!cXLi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.png 848w, https://substackcdn.com/image/fetch/$s_!cXLi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.png 1272w, https://substackcdn.com/image/fetch/$s_!cXLi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cXLi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.png" width="1456" height="684" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:684,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7812803,&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://agiledata.info/i/211165294?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.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_!cXLi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.png 424w, https://substackcdn.com/image/fetch/$s_!cXLi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.png 848w, https://substackcdn.com/image/fetch/$s_!cXLi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.png 1272w, https://substackcdn.com/image/fetch/$s_!cXLi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F953ed486-672c-44c5-a289-bfdfaf7bcbff_5000x2348.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>Another AURA session is scheduled!</p><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Juha Korpela&quot;,&quot;id&quot;:195506571,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QAUB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19dd5ae5-a523-4e05-a139-00405295f5af_2134x1853.png&quot;,&quot;uuid&quot;:&quot;69ef5c30-1a7f-4b7e-ae06-cf156247c25d&quot;}" data-component-name="MentionToDOM"></span> and I will chat on Friday, 28th August 2026, 3pm EET / 1pm UK.</p><p>You can join the Substack Live and ask your questions live here:<br><br><a href="https://open.substack.com/live-stream/320306">https://open.substack.com/live-stream/320306</a></p><p>If you cant make it, the recording will be published on the Agile Data N&#8217; Info substack after the live session.</p><p>Feel free to ask any questions you have in the comments here and we will answer them in the live session.</p><div><hr></div><p>While you wait for the session you can read Juha&#8217;s awesome content here: </p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:4633576,&quot;embedding_publication_id&quot;:null,&quot;name&quot;:&quot;Common Sense Data&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Rfe8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a391a56-458e-41e8-afa9-94110335e32f_1280x1280.png&quot;,&quot;base_url&quot;:&quot;https://commonsensedata.substack.com&quot;,&quot;hero_text&quot;:&quot;Writings on data that (should) make sense. Tackling the difficult non-technical problems relating to data modeling, data governance, data team operating models, and many more!&quot;,&quot;author_name&quot;:&quot;Juha Korpela&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:&quot;#ffffff&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://commonsensedata.substack.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!Rfe8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a391a56-458e-41e8-afa9-94110335e32f_1280x1280.png" width="56" height="56" style="background-color: rgb(255, 255, 255);"><span class="embedded-publication-name">Common Sense Data</span><div class="embedded-publication-hero-text">Writings on data that (should) make sense. Tackling the difficult non-technical problems relating to data modeling, data governance, data team operating models, and many more!</div><div class="embedded-publication-author-name">By Juha Korpela</div></a><form class="embedded-publication-subscribe" method="GET" action="https://commonsensedata.substack.com/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div><div><hr></div><h2>The AURA Session Format</h2><p>AURA is aimed at working Data Practitioners who are tired of polished webinars and want the real, in-the-weeds conversation, where the live audience sets the agenda and the unedited recording gets published afterwards</p><p>Data Practitioners get to ask us questions and we will try to answer them.</p><p>There is no agenda, each of the AURA foursome have <em>&#8220;a very particular set of skills, skills they have acquired over a very long career &#8230;&#8221;, </em>the live audience will drive the focus of the conversations.</p><p>If the room goes quiet, we will just chat amongst ourselves about what we see is actually happening in the data world right now and what we each worked on and wrestled with last month.</p><h2>Come join us</h2><p>It will be quite the ride!</p><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[Watch now | Recording of AURA - Tim Frazer & Shane Gibson on 1st July 2026]]></title><description><![CDATA[Watch now | Recording of AURA - Tim Frazer & Shane Gibson on 1st July 2026]]></description><link>https://agiledata.info/p/watch-now-recording-of-aura-tim-frazer</link><guid isPermaLink="false">https://agiledata.info/p/watch-now-recording-of-aura-tim-frazer</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Thu, 02 Jul 2026 11:31:57 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/203392771/90e5a681a7c623a113fbb79e7a3f81bb.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Thank you to everyone who tuned into our first AURA Ask Us Anything live session. </p><div><hr></div><p></p><h3 style="text-align: center;">Join us for the next AURA session in the app.</h3><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:204086923,&quot;url&quot;:&quot;https://agiledata.info/p/aura-chris-gambill-friday-10-july&quot;,&quot;publication_id&quot;:952247,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ErtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;title&quot;:&quot;AURA - Chris Gambill - Friday, 10 July 2026 - 1pm EST / 6pm GMT&quot;,&quot;truncated_body_text&quot;:&quot;Second AURA session is booked!&quot;,&quot;date&quot;:&quot;2026-06-29T09:42:38.463Z&quot;,&quot;like_count&quot;:0,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:2774203,&quot;name&quot;:&quot;Shagility&quot;,&quot;handle&quot;:&quot;shagility&quot;,&quot;previous_name&quot;:&quot;ADI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4d2966a-845b-403c-9032-b542684ad1af_2213x2213.png&quot;,&quot;bio&quot;:&quot;I help data and analytics teams change the Way they Work in a Simply Magical Way&quot;,&quot;profile_set_up_at&quot;:&quot;2022-07-03T07:55:44.645Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-07-03T07:55:25.828Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:736779,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:798992,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:798992,&quot;name&quot;:&quot;The Agile Data Big Book of Ways of Working&quot;,&quot;subdomain&quot;:&quot;agiledatawow&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Combining the best of agile, product and data patterns together to craft a new way of working&quot;,&quot;logo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c3f22b18-e014-4ada-b07a-7f76e10704a0_1280x1280.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:2774203,&quot;theme_var_background_pop&quot;:&quot;#9D6FFF&quot;,&quot;created_at&quot;:&quot;2022-03-13T20:45:36.345Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Shagility&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:null,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}},{&quot;id&quot;:896480,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:952247,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:952247,&quot;name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;subdomain&quot;:&quot;agiledata&quot;,&quot;custom_domain&quot;:&quot;agiledata.info&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Simply Magical content about Agile Data Ways of Working&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:351594449,&quot;theme_var_background_pop&quot;:&quot;#FF6B00&quot;,&quot;created_at&quot;:&quot;2022-06-25T05:33:33.273Z&quot;,&quot;email_from_name&quot;:&quot;Data.N.Info@AgileData.Info&quot;,&quot;copyright&quot;:&quot;Agile Data Limited&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}},{&quot;id&quot;:2855394,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:2810971,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:2810971,&quot;name&quot;:&quot;Information Product Canvas&quot;,&quot;subdomain&quot;:&quot;informationproductcanvas&quot;,&quot;custom_domain&quot;:&quot;informationproductcanvas.agiledataguides.com&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Information Product Canvas\na pattern template, to quickly discover and capture, data and information requirements, \nin a repeatable way, so stakeholders love them and data teams can build from them&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68ded0e0-62cf-497b-812e-8be9bbbe0629_855x855.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:131335767,&quot;theme_var_background_pop&quot;:&quot;#9A6600&quot;,&quot;created_at&quot;:&quot;2024-07-21T19:30:03.601Z&quot;,&quot;email_from_name&quot;:&quot;Shane Gibson (Shagility) from Agile Data Guides&quot;,&quot;copyright&quot;:&quot;Agile Data Guides&quot;,&quot;founding_plan_name&quot;:&quot;Free Book&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}},{&quot;id&quot;:5552097,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:5443082,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:5443082,&quot;name&quot;:&quot;Data Persona Template&quot;,&quot;subdomain&quot;:&quot;datapersonatemplate&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Data Personas&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85a1bb1b-6a61-4c40-b7a3-521a9a924805_1280x1280.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:null,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2025-06-24T22:16:36.075Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Agile Data Guides&quot;,&quot;founding_plan_name&quot;:&quot;Free Book&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}},{&quot;id&quot;:6645834,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:6512167,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:6512167,&quot;name&quot;:&quot;Data Team Design&quot;,&quot;subdomain&quot;:&quot;datateamdesign&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Data Team Design&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d02012c5-3c47-4c62-b6eb-872bbbd17238_1280x1280.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:null,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2025-10-09T03:48:21.118Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Shagility&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;disabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}},{&quot;id&quot;:7065871,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:6923446,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:6923446,&quot;name&quot;:&quot;Modeling Business Concepts&quot;,&quot;subdomain&quot;:&quot;modelingbusinessconcepts&quot;,&quot;custom_domain&quot;:&quot;modelingbusinessconcepts.agiledataguides.com&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Modeling Business Concepts&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/91fdf95d-96db-40a1-a2ec-c9f4b1a0060f_1280x1280.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:null,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2025-11-15T12:27:38.041Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Shagility&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}}],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:1,&quot;accent_colors&quot;:null},&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:false,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://agiledata.info/p/aura-chris-gambill-friday-10-july?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!ErtR!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png"><span class="embedded-post-publication-name">Agile Data N&#8217; Info</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">AURA - Chris Gambill - Friday, 10 July 2026 - 1pm EST / 6pm GMT</div></div><div class="embedded-post-body">Second AURA session is booked&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">2 months ago &#183; Shagility</div></a></div><p style="text-align: center;">Got a Question you want to ask and have answered in the next AURA session, leave a comment and we got you!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledata.info/p/watch-now-recording-of-aura-tim-frazer/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://agiledata.info/p/watch-now-recording-of-aura-tim-frazer/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[AURA - Ask Us Anything]]></title><description><![CDATA[Coming to your screen very soon]]></description><link>https://agiledata.info/p/aura-ask-us-anything</link><guid isPermaLink="false">https://agiledata.info/p/aura-ask-us-anything</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Wed, 24 Jun 2026 13:15:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Rd4C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.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_!Rd4C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Rd4C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 424w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 848w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Rd4C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png" width="1456" height="481" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:481,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4587721,&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://agiledata.info/i/203396053?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.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_!Rd4C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 424w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 848w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!Rd4C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ad092a7-b000-4cdf-a3fd-40bb48b695e7_3584x1184.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>Its been a while since I was back riding on the AgileData N&#8217; Info podcast horse so to speak.</p><p>So decided time to mount up and this season I am trying something a little different.</p><p>I have been lucky enough to meet some awesome data experts over the years, and extra lucky to be able to chew the fat with them on a semi regular basis to discuss what we see happening in the data, product and AI domains.</p><p>Its also a great opportunity for me to ask them my latest burning questions.</p><p>So I thought what would happen if we had those chats in public and let the audience ask questions.</p><p>Me + one data expert, ~1 hour, fully live, audience drives it, published raw with no editing.</p><p>Then I thought you know what is better than 1 data expert, 4!</p><p>Four regular guests on a monthly rotation, one guest a week.</p><p>And so I asked four awesome data experts if they were up for it and they all said yes!</p><p>This is going to be an experiment.</p><ul><li><p>We will use Substack Live for it (first time I have used it)</p></li><li><p>Who knows if anybody will turn up and ask questions (but if they dont that is ok, we will just chew the fat anyway)</p></li></ul><p>First awesome data expert scheduled in for next Wednesday, 1st July.</p><p>If you want to see the schedule as we build it out, there is a new section for it here here:</p><p><a href="https://agiledata.info/s/aura-ask-us-anything-live">agiledata.info/s/aura-a&#8230;</a></p><p>Come join us, it might be quite the ride!</p>]]></content:encoded></item><item><title><![CDATA[Exposing our Design System for AgileData Information Products]]></title><description><![CDATA[How to share the Information Product components we are developing with our AgileData Network partners.]]></description><link>https://agiledata.info/p/exposing-our-design-system-for-agiledata</link><guid isPermaLink="false">https://agiledata.info/p/exposing-our-design-system-for-agiledata</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Mon, 18 May 2026 12:05:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Vt98!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As I have been working on using Claude Code and our Information Product templating system to build and deploy Information Products for our customers I have found that I actually need to build out a Design System at the same time.</p><h2>&#8220;One Shot BI Apps&#8221; aren&#8217;t good enough for us</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RfHN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RfHN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.png 424w, https://substackcdn.com/image/fetch/$s_!RfHN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.png 848w, https://substackcdn.com/image/fetch/$s_!RfHN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.png 1272w, https://substackcdn.com/image/fetch/$s_!RfHN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RfHN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.png" width="1456" height="1074" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1074,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:205348,&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://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.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_!RfHN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.png 424w, https://substackcdn.com/image/fetch/$s_!RfHN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.png 848w, https://substackcdn.com/image/fetch/$s_!RfHN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.png 1272w, https://substackcdn.com/image/fetch/$s_!RfHN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be113f7-f45f-4fd8-aa44-57d0894fca8f_1674x1235.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>As I build and deploy  Information Products in production, I have the benefit of the deployment and running of the Information Products being completely automated using the AgileData Information Platform templating system built by Nigel a wee while ago to enable this.</p><p>This means I can focus on what the Information Product front end looks like and what data and information it presents to our customers users, rather than how I deploy and manage them.</p><p>But as I build more of these Information Products in production I find the need to define and reuse &#8216;widgets&#8217; in a repeatable way is becoming compelling.</p><p>For example I typically need a Date Picker in an Information Product.</p><p>But I don&#8217;t want Claude Code to randomly generate a new one with different code, different features and different styles every time, I want a default and repeatable version that I can choose change or replace if I need to:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_5ZC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_5ZC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.png 424w, https://substackcdn.com/image/fetch/$s_!_5ZC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.png 848w, https://substackcdn.com/image/fetch/$s_!_5ZC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.png 1272w, https://substackcdn.com/image/fetch/$s_!_5ZC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_5ZC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.png" width="1456" height="471" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:471,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:140602,&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://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.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_!_5ZC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.png 424w, https://substackcdn.com/image/fetch/$s_!_5ZC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.png 848w, https://substackcdn.com/image/fetch/$s_!_5ZC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.png 1272w, https://substackcdn.com/image/fetch/$s_!_5ZC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7431486b-fc4f-4def-b003-ee2fbcd93764_1672x541.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>Same with Page Intro&#8217;s, I want a certain style:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qhwV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qhwV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.png 424w, https://substackcdn.com/image/fetch/$s_!qhwV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.png 848w, https://substackcdn.com/image/fetch/$s_!qhwV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.png 1272w, https://substackcdn.com/image/fetch/$s_!qhwV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qhwV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.png" width="1456" height="142" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:142,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36438,&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://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.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_!qhwV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.png 424w, https://substackcdn.com/image/fetch/$s_!qhwV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.png 848w, https://substackcdn.com/image/fetch/$s_!qhwV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.png 1272w, https://substackcdn.com/image/fetch/$s_!qhwV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e9eb59c-35f3-494e-b8bc-a64ae08c6ae2_1672x163.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>And with KPI Cards, I want to be able to define a standard style and have all new Information Products use that style:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RRmH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RRmH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png 424w, https://substackcdn.com/image/fetch/$s_!RRmH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png 848w, https://substackcdn.com/image/fetch/$s_!RRmH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png 1272w, https://substackcdn.com/image/fetch/$s_!RRmH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RRmH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png" width="1456" height="142" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:142,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31979,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!RRmH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png 424w, https://substackcdn.com/image/fetch/$s_!RRmH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png 848w, https://substackcdn.com/image/fetch/$s_!RRmH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png 1272w, https://substackcdn.com/image/fetch/$s_!RRmH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F194ed5eb-2c3a-4f35-8b16-ed38053ae253_1672x163.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>And in the near future when I add to the KPI Card component the ability to see period on period change, which I know I will be doing soon, I want all my Information Products I have already deployed to inherit that change, where it makes sense.</p><h2>Define Once, Reuse Often (DORO)</h2><p>This behaviour is just following our DORO (Define Once, Reuse Often) principle.</p><h3>Design System</h3><p>Luckily there is a well proven Pattern that solves this reusability problem called a Design System.</p><p>I am out of Claude Code tokens as I write this so over to my other friend Perplexity to find the quick answer for me:</p><div class="pullquote"><p>A design system is a comprehensive collection of reusable components, standards, and documentation that guides consistent UI/UX development across an entire product or organization. Think of it as a single source of truth that allows designers and developers to speak the same language and build cohesively without starting from scratch each time</p></div><p>Claude Code of course has access to a lot of content about Design Systems and so with some simple prompts it can start to build one out as I am building Information Products.</p><p>There is a whole problem space on how you build these components in a way that can be inherited, but that is a problem and Pattern conversation I will write up in another article.</p><h2>Making our Design System visible</h2><p>One of the other challenges is we are not the only people reusing the AgileData Information Product templating capability.</p><p>Our AgileData Network partners also use it to build, deploy and manage Information Products for their customers.</p><p>So how do I let them know what Design System components are available so they can choose to reuse them, customise them, or ignore them and build their own? </p><p>Luckily again there is a proven Pattern that solves this problem.</p><p>Companies like Google solved it when they published their Design Systems like Material.</p><p><a href="https://m3.material.io/">https://m3.material.io/</a></p><p>They created a website that let you explore and see the components that were available.</p><p>So that is the Pattern I reused.</p><p>First an overview of the Design System Context.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qOF0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qOF0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.png 424w, https://substackcdn.com/image/fetch/$s_!qOF0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.png 848w, https://substackcdn.com/image/fetch/$s_!qOF0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.png 1272w, https://substackcdn.com/image/fetch/$s_!qOF0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qOF0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.png" width="1445" height="1153" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1153,&quot;width&quot;:1445,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:168149,&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://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.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_!qOF0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.png 424w, https://substackcdn.com/image/fetch/$s_!qOF0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.png 848w, https://substackcdn.com/image/fetch/$s_!qOF0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.png 1272w, https://substackcdn.com/image/fetch/$s_!qOF0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e67dd30-eabc-4d0d-b02a-9d8b0df06626_1445x1153.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>Then each &#8216;thing&#8217; is visible.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vt98!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vt98!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.png 424w, https://substackcdn.com/image/fetch/$s_!Vt98!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.png 848w, https://substackcdn.com/image/fetch/$s_!Vt98!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.png 1272w, https://substackcdn.com/image/fetch/$s_!Vt98!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vt98!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.png" width="1445" height="1267" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1267,&quot;width&quot;:1445,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:302550,&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://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.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_!Vt98!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.png 424w, https://substackcdn.com/image/fetch/$s_!Vt98!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.png 848w, https://substackcdn.com/image/fetch/$s_!Vt98!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.png 1272w, https://substackcdn.com/image/fetch/$s_!Vt98!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1739fd3f-81b8-4322-af61-8ec490ae7798_1445x1267.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></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NRZM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NRZM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.png 424w, https://substackcdn.com/image/fetch/$s_!NRZM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.png 848w, https://substackcdn.com/image/fetch/$s_!NRZM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.png 1272w, https://substackcdn.com/image/fetch/$s_!NRZM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NRZM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.png" width="1445" height="1153" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1153,&quot;width&quot;:1445,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:154265,&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://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.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_!NRZM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.png 424w, https://substackcdn.com/image/fetch/$s_!NRZM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.png 848w, https://substackcdn.com/image/fetch/$s_!NRZM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.png 1272w, https://substackcdn.com/image/fetch/$s_!NRZM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c180901-095b-4dd0-b963-c4142f2fb111_1445x1153.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></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SU9Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SU9Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.png 424w, https://substackcdn.com/image/fetch/$s_!SU9Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.png 848w, https://substackcdn.com/image/fetch/$s_!SU9Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.png 1272w, https://substackcdn.com/image/fetch/$s_!SU9Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SU9Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.png" width="1445" height="1153" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1153,&quot;width&quot;:1445,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:194187,&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://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.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_!SU9Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.png 424w, https://substackcdn.com/image/fetch/$s_!SU9Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.png 848w, https://substackcdn.com/image/fetch/$s_!SU9Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.png 1272w, https://substackcdn.com/image/fetch/$s_!SU9Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85076546-43c5-433d-88d5-a8fbd4ef7a13_1445x1153.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><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q5QR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q5QR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.png 424w, https://substackcdn.com/image/fetch/$s_!Q5QR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.png 848w, https://substackcdn.com/image/fetch/$s_!Q5QR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.png 1272w, https://substackcdn.com/image/fetch/$s_!Q5QR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q5QR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.png" width="1445" height="1153" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1153,&quot;width&quot;:1445,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:192622,&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://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.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_!Q5QR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.png 424w, https://substackcdn.com/image/fetch/$s_!Q5QR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.png 848w, https://substackcdn.com/image/fetch/$s_!Q5QR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.png 1272w, https://substackcdn.com/image/fetch/$s_!Q5QR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d23791-87e7-4730-8840-ba7c7faaf537_1445x1153.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></p><p>And each Component is interactive so you can quickly see how it works:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vt_-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vt_-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.png 424w, https://substackcdn.com/image/fetch/$s_!vt_-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.png 848w, https://substackcdn.com/image/fetch/$s_!vt_-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.png 1272w, https://substackcdn.com/image/fetch/$s_!vt_-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vt_-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.png" width="1445" height="698" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:698,&quot;width&quot;:1445,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:140050,&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://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.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_!vt_-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.png 424w, https://substackcdn.com/image/fetch/$s_!vt_-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.png 848w, https://substackcdn.com/image/fetch/$s_!vt_-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.png 1272w, https://substackcdn.com/image/fetch/$s_!vt_-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f9c4ac0-3e5f-476c-a44f-7ee5edd5b7fa_1445x698.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>And then provide visibility as things constantly change:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gYA0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gYA0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.png 424w, https://substackcdn.com/image/fetch/$s_!gYA0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.png 848w, https://substackcdn.com/image/fetch/$s_!gYA0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.png 1272w, https://substackcdn.com/image/fetch/$s_!gYA0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gYA0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.png" width="1445" height="333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:333,&quot;width&quot;:1445,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:70899,&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://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.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_!gYA0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.png 424w, https://substackcdn.com/image/fetch/$s_!gYA0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.png 848w, https://substackcdn.com/image/fetch/$s_!gYA0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.png 1272w, https://substackcdn.com/image/fetch/$s_!gYA0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82c75f7-e892-40bf-9387-8ca3a84de6c1_1445x333.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SRde!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SRde!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.png 424w, https://substackcdn.com/image/fetch/$s_!SRde!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.png 848w, https://substackcdn.com/image/fetch/$s_!SRde!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.png 1272w, https://substackcdn.com/image/fetch/$s_!SRde!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SRde!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.png" width="1445" height="1264" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1264,&quot;width&quot;:1445,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:331295,&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://agiledata.info/i/198245247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.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_!SRde!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.png 424w, https://substackcdn.com/image/fetch/$s_!SRde!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.png 848w, https://substackcdn.com/image/fetch/$s_!SRde!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.png 1272w, https://substackcdn.com/image/fetch/$s_!SRde!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe842b9fb-ae41-4d30-8ada-a273a0fb2bb2_1445x1264.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></p><h2>Dynamic Context not Static Documentation</h2><p>In the past these Design System websites would be static, i.e they would be generated and then hosted so the AgileData Network partners could view them at will.</p><p>But that always took effort to keep it up to date. </p><p>Yes I could automate that refresh each time I get Claude Code to iterate the design system, but given how often I am iterating it at the moment just to get to  &#8220;BI tablestakes&#8221; (that is a whole nother article) it will burn tokens constantly updating it, and there would always be those times where Claude Code will &#8220;forgot&#8221; to update it.</p><p>So applying our &#8220;Context not Code by Default&#8221; principle, I have embedded the capability to generate the Design System into the Design Systems / Information Product templating system itself.</p><p>What this means is when an AgileData Network partner wants to see the latest version of the Design System they just ask Claude Code to generate it.  Claude will then read the Design System, generate a standalone localhost app and the partner can explore it to their hearts content.</p><p>That way it is always up to date, as it is generated when it is needed using the Context that is current.</p><p>(and it uses the AgileData Network partners Claude Code tokens, not mine &#8230;. )</p><h2>Iteration One Done</h2><p>This is just the first iteration of the Design System.</p><p>Now we need to test it for a while with our AgileData Network partners and prove it actually makes their lives easier and what we need to change.</p>]]></content:encoded></item><item><title><![CDATA[My "AI" Harness]]></title><description><![CDATA[What it is and how it helps me]]></description><link>https://agiledata.info/p/my-ai-harness</link><guid isPermaLink="false">https://agiledata.info/p/my-ai-harness</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Fri, 15 May 2026 17:43:13 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e3a8e749-2706-4a52-8e34-c3809946c87a_2048x2048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>What is an &#8220;AI Harness&#8221;</h2><p>As I have been working with Claude and Claude Code to do some &#8220;vibe coding&#8221; development over the last wee while I have also been working on a &#8220;harness&#8221; that is designed to make me more efficient.<br><br>Its following the DORO (Define Once, Reuse Often) principle I try and follow.</p><p>One of the surprising thing (to me anyway) is when I mention the concept of a &#8220;harness&#8221; to other people I sometimes get blank stares.</p><p>I actually did a LinkedIn poll and this feeling was reinforced by the reponses.</p><p><a href="https://www.linkedin.com/posts/shagility_based-on-a-few-chats-and-a-bunch-of-reading-activity-7458771767482839041-cO_e/">https://www.linkedin.com/posts/shagility_based-on-a-few-chats-and-a-bunch-of-reading-activity-7458771767482839041-cO_e/</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hm2Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hm2Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.png 424w, https://substackcdn.com/image/fetch/$s_!Hm2Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.png 848w, https://substackcdn.com/image/fetch/$s_!Hm2Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.png 1272w, https://substackcdn.com/image/fetch/$s_!Hm2Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hm2Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.png" width="531" height="319" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:319,&quot;width&quot;:531,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32839,&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://agiledata.info/i/197887422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.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_!Hm2Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.png 424w, https://substackcdn.com/image/fetch/$s_!Hm2Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.png 848w, https://substackcdn.com/image/fetch/$s_!Hm2Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.png 1272w, https://substackcdn.com/image/fetch/$s_!Hm2Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f628b14-c416-42f4-9d4c-4cd1f41b576d_531x319.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><h2>No seriously what is an &#8220;AI Harness&#8221;</h2><p>One of the problems I have is I can&#8217;t share the harness files we have developed within our AgileData platform and I don&#8217;t want to share the harness files from my PersonalOS version.<br><br>I thought about mocking some up, but then they would&#8217;t be real examples and so wouldn&#8217;t be that helpful in showing what they do, how they do it and their real value.</p><p>I actually started my harness journey based on playing with OpenClaw, listening to a few podcasts on the subject and chatting to <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Nick Zervoudis&quot;,&quot;id&quot;:6245781,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/2c89fc3f-12ff-4f16-b1a1-502c70441381_1332x1810.png&quot;,&quot;uuid&quot;:&quot;36a04012-5af0-4e62-bbca-b693cf1b8598&quot;}" data-component-name="MentionToDOM"></span> .  Nick did an in-person meetup on how he built his PersonalOS harness and how he uses it, I learnt a lot at that session.</p><p>You can watch a version of this talk online here:</p><div id="youtube2-2i_MR16ZoCM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;2i_MR16ZoCM&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/2i_MR16ZoCM?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><p>There is also a great article by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Andreas Kretz&quot;,&quot;id&quot;:181692620,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30eec9a4-a54a-4412-b304-761478dcccb6_4000x6000.jpeg&quot;,&quot;uuid&quot;:&quot;b4c58ab4-1b48-48c2-a4ab-ab50365f4b85&quot;}" data-component-name="MentionToDOM"></span> on LinkedIn that explains what an AI Harness is:</p><p><a href="https://www.linkedin.com/pulse/i-learned-ai-harnesses-you-should-too-andreas-kretz-v2okf">https://www.linkedin.com/pulse/i-learned-ai-harnesses-you-should-too-andreas-kretz-v2okf</a></p><h2>Claude Write up on how my harness works</h2><p>One way I thought might be useful to share this part of my journey is to get Claude to go through all the chats and code we have worked on together over the last we while to create my harness and explain it.</p><p>This has been based on iterating the harness for three specific use cases:</p><ol><li><p>To support my PersonalOS</p></li><li><p>To support the vibe coding of the open source Pattern Template Standalone Apps I have been creating and sharing. (<a href="https://github.com/AgileDataGuides">https://github.com/AgileDataGuides</a>)</p></li><li><p>To support the creation of an Information Product templating system in the AgileData platform and using it to build and deploy Information Products for our customers.</p></li></ol><p>The key is each time I work on one of these use cases, the learnings from doing that work is used to enhance the harness.  And hopefully makes that work quicker and easier for me next time.</p><p>So here is what Claude wrote.</p><div><hr></div><div class="callout-block" data-callout="true"><h1>The Agile Data Way-of-Working Harness</h1><p>A reusable convention package that gives every AI-assisted coding session in our repositories the same Way of Working &#8212; the disciplines, guardrails, and patterns we&#8217;ve evolved over months of working with AI coding assistants.</p><h2>The problem</h2><p>AI coding assistants are stateless. Each session starts fresh, so the team re-explains conventions, hits the same gotchas, and watches the same mistakes recur across Agents. When a learning emerges in one Agent, there&#8217;s no clean path to apply it everywhere it matters.</p><h2>The structure</h2><p>Each repository carries a small, predictable bundle the AI reads at session start. Together this bundle defines a specific <strong>Agent</strong> &#8212; the AI is no longer a generic assistant; it has an identity, hard rules, a way of working, and a memory of what it has learned.</p><p><strong>Agent identity</strong> &#8212; four short markdown files defining the Agent&#8217;s character:</p><ul><li><p><code>persona.md</code> &#8212; what this Agent is, its voice, who it serves</p></li><li><p><code>policies.md</code> &#8212; hard rules and guardrails (will not / will always / boundaries)</p></li><li><p><code>wow.md</code> &#8212; Agent-specific way of working + accumulated retro learnings</p></li><li><p><code>retro.md</code> &#8212; running weekly log of new learnings</p></li></ul><p><strong>Universal conventions</strong> in a single <code>CLAUDE.md</code> that the AI loads automatically:</p><ul><li><p>Task tracking (TODO / DOING / DONE files)</p></li><li><p>Commit discipline (logical chunks, no work pileup)</p></li><li><p>Definition of Ready / Definition of Done checklists</p></li><li><p>Press release format for user-facing changes (working-backwards style)</p></li><li><p>Estimation as t-shirt sizes (XS to XL), not minutes</p></li><li><p>Pre-push verification (explicit checklist before push to auto-deploy branches)</p></li><li><p>Design system compliance (every UI value traces to a design token)</p></li><li><p>Scoped tool / data access per Agent (prevents wrong-environment bugs)</p></li></ul><p><strong>A skills system</strong> &#8212; discrete procedures the Agent invokes by name when triggered (e.g. <em>&#8220;draft a step-page&#8221;</em>, <em>&#8220;verify after change&#8221;</em>). Skills load on demand, so they don&#8217;t bloat every session&#8217;s context.</p><h2>The inheritance hierarchy</h2><pre><code><code>Universal harness     &#8212; applies to every Agent
   Family templates   &#8212; shared patterns for one Agent family
      Real Agents     &#8212; specific deployments
</code></code></pre><p>A new Agent cloned from a family template inherits all three layers and starts with a clean identity it customises. Every layer follows the same convention set.</p><h2>What it gives you</h2><ul><li><p>New AI sessions reach productive work in minutes, without re-explaining basics</p></li><li><p>Conventions stay consistent across Agents without anyone policing them</p></li><li><p>Bugs caught once stay caught &#8212; they land as policies or guardrails</p></li><li><p>AI estimates and pre-push verifications are predictable and comparable</p></li><li><p>Cross-Agent learnings compound rather than re-occurring</p></li></ul><h2>What it doesn&#8217;t do</h2><ul><li><p>Replace human judgement on architecture or product direction</p></li><li><p>Generate code without context &#8212; good prompts still matter</p></li><li><p>Work across tools that don&#8217;t honour structured conventions</p></li></ul><p>The harness is small, opinionated, and modular. Drop in what fits, leave what doesn&#8217;t.</p><div><hr></div><h2>The retro process &#8212; how learnings compound</h2><p>The retro flow is the engine that keeps the harness alive. Without it, the conventions calcify and the harness becomes a relic. With it, every Agent that&#8217;s harnessed benefits from every learning every other Agent surfaces.</p><h3>Three tiers, one direction</h3><pre><code><code>Weekly retro.md (per Agent)
   &#8595; proven across sessions
"Retro learnings" in wow.md (per Agent)
   &#8595; would benefit other Agents
Harness inbox (cross-Agent review)
   &#8595; accepted by curator
Universal conventions / shared skills (every Agent)
   &#8595; sync
Sister Agents pick it up
</code></code></pre><h3>Tier 1 &#8212; Weekly retro per Agent</h3><p>Mid-session, when a learning emerges, it gets added to <code>retro.md</code> under the current week&#8217;s heading. Examples of what lands here:</p><ul><li><p><em>&#8220;Tooltips inside scrollable tables need to portal to </em><code>&lt;body&gt;</code><em> or they get clipped by overflow.&#8221;</em></p></li><li><p><em>&#8220;Don&#8217;t fabricate descriptions when the catalog is silent &#8212; use an explicit </em><code>(no description in catalog)</code><em> fallback.&#8221;</em></p></li><li><p><em>&#8220;Status of an Information Product is about trust level, not dev stage. Code-complete + data-unvalidated is </em><code>experimental</code><em>, not </em><code>live</code><em>.&#8221;</em></p></li></ul><p>The retro log is cheap, time-boxed, and read by humans during the weekly review.</p><h3>Tier 2 &#8212; Promote into wow.md when proven</h3><p>If a retro entry has stuck across multiple sessions and continues to serve the Agent well, it&#8217;s promoted into <code>wow.md</code> under &#8220;Retro learnings&#8221; &#8212; becoming a permanent Agent rule. The model reads <code>wow.md</code> at session start, so promoted entries shape future behaviour automatically.</p><h3>Tier 3 &#8212; Promote to the harness for universal value</h3><p>A learning that would help every Agent, not just this one, gets sent to the harness inbox via the <code>retro-promote</code> skill. The promotion is a single markdown file with a frontmatter block declaring its proposed destination:</p><pre><code><code>proposed_destination: agiledata     # universal Agile Data rule
# or: custom-app-template           # all Agile Data custom-app Agents
# or: demo-template                 # one Agent family
# or: shagility                     # personal preferences only
</code></code></pre><p>The curator reviews the inbox in a separate session, applies the universality test (&#8221;would another Agent benefit from this?&#8221;), and either accepts into the appropriate layer of the harness, rejects, or defers.</p><h3>The reverse path &#8212; sync down</h3><p>When the curator accepts a learning into the universal harness, it doesn&#8217;t magically appear in every Agent. Each Agent pulls it on the next <code>harness-sync</code> call. This explicit pull preserves Agent autonomy &#8212; a fork can choose not to sync a change it doesn&#8217;t want.</p><h3>Why this matters</h3><p>Without the retro loop, the harness becomes static reference material that quickly drifts out of date. With it, the harness is a living convention base that gets sharper every week. The cost of a hard-won learning is paid once; the value compounds across every Agent that follows.</p><div><hr></div><h2>How this differs from &#8220;just a collection of skills&#8221;</h2><p>It&#8217;s tempting to imagine the harness is just a pile of skill files. It isn&#8217;t. Confusing the two leads to a system that feels organised but doesn&#8217;t actually change behaviour where it matters.</p><h3>Skills are tactical. The harness is strategic.</h3><p>A <strong>skill</strong> is a discrete procedure for a specific task: <em>&#8220;draft a LinkedIn post from a published article&#8221;</em>, <em>&#8220;verify the changed code by running the test suite&#8221;</em>. Loaded on demand, by keyword match, when the user asks for the thing.</p><p>The <strong>harness</strong> is the identity, conventions, and rules of engagement that apply BEFORE any specific task starts. <em>&#8220;This is what this Agent is.&#8221;</em> <em>&#8220;Here&#8217;s what we never do.&#8221;</em> <em>&#8220;Here&#8217;s how we track work.&#8221;</em> <em>&#8220;Here&#8217;s the press release format every user-facing change must follow.&#8221;</em></p><p>A skill answers <em>how</em> to do a particular task. The harness answers <em>who is this Agent</em>, <em>what are the non-negotiables</em>, <em>how do we operate</em>.</p><h3>Skills load on demand. Harness conventions are always-on.</h3><p>The model only loads a skill&#8217;s full body when the user&#8217;s task triggers its description (&#8221;write a press release&#8221; &#8594; load the press-release skill). Without that trigger, the skill sits silent.</p><p>Agent identity (persona, policies, wow) is loaded into the system prompt every session start. Every conversation, every response, the model is already operating inside that frame. That&#8217;s why a stray &#8220;wrong tenancy&#8221; mistake gets caught &#8212; the policy is always in scope, not waiting for a keyword.</p><h3>Skills don&#8217;t enforce discipline. Conventions do.</h3><p>You can write a skill called <em>&#8220;do the Definition of Done&#8221;</em>, but it only fires if someone asks for it. The DoD checklist as a convention in <code>CLAUDE.md</code> shapes every response by default.</p><p>The pre-push verification rule that catches wrong-tenancy data, the press release format that protects brand voice, the t-shirt sizing rule that stops minute-level commitments &#8212; none of these would be reliable if they were skills the user has to invoke. They have to be the air the Agent breathes.</p><h3>Skills don&#8217;t propagate. The harness has a sync path.</h3><p>If you write a great skill in Agent A, it stays in Agent A. Agent B&#8217;s session has no idea it exists. The retro flow + harness sync is what makes a learning in one Agent show up everywhere it matters.</p><p>A pile of skills with no propagation path gets reinvented in every repo. The harness pays the cost of a learning once.</p><h3>Skills don&#8217;t carry Agent context. Identity files do.</h3><p>A skill called <em>&#8220;build a marketplace page&#8221;</em> is the same procedure no matter which Agent it&#8217;s in. But what a marketplace page <em>means</em> for an Information Product Agent with five live products is different to what it means for a single-product demo Agent. The persona, policies, and wow files give the AI that Agent-specific context BEFORE it reaches for any procedure.</p><h3>The relationship</h3><p>Skills and the harness aren&#8217;t competitors &#8212; they&#8217;re complementary layers:</p><p>Layer Loaded when Best for <strong>Agent identity</strong> (persona/policies/wow) Every session start, always-on Who this Agent is, hard rules, way of working <strong>Universal conventions</strong> (CLAUDE.md) Every session start, always-on Rules that apply to every Agent regardless of context <strong>Skills</strong> On-demand, by keyword trigger Procedures for specific recurring tasks <strong>Retro flow</strong> Weekly + as learnings emerge Keeping conventions alive and propagating wins</p><p>Take any one of these layers out and the structure leaks. Stack them and the AI session arrives with Agent context already loaded, universal rules already in scope, the right procedure ready to fire when triggered, and a clean path for what it learns to compound into the next session.</p><p>That&#8217;s the harness.</p></div><div><hr></div><blockquote><p>Markup version of the text at the bottom of the article if you want to copy and paste it into your own LLM.</p></blockquote><p></p><h2>Some More Context</h2><p>I asked Claude to explain:</p><ol><li><p>What the harness is</p></li><li><p>How it is inherited across &#8220;agents&#8221;</p></li><li><p>How it differs from a bunch of skills.</p></li></ol><p>When it talks about &#8220;Agents&#8221; there is nothing fancy happening, its is just a different directory on my MacBook, that has separate code in it that I am working on for a specific Use Case.</p><p>Nothing I am doing is unique or magic, a lot of people are building these harnesses as they use these tools.</p><h2>Why not just use somebody elses &#8220;harness&#8221;</h2><p>There are a bunch of harnesses out there you can download and use.</p><p>I tried a few and found they didn&#8217;t help me as much as I had hoped.</p><p>It might have been the type of work I am trying to use them for.</p><p>It might have been my lack of coding skills.</p><p>Try one and see if they help you.</p><p>Part of this whole journey is learning as I am doing so I also naturally leaned towards craft my own. </p><h2>My Agile Data Way of Working Language</h2><p>You can see the Agile Data language I use coming through strongly in this harness:</p><ul><li><p>Persona</p></li><li><p>Policies</p></li><li><p>WoW</p></li><li><p>Retro</p></li><li><p>Defintion of Ready</p></li><li><p>Definition of Done</p></li><li><p>TODO  / DOING / DONE</p></li><li><p>Press Release</p></li></ul><p>I have naturally being applying the Patterns and Pattern Templates I coach a human Data and Analytics team to use to my machine buddy.</p><p>Others use different terms for the same things (Identity, Soul etc).  They may also include the things I hold in multiple files in a single file for their harness.</p><p>And I do worry that applying Human centric patterns to the Machine may not be the optimal approach.</p><h2>A journey not a proven Pattern or Pattern Template</h2><p>All the above is just a brain dump on part of my journey so far.</p><p>It is not a well formed Pattern or a tested Pattern Template.</p><p>But hopefully Sharing it in its half arsed state is still Caring.</p><h1>Markdown Version of the Claude Content</h1><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;46b1f4a6-3cb3-4df7-b417-f694ade0becd&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown"># The Agile Data Way-of-Working Harness

A reusable convention package that gives every AI-assisted coding session in our repositories the same Way of Working &#8212; the disciplines, guardrails, and patterns we've evolved over months of working with AI coding assistants.

## The problem

AI coding assistants are stateless. Each session starts fresh, so the team re-explains conventions, hits the same gotchas, and watches the same mistakes recur across Agents. When a learning emerges in one Agent, there's no clean path to apply it everywhere it matters.

## The structure

Each repository carries a small, predictable bundle the AI reads at session start. Together this bundle defines a specific **Agent** &#8212; the AI is no longer a generic assistant; it has an identity, hard rules, a way of working, and a memory of what it has learned.

**Agent identity** &#8212; four short markdown files defining the Agent's character:

- `persona.md` &#8212; what this Agent is, its voice, who it serves
- `policies.md` &#8212; hard rules and guardrails (will not / will always / boundaries)
- `wow.md` &#8212; Agent-specific way of working + accumulated retro learnings
- `retro.md` &#8212; running weekly log of new learnings

**Universal conventions** in a single `CLAUDE.md` that the AI loads automatically:

- Task tracking (TODO / DOING / DONE files)
- Commit discipline (logical chunks, no work pileup)
- Definition of Ready / Definition of Done checklists
- Press release format for user-facing changes (working-backwards style)
- Estimation as t-shirt sizes (XS to XL), not minutes
- Pre-push verification (explicit checklist before push to auto-deploy branches)
- Design system compliance (every UI value traces to a design token)
- Scoped tool / data access per Agent (prevents wrong-environment bugs)

**A skills system** &#8212; discrete procedures the Agent invokes by name when triggered (e.g. *"draft a step-page"*, *"verify after change"*). Skills load on demand, so they don't bloat every session's context.

## The inheritance hierarchy

```
Universal harness     &#8212; applies to every Agent
   Family templates   &#8212; shared patterns for one Agent family
      Real Agents     &#8212; specific deployments
```

A new Agent cloned from a family template inherits all three layers and starts with a clean identity it customises. Every layer follows the same convention set.

## What it gives you

- New AI sessions reach productive work in minutes, without re-explaining basics
- Conventions stay consistent across Agents without anyone policing them
- Bugs caught once stay caught &#8212; they land as policies or guardrails
- AI estimates and pre-push verifications are predictable and comparable
- Cross-Agent learnings compound rather than re-occurring

## What it doesn't do

- Replace human judgement on architecture or product direction
- Generate code without context &#8212; good prompts still matter
- Work across tools that don't honour structured conventions

The harness is small, opinionated, and modular. Drop in what fits, leave what doesn't.

---

## The retro process &#8212; how learnings compound

The retro flow is the engine that keeps the harness alive. Without it, the conventions calcify and the harness becomes a relic. With it, every Agent that's harnessed benefits from every learning every other Agent surfaces.

### Three tiers, one direction

```
Weekly retro.md (per Agent)
   &#8595; proven across sessions
"Retro learnings" in wow.md (per Agent)
   &#8595; would benefit other Agents
Harness inbox (cross-Agent review)
   &#8595; accepted by curator
Universal conventions / shared skills (every Agent)
   &#8595; sync
Sister Agents pick it up
```

### Tier 1 &#8212; Weekly retro per Agent

Mid-session, when a learning emerges, it gets added to `retro.md` under the current week's heading. Examples of what lands here:

- *"Tooltips inside scrollable tables need to portal to `&lt;body&gt;` or they get clipped by overflow."*
- *"Don't fabricate descriptions when the catalog is silent &#8212; use an explicit `(no description in catalog)` fallback."*
- *"Status of an Information Product is about trust level, not dev stage. Code-complete + data-unvalidated is `experimental`, not `live`."*

The retro log is cheap, time-boxed, and read by humans during the weekly review.

### Tier 2 &#8212; Promote into wow.md when proven

If a retro entry has stuck across multiple sessions and continues to serve the Agent well, it's promoted into `wow.md` under "Retro learnings" &#8212; becoming a permanent Agent rule. The model reads `wow.md` at session start, so promoted entries shape future behaviour automatically.

### Tier 3 &#8212; Promote to the harness for universal value

A learning that would help every Agent, not just this one, gets sent to the harness inbox via the `retro-promote` skill. The promotion is a single markdown file with a frontmatter block declaring its proposed destination:

```yaml
proposed_destination: agiledata     # universal Agile Data rule
# or: custom-app-template           # all Agile Data custom-app Agents
# or: demo-template              # one Agent family
# or: shagility                     # personal preferences only
```

The curator reviews the inbox in a separate session, applies the universality test ("would another Agent benefit from this?"), and either accepts into the appropriate layer of the harness, rejects, or defers.

### The reverse path &#8212; sync down

When the curator accepts a learning into the universal harness, it doesn't magically appear in every Agent. Each Agent pulls it on the next `harness-sync` call. This explicit pull preserves Agent autonomy &#8212; a fork can choose not to sync a change it doesn't want.

### Why this matters

Without the retro loop, the harness becomes static reference material that quickly drifts out of date. With it, the harness is a living convention base that gets sharper every week. The cost of a hard-won learning is paid once; the value compounds across every Agent that follows.

---

## How this differs from "just a collection of skills"

It's tempting to imagine the harness is just a pile of skill files. It isn't. Confusing the two leads to a system that feels organised but doesn't actually change behaviour where it matters.

### Skills are tactical. The harness is strategic.

A **skill** is a discrete procedure for a specific task: *"draft a LinkedIn post from a published article"*, *"verify the changed code by running the test suite"*. Loaded on demand, by keyword match, when the user asks for the thing.

The **harness** is the identity, conventions, and rules of engagement that apply BEFORE any specific task starts. *"This is what this Agent is."* *"Here's what we never do."* *"Here's how we track work."* *"Here's the press release format every user-facing change must follow."*

A skill answers *how* to do a particular task. The harness answers *who is this Agent*, *what are the non-negotiables*, *how do we operate*.

### Skills load on demand. Harness conventions are always-on.

The model only loads a skill's full body when the user's task triggers its description ("write a press release" &#8594; load the press-release skill). Without that trigger, the skill sits silent.

Agent identity (persona, policies, wow) is loaded into the system prompt every session start. Every conversation, every response, the model is already operating inside that frame. That's why a stray "wrong tenancy" mistake gets caught &#8212; the policy is always in scope, not waiting for a keyword.

### Skills don't enforce discipline. Conventions do.

You can write a skill called *"do the Definition of Done"*, but it only fires if someone asks for it. The DoD checklist as a convention in `CLAUDE.md` shapes every response by default.

The pre-push verification rule that catches wrong-tenancy data, the press release format that protects brand voice, the t-shirt sizing rule that stops minute-level commitments &#8212; none of these would be reliable if they were skills the user has to invoke. They have to be the air the Agent breathes.

### Skills don't propagate. The harness has a sync path.

If you write a great skill in Agent A, it stays in Agent A. Agent B's session has no idea it exists. The retro flow + harness sync is what makes a learning in one Agent show up everywhere it matters.

A pile of skills with no propagation path gets reinvented in every repo. The harness pays the cost of a learning once.

### Skills don't carry Agent context. Identity files do.

A skill called *"build a marketplace page"* is the same procedure no matter which Agent it's in. But what a marketplace page *means* for an Information Product Agent with five live products is different to what it means for a single-product demo Agent. The persona, policies, and wow files give the AI that Agent-specific context BEFORE it reaches for any procedure.

### The relationship

Skills and the harness aren't competitors &#8212; they're complementary layers:

| Layer | Loaded when | Best for |
|---|---|---|
| **Agent identity** (persona/policies/wow) | Every session start, always-on | Who this Agent is, hard rules, way of working |
| **Universal conventions** (CLAUDE.md) | Every session start, always-on | Rules that apply to every Agent regardless of context |
| **Skills** | On-demand, by keyword trigger | Procedures for specific recurring tasks |
| **Retro flow** | Weekly + as learnings emerge | Keeping conventions alive and propagating wins |

Take any one of these layers out and the structure leaks. Stack them and the AI session arrives with Agent context already loaded, universal rules already in scope, the right procedure ready to fire when triggered, and a clean path for what it learns to compound into the next session.

That's the harness.
</code></pre></div><p></p>]]></content:encoded></item><item><title><![CDATA[The patterns of Focal Data Modeling and Identity Resolution with Patrik Lager]]></title><description><![CDATA[AgileData Podcast #82]]></description><link>https://agiledata.info/p/the-patterns-of-focal-data-modeling</link><guid isPermaLink="false">https://agiledata.info/p/the-patterns-of-focal-data-modeling</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Fri, 08 May 2026 13:26:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/UscwtFzmqso" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this episode of the Agile Data N&#8217; Info Podcast, where host Shane Gibson sits down with Patrik Lager, a data integration expert with 25 years of experience and a lead developer of the Focal framework.</p><p>In this episode, the conversation explores the intricate world of <strong>Focal data modeling</strong> and <strong>identity resolution</strong>. Patrik explains how the Focal framework operates as a highly abstract, metadata-driven engine that creates an extremely agile, non-destructive architecture. By focusing on understanding the business and using documentation to generate code, Focal ensures that your architecture and documentation are always perfectly in sync.</p><p>The discussion also dives deep into the complexities of <strong>identity resolution</strong>, clarifying the crucial differences between stable &#8220;identities&#8221; (surrogate keys) and system-specific &#8220;identifiers&#8221;. Patrik breaks down how the Focal framework prevents key collisions and achieves seamless key integration across multiple source systems using a specialized identifier table.</p><p>Whether you are curious about ensemble modeling techniques, how AI and metadata-driven automation are changing data engineering, or want to learn about the new Daana command-line interface (CLI) that makes implementing Focal easier than ever, this episode is packed with valuable insights for data professionals.</p><blockquote><p><strong><a href="https://agiledata.substack.com/i/196898093/listen">Listen</a></strong></p><p><strong><a href="https://agiledata.substack.com/i/196898093/google-notebooklm-mindmap">View MindMap</a></strong></p><p><strong><a href="https://agiledata.substack.com/i/196898093/google-notebooklm-briefing">Read AI Summary</a></strong></p><p><strong><a href="https://agiledata.substack.com/i/196898093/transcript">Read Transcript</a></strong></p></blockquote><p></p><h2>Listen</h2><p>Listen on all good podcast hosts or over at:</p><p><a href="https://podcast.agiledata.io/e/the-patterns-of-focal-data-modeling-and-identity-resolution-with-patrik-lager/">https://podcast.agiledata.io/e/the-patterns-of-focal-data-modeling-and-identity-resolution-with-patrik-lager/</a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://podcast.agiledata.io/e/the-patterns-of-focal-data-modeling-and-identity-resolution-with-patrik-lager/&quot;,&quot;text&quot;:&quot;Listen to the Podcast Episode on Podbean&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://podcast.agiledata.io/e/the-patterns-of-focal-data-modeling-and-identity-resolution-with-patrik-lager/"><span>Listen to the Podcast Episode on Podbean</span></a></p><p></p><p></p><blockquote><p><strong>Subscribe:</strong> <a href="https://podcasts.apple.com/nz/podcast/agiledata/id1456820781">Apple Podcast</a> | <a href="https://open.spotify.com/show/4wiQWj055HchKMxmYSKRIj">Spotify</a> | <a href="https://www.google.com/podcasts?feed=aHR0cHM6Ly9wb2RjYXN0LmFnaWxlZGF0YS5pby9mZWVkLnhtbA%3D%3D">Google Podcast </a>| <a href="https://music.amazon.com/podcasts/add0fc3f-ee5c-4227-bd28-35144d1bd9a6">Amazon Audible</a> | <a href="https://tunein.com/podcasts/Technology-Podcasts/AgileBI-p1214546/">TuneIn</a> | <a href="https://iheart.com/podcast/96630976">iHeartRadio</a> | <a href="https://player.fm/series/3347067">PlayerFM</a> | <a href="https://www.listennotes.com/podcasts/agiledata-agiledata-8ADKjli_fGx/">Listen Notes</a> | <a href="https://www.podchaser.com/podcasts/agiledata-822089">Podchaser</a> | <a href="https://www.deezer.com/en/show/5294327">Deezer</a> | <a href="https://podcastaddict.com/podcast/agiledata/4554760">Podcast Addict</a> |</p></blockquote><div id="youtube2-UscwtFzmqso" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;UscwtFzmqso&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/UscwtFzmqso?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><p>You can get in touch with Patrik via <a href="https://www.linkedin.com/in/patriklager/">LinkedIn</a> or over at <a href="https://daana.dev">https://daana.dev</a></p><div class="pullquote"><p><strong>Tired of vague data requests and endless requirement meetings? The Information Product Canvas helps you get clarity in 30 minutes or less?</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledataguides.com/ipc&quot;,&quot;text&quot;:&quot;Fix Your Data Requirements&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://agiledataguides.com/ipc"><span>Fix Your Data Requirements</span></a></p></div><h2>Google NotebookLM Mindmap </h2><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mwtJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mwtJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.png 424w, https://substackcdn.com/image/fetch/$s_!mwtJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.png 848w, https://substackcdn.com/image/fetch/$s_!mwtJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.png 1272w, https://substackcdn.com/image/fetch/$s_!mwtJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mwtJ!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.png" width="1200" height="1804.9450549450548" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:2190,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:1395065,&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://agiledata.info/i/196898093?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mwtJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.png 424w, https://substackcdn.com/image/fetch/$s_!mwtJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.png 848w, https://substackcdn.com/image/fetch/$s_!mwtJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.png 1272w, https://substackcdn.com/image/fetch/$s_!mwtJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65058361-0fb4-4ddf-9975-b9a24297d0c2_4345x6536.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></p><p></p><h2>Google NoteBookLM Briefing</h2><h2><strong>Executive Summary</strong></h2><p>The Focal framework is a mature, metadata-driven approach to data warehousing and integration that prioritizes non-destructive architecture and business understanding over manual coding. Developed and refined since 1998, Focal employs a specific form of ensemble modeling that decomposes data into three core components: keys, descriptions, and relationships.</p><p>The framework&#8217;s primary strength lies in its &#8220;documentation-first&#8221; methodology, where a massive metadata layer (consisting of approximately 80 tables) generates the physical implementation. This ensures that documentation and code remain perfectly synchronized while making the physical layer &#8220;cattle&#8221;&#8212;disposable and easily regenerated. In the context of identity resolution, Focal provides a robust technical pattern using an &#8220;Identifier Table&#8221; to map multiple, changing business identifiers to a single, immutable identity. As the industry shifts toward AI and Large Language Models (LLMs), the framework&#8217;s highly patterned, metadata-rich structure positions it as an efficient alternative to traditional, manual coding practices.</p><p>--------------------------------------------------------------------------------</p><p><strong>1. The Focal Framework: Philosophy and Automation</strong></p><p>The Focal framework is distinguished from other methodologies by its tight coupling of data modeling patterns and a technical automation engine. It is designed to create a &#8220;non-destructive architecture&#8221; that allows for rapid changes without affecting existing structures.</p><p><strong>The Documentation-First Approach</strong></p><p>A central tenet of the Focal framework is that the value of data warehousing lies in the understanding of the business, not the code itself.</p><ul><li><p><strong>Metadata over Code:</strong> The framework captures metadata models, mappings, and rules into a repository. This metadata then generates the necessary code and holds comprehensive lineage (business, technical, and operational).</p></li><li><p><strong>Disposable Code:</strong> In this paradigm, metadata is treated as a &#8220;pet&#8221; (highly valued and preserved), while code is treated as &#8220;cattle&#8221; (disposable and easily replaced).</p></li><li><p><strong>Synchronization:</strong> Because the documentation (metadata) creates the code, the two are never out of sync, solving a common problem in long-term data warehouse maintenance.</p></li></ul><p><strong>Structural Complexity and Learning Curve</strong></p><p>Despite its efficiency, Focal has historically faced a low adoption rate outside of specific European regions due to its abstract nature. It is often described as an &#8220;engineering dream&#8221; that requires a significant shift in mindset from traditional relational modeling.</p><p>--------------------------------------------------------------------------------</p><p><strong>2. Focal Modeling Mechanics</strong></p><p>Focal is a form of ensemble modeling, similar to Data Vault and Anchor Modeling, but with distinct differences in how it handles attributes and normalization.</p><p><strong>The Three Pillars of Focal</strong></p><p>The model is built on three specific structures to ensure agility and minimize the impact of change:</p><ol><li><p><strong>Key Structure:</strong> Manages and controls the unique identifier.</p></li><li><p><strong>Description Table:</strong> Holds the descriptions of data using &#8220;typed tables.&#8221;</p></li><li><p><strong>Relationship Structure:</strong> Manages associations between keys without the use of traditional foreign keys.</p></li></ol><p><strong>Atomic Context and Named-Value Pairs</strong></p><p>Focal utilizes an abstract method for storing attributes:</p><ul><li><p><strong>Typed Tables:</strong> Rather than standard business columns, tables use generic columns (e.g., <code>start_timestamp</code>, <code>end_timestamp</code>, <code>value_string</code>, <code>unit_of_measure</code>).</p></li><li><p><strong>Atomic Context:</strong> Data is grouped to answer one &#8220;atomic question&#8221; per row. For example, a monetary value and its currency are stored on the same row because one cannot be understood without the other.</p></li><li><p><strong>Human-Centric Querying:</strong> The model strives to ensure that all data necessary to answer a basic human question is available on a single physical row, effectively reaching a state similar to fifth normal form.</p></li></ul><p><strong>Comparison of Ensemble Modeling Techniques</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rc4G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rc4G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.png 424w, https://substackcdn.com/image/fetch/$s_!rc4G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.png 848w, https://substackcdn.com/image/fetch/$s_!rc4G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.png 1272w, https://substackcdn.com/image/fetch/$s_!rc4G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rc4G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.png" width="618" height="268" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:268,&quot;width&quot;:618,&quot;resizeWidth&quot;:618,&quot;bytes&quot;:39105,&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://agiledata.info/i/196898093?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rc4G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.png 424w, https://substackcdn.com/image/fetch/$s_!rc4G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.png 848w, https://substackcdn.com/image/fetch/$s_!rc4G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.png 1272w, https://substackcdn.com/image/fetch/$s_!rc4G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb827a5a-9bcc-4633-9901-b19860fe1dfa_618x268.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></p><p>--------------------------------------------------------------------------------</p><p><strong>3. Identity Resolution and Key Integration</strong></p><p>Identity resolution in Focal addresses the challenge of recognizing the same entity across disparate systems where identifiers may overlap or change.</p><p><strong>Identity vs. Identifier</strong></p><p>The framework makes a critical distinction between two concepts:</p><ul><li><p><strong>Identity:</strong> A stable, immutable surrogate key that represents a unique instance of data throughout its entire lifecycle in the analytical system.</p></li><li><p><strong>Identifier:</strong> A business-derived value (e.g., account number, email) used to find an identity. Identifiers are unique within their own data space but may change over time.</p></li></ul><p><strong>The Identifier Table Pattern</strong></p><p>Focal uses a technical &#8220;Identifier Table&#8221; to manage the relationship between multiple identifiers and a single identity.</p><ul><li><p><strong>Key Collision Avoidance:</strong> By using source-system prefixes or concatenated strings, the framework prevents different entities with the same business ID from merging.</p></li><li><p><strong>Multi-Identifier Mapping:</strong> The table allows multiple identifiers (e.g., a Social Security Number and a Customer ID) to point to the same surrogate key.</p></li><li><p><strong>Key Propagation:</strong> When a new system introduces a new identifier (e.g., a local ID) alongside a known one (e.g., SSN), the framework automatically propagates the existing identity key to the new identifier.</p></li></ul><p>--------------------------------------------------------------------------------</p><p><strong>4. Performance and Cloud Optimization</strong></p><p>As data architecture has moved to cloud platforms like Snowflake and BigQuery, the Focal framework has evolved to manage costs associated with columnar storage and large-scale lookups.</p><p><strong>Single vs. Multi-Identifier Modes</strong></p><ul><li><p><strong>Cost Efficiency:</strong> Performing lookups for surrogate keys on billions of rows is expensive in the cloud. Focal now allows entities to start in &#8220;single identifier&#8221; mode (using natural or hash keys).</p></li><li><p><strong>Automated Migration:</strong> If an entity eventually requires multiple identifiers, the framework uses metadata-driven scripts to automatically migrate the data from a single key to a surrogate key structure across all related tables and relationships.</p></li></ul><p><strong>Storage and Indexing</strong></p><ul><li><p><strong>Relational Databases:</strong> Focal tables are &#8220;deep&#8221; rather than &#8220;wide,&#8221; making them highly efficient for indexing due to their consistent, repeatable patterns.</p></li><li><p><strong>Columnar Databases:</strong> The framework&#8217;s reliance on unique values and patterns works well with the compression algorithms of modern cloud data warehouses.</p></li></ul><p>--------------------------------------------------------------------------------</p><p><strong>5. The Impact of Artificial Intelligence</strong></p><p>The emergence of AI and LLMs is viewed as a turning point for metadata-driven frameworks like Focal.</p><ul><li><p><strong>Devaluation of Manual Coding:</strong> As AI becomes capable of generating code, the value of manual programming skills decreases. The primary value shifts to the ability to design and understand complex systems and architectures.</p></li><li><p><strong>Machine-Readable Architecture:</strong> Because Focal is entirely pattern-based and metadata-driven with no exceptions, it is exceptionally easy for AI to interpret. An AI can read the metadata layer to understand the data layer and answer business questions without the &#8220;cheating&#8221; or &#8220;bespoke&#8221; code often found in manual implementations.</p></li></ul><p>--------------------------------------------------------------------------------</p><p><strong>6. Significant Insights and Quotes</strong></p><p>&#8220;The value of data warehousing... was the understanding of data. The value was not in the code. The code had a secondary value in the architecture.&#8221;</p><p>&#8220;Your coding skills are not that valuable anymore. Your ability to design and understand systems, how a good design and a good architecture is, becomes much more important than being very skilled at programming.&#8221;</p><p>&#8220;The metadata is our pet; the code is cattle... we end up protecting or caring about that metadata... because the code becomes disposable.&#8221;</p><p>&#8220;Focal... can create an extremely non-destructive architecture that is very easy to change and add data... without affecting anything else in your architecture.&#8221;</p><p></p><div class="pullquote"><p><strong>Tired of vague data requests and endless requirement meetings? The Information Product Canvas helps you get clarity in 30 minutes or less?</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledataguides.com/ipc&quot;,&quot;text&quot;:&quot;Fix Your Data Requirements&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://agiledataguides.com/ipc"><span>Fix Your Data Requirements</span></a></p></div><p></p><h2>Transcript</h2><p>[00:00:00] <strong>Shane:</strong> Welcome to the Agile Data Podcast. I&#8217;m Shane Gibson. <br></p><p>[00:00:04] <strong>Patrik:</strong> This is Patrik Lager. <br></p><p>[00:00:06] <strong>Shane:</strong> Hey, Patrick. Thank you for coming on the show. Looking forward to this one today. Today we&#8217;re gonna be talking about focal data modeling and identity resolution. But before we rip into that, why don&#8217;t you give the audience a bit of background about yourself. <br></p><p>[00:00:19] <strong>Patrik:</strong> Yeah, I&#8217;ve been within the data area for the last 25 years working with data warehousing mostly, but more or less just integration is a lot of work. I worked in SOA projects and other kinds of integration areas as well. I&#8217;ve been around and seen a lot of things on the way. I also have been one of the main developer of something that is called the focal framework and the Focal modeling Method. So I&#8217;ve been working with that since 2004. Or less. The focal came along 1998 by a man who invented it more or less, but then he and I, plus a lot of other people, worked [00:01:00] a lot with developing it and moving it forward, so to speak. So that&#8217;s me. <br></p><p>[00:01:04] <strong>Shane:</strong> focals been around for a long time, but it&#8217;s not well known. In some European countries is relatively well known, but in the rest of the world it&#8217;s not. Why do you think that is? <br></p><p>[00:01:16] <strong>Patrik:</strong> The focal framework has a Achilles heel, if you want to call it. It&#8217;s an extremely abstract way of using data, but what it makes, happens, it&#8217;s, it can create an extremely non-destructive architecture that is very easy to change and add data and change data without affecting anything else in your architecture. Which makes it very agile and very efficient when building things. But as I said it&#8217;s an engineering dream, so to speak, has been a lot of smart people working with it. So it&#8217;s not easy to take in to learn. And that has been, its Achilles heel, so to speak. <br></p><p>[00:01:57] <strong>Shane:</strong> And when you talk about focal being a [00:02:00] framework, can you just describe what you mean by that? Because a lot of times we see data modeling patterns that are described as frameworks or methodologies and really what they are as a good way of structuring data and not really much around it. Or sometimes we see methodologies that are agnostic around the data modeling patterns that you can use. <br></p><p>[00:02:19] Whereas from what I understand, focal kind of binds those two things together closely. The framework and the modeling patterns are coexistent is that right? <br></p><p>[00:02:28] <strong>Patrik:</strong> Yeah. The, the focal framework as it all started with the focal modeling technique, but then it, it became a focal framework was more for documenting. Really what we ran into in all of these projects we work was the documentation always got outta line from what we implemented. <br></p><p>[00:02:47] It doesn&#8217;t connect it after a while. So the idea was that we would capture all the metadata models mappings rules and stuff like that into a framework that then would generate the [00:03:00] code for us and generate the things and hold lineage and everything in it. So that became the framework, so to speak. <br></p><p>[00:03:07] You could call it a automation engine, but it&#8217;s much larger because it also works as a. A vocabulary and description models holds all kinds of lineage, business lineage technical lineage, operational lineage. It&#8217;s all over the place, so to speak. The metadata model is pretty huge, is like 80 tables containing all kinds of metadata around what you&#8217;re doing. <br></p><p>[00:03:30] So that&#8217;s the framework, so to speak. <br></p><p>[00:03:33] <strong>Shane:</strong> so if I play that back it&#8217;s a technical framework on how you can implement and automate the focal patterns. So it doesn&#8217;t take care of people and process, it doesn&#8217;t to talk about standups or the way teams are structured. So it&#8217;s more in that how you build a technical framework to implement and execute focal without having to handcraft code on a regular basis to make it work. <br></p><p>[00:03:55] Is that right? <br></p><p>[00:03:56] <strong>Patrik:</strong> Yeah, exactly. The thing was that we, at one point [00:04:00] we came to the conclusion that. The value of data warehousing or the value is the understanding of data. The value was not in the code. The code had was a secondary value in the architecture. So we wanted to make the focus on understanding what you&#8217;re doing, understanding data, understanding the business, so that was the focus, and then could use that knowledge to generate the code instead of writing it, and then also always be in sync. <br></p><p>[00:04:29] The documentation would always be in sync with the code because the documentation creates the code. <br></p><p>[00:04:35] <strong>Shane:</strong> And there&#8217;s been a few of us that have been working on this idea of metadata driven data tooling or, active metadata or config driven. Now the new buzzword is context driven. I always saw three patterns in the world. There were the, let me just write a blob code. The blob code executes, it&#8217;s it&#8217;s on its own. <br></p><p>[00:04:57] It has no relationship with anything else. It&#8217;s pretty much gonna do with the [00:05:00] heavy dating work from the left hand side, the raw data history all the way through to consume. And then the next one is tooling that allows you to write blobs a code, but then produces the documentation after the fact. <br></p><p>[00:05:13] WhereScape was probably old enough to remember that that was one where, a lot of the value was when you generated your code, it created the documentation for you. And if I look at people using DBT, a lot of it was around that documentation, that lineage that you got outta it. <br></p><p>[00:05:26] And then there&#8217;s a smaller group like us where we said, create the documentation first. And then let the documentation effectively generate the code, So we define the metadata, the context, and then that code will get hydrated based on that core. And we end up protecting or caring about that metadata that config because the code becomes disposable. <br></p><p>[00:05:48] The metadata is our pet the code is cattle and DevOps language. And we see tooling come outta that metadata driven Pattern over the last 30 years, [00:06:00] but it never really gets traction. Why do you think that is? Why do, and we still keep doing it because we know it&#8217;s much faster for us. <br></p><p>[00:06:06] But why do you think that this middle ground where people can write code and then document it after the fact always seems to be more popular than defining the metadata, the logic, and letting it hydrate the code for us. <br></p><p>[00:06:19] <strong>Patrik:</strong> The love of the code. That&#8217;s the thing. everyone who is a developer loves their code. They are proud of it. They want to do it. They want to show how good they are at it. And then they come a tooling, a framework that you do not need to be good at writing code. You need to be good to understanding the business and describe the business and describe models and create things like that. And it&#8217;s hard to get organizations to accept that because you get often a a lot of fight back from the development side that says you can&#8217;t write as good code as me. And I&#8217;m better at that. And then always it comes. One of the biggest thing is often that they say, but can you do this? And [00:07:00] you say, no, you can&#8217;t do that. Okay, then it&#8217;s useless. Even if you can do 90% of the organization because you can&#8217;t do the 10%, it&#8217;s useless. So they. Drive that line up in again to their own management side. And then it&#8217;s, it becomes hard to go, to come into companies doing that. They probably feel threatened as well. <br></p><p>[00:07:20] The interesting point is now with ai, there&#8217;s no way out anymore. This is what&#8217;s gonna happen. Your coding skills are not that valuable anymore. Your ability to design and understand systems, how a good design and a good architecture is becomes much more important than being very skilled at programming. <br></p><p>[00:07:42] Yeah. <br></p><p>[00:07:42] <strong>Shane:</strong> Also writing code by hand takes time. <br></p><p>[00:07:45] It&#8217;s busy work. So you can be busy writing that code and you&#8217;re not having to engage with the stakeholder side to understand the value, deliver that value incrementally. It, it&#8217;s not unusual for a data team to be able to do busy [00:08:00] work for a month and actually deliver nothing to a stakeholder. <br></p><p>[00:08:03] We, we somehow have this expectation, and I&#8217;m with you, I think the LMS and Gen AI are gonna reduce their expectation timeframe that a month, doing busy work is is not gonna happen. Vibe code and LLM or use a metadata config driven framework pick your choice. But I&#8217;d rather leverage an architecture that somebody else has created for me that I know works than let the LLM guess at an architecture that hasn&#8217;t been proven before. <br></p><p>[00:08:29] Okay. So framework is the technical implementation of fo. Focal started out in 1998, I think you said, as a data modeling paradigm. Do you wanna talk me through the focal modeling just for people that are more familiar with other modeling techniques and how it&#8217;s the same and how it&#8217;s different? <br></p><p>[00:08:46] <strong>Patrik:</strong> Yeah, the focal has been from the first point really method data driven. But it came up with the thought of three parts within the model where you controlled the key and that was its own structure. [00:09:00] And then you had a table that represented the description of data, and then you have their own structures for relationships. <br></p><p>[00:09:09] So you never had foreign keys between tables. And this was not my idea, this was the one who invented it. That this is how it should work. Because he had seen that complexity growth and that changes always happened. And when changes affects the model and when it affects the code, it becomes much slower to change. <br></p><p>[00:09:32] And a data warehouse after five or 10 years becomes very complex. So he was trying to find a way to do, to lessen that effect. And the thing is, one of the things that is making it abstract from a point of view is that the tables that are holding the descriptions are what we call typed tables. You don&#8217;t have normal business attributes, columns in the tables. They have generic columns like [00:10:00] start timestamp, end timestamp value string, the numeric string unit to measure. And then you have a key or a identifier of the information that lies on the row. So it&#8217;s what we call an tight key or an atomic context key. <br></p><p>[00:10:18] But what really says is it&#8217;s like a name value pair, if you know what that is. But it&#8217;s the inventor, he said it&#8217;s modeled name, value, pair, because it&#8217;s not one value and one key. It is one key. And you can have up to five different attributes if those attributes belongs together. So this is one of the, one of the problems with Focal, everyone you talk about it is it has a lot of underlying philosophical ideas and theories that doesn&#8217;t match how we do normal data models. So it&#8217;s always an abstract step to take in your mind, but why do you do that and how does it work? But from a, from, if [00:11:00] you want to simplify it very much, you would say that the tables that hold the description are named value pairs. You could say. So you have a ID or a key or what you normally that name and that says what is in the value string. And then you can add new attributes. They are just new names and they hold their own values. So you never change the table, you just add new types of data into that. So that is one of the biggest differences with normal data modeling really. So it&#8217;s it&#8217;s built for agility. More or less change, do non-destructive change. <br></p><p>[00:11:37] You can add attributes, remove attributes, and you never change the code. You don&#8217;t change the tables, you just do the change, so to speak. <br></p><p>[00:11:45] <strong>Shane:</strong> So let me play that one back. So you talked about first object is a key. Second object is a table which describes the values effectively and the key, and there&#8217;s some unique technical architecture around that, or modeling architecture compared to most [00:12:00] patterns. And then the third object is relationships, <br></p><p>[00:12:02] the keys that have a relationship at a point in time. my understanding is that is a form of ensemble modeling, You are decomposing the key from the descriptors of the key and you are decomposing the relationships and holding those separately. So that&#8217;s true, right? Focal is a form of ensemble modeling. <br></p><p>[00:12:20] <strong>Patrik:</strong> Yes that it is. <br></p><p>[00:12:22] <strong>Shane:</strong> Excellent. And then there&#8217;s two other ones that I know of, There&#8217;s data vault as one form and anchor modeling as another. So what I might do is just actually we&#8217;ve never had anybody on to talk about anchor. I need to do that but let me try and just play back what you told me around focal and how I think it&#8217;s different to data vault and anchor modeling. <br></p><p>[00:12:40] And I&#8217;ll get the anchor one wrong &#8216;cause like I said, I haven&#8217;t had anybody on to explain it properly. So the first thing is both anchor and data vault hold the key in a separate object like focal does. So that&#8217;s the same, correct. <br></p><p>[00:12:53] <strong>Patrik:</strong> Yes, <br></p><p>[00:12:53] <strong>Shane:</strong> Okay. And then in data vault we&#8217;ll hold one or many satellites that hold the descriptors or the [00:13:00] attributes against those keys. <br></p><p>[00:13:02] But we will hold a table that has, or a view that has many columns. So if I have person&#8217;s name and person&#8217;s age or date of birth, I will hold those as columns in the satellite and anchor. My understanding is I would hold each of those attributes as a separate table. <br></p><p>[00:13:20] <strong>Patrik:</strong> yes, that&#8217;s <br></p><p>[00:13:22] <strong>Shane:</strong> And what you are saying is, in focal, what we do is we use a named peer key. <br></p><p>[00:13:26] So we&#8217;re making those columns rows. However, there&#8217;s an extra little bit of complexity or value in there that you can hold multiple values against one pair. So I could decide to have name and date of birth. And what sounds like a Jason string is it&#8217;s a way of. Typing an object and having a subset of values against it. <br></p><p>[00:13:50] Is that right? <br></p><p>[00:13:51] <strong>Patrik:</strong> No the underlying theory, you can do that, but that&#8217;s not why it was designed for it. It is designed for what we call an atomic context. And the atomic [00:14:00] context is, so the key but we hold is we call it the atomic context. Key is a group of attributes, one, two, many, but five more or less is what we have in the tables, and it is supposed to answer one atomic question. So if you put a shoe number and first name, you don&#8217;t have an atomic question for that, right? Because you want to ask what&#8217;s your first name? What&#8217;s your shoe number? That&#8217;s two different questions. So they would be two different atomic context. But on the other hand, if I would say, what is the loan amount I have on my loan that I, my sign, my original loan amount, I might say it is 1000 euro. <br></p><p>[00:14:43] Because you can&#8217;t answer the question of a monetary value without its currency. So you need to have the value and the currency on the same row. Therefore, we have, as an example, we have a unit measure that we call unit to measure column that you say then, so you use the [00:15:00] Val Nu column and you say That&#8217;s 1000. <br></p><p>[00:15:03] And then in the unit measure it says Euro. So then you answer the atomic question. And as another example, more complex one is like a balance. That you have a balance. And to understand the balance, which is a point in time data, is only true at a certain point in time. You need the balance date. When was this balance value true? And what was the unit to measure of the balance? So obviously sudden you have three attributes within the same atomic context to be able to answer the atomic query. so this is more like from a human perspective think how does human answer ask questions? you can ask who are you? <br></p><p>[00:15:39] And you will get a lot of things. But if you ask an atomic question, the idea is that all the data should be on the same row. To answer that in the physical table. <br></p><p>[00:15:48] <strong>Shane:</strong> So let&#8217;s go back to that example then. So if I&#8217;m holding balance on my bank account, then I need to know what the point in time, the date time of that balance is. And I probably also [00:16:00] need to know what currency it is. So what you are saying is you hold those attributes together because actually they need to be together to answer that business question or to provide the context of one of those numbers. <br></p><p>[00:16:13] And therefore, rather than holding it outside of the physical structure in some form of, physical data model where I know I&#8217;ve gotta go join that with that, or query that row and grab these three columns. You&#8217;re actually saying by bounding them together in a row, the answer&#8217;s already there, You have to grab them all because we went to the effort of putting them there because that&#8217;s the information that you need to actually answer a question around what is my balance. <br></p><p>[00:16:40] <strong>Patrik:</strong> Yeah, so you can almost see it like a normalization of data. Because if you would have a, if you had a satellite in data vault, you could have , these three columns that we talked about, the date the value, and the currency. And then you could have what kind of classification balance is this? <br></p><p>[00:16:56] What is, so you just added up. But as we do [00:17:00] that, we break it out. So these, this answer one question, and these columns also these questions and break it out in rows then and these on, in, in in anchor. They go all the way. They do not care about how data from a human perspective is represented. <br></p><p>[00:17:17] They just break it out totally mechanically. One attribute is one table. So you have the value in one table and the currency, another table, and the date in another table. And then they generate views that joins everything together. so it&#8217;s three different approaches. Sometimes when I talk to last Runback, who is the inventor of Anchor, we talk about it, he says, anchor is in six normal form. And he, and not from a truly formalized perspective, but he says it feels like focal is fifth normal form somewhere around there. And then we have data was very small, third normal form. <br></p><p>[00:17:53] So it&#8217;s, you could see it like that. It&#8217;s more normalization is. <br></p><p>[00:17:57] <strong>Shane:</strong> And it would be interesting when you start putting [00:18:00] LLMs across it, because with data vault we&#8217;re gonna have to provide the context of which columns, which attributes in the satellite actually have value given the business question and anchor, we&#8217;re gonna have to say which tables right? Effectively need to be put together to answer that question. <br></p><p>[00:18:16] So that context is held outside the data. But in focal, what I think I&#8217;m hearing is actually the data has context as well. So if I give it, that name peer key and it can see that there is a balance, a currency and a date time. It&#8217;s gonna be pretty good at saying those three things are important to ask the business question of what was my balance, in New Zealand dollars. <br></p><p>[00:18:38] Okay. I can see doing it. One of the things that people often say against any of the ensemble modelings is, oh, storage is too expensive, it&#8217;s too hard. And so I can see that the estate currency, we&#8217;re gonna store currency again and again, right Where it&#8217;s bound to the context of one of the other attributes. <br></p><p>[00:18:57] In my view, storage is cheap now. And [00:19:00] actually with coer databases actually querying across tables as more expensive than querying within a table. But what have you found that&#8217;s one of the pushbacks with focal is data storage and duplication is bad. &#8216;cause it was 30 years ago when we had mainframes. <br></p><p>[00:19:15] <strong>Patrik:</strong> No never run into the issue of of storage. Really. And more, when we move really far back in the early 2000 when we had the normal relational databases the easy thing with the focal was that it was so easy to do, set up good indexes because the tables looks exactly the same all the time. <br></p><p>[00:19:34] And the, you could say the, the logic for True Delta always looks the same and always how you query it looks the same. It&#8217;s always the same. So, it was very easy to set up good indexes. So you even then the tables became very deep. It still worked very well because the indexes was so well defined and the Pattern was reusable all the time. <br></p><p>[00:19:57] So it just worked, so to [00:20:00] speak. What I&#8217;ve seen on the other side is that when we moved up into the cloud area where indexes is not so important anymore or important, but they aren&#8217;t, doesn&#8217;t exist, so to speak, true indexes but they are column narrative, right? Often snowflake and if you look at BigQuery, so on and so forth it&#8217;s really efficient because it doesn&#8217;t need to store everything, right? <br></p><p>[00:20:24] It&#8217;s just store one unique value. It is a really good what do you call it when you press data together? yeah. so focal works very well with those formulas for doing that. So it becomes very small in storage instead because it doesn&#8217;t need to store each and every value in the engine, so to speak. <br></p><p>[00:20:46] <strong>Shane:</strong> And then from what you&#8217;ve said the focal framework and the modeling Pattern has basically described the types that sit in those name peer keys. So there&#8217;s a dictionary or a shopping list of types [00:21:00] that, that you need because they&#8217;ve been proven over the last, what is it, 20, 30 years. <br></p><p>[00:21:05] So you&#8217;ve probably gone through and figured out all the types that are needed, pretty much in, in most examples. And you get those kind of free when you are using the methodology or the patterns. <br></p><p>[00:21:14] <strong>Patrik:</strong> Yeah. You always have to keep in mind that the focal today is the data layer, so to speak, where the data is size is very crucial. See, machine driven is not for the human eye. It&#8217;s been very specialized to be fully met data oriented. So there you can&#8217;t really look at look at the table in, in the focal data model and understand what kind of data is there, you need to add them. <br></p><p>[00:21:41] Then metadata layer or knowledge layer upon it, that is directly related then. But but everything describes what is there, how it is stored, and everything is up in that layer. So that layer is the, the heart of the solution, so to speak. The physical layer is more just [00:22:00] how do we make this reusable? <br></p><p>[00:22:01] How do we not care about what the human think, care about good engineering sort of principles? And that has been very effective. And now when AI comes along, it&#8217;s all of a sudden it&#8217;s shit. the machine understands it without a problem, but a human thought was hard for a machine. <br></p><p>[00:22:18] It seems like the AI goes like just, okay that&#8217;s not hard. <br></p><p>[00:22:22] <strong>Shane:</strong> Because it&#8217;s patent based, right? <br></p><p>[00:22:24] <strong>Patrik:</strong> Data, everything is described. So he just reads the metadata layer and then he understands what&#8217;s in the data layer. And then you can just ask him questions <br></p><p>[00:22:33] <strong>Shane:</strong> and there&#8217;s no exceptions <br></p><p>[00:22:34] because it&#8217;s meta data driven. . There&#8217;s no, oh Bob came and did that one and he cheated and Yeah. That&#8217;s an exception that you&#8217;ve gotta deal with. . <br></p><p>[00:22:41] <strong>Patrik:</strong> No. So that&#8217;s, yeah, it&#8217;s fully patterned. So it&#8217;s, it is, as you say, there is no exceptions that it has to take into consideration <br></p><p>[00:22:48] <strong>Shane:</strong> So one of the negatives that you often hear around modeling patterns like data vault is consuming, the data is hard. <br></p><p>[00:22:56] There&#8217;s a lot more tables, a lot more joins, even though it&#8217;s pattern [00:23:00] based, people that try and query it directly have a little bit more work. And what we always say is your consume layer should be automatically generated, <br></p><p>[00:23:07] it&#8217;s a pattern based design pattern. So creating the consumption patterns can be automated and you can use one big table with. Dimensional modeling or whatever, anything that flavor that you prefer to query the data. But those patterns for querying, it should be automated. <br></p><p>[00:23:23] I&#8217;m gonna assume that for focal, it&#8217;s the same that you wouldn&#8217;t expect a human with Tableau to go into the core focal data model and try and figure out how to query it. <br></p><p>[00:23:32] <strong>Patrik:</strong> No, it&#8217;s certainly not. No. It&#8217;s the focal framework itself creates, automatically creates views more or less like anchor does. So it you as a human never reads the physical tables. You go through the views, which will pivot the data into this is the customer view. <br></p><p>[00:23:50] This is a customer table. It looks like a normal table. When you look at it with all the column names and stuff like that underneath, it&#8217;s a totally different thing. But for a human, you as [00:24:00] go in and. Access the views and it looks like a normal table. So that&#8217;s how we have abstracted the complexity. <br></p><p>[00:24:07] So you don&#8217;t work against the physical the machine does that. You just read the views and you don&#8217;t have to care how complex or how strange or abstract it&#8217;s underneath really. So that&#8217;s more or less how we work with it. You don&#8217;t go in and hand code a dimension from the physical tables? <br></p><p>[00:24:25] No. <br></p><p>[00:24:25] <strong>Shane:</strong> And that&#8217;s part of the framework. When you talk about your metadata repository, having 80 tables, that&#8217;s where you&#8217;re gonna define these keys. These name peer keys, the relationships, and then it&#8217;s gonna generate the physical structure under the covers using the focal modeling technique. And then it&#8217;s gonna also generate the views that you need to make that data useful <br></p><p>[00:24:47] and usable when you query it. <br></p><p>[00:24:49] Yeah. <br></p><p>[00:24:49] <strong>Patrik:</strong> Yeah. <br></p><p>[00:24:50] <strong>Shane:</strong> And that&#8217;s the value of the framework over and above the modeling pattern, correct. <br></p><p>[00:24:55] <strong>Patrik:</strong> Yeah. I think I, I agree that most of them, both from anchor and data [00:25:00] vault and focal and ensemble models, it is harder to write queries against it. You can&#8217;t really dodge that&#8217;s how it is, but there is a reason for it, and that&#8217;s what people forget. So you can&#8217;t say it&#8217;s just as easy as a dimensional model. <br></p><p>[00:25:16] No, it isn&#8217;t. But there is a reason why the ensemble models looks and works like they do, which from an architectural perspective and longevity of the system and changeability and stuff like that. these layering ideas or have layers, is that you have a layer which is specialized on a. Specific area and use the modeling technique that support what you need to do in that layer. Have another layer that makes it easier to do other things, but don&#8217;t suboptimize the layer by trying to do everything in one layer. you have to have sort of a system design mind to understand when and where to use things. <br></p><p>[00:25:56] <strong>Shane:</strong> Yeah, that idea of a layered data architecture and use the modeling techniques [00:26:00] that have the most value for the problem you&#8217;re trying to solve. And then automate them and standardize them so they&#8217;re part of your architecture. Not little things bolted on the end that, people forget that for this one we somehow use something that was slightly different. <br></p><p>[00:26:13] Last question around that though. The focal framework itself, it&#8217;s open source, correct. <br></p><p>[00:26:17] <strong>Patrik:</strong> at this point there is a focal CLI that we are about to release it. It&#8217;s a lot of testings that goes round. The focal framework itself is not in GitHub at this point because more or less, it&#8217;s just so hard to understand it. So we need to abstract it, give you tools to use it, so to speak, so you don&#8217;t have to be a focal expert to use it, because that just takes too much time, more or less <br></p><p>[00:26:45] <strong>Shane:</strong> So the other thing we were gonna talk about is how Focal helps us with identity resolution. So this idea that, you know, one of the largest problems always is we see the same person in multiple different places and [00:27:00] systems and we want to stitch them together or the same organization. <br></p><p>[00:27:03] And that is a big problem that most people ignore, right? They focus on the simple problems when they bring out new patterns, frameworks, methodologies. They do the nice, customer orders, product simple ones. So let&#8217;s deep dive into a identity resolution and how Focal helps us with that. <br></p><p>[00:27:21] <strong>Patrik:</strong> Okay. Let&#8217;s let me set some concepts first around it, on why we&#8217;re doing it just for the audience. So when I&#8217;m talking about entity resolution or key integrations, I also used to call it is that we have two things. Two concepts, and that&#8217;s one that you have something is called an identity, and that is something that is stable, immutable key that represents an instance of data. And that key should be it doesn&#8217;t have to be, but it should be unique throughout the whole analytical system. And it&#8217;s [00:28:00] identifies a thing on event unique over its whole life cycle. So it&#8217;s immutable. So that&#8217;s an identity when I call it identity. The other one is to call an identifier, which is a way of identifying a thing in event it has to be unique within its data space. Might not identify the instance as its full lifecycle, but we should strive to find one. So these are two different concepts. The identity often is called surrogate keys is normally represented as a surrogate key in your system. And the identifier is what people sometimes call business identifier or something like that. But it&#8217;s good to understand that you should keep those two apart. That there are two different things and that they are there for, to handling things differently. The other thing is what are we trying to do and what do we not want to happen when we do the sort of integration? <br></p><p>[00:28:53] Key integration is that one thing we don&#8217;t want to happen is key collision. The idea is that we have two [00:29:00] different systems both holds accounts and they have an account number series on them and we send them into our account focal or hub or whatever. And we use the account number as the identification because it&#8217;s the business identifier, but for some reason these numbers are overlapping. <br></p><p>[00:29:17] So we can start getting key collision. That means that. Two different accounts that are two different instances in the real world, start writing their data on each other and changing data back and forth because they are not truly the same account. That&#8217;s a key condition area that we want to avoid. The other thing is that we want to achieve key integration. And and that is the thing that we want to, if they are the same thing in two different system, we want them to integrate on the identifier or the key, so to speak. And the, this is the hard part when working with this is to understand. [00:30:00] How unique should I do something and make something and still make it integrate? So let&#8217;s say you could have this account thing and you go okay, but I set source system ID in front of it, and then the account numbers will be unique. Yeah. And then you have two different customer systems and the same customer lives in both system, but you just go, wow. <br></p><p>[00:30:21] But we set the same system ID in front of the customer ID, and then it&#8217;s unique, but then we all of a sudden don&#8217;t get the key integration that we want to happen because we have made it too unique for how it works in the it. So this work, as you said, this work with integration and entity resolution is. It&#8217;s really hard work. It&#8217;s not something that just comes along freely is you have to put time and effort to understand the IT landscape, the business processes. How does data move? Where is the unique instances of things and where do they live and how do they move in the IT landscape [00:31:00] to be able to understand how should I build my identifier, because this is what we talk about, so we need to create an identifier. Some people talk about business identifiers. for me, that doesn&#8217;t ring correctly because I talk about I normally want to say integration identifier because for me, business identifier is something that the business can use to identify things, but it doesn&#8217;t have to be unique for their work, in their daily work. <br></p><p>[00:31:28] So you could have something that is true in one point in time, that it&#8217;s unique, but it can change. And it&#8217;s still, the business uses it because it works from an operational perspective. But from a analytical system where we historize things and keep track over time how things changes, we need identifiers that stay true throughout the life cycle as much as possible. So there is always that kind of work we need to do to understand how [00:32:00] do we create the identifiers so they will truly integrate and not end up with a key coalition. So it&#8217;s hard work, more or less <br></p><p>[00:32:10] <strong>Shane:</strong> There&#8217;s, there was a lot in there. So let me unpack it and try and map it to some patterns that I understand, and I&#8217;m probably gonna get them wrong. So I&#8217;ll pause after each one to make sure that I&#8217;ve got it. So the idea of key collision, so let&#8217;s use let&#8217;s use accounts that, in system one, we have an account, which the account sequencing numbering is 1, 2, 3, 4, <br></p><p>[00:32:32] so it&#8217;s a number. And then in system two, we have a separate series where it&#8217;s A, B, C, and based on that, if both of those are held true forever, we know there is no key collision, we can trust that as a unique. Account record, and we&#8217;d never collide. But if system one is 1, 2, 3, 4, and system two is 1, 2, 3, 4, and they&#8217;re not integrated anywhere else we know that potentially we&#8217;ll see that 1, 2, 3, 4 come through from each system, but for a different [00:33:00] account, account for Bob versus account for Shane or, account for savings versus an account for investment. <br></p><p>[00:33:07] And so our natural way of dealing with that is to put source identifiers at the front. Yeah. So system 1, 1, 2, 3, 4, system 2, 1, 2, 3, 4, and now we know we will never get a collision. So that&#8217;s the first Pattern that we typically do is that correct? <br></p><p>[00:33:22] <strong>Patrik:</strong> Yes. <br></p><p>[00:33:22] <strong>Shane:</strong> And that source and account combination, is that what you call an identifier? <br></p><p>[00:33:30] <strong>Patrik:</strong> Yeah, it could be, but it could be multiple. You could use multiple columns to create an identifier. So it&#8217;s depending on your physical realization of how you want to do it, you could keep the columns apart, but in the focal we, at least we concatenate all the different columns we need to create a unique string of data. <br></p><p>[00:33:48] <strong>Shane:</strong> Yeah, but that&#8217;s the identifier because we can identify that was true at that time. It&#8217;s a fact. We can see the data there. We didn&#8217;t make it up. We didn&#8217;t infer it. It&#8217;s a fact. Okay. And then we [00:34:00] know that if we want to say, this account system one is the same as this account system two. <br></p><p>[00:34:06] And now we don&#8217;t have an identifier that is exactly the same identifier. We have to infer that they are the same. And it&#8217;s like a surrogate key in my head. We&#8217;re trying to find this unique identity. I&#8217;m just trying to get my language right, the unique identity to say that actually is the one thing that looks differently elsewhere and it&#8217;s the same. <br></p><p>[00:34:26] Is that right? So we&#8217;re creating this unique identity ID that then everything&#8217;s bound to if we can match it. Is that right? <br></p><p>[00:34:34] <strong>Patrik:</strong> Yeah, I mean it&#8217;s the same for data vault people that you have the business key and then you have the Sid, right? It&#8217;s the same principle. You have an identification identifier, which is related to a surrogate key. So that&#8217;s just to keep them apart, so to speak. That&#8217;s what they have two different sort of workings in the system. <br></p><p>[00:34:54] <strong>Shane:</strong> And so obviously creating that identity ID, because that becomes this golden [00:35:00] id, It&#8217;s this immutable thing that we bind everything to when we find something that&#8217;s related in the future. And we can see changes over time, so if my account number goes from 1, 2, 3, 4 to 5, 6, 7, 8, 9 a year later and we bind that back to the identity Id, you still know it was my account. <br></p><p>[00:35:18] it&#8217;s identifier changed and sometimes happens, especially when we&#8217;re using email, When we use email addresses the identifier or name, we know that those identifier IDs will change over time and they cause us a major problem. So what we&#8217;re trying to do is find that, that golden identity ID for the thing the event, the person, people place or those kind of concepts who does what&#8217;s all those kind of concepts that we wanna manage. <br></p><p>[00:35:42] Is that right? <br></p><p>[00:35:43] <strong>Patrik:</strong> Yeah. Yeah. <br></p><p>[00:35:44] <strong>Shane:</strong> Okay. Lots of people talk about that and then they leave it to you to figure out how to do it. So take me through the next bit. <br></p><p>[00:35:52] <strong>Patrik:</strong> Yeah. So since we are talking about patterns let&#8217;s talk about how, first, how data vault does it and Anchor does it just to [00:36:00] make it see, and then we go down to how focal does it. So in the data vault, we already touched on it, right? You, we have the hub, and in the hub we have a business key and we have a c and a surrogate key. <br></p><p>[00:36:11] Now I know a lot of people have discontinued use of surrogate keys in, in the data vault area because they&#8217;re using hash keys. And there is a reason for that, and I agree that data vault should do that because they do not have the ability to relate multiple identifiers to one identity because it&#8217;s hardwired in the hub. So if it is a one-to-one relationship between the one identifier and it&#8217;s key. There is no really architectural functionality for the surrogate key. You can just as well just hash the identifier and then you have a key that always works through. Instead, when the reality hits us in the face, we all of a sudden understand that, oh, this one can be identified multiple different ways. So you could have [00:37:00] a customer ID and you have a social security number, and both are used to be identifying you in different systems and in data vault. if you use the customer ID and it has its surity or you just hash it, that becomes one instance of the customer. You do the social security number, it becomes another instance of the customer. Or then they use a same as link that says This ID is the same as this. ID from an instance perspective. So that&#8217;s how they Do it in their solution. In anchor, they point at an attribute table. So you have, in the anchor, you only have the surrogate key, and then they point at the table and one of the attribute tables, and you say, this one is also used as an identifier. <br></p><p>[00:37:44] So their code uses that for lookups. Okay, I, I have my identifier, I check there and then I can pick up from the anchor, I can pick up the surrogate key, I get the surrogate key, and then you have the pickup and they have the ability that they can choose, okay we want [00:38:00] another attribute as well as part we could be able to identify with social security number as well. <br></p><p>[00:38:06] And then they can point in the table that also social security number. The issue is that they have to generate the code or change the code because it has no generic solution around it. So it&#8217;s. The code is changing. It&#8217;s is a destructive change in the architecture. When you need to add a new way of identifying things, then you get a destructive change in your code. <br></p><p>[00:38:28] So you need to change your code. In Foco, we have what we call an idea for a table, which is to identify a table, which sole purpose is to integrate, to be used, to create integration and hold the relationship between the identifier and the key that are created. And how this works is no magic in the focal framework. <br></p><p>[00:38:53] As of today, there is no fuzzy logic solution or things like that. It&#8217;s only [00:39:00] purpose and only functionality is that you can, connect multiple identifiers to one key if you have them in the same table. More or less. So let&#8217;s say you have a table where you have your customer ID in the table, and you also have the social security number in the table, probably from the source, right? You can then point out and say, the customer Id identifies the customer, and the social security number identifies the customer. How do we know it&#8217;s true? They are on the same row in the table, right? So we know by how the built that they belong together. There&#8217;s no magic really. <br></p><p>[00:39:36] It&#8217;s just we can just point out multiple things and those different columns that we use to identify becomes their own identifier stream. Now, in the identifier table, there is, I&#8217;m not gonna talk about the whole, because there&#8217;s a lot of technical things in it as well, but from a conceptual point of view. You have one column that is [00:40:00] called identifier, and you have one column that is called key. And the thing is that each row represents the relationship between an identifier and a key. Now in the code, if you point out social security number and you point out the customer ID as identifying the identifier code will then put both of those into the same SQL, and then he will check for each of those. He will do multiple lookups, one for each. We will look up with the string for the customer ready, we&#8217;ll check against the identifier table. Do I have a key for this, yes or no? Okay. And then he checks for the social secured number. Do I have a key or not? In my identifier table, if there is no key, new key is created. Both of these becomes pivotal to its own roles. So the social security number becomes related to customer [00:41:00] key one. the identity, the customer id, key one, and the social security number will also be aligned to the customer key one, so to speak, this surrogate key. So now they are aligned. The, one of the interesting point is, let&#8217;s say we also have something else I don&#8217;t come up with a good example, but some kind of other identification of a customer, maybe in the same table, but could also be in another table. So in another table, in another system, we have the, let&#8217;s say the social security number, and they have a local identification of the customer as well in another color. <br></p><p>[00:41:36] And they want, they need that because they have other systems that. Works with that identifier in the ILE landscape and not the social security number. so the thing is that when they map that system and say it&#8217;s a social security number and this local ID that identifies a customer from this source, when that goes in and checks the data in the identifier, he will check the [00:42:00] social security number and he will pick up a key number one, right? And then he will go with a local and he will find no key. But since he already found the key, he will propagate that key to the local ID and that will become a new row in the identifier table. The row that represents the social security numbers, relationship to the key is not multiplied, it&#8217;s just exists only one instance independently. <br></p><p>[00:42:26] How many system that uses it. So it just becomes one instance, one row per. Unique string, so to speak. So all of a sudden then you have three different identifiers related to the same key. Now the fascinating thing about this is that since the table is just identifier and key, and when you instantiate this Pattern, you do it for the concept. <br></p><p>[00:42:51] So you have customer identifier and then the table will call it customer identifier. And in the column there will be a customer, [00:43:00] IDFR column and customer key. And do you do it for product? Same thing. Product, ident. so from a patent base there is identifier, key idea, four key, that&#8217;s it. And then you just add what kind of entity you want to use this identification for. And the code is exactly the same for independently or which entity. You can also say independently of what industry you do it for, it doesn&#8217;t change. It is the same. So the table and the code works the same way independently or who you want to do identification on. So this Pattern is for me, it&#8217;s not really a focal Pattern. It is part of the focal solution. But from my point of view, you can use this for any modeling technique really. If you want to be able to create a surrogate key, you just create this look up table, so to speak. And you can have it for dimension modeling. You can have it for data vault if you dare to break the hub thinking. [00:44:00] And you can do it, you could really do it for anchor as well or yeah, whatever modeling method you want, as long as you, you like some sort of, I need to be able to have multiple ways of identifying things. But I don&#8217;t want duplicates in my data. I just want one surrogate key for it. It&#8217;s totally reusable for anyone to use. <br></p><p>[00:44:19] Really? <br></p><p>[00:44:20] <strong>Shane:</strong> So let me play it back to make sure I got it right and then we&#8217;ll jump into a couple questions. So what we&#8217;re doing is we&#8217;re holding a table, let&#8217;s call it table. And in that table there is a golden unique identity, something we are generating that we, that never changes to say we, we have an instance of a thing, and then we are binding that to identifiers we see. <br></p><p>[00:44:41] So in your example, I might bind it to an email address and a social security number and a passport number and a driver&#8217;s license number because each one of those are identifiers of a person. <br></p><p>[00:44:53] So what we end up with is we end up, in that scenario, we would end up with the golden key that we&#8217;ve [00:45:00] generated four times four rows, and then each of the related identifiers, social security number, email address, license, passport number, and the benefit of focal is. <br></p><p>[00:45:11] The framework does that automatically for you, so if you go and say, that social security number is the same as related to that driver&#8217;s license number because you have a table that tells you that, then the focal framework is gonna go and do an upsert into that golden table. <br></p><p>[00:45:28] If it hasn&#8217;t seen it before or say we&#8217;ve seen it before, I know that relationship exists, we&#8217;re okay. Am I right so far? <br></p><p>[00:45:34] <strong>Patrik:</strong> Yes. <br></p><p>[00:45:35] <strong>Shane:</strong> And so the benefit of that is if I look at something like data vault where we have same as links. I&#8217;ve gotta code fire the code. I&#8217;ve gotta build my old framework to go, how do I do these relationships? <br></p><p>[00:45:46] And frankly, I&#8217;m not so sure, but probably the same. And then, so that&#8217;s the first part of the problem, how do we codify or patternise the identifications of these keys without having to manually do it? And then the second one is [00:46:00] how do we then use that in all our queries to be able to let me query any data with any of those identifiers that is valid at the point in time. <br></p><p>[00:46:09] And that&#8217;s the bit that you are saying in the focal framework. You still you haven&#8217;t patternised or solved that automatically yet that still requires some human to do that query side of using that data, or is that something you have solved? <br></p><p>[00:46:23] <strong>Patrik:</strong> It&#8217;s depending on what, because, &#8216;cause from a focal perspective we more or less never use the identifiers for anything else than creating the relationship to the key, so to speak, if there is multiple ways of doing it, multiple identifiers. So I will talk about that a little bit later. But so the identify table is a technical table. It&#8217;s not about using as a business representation of things. , You have your key, that is a unique instance or something if you want to search or do a query on the social security number. Then the social security number also is stored in the descriptive data [00:47:00] as its own. It&#8217;s its own representation. So you search there for a social security number, and we have said that there is a, there&#8217;s a separation of concern here. We should have, the identifiers should be able to live and develop however they will need to be to achieve integration. While the business identifiers should not be contaminated by that. So the business identifiers is held on their own in its free form, it&#8217;s clear. So if we do a concatenation in the identifier table, it&#8217;s not done in the, on the business identifier. Social security number. Social security number if we need to say. Sweden social secure number, and Russia social for some reason. Whatever the number the idea or the, in the scripted table, it&#8217;s just the social secure number clean, so to speak, as a business from a business perspective, which means you could get up duplicates when you search for that. You could get two rows, one Russian and one Swedish guy. [00:48:00] But yeah, that&#8217;s how it works. Then you just have to choose what, whatever you want to have it, what do you want to see? So that&#8217;s a separation of concern in the architecture the identifier table is a technical table should not be accessed by people, so to speak, because the key itself is really what hold binds it all together <br></p><p>[00:48:19] <strong>Shane:</strong> And then again, because it&#8217;s pattern based, you&#8217;d assume that LMS would understand the role that technical identifier table plays because it&#8217;ll see it being used the same way every time, and therefore it should use it more effectively than we&#8217;ve got bespoke tables or other things that are used in different ways. <br></p><p>[00:48:38] And then I think you said it doesn&#8217;t solve the whole fuzzy matching problem, but again, there&#8217;s patterns and code bases out there that allow you to do it. So all you&#8217;d be doing is injecting the fuzzy matching logic. To determine what rows you need to insert or check for in the identifier table. <br></p><p>[00:48:57] Right. <br></p><p>[00:48:57] <strong>Patrik:</strong> No, there is no, you can do it, [00:49:00] but the code as it is today is just you have it on the same row. They mean the same thing, two different columns. Yeah. So there is no magic. I usually say that there is no magic. It&#8217;s just. <br></p><p>[00:49:11] <strong>Shane:</strong> Okay. we talked about three object types. We talked about a thing that holds the keys, a table that holds the descriptions or the attributes as name, peer values, and then something that holds the relationships of the keys, this identifier table that holds this unique identifier and the system identifiers. <br></p><p>[00:49:29] Is that a different object type or is that reusing one of the, just to get, I got a funny feeling. I know where you&#8217;re gonna go with it, but Yeah, it, is it a different object type or is it just reusing one of those? A couple of those three. <br></p><p>[00:49:41] <strong>Patrik:</strong> No, it&#8217;s an, it is a different object <br></p><p>[00:49:43] type In the focal. We have the focal, there is a focal table that holds the surrogate key Exactly. As a anchor key anchored us. It&#8217;s only a surrogate. As I said, the identified table is a technical table to achieve integration on the [00:50:00] key, so to speak. So it&#8217;s its own type. <br></p><p>[00:50:02] But normally when I talk to Hans, we talk about, he says, yeah. The concept is the key, even if it&#8217;s two tables. <br></p><p>[00:50:10] <strong>Shane:</strong> so like we have with Data Vault where we have, HALs and SALs and these other things that we need to do from a technical point of view that break the, there&#8217;s only three simple type of tables you need. I&#8217;m assuming within focal, there are other instances of that where there are other technical tables or objects that we need for certain things, or is this the only one? <br></p><p>[00:50:31] <strong>Patrik:</strong> this is the only one <br></p><p>[00:50:33] I mean from a physical data modeling perspective, but then you have the whole metadata layer, but that&#8217;s another animal, so to speak. <br></p><p>[00:50:40] <strong>Shane:</strong> then we get to the problem of point in time reporting. And so if I changed my email address as one of my identifiers, at a certain point in time, it&#8217;s gonna solve that problem anyway because I&#8217;m now going to automatically get another row in that identifier table to say, against this golden [00:51:00] key, I&#8217;ve got another identifier. <br></p><p>[00:51:03] And then in my queries I&#8217;ll be able to use that to say, was it this or was it that? Okay. Yeah. I&#8217;m just trying to think around the whole, changing of of identifiers and then how that goes back. <br></p><p>[00:51:14] <strong>Patrik:</strong> I mean there is always that There is, yeah, there is no magic. So if you don&#8217;t have a stable identifier and you change your email address, you only have email addresses an identifier, and then you change the email address and you don&#8217;t have a column that says this was the old email address or something. It will create a new key because he doesn&#8217;t know about the previous email address. but if you have a social security number and an email address, the social security number will be stable and you change the email address. It&#8217;ll add the new email address to the same key. <br></p><p>[00:51:48] <strong>Shane:</strong> But if I had a table that held a change of email addresses an event, and so that table held previous email and new email, <br></p><p>[00:51:57] then it should pick it up against that golden key that [00:52:00] the email address had changed. And so there&#8217;s just another identifier against that key. Correct? <br></p><p>[00:52:04] <strong>Patrik:</strong> Yes. Then it would do that <br></p><p>[00:52:06] the identifier table doesn&#8217;t care which column you use. So it&#8217;s just a generic column of identifier. You just have a string of values. That one is one you check. There is of course the ability to going up to the metadata layer and see. What attributes in the source was used to concatenate this string. So it exists up there, but in the physical from a code perspective, it&#8217;s just, here&#8217;s a string. Does that string exist? When it checks, when it do a looks up, it doesn&#8217;t care if it&#8217;s what column you use to create that string. <br></p><p>[00:52:39] <strong>Shane:</strong> And again, it goes back to that idea that the metadata or the context is held outside of the physical data, so if you&#8217;re using an LLM you need to make sure that both are exposed because if you give a physical focal data model with its , physical data to an LLM, it&#8217;s gonna struggle to understand the context of how that works. <br></p><p>[00:52:57] <strong>Patrik:</strong> Yes. Very much yeah. <br></p><p>[00:52:59] <strong>Shane:</strong> Okay, that [00:53:00] makes sense. <br></p><p>[00:53:00] <strong>Patrik:</strong> I can just do another thing around this because when focal started and for the up to, yeah, 2014 or something like that, and 15, the, or even later. But anyway the identifier table was not optional. It was always, you always have a surrogate key. That was how it worked. But when we moved into the cloud area, we the cost of doing a lookup when you have a lot of rows costs every time. So if you have an entity that does not have multiple identifiers, why should you use a lookup? Why do then you can just as well hash the thing or use the natural key, right? So in the focal framework today the multi identifier functionality is the optional. You always start with a single identifier point of view. So you set up your entities and if you don&#8217;t have any , multiple identifier at this point, you just run it as like data vault [00:54:00] or something. It&#8217;s just natural or hash keys. But the thing is then that when you come to a point in your development that you all of a sudden know, okay, we need both social security number and email address to make this work. Then you can, in the focal framework, then just point at the entity and say, now this entity has multi identifier entity. And then that gives you the ability to map multiple identifiers to that as you do your mapping and say, this identifies and this identifies. And then the framework will also migrate your data for that entity. So it will. Propagate the new surrogate key that is generated. Why when you deploy, before you load it deploys and take all the wall data, integrate it to the surrogate key that you have created and populates all the tables that are involved. this is also when you think about it from a ensemble modeling perspective, is you have an entity and it has three relationships, right? And you point at that entity and says, this one is now [00:55:00] multi identifier. So it has to run on a surrogate key. It also has to migrate the data in all the relationships. And once again, since everything is metadata driven and pattern based, once we figured out the script on how to migrate from the normal key or natural key to surrogate key, it works for every entity. It was just a one go. You needed to figure out how do you do this? How do we move what? What kind of things do we need to do? <br></p><p>[00:55:27] And once that is done, it was repeatable. So it became repeatable. So you don&#8217;t have to think about it either. Oh, how should I migrate then? No, it&#8217;s just point that it say this is multi identifier now, and then it would migrate itself. <br></p><p>[00:55:40] <strong>Shane:</strong> And this is one of the value of these frameworks that are put on top of these modeling patterns is that they have been built out over so many years, decades, they&#8217;ve seen lots of edge cases, and the framework then gets updated with those edge cases and then. That code gets tested. That [00:56:00] pattern gets tested at time and time again by many people and many organizations and many industries. <br></p><p>[00:56:05] And it pretty much becomes bulletproof versus a senior engineer writing it for the first time or, go and find a blo of code from somebody, and then obviously you&#8217;ve got all the get repos, you go and harvest, and now the new one is your vibe code on the LLM. <br></p><p>[00:56:18] But none of that is proven versus you go to a framework that&#8217;s been tested over decades and you know that those, each cases where they&#8217;ve been dealt with have been proven. One of the questions I always have is, when do I ever trust an organization who tells me they don&#8217;t have a secondary identifier? <br></p><p>[00:56:35] And my answer is never, because they&#8217;ll tell you they&#8217;ve only got one. And then, three to six months later another one will turn up in the data and they&#8217;ll be like oh yeah, sorry, I forgot about that. And so for me, yeah, I probably would just go with multi identifier in the beginning and wear the cost of the surrogate lookup <br></p><p>[00:56:52] <strong>Patrik:</strong> at the same time, you don&#8217;t need to when you have the migration script, so you just, you run it as single until you need [00:57:00] multi. Just automatically migrates your data over to multi identifier, <br></p><p>[00:57:03] and then it&#8217;s just for that, and then it&#8217;s just for that <br></p><p>[00:57:06] entity also. <br></p><p>[00:57:07] <strong>Shane:</strong> if I&#8217;ve got billions of rows. <br></p><p>[00:57:09] <strong>Patrik:</strong> This is something we have seen when we worked in BigQuery and Snowflake. This is really important from a cost perspective, really. Because when it&#8217;s huge data sets, it costs a lot to do those lookups, even if they&#8217;re really efficient. So still costs data especially since there are no true indexes and stuff like that on these platforms. So you, even if you do a very good setup for. For the order of data and petitioning of data and what, can do in these areas. It still costs money. so that was the decision why we said, we know that a lot of entities will get multiple identify over time, but until they do not need it, we can run it on single identifier code, so to speak. <br></p><p>[00:57:56] <strong>Shane:</strong> Yeah. And it&#8217;s that idea of optimizing where it makes sense. <br></p><p>[00:57:59] You know, [00:58:00] 1, 1 1 of the things we do is, we will for smaller volumes of data, when we see an event, we will just do an upsert where we see larger volumes of data and we know some things are gonna happen. We might do a petitioning replace, but the system takes care of it, <br></p><p>[00:58:15] because it. You optimize it for, okay, if it looks like this, do that. Because we know over time that&#8217;s gonna save us money. And if it looks like that, do this and we can switch between if we need to. But it&#8217;s that baking in optimize at the right time at the right place. And don&#8217;t be afraid to change it later if you can change it safely. <br></p><p>[00:58:32] Yeah. Whereas in the past we would never touch anything like that. You say to somebody, oh, can you go into your dimensional data warehouse and just rekey all the surrogates for me? Yeah. That&#8217;s gonna be a dangerous change, right? Because yeah, it hasn&#8217;t been designed to allow you to do that. <br></p><p>[00:58:48] <strong>Patrik:</strong> Oh, exactly. <br></p><p>[00:58:50] That&#8217;s <br></p><p>[00:58:51] <strong>Shane:</strong> excellent. All. If people want to get hold of you, if they wanna understand more about focal, if they want to learn more about the modeling [00:59:00] patterns and the framework, where do they go? <br></p><p>[00:59:03] <strong>Patrik:</strong> I would say you can either go to LinkedIn to my profile, or you can go to Daana dev, which is the project where we&#8217;re working with with a focal framework creating CI around it so we can, you can easily test it. <br></p><p>[00:59:20] <strong>Shane:</strong> And give me an example of what you mean by building a CLI out for this. What are you looking to achieve? <br></p><p>[00:59:25] <strong>Patrik:</strong> But it&#8217;s more like. Doing an abstractional layer of of the focal framework since it is complex in its sort of design to make it easy for people to use. So the Daana CLI works with YAML files where you set up your models and your mappings and then that get processed into the framework and then the framework creates the code and stuff like that. So it&#8217;s more like just ease of use. So instead of trying to figure out how you&#8217;re gonna use the focal framework, there is already a command line interface where you can [01:00:00] do all the things you want to do with it, so to speak. <br></p><p>[01:00:04] <strong>Shane:</strong> The metadata tables and the physical tables, they&#8217;re technology agnostic, right? So you can run those on any of the data platforms or data technologies. <br></p><p>[01:00:14] <strong>Patrik:</strong> Yeah, and not, there&#8217;s always these small quirks in SQL that the different platforms uses. the interesting point is a focal framework have had Oracle sgl, L Server snowflake, BigQuery Postgres. But we are now in the middle of our sort of re visiting the architecture. So now we have pulled us down to Postgres and BigQuery. Where we start to build up all the different platforms again. But it&#8217;s still certain parts are platform specific. But since it is metadata driven, the it&#8217;s not that hard. Once you get it to work, it&#8217;s just shift. <br></p><p>[01:00:58] And now with ai, [01:01:00] LMS also, they can easily translate your patterns. So you can go now I want this to work in Snowflake and just show them all the patterns, and then they just transform it over. You have to test it, of course, because it&#8217;s lms, you don&#8217;t know what they&#8217;re gonna do. But it goes very quickly to, to move to a new platform at this point. <br></p><p>[01:01:21] <strong>Shane:</strong> But if somebody was starting out and they, wanted to reduce the uncertainty of things they need to learn, then you&#8217;re saying Postgres and BigQuery is probably the safest way to start out, to learn on it <br></p><p>[01:01:30] <strong>Patrik:</strong> now you can go in for the homepage, that&#8217;s Daana dev and sign up for be a better be tester and try it out. And then we have building up a community around it because people was to be able to contribute and stuff like that. <br></p><p>[01:01:47] So yeah, we see where it goes for me it&#8217;s really fun because all of a sudden the focal framework becomes accessible for people that, that doesn&#8217;t want to put the energy or effort trying to [01:02:00] understand underneath the hood. And that&#8217;s really fascinating, I would say. So it&#8217;s really fun. <br></p><p>[01:02:06] <strong>Shane:</strong> And even if we look at something like data Vault, which is probably a lot more well known across the world even then it&#8217;s still, you&#8217;ve gotta learn some stuff. So anything we can do to remove that complexity and make it for people to, simple for them to use the patterns. <br></p><p>[01:02:19] And that&#8217;s a good thing in my view, right? But it takes time and effort to make something that&#8217;s complex under the covers simple to use and execute and get that value of automation and. Optimization out of it. <br></p><p>[01:02:31] <strong>Patrik:</strong> Yeah. Yeah, exactly. <br></p><p>[01:02:33] <strong>Shane:</strong> Excellent. Alright, thank you for that. It&#8217;s been a great chat. I now know a lot more around focal than I did a while ago. <br></p><p>[01:02:39] So thank you for that and I hope everybody has a simply magical day. <br></p><p>[01:02:44] <strong>Patrik:</strong> Same. Have a nice day everyone.</p><h2>&#171;oo&#187;</h2><div class="pullquote"><p><em>Stakeholder - &#8220;Thats not what I wanted!&#8221; <br>Data Team - &#8220;But thats what you asked for!&#8221;</em></p></div><p>Struggling to gather data requirements and constantly hearing the conversation above?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0Bu2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0Bu2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg" width="387" height="342" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:342,&quot;width&quot;:387,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:19725,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agiledata.substack.com/i/160520537?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!0Bu2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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>Want to learn how to capture data and information requirements in a repeatable way so stakeholders love them and data teams can build from them, by using the Information Product Canvas.</p><p>Have I got the book for you!</p><p>Start your journey to a new Agile Data Way of Working.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://adiwow.com/168&quot;,&quot;text&quot;:&quot;Buy the Agile Data Guide now!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://adiwow.com/168"><span>Buy the Agile Data Guide now!</span></a></p><h2>&#171;oo&#187;</h2>]]></content:encoded></item><item><title><![CDATA[Data Foundation and the Critical Role of Data Governance]]></title><description><![CDATA[Guest Podcast Episode]]></description><link>https://agiledata.info/p/data-foundation-and-the-critical</link><guid isPermaLink="false">https://agiledata.info/p/data-foundation-and-the-critical</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Mon, 20 Apr 2026 09:41:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/GjSD1pahPRE" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this episode, host Mustafa Qizilbash and agile data coach Shane Gibson unpack the  meaning of a data foundation, exploring why defining measures of success, rethinking data governance, and prioritising business context are the real keys to delivering actionable organisational value</p><blockquote><p><strong><a href="https://agiledata.substack.com/i/194776145/listen">Listen</a></strong></p><p><strong><a href="https://agiledata.substack.com/i/194776145/google-notebooklm-mindmap">View MindMap</a></strong></p><p><strong><a href="https://agiledata.substack.com/i/194776145/google-notebooklm-briefing">Read AI Summary</a></strong></p><p><strong><a href="https://agiledata.substack.com/i/194776145/transcript">Read Transcript</a></strong></p></blockquote><p></p><h2>Listen</h2><p>Listen / watch over on Youtube:</p><p><a href="https://youtu.be/GjSD1pahPRE?si=1yg8gNsCb_4PvJWN">https://youtu.be/GjSD1pahPRE?si=1yg8gNsCb_4PvJWN</a></p><p></p><div id="youtube2-GjSD1pahPRE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;GjSD1pahPRE&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/GjSD1pahPRE?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><div class="pullquote"><p><strong>Tired of vague data requests and endless requirement meetings? The Information Product Canvas helps you get clarity in 30 minutes or less?</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledataguides.com/ipc&quot;,&quot;text&quot;:&quot;Fix Your Data Requirements&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://agiledataguides.com/ipc"><span>Fix Your Data Requirements</span></a></p></div><h2>Google NotebookLM Mindmap </h2><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KX8C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KX8C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.png 424w, https://substackcdn.com/image/fetch/$s_!KX8C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.png 848w, https://substackcdn.com/image/fetch/$s_!KX8C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.png 1272w, https://substackcdn.com/image/fetch/$s_!KX8C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KX8C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.png" width="1456" height="3520" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3520,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1281169,&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://agiledata.info/i/194776145?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.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_!KX8C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.png 424w, https://substackcdn.com/image/fetch/$s_!KX8C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.png 848w, https://substackcdn.com/image/fetch/$s_!KX8C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.png 1272w, https://substackcdn.com/image/fetch/$s_!KX8C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb19d01c-c0dc-4dc9-94af-910790ca5335_3200x7737.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></p><p></p><h2>Google NoteBookLM Briefing</h2><h2><strong>Executive Summary</strong></h2><p>This briefing document synthesizes key insights from a strategic discussion regarding the definition, implementation, and governance of data foundations. The analysis shifts the focus from purely technological solutions to a holistic framework encompassing management, organizational culture, and business context.</p><p><strong>Critical Takeaways:</strong></p><ul><li><p><strong>Definition of Success:</strong> A data foundation must be predicated on measurable business outcomes&#8212;specifically &#8220;up and down arrows&#8221; such as reduced time-to-decision&#8212;rather than the implementation of tools.</p></li><li><p><strong>Governance vs. Management:</strong> While debate exists on whether governance should be an integrated part of management or a separate &#8220;legislative&#8221; body, there is a consensus that current data governance often lacks the power to enforce rules effectively.</p></li><li><p><strong>The Three Ps:</strong> Effective foundations rely on <strong>Principles</strong> (cultural preferences), <strong>Policies</strong> (immutable rules), and <strong>Patterns</strong> (reusable templates).</p></li><li><p><strong>Context-First Approach:</strong> Metadata should no longer be treated as an &#8220;exhaust&#8221; of system activity. Instead, &#8220;Context&#8221; (Business, Structural, Operational, and Agent) should be defined upfront to hydrate and drive data systems.</p></li><li><p><strong>Organizational Culture:</strong> Organizations must identify as either <strong>Pioneers</strong> (experiment-led) or <strong>Town Builders</strong> (process-led) to align their data strategy with their operational reality.</p></li></ul><p>--------------------------------------------------------------------------------</p><p><strong>1. Defining the Data Foundation</strong></p><p>A data foundation is often misconstrued as a collection of technology stacks (cloud databases, ETL tools, etc.). In practice, it is a multifaceted subdomain of data management that integrates architecture, platforms, ways of working, and governance.</p><p><strong>The Problem of Silos</strong></p><p>The separation of data governance groups from data teams creates significant operational friction. Management is the overarching discipline; if data is not being governed, it is not being managed. A foundation must bridge the gap between &#8220;artisan&#8221; manual work and &#8220;automated&#8221; factory processes.</p><p>--------------------------------------------------------------------------------</p><p><strong>2. Measurement and Strategic Alignment</strong></p><p>Before investing in technology, organizations must answer: <em>What is the definition of success?</em></p><ul><li><p><strong>Success Metrics:</strong> Success should be measured by tangible indicators (up/down arrows). For example:</p><ul><li><p><strong>Down Arrow:</strong> Reducing the time taken to make a decision.</p></li><li><p><strong>Up Arrow:</strong> Increasing the number of business questions answered.</p></li></ul></li><li><p><strong>Business Questions vs. Decisions:</strong> Framing requirements as &#8220;decisions&#8221; often leads to vague answers. Stakeholders provide higher-quality requirements when asked for &#8220;business questions&#8221; (e.g., &#8220;How many customers do we have in this region?&#8221;).</p></li><li><p><strong>The Strategy Story:</strong> Data strategy is simply the story of how data will execute the broader business strategy. Without a clear business roadmap, a data strategy becomes an empty &#8220;PowerPoint deck&#8221; without execution value.</p></li></ul><p>--------------------------------------------------------------------------------</p><p><strong>3. Structural Frameworks: Value Streams and Factories</strong></p><p>Data management functions through two concurrent value streams that must be balanced to avoid &#8220;building a plane while flying it.&#8221;</p><p><strong>The Stakeholder Value Stream (Product Thinking)</strong></p><p>This follows the progression from problem identification to value realization:</p><ol><li><p><strong>Problem Statement &amp; Ideation:</strong> Defining the issue.</p></li><li><p><strong>Discovery &amp; Prioritization:</strong> Identifying the most viable solution.</p></li><li><p><strong>Design, Build, &amp; Test:</strong> Creating the product.</p></li><li><p><strong>Deployment &amp; Maintenance:</strong> Ensuring long-term value.</p></li></ol><p><strong>The Data Factory (Engineering Process)</strong></p><p>This focuses on the internal mechanics of the data team:</p><ul><li><p>Identifying data layers (Staging, Raw, etc.).</p></li><li><p>Establishing hand-off points between team members.</p></li><li><p>Automating testing and deployment to reduce &#8220;blockers&#8221; in the factory line.</p></li></ul><p>--------------------------------------------------------------------------------</p><p><strong>4. The Governance Framework: Principles, Policies, and Patterns</strong></p><p>A foundational blueprint should be structured around three tiers of guidance:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MbbX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MbbX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.png 424w, https://substackcdn.com/image/fetch/$s_!MbbX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.png 848w, https://substackcdn.com/image/fetch/$s_!MbbX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.png 1272w, https://substackcdn.com/image/fetch/$s_!MbbX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MbbX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.png" width="713" height="188" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:188,&quot;width&quot;:713,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29265,&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://agiledata.info/i/194776145?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.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_!MbbX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.png 424w, https://substackcdn.com/image/fetch/$s_!MbbX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.png 848w, https://substackcdn.com/image/fetch/$s_!MbbX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.png 1272w, https://substackcdn.com/image/fetch/$s_!MbbX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F407bdfed-92ed-446b-824a-14d9bbd4467e_713x188.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>The Power Gap:</strong> A major critique of modern data governance is its lack of empowerment. Unlike financial governance (overseen by a CFO with auditing power), data governance often lacks the authority to &#8220;shut down systems&#8221; or &#8220;fire people&#8221; for policy violations, rendering many policies as mere &#8220;wishes.&#8221;</p><p>--------------------------------------------------------------------------------</p><p><strong>5. Cultural Archetypes: Pioneers vs. Town Builders</strong></p><p>The implementation of a data foundation depends on the organization&#8217;s cultural starting point:</p><ul><li><p><strong>Pioneers:</strong> These organizations prioritize experimentation. They go out, settle new &#8220;land&#8221; (use cases), and see what works. Governance in this model is iterative, hardening into policy only after successful patterns are discovered.</p></li><li><p><strong>Town Builders:</strong> These organizations prefer to build the infrastructure (the &#8220;town&#8221;) first. They establish the roads, schools, and zoning (rules) before inviting residents (users). This requires heavy upfront design but provides immediate structure.</p></li></ul><p>Failure occurs when an organization&#8217;s stated culture (e.g., &#8220;we are pioneers&#8221;) does not match its processes (e.g., &#8220;we have heavy, slow approval gates&#8221;).</p><p>--------------------------------------------------------------------------------</p><p><strong>6. The Shift to &#8220;Context-First&#8221; Data Environments</strong></p><p>Modern foundations are moving away from treating metadata as a byproduct (exhaust) of technical processes. Instead, they embrace a <strong>Context-First</strong> model where context hydrates the system.</p><p><strong>Four Tiers of Context</strong></p><ol><li><p><strong>Business Context:</strong> Definitions of entities like &#8220;Customer&#8221; or &#8220;Product&#8221; that remain stable regardless of technology.</p></li><li><p><strong>Structural Context:</strong> The layout of tables, fields, and system architectures.</p></li><li><p><strong>Operational Context:</strong> Tracking who accessed what data, query performance, and decision logs.</p></li><li><p><strong>Agent Context:</strong> The prompts and skills provided to AI/LLMs to guide their behavior.</p></li></ol><p><strong>Data Contracts</strong></p><p>A data contract is a formal agreement between data producers (e.g., software engineers) and consumers (e.g., data engineers) regarding schema, frequency, and quality. Governance teams should mandate these contracts to ensure that data moving from operational systems to platforms is audited and reliable.</p><p>--------------------------------------------------------------------------------</p><p><strong>7. The Role of Modeling and AI</strong></p><p>As the industry moves from the &#8220;Decision Era&#8221; to the &#8220;Action Era&#8221; (automated actions driven by AI), the importance of conceptual modeling increases.</p><ul><li><p><strong>Conceptual Modeling as Foundation:</strong> The conceptual model is a representation of business behavior, not data storage. It should be defined without looking at source systems.</p></li><li><p><strong>AI and Metadata:</strong> AI (LLMs) can &#8220;vibe code&#8221; applications and replicate front-end structures, but they struggle with back-end logic and physical modeling if they lack the underlying business context.</p></li><li><p><strong>Physical Modeling as &#8220;Cattle&#8221;:</strong> Physical modeling techniques (Data Vault, Star Schema, Big Table) should be treated as disposable. If the conceptual and logical context is strong, the physical implementation should be able to change (&#8221;be hydrated&#8221;) as technology evolves.</p></li></ul><p></p><div class="pullquote"><p><strong>Tired of vague data requests and endless requirement meetings? The Information Product Canvas helps you get clarity in 30 minutes or less?</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledataguides.com/ipc&quot;,&quot;text&quot;:&quot;Fix Your Data Requirements&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://agiledataguides.com/ipc"><span>Fix Your Data Requirements</span></a></p></div><p></p><h2>Transcript</h2><p><strong>Mustafa</strong>: Hello, Shane. Hi. How are you?</p><p><strong>Shane</strong>: Hey. I&#8217;m good. I&#8217;m good. Good to see you again. Thanks for having me on again.</p><p><strong>Mustafa</strong>: Pleasure. Pleasure. Thanks for filling up the slot. Actually, one of the guy pulled out. He had some personal issues. Which is fair enough. All of us are senior guys. And we do book it, like, couple of quarters ahead and commitment can come in. Thanks for jumping in and making this flock fill up.</p><p><strong>Shane</strong>: No problem. Hey, I&#8217;m looking forward to it. It&#8217;s kind of a subject that&#8217;s close to my heart anyway. So, as always, I&#8217;m sure to have an opinion.</p><p><strong>Mustafa</strong>: Yeah. Because last, last week on our panel discussion, we had this session. What is the impact of not having a data foundation? So we all discuss this four or five panelists, and people really lied. This. And people always forget to click like on YouTube. But they always send messages one to one that they really like it. What is the importance of data foundation? But one obvious question start coming in. What is data foundation? Because for different people data foundation are different. Like data governance is data foundation. But data governance is huge. Then data modeling also comes into data Foundation. There are tons of number of data modeling techniques going in. So people are asking what it is. So you said you want to jump in, you want to solve this puzzle. Floor is all yours. Shane, let&#8217;s start it. What&#8217;s in your mind?</p><p><strong>Shane</strong>: Yeah, I&#8217;m not sure I&#8217;ve solved it, but I&#8217;ve been working on it for a few decades, and I&#8217;ve got a set of what I call patterns and pattern templates. So. And kind of. I think about it like this. So my view, and it comes back to semantics, it&#8217;s all part of data management. So our foundational patterns, you know, patterns and governance, our patterns in engineering, our patterns and platform, our patterns and way of working, they all kind of, for me, come under that, that turn data management. And the reason I say that is I don&#8217;t like this idea that there&#8217;s a separate data governance group. And a separate data team. That silo behavior causes us massive problems. And so for me, it&#8217;s, it&#8217;s all within the same way of working. We may organizationally have our data team structures slightly different where, you know, people are focused and for scaling reasons and separate pods or groups. But I think governance is part of management. Yeah. And if we&#8217;re not governing our data, then we&#8217;re not managing it. So that, so that&#8217;s the first thing. If I kind of look at it from that lens, and then I look at. Kind of subdomains within data management, you know, we have ones which are around architecture and platform. And so when people say foundation. What I typically hear them talking about is technology foundations. You know, I need cloud analytics database. So I need an ETL tool. And what often happens in an organization is I&#8217;ll, I&#8217;ll get asked to come in and do some work with them either on a greenfields environment where they&#8217;re starting from scratch again. Or they haven&#8217;t had a data management capability or platform before. Or a brownfields one where they come in and ask me to do an architecture review. And as an ex technologist, my natural reaction is to get into the technology, right? Oh, that&#8217;s what they&#8217;ve asked me to do. Come in and look at our architecture, look at our platform, look at our tooling. And what I&#8217;ve learned over the decades of doing this is we need to step back and we need to look at some other things as well. We need to look at our way of working. We need to look at what our strategy, our team designers. And so over the years, I&#8217;ve kind of been building out this data blueprint template and set of patterns that I use. And what I&#8217;ve learned is the first foundational question that I always ask now, regardless of it&#8217;s greenfields or it&#8217;s brownfields or why I&#8217;m being bought in is what is the definition of success? Yeah. So if we&#8217;re going to spend this money, right, in terms of tooling and technology and people and change, and even if we&#8217;re using open source, let&#8217;s not. It&#8217;s not tell ourselves it&#8217;s free, right? Yes, there may not be a license cost upfront. But the five data people are going to cost you a million dollars in salary for a year if you&#8217;re in the US. Right. So there is a cost there. So let&#8217;s say we spent that year. We delivered everything we promised. Yeah, we made the changes that we needed to make. What&#8217;s the measures of success? Like what&#8217;s actually going to happen? And for me, I want to keep them really simple. For me, they&#8217;re just up arrows or down arrows. And I&#8217;m looking for things like, you know, when I often hear, we want self service. I&#8217;m like, well, that&#8217;s not a measure of success, right? That&#8217;s just a tool. It&#8217;s a pattern. So what does that give you? Oh, actually, we get quicker time to decision. Ah, okay. Right. So now what you&#8217;re saying is the time taken to make decisions in the organization based on data reduces right down arrow. Good. Or we, we don&#8217;t need to talk to the data team. Yeah, cool. That&#8217;s, that&#8217;s a process thing. What&#8217;s the measure of success? Oh, again, we can make decisions quicker. Okay, so we&#8217;re still back on that down arrow. Or how do we want to measure we&#8217;re successful with that? Okay, well, the number of requests going to the data team is reduced. Yeah. Or maybe we say, actually, it&#8217;s not self service is not the tool we&#8217;re going to use to deliver that measure of success. Maybe the data team are just going to get better and faster answering questions. Yeah. So the time to decision still goes down. But the tool we use, the thing we measure is how quickly the data team respond and answer that question. Yeah. And that should go up, right? We should be faster and faster. Yeah. Less time or more questions answered. And so that&#8217;s the first foundational piece I always think an organization should do. If we make this investment, what actually changes in our organization? What are the measure of success? What are the indicators, the arrows that are even going to go up or down that we can then prove that that investment was worth it? And I see lots of people not doing that foundational piece. What have you seen?</p><p><strong>Mustafa</strong>: No, absolutely. Absolutely. As you, as I mentioned the other day, right, I have come up with this canvas, which is, of course, influenced by your canvas. Where you had gone. Last time we had one year back, we had this session. Right? So you&#8217;re absolutely right. I always ask, first of all, everybody knows what is value, but value is very subjective for me. Everyone want to create a value. There&#8217;s no doubt about it. Right? You ask anyone there. Yeah, we have a value. But how this value come up? So you need to have questions, answers based on the answer. You need to have actions. And based on the action, what you will actually have in your hand tangible measurable. That&#8217;s. I also look into it. So that&#8217;s also my first step. I always start with the canvas. Where I say. Upfront. Okay. Let me put in a different way. Right? I know because as you mentioned, wherever, whenever you go and talk to people, people are normally talking about technology. Normally. They have new generative AI, gente AI. We want to, we want to do something with it. Right. We have a car. There&#8217;s a new car in the market you want to buy. The question is why you want to buy a car? Right. So you need to have those things in your hand. So, yes, for me, that Foundation is also you put up your questions and answer the ones you are already be doing. Normally people want to explore new things. I tell them, do what you already are doing and how you can improve it. If you do not know the measure of improving it. Forget about the new things. I start from there once they know. Okay. Okay. We have been doing this with X technology or maybe why technology. And it has been giving us this value, but we need to go next level. Okay, let&#8217;s discuss. But what, what you&#8217;re achieving. So that&#8217;s how I also started.</p><p><strong>Shane</strong>: Yeah, I, I use a frame in that similar but slightly different maybe. So let me talk through those. And it comes from the struggle that most data teams have. Differentiating between the products they&#8217;re building. If they&#8217;re a product team or the dashboards they&#8217;re building, if they&#8217;re not. But the things you&#8217;re building, right? The things they&#8217;re building using data and information that solve business problems, you know, help drive decisions, actions, outcomes and value. And so they like boxes of cereal right on the, on the shelf. You know, cocoa pops, honey puffs, right? They&#8217;re things that people are going to intangibly buy in your organization and use because it has value to their lives. And so we&#8217;ve got these products and then we&#8217;ve got the foundations of how we work. It&#8217;s the factory that builds those products. And data is a funny thing, right? We kind of cross people that have a factory. We want to build everything as a factory, fully automated, but for some reason, the data is always so shitty or the requirements are also new. They actually, we can&#8217;t just cookie cut a factory that works as a bunch of machines. So it&#8217;s this blend of artisan and automation. And people tend to confuse the foundational work around that, that factory and that way of working with the product we produce. And then what they&#8217;ll do is they&#8217;ll tend to focus on one or the other. You know, let&#8217;s do a founder. I don&#8217;t have a time to hear this. There&#8217;s still a foundational build. Right? It&#8217;s going to spend a 12 months. It&#8217;s always 24 to build in the foundation, change the technology, build in a lake. Right. And the problem with that is there&#8217;s no value to the organization. Yeah. Like, if we were building a physical factory, then maybe you could go and say, you know, there&#8217;s some steel, there&#8217;s a roof, there&#8217;s some machines. We&#8217;re getting there. But the problem with data is we, we don&#8217;t show how we&#8217;re building out that, that Factory way of working. And so 18 months later, we built our foundational, we&#8217;ve built our technology foundation in our factory. But we&#8217;ve delivered no value to the organization, and that causes a major problem. What&#8217;s the alternative? Well, the alternative is we just build ad hoc products. Yeah, we go in and we just build a product and deliver value. Right. Great. But then we get no automation. They changed our way of working. No ability to scale. And as we add more and more of those products, the business as usual over here to maintaining and just bleeds all the effort out of the team. So what we want to do is we want to balance those two things. Yeah. We want to build out the foundations at the same time we&#8217;re delivering value. And that&#8217;s hard because if you think of it, what we&#8217;re doing is we&#8217;re building the plane as we&#8217;re flying it. Yeah. And tell me any other industry when we do that, right? It&#8217;s kind of, you know, you don&#8217;t go, you know, if you&#8217;re a surgeon, you don&#8217;t go into an operating theater that&#8217;s emptying and go, oh, yeah, I&#8217;m going to do open bypass heart surgery, but I&#8217;m also going to build the machine that pumps the blood around. Right. And design the, the scalpel.</p><p><strong>Mustafa</strong>: Yeah.</p><p><strong>Shane</strong>: And so we&#8217;ve got to realize that we have to work on both of those things together. And an easy way to think about it is people always talk about people, process culture and Technology. Yeah. So the reason I&#8217;m looking left is I&#8217;m looking at my blueprint, right? And just going through all the bits that I make sure I fill out because that&#8217;s the foundational building blocks or patterns that I use. And so if we think about the people processing technology. The thing we don&#8217;t focus on after we&#8217;ve got our measures of success is the team design. Right. The version of the operating model. And that&#8217;s the next thing I always do is a foundational piece. As I go, what are the personas in our organization? Do we have this idea of data stewards or not? Yeah. And what do they actually do? Do we have a data engineer on how it looks engineer? Like, what&#8217;s the language? If we&#8217;ve already got a team that we already have. And how do they operate together, what&#8217;s their team design? You know, you can get things from team topologies. Are we working in small squads? Are we working in bigger teams? Do they do end to end? Do they do handoffs? And for me, that&#8217;s the next foundational piece of work, because by documenting the team design. And that flow of work, we get a foundational piece of visual hints on how the way of working is going to happen. And we can do that relatively quickly and early, right? We don&#8217;t have to over bake it. And once we have that, then we go into the next stage, right, which is what other foundational pieces do we need in place? But to come back ways of working and building products that have value, they&#8217;re two things that have to happen together. Otherwise we give ourselves in trouble with our stakeholders. Quite rightly, because we&#8217;re not earning value.</p><p><strong>Mustafa</strong>: Yeah, absolutely. I see. Then what, what you are going toward is data governance, because nowadays I&#8217;m building a kind of data governance strategy for someone. Right? They ask you to build them this thing. I said, okay, let me build it for you. So their first question was, what framework you will bring in? What tangible thing we will have in our hand? I said, no, you can&#8217;t start from the what first. You need to understand what is why then how you&#8217;re going to do it and then the technology comes in. They start asking you which tool you will use. I said, stop for tattoo. Don&#8217;t talk about tools. First go towards governance. Because, because nowadays we have been discussing this CDO rule, Chief data officer. Right? So, like, what this role will do is. They will create a data strategy with the business. They will create a data governance strategy with themselves and they, of course, did us two words. And then there are data management strategy comes in. These three things comes right. Of course, first is business strategy. Then data strategy, then governance strategy and then data management strategy. Right. So what you are going toward is yes, as I previously just mentioned that I normally tell them, hey, if you want to do something, a data product, let&#8217;s take an example, how you are doing things now. People normally forget about it. People think that let&#8217;s take an example of generative AI. A tool came in. Hey, let&#8217;s bring the tool and let tool give the tool the data and let tool tell us what use cases they can bring it out. Right. That was the reason failure of generative AI. So I told them, no, tell me, even if you are doing manual, get me with your data analyst. What you are doing manually or semi manually or maybe something else. Let&#8217;s see that. Which is the actions can be manual or semi manual XYZ and then automated. And from that practices, then personas will come out. Stewards will come out. Processes will come out. So processes has to be predefined processes. It cannot be bring a tool and tool will bring a process. You need to have a process minus technology. What do you think?</p><p><strong>Shane</strong>: So I think the, there&#8217;s a whole lot of bundle in there, right? So let me kind of unpack it.</p><p><strong>Mustafa</strong>: Yeah.</p><p><strong>Shane</strong>: So I think one of the points you raised and at some point I kind of missed is one of the first things I&#8217;ll do when I&#8217;m working with an organization on their foundations, as I will observe. Yeah. Because I want to understand what the current state is because it gives me a whole lot of hints. If it&#8217;s a green fields, sorry, if it&#8217;s a brownfield environment, right, I&#8217;ll observe the data team, obviously of the way they work. I&#8217;ll do some workshops with them to understand that. I&#8217;ll talk to the stakeholders to see where their real pains are. If it&#8217;s green fields, I still do the same thing because even though there&#8217;s not a data team and there&#8217;s not a data platform, there&#8217;s a whole lot of data work, right? It&#8217;s just been done in excel and outside.</p><p><strong>Mustafa</strong>: Somebody else is doing it. Yes.</p><p><strong>Shane</strong>: Yeah. Yeah. Somebody&#8217;s doing the data work, right? Normally. And I will create some very light artifacts around current state.</p><p><strong>Mustafa</strong>: Yeah.</p><p><strong>Shane</strong>: Because that helps us understand what those measures of success are. Right. What we have to change, and if we change things, what success if we make those changes looks like. Second pointers, and you kind of mentioned it is. The data strategy is just a story on how we&#8217;re going to execute the business strategy. So if somebody comes in and says, do a data strategy, it&#8217;s like, well, what&#8217;s the business strategy? You know, and if I get a slide that makes no sense to me.</p><p><strong>Mustafa</strong>: Yeah.</p><p><strong>Shane</strong>: The conversation in is, well, I don&#8217;t understand how we&#8217;re going to tell a story around how data is going to achieve that because that doesn&#8217;t, I don&#8217;t understand the strategy. You know, like what&#8217;s measure success for the organization, make more money, reduce costs, reduce risk? Yeah, great. But actually what we&#8217;re going to do, right? Like what actions in the next two years are we going to increase market share? Are we going to sell more products? Are we going to reduce cycle time for a patient coming into a hospital? Right? Like what actually is our strategy and our roadmap to achieve it? And from there we can say, right, how does data support it? What I see happen a lot. And again, one of the things I do when I come into an organization do the blueprint, the first thing I ask them is, could you please give me the four other data strategy documents that you&#8217;ve had from forever data consulting companies? Because, you know, they&#8217;ll be really useful. And they say why? And then my standard joke is I just want to know whether triangles, circles, squares or matrixes of the flavor of the month right now. But that&#8217;s not really the reason. The reason is there&#8217;s always good information in there. You know, there&#8217;s spent some time with some good people to create this document that&#8217;s a strategy. And that is valuable. It shortcuts how much work we have to do going forward. We still need to revalidate and make sure it&#8217;s not out of date. But the reason they have four other ones is because they got a PowerPoint deck. With some pretty pictures that tells them a strategy and there is no execution plan. There is no roadmap. There is no measures. I&#8217;m going to come back to it. No measure success. There&#8217;s nothing telling them whether this strategy is working or not and whether they should change it. So based on all that. The other thing I talk about is the blueprints we do should be light. Yeah. So we&#8217;ve got this again big design up front problem. We kind of want to see a bit of a blueprint, which is a vision of the future and how we&#8217;re going to get there. Measure success team design, architecture, ways of working processes. But we don&#8217;t want to spend a year doing that because a year of that work has minimal value. So we&#8217;ve got to be able to do these light artifacts, right, and then iterate them as we go forward. And then I&#8217;ll come back to the last one, right? Data stewards. So my question there I always have for an organization is, okay, if our team design has a role or a persona called data steward and we know what they&#8217;re going to do, right, what, what their job is, what their persona is, what their role is, what their skills are. What changes. And what will happen, right, is I will often hear we get better data quality. And then I&#8217;ll go back to the team design and I go, really? So what we got, right, is we got this data governance group, and this is typically a large enterprise. Right? Data governance group over here. Data team over here. Data management across the top. And you&#8217;re telling me that the steward is going to change the quality of the data. Because, hell, the ETL developer going in there and writing code in dbt, right? Yeah, they got no accountability on quality. It&#8217;s just wrong. Right. And so we&#8217;ve got to tie back to that foundational piece of if that metric, if that measure of success of increased data quality, whatever that means improves, like which group of people are responsible in the team design and the way of working for making that change. And that&#8217;s how I think about it, right? Like almost like Lego pieces. We kind of. Plugging them in. And the problem is the Lego pieces are always correlated. You know, your team design, your measures exist. They change the way you work. They change the way the factory works. They change the technologies you need. You know, my close-up one the last couple years put in the data catalog. Well, yep. The invisible context for an organization has value. But needs to start talking about, well, what&#8217;s the team design for the catalog? Right? What&#8217;s the measure of success? Is it number of data assets logged? I&#8217;d say that was a weak measure. So you can see how they all kind of, the foundational pieces all kind of interrelate. And you&#8217;ve got to be really good at choosing small versions of each of them and then iterating them and see how they then work or don&#8217;t work with all the other foundational pieces. And then you kind. Of doing systems thinking, right, you&#8217;re tuning the overall system of the organization over time. Does that make sense?</p><p><strong>Mustafa</strong>: It makes sense. So for me, this is the first part. Right? Because then, so you, what you&#8217;re referring is when we start a journey. What we need to do, we need to understand the success factor, as you mentioned, the image. I call it decisions. Nowadays I&#8217;ve started talking like four hours. We had operationalization error where this called ERP, sap oltb applications came in. The second era was analysis era. Which was, which brought in data warehousing, task schema, snowflake. Then third era was analytical error. Analytical analyze data mining protection forecast data science stuff. Now the current era, what I define is a decision error. Everything has to start. With a decision. What you want to do. Starting point, what decisions will be impacted with this initiative? And from that everything. Your tickle back, you can, you can bring it back. Okay, I&#8217;m going to take a decision. Like buy go on the cloud from on premises to cloud. That&#8217;s the one decision. Now what you need, I will find it out for you. So that&#8217;s, that&#8217;s the starting point foundational that the starting point of a journey. Now let&#8217;s go to the next step. Next step will be your, I would like to bring your canvas into it because once we go into artifacts. Do you think, I think you will say that and I want to emphasize on it. And I&#8217;m following that as well after my canvas. Where I finalize a product or a requirement. Next, my canvas is your canvas, by the way, which I take to the canvas to the, to the customer and start asking questions. And as in your book, you mentioned the moment you customers start thinking about something else. Stop over there. Whatever is on top of their mind, that is what your initial requirement should be. Tell us about that, that foundation stuff.</p><p><strong>Shane</strong>: Yeah. So. So it&#8217;s interesting when you said the word decision, I naturally took to a business decision using data because I&#8217;m a data person, right? So I&#8217;m like, which decision do you want to take? And then I naturally went, well, actually, we&#8217;re in the era of decision right now, but. We&#8217;re accelerating so fast. We&#8217;re going to be in the, in the wave of era of action. Next. Right. We&#8217;re going to stop talking about decisions and which action needs to be automated. So that&#8217;s where I went. Right? And then you qualified it with, which a decision around a change we have to make. And that, for me, is, is the key, right? Is this idea that we&#8217;re changing something, changing the way we work? We&#8217;re changing the way the team&#8217;s designed. We&#8217;re changing the technology we use. And so I sat more and more talking about change. As kind of the thing we&#8217;re focused on because decisions and actions, as I said, always takes me back to the data world of the product we&#8217;re building, not, not our foundational way of working. And then, of course, we get into change management, which has been around for a long, long time. Business process reengineering. And we bring us back patterns that have had value and we kind of lost, but we, we won&#8217;t go there. So the way I think about the next step is I think about value streams and factories. And so a value stream is the end-to-end process from when a stakeholder knows they have a problem. And they put their hand up. I have a problem. I need some help and it needs some data to when we deliver something of value that solves that problem. And that is the process that involves things like problem statements, ideation on how we might solve it, discovery or requirements, prioritization. The left hand side of what I call my continuum. Which is, and I&#8217;m a great fan of product thinking in that space. Right. So not IT thinking, not projects, not, you know, rescues, none of those things that we, we get from the IT domain. I&#8217;m a great fan of pulling out patterns from the product domain on the left hand side of that. So identify the problem, idea how we can solve it, discover which solution is going to be the most viable prioritize which one we&#8217;re going to work on next. And then the right hand side of my value stream is around design, build, test and deploy and value. Right. And then maintain. So we kind of lost designing in our, in our data domain a while ago with the modern data stack. Sure as with AI now, we&#8217;re going to be bringing it back in because those designs are actually the context or the knowledge that llms need to do the work without us. So, you know, that design, build, deploy, maintain value phase. And so I want, I want the blueprint to have really simple, what we call nodes and links. Like, just think of them as stickies and lines. Like who&#8217;s defining the problem space? And if I have a problem as a stakeholder, how do I engage the data team? Or do I not? Do I have a team of ba&#8217;s back to the organizational design team design? How do they get into the ideation phase? Right. How do we know how we might solve it? How much time are we going to spend on each one of those all the way through? And then I couple that with the factory process. And that is as the data team. Okay, I understand now which problem I&#8217;m going to work on. What&#8217;s my process? You know, do I naturally just go and grab the data first? Yeah. Or do I grab, see what data is available and mock up something and give some feedback? Or do I go grab all the data or a thin slice? Yeah. What, once my data layered architecture? You know, which, which layers am I having, which ones are rules I have to comply with, what tooling do I have available? How do we hand off the work between the team members and that factory? How do we test it? Yeah. How do we deploy it? So that all the way from I&#8217;m going to touch a bit of data because I know what the problem I&#8217;ve got to solve is to I&#8217;ve deployed something that somebody can use and it has some value. And so I&#8217;m a great fan of a thing called tedex talk called how to make toast. And it&#8217;s just a visualization way of doing systems thinking. And so as part of that foundation, I&#8217;ll get the data teams and the organization to, to work through those two value streams, right? Those two flows of steps, nodes and links. And so when we do that, what that also allows us now is to visualize where we&#8217;re about to make change. Because we can start basically voting and say, well, part of the value stream is broken, you know, so perfect example. If I look at somebody&#8217;s prioritization queue, their backlog and they&#8217;ve got 554 jira tasks in the, in their backlog queue. And some of them have been sitting there for a year. I would say we have a problem on the left hand side. Yeah. Around ideation, discovery or prioritization. And then we probably also have a problem on the right hand side around our factory that it&#8217;s too slow to move the, the work, but we want to focus on the lift. Right. We have a whole lot of work there that can&#8217;t be a priority because we haven&#8217;t built it. If we look at the way the teamwork and the data factory, you know, we can see blockers, right? We can see that, you know, this piece of work seems to sit in, in the factory for too long. You know, if you think about it as a, as a product, like a actual factory building cereal, making cereal, you know, we can watch the machines and we can see bring in some lean thinking and see how long they take. And again, we can go back to measurement. You know, the time between these two things takes too long. Like, what can we do to reduce the time? Is that more humans, more automation? Doing less? They&#8217;re all choices we can make. So I come back to your point around change, right? We want to visualize the system in those two different ways, and then we want to make conscious decisions on what we&#8217;re going to experience and changing. And that&#8217;s the last point. They&#8217;re experiments. We have a hypothesis, right? If I change this thing. Then good things will happen. And sometimes bad things happen, right? My favorite one. Is bring three more people into the team because we&#8217;re a bit, bit behind on building our products. Okay, let&#8217;s think that through. Right? We&#8217;re going to bring somebody in and we&#8217;re going to put them on the ground with the team. And let&#8217;s assume we don&#8217;t have a lot of documentation around the way we work or the way our systems work. So now they&#8217;ve got to learn our way of working. They&#8217;ve got to learn our technology systems. They&#8217;ve got to learn our domain. And how&#8217;s that going to work? Well, the team doing the work right now are going to spend half their time bringing those people up to speed. Now, in theory, they&#8217;ll, they&#8217;ll help us accelerate in the future. But right now that change is going to cost us three months of working slower.</p><p><strong>Mustafa</strong>: Yeah.</p><p><strong>Shane</strong>: Is that okay? Right. Because, you know, that&#8217;s the reality of that hypothesis. Yeah. So I&#8217;m with you, right? And your foundational space. Think about changes, right? Changes should result in things being better. You know, faster.</p><p><strong>Mustafa</strong>: Yeah.</p><p><strong>Shane</strong>: Quicker, more fun, easier, those kind of words. Does that make sense?</p><p><strong>Mustafa</strong>: Yeah. Yeah. It makes sense. It absolutely makes sense. Before you go to governance and decomp management again, chicken thing, right? I have those questions as well. But let&#8217;s bring from this data product concept as well, just for our audience as well. And just to head out your, your thoughts around it, because as we mentioned, the previous adults were about project errors. We build a project. We start a project. We build everything front end to end centralized. And we, we wish that we can do something out of it. Right. That was projects. And then this product era comes in. Which you still feel is there. For me. I want to did a product is perfect. You can have a data product or you can have a data as a product, whatever you want to call it. But decision I want to bring in decision, right? Because why sometime I conflict with data product or software engineering practices is because you&#8217;re again creating a product, product may or may not work. I want to attack just, just to share my thought, right? You can comment on it. I want to attach a decision with a data product. I don&#8217;t want to start a data product without a decision. Because you can create a product, you can have a super good dashboard or headboard or slicing, enticing, and you end up having more decisions benefit on top of it. So what&#8217;s your thought on it? That die die or data product have to map. With a decision rather than analysis or analytics?</p><p><strong>Shane</strong>: Yeah. So a little bit of semantics, right? Just for people listening so that when I use different words, they know kind of where I&#8217;m at. So in my language, an information product, there&#8217;s a boundary of a whole lot of things, data code, everything, visualization in a little box that solves the business problem. Yeah. So that&#8217;s, that&#8217;s what I call an information product. When I use the word data product or something like that, I&#8217;m talking about data essay. I&#8217;m talking about a table, right, that data asset identifying data products shouldn&#8217;t, but they tend to become just tables, right? Their data assets. So that&#8217;s, that&#8217;s my language. Right. And, and, you know, we&#8217;ve all had arguments around data product, data product thinking, data as a product. Right. And, and so I always think you just got to anchor your definition so that when you&#8217;re talking, people are clear what you&#8217;re saying. Right. It&#8217;s kind of the English to French problem.</p><p><strong>Mustafa</strong>: Yeah.</p><p><strong>Shane</strong>: But I&#8217;m with you. Right. When I talk about information product, I talk about the problem to be solved. The decision to be made. The action that will happen that needs to be happened based on that decision. The outcome that will happen if I take that action and it&#8217;s successful and the value that will be realized if that outcome is, is positive. And so that&#8217;s, that&#8217;s my thinking frame, right? And that comes from the product world. And then I make in the, in the canvas, which is a requirements gathering template. I change the language from decision to business question. Because I&#8217;ve found that if I say to a stakeholder what decision do you need to make? I don&#8217;t tend to get good answers back. Yeah. I tend to get. Fluffy words that I don&#8217;t understand and I can&#8217;t figure out how we can give them information to support that decision. Not always, right, but nine times out of ten. If I ask them what business question they want to answer with data and they start with who, how long, how many, how much, where, why? I will get back five to ten good business questions. And, you know, there&#8217;s things like, you know, how many customers do we have, which general are they coming from and how much money do we make out of them? Yeah, they&#8217;re good business questions. I can then ask them, okay, if I answer those business questions, what action will you take? Yeah. Oh, well, I&#8217;ll identify the customers with low margin and which general they&#8217;re coming from. And we&#8217;ll either, the action will take us either remove that channel or put investment in to make the people coming through that channel more profitable. Right. So what I&#8217;ve gone from as a business question to an action and then the outcome and the value. And these are decision in between, right? You&#8217;re making a decision to shut that channel down or you&#8217;re making a decision to invest in those customers through that channel to increase margin. But it&#8217;s kind of inferred, right? Now, what&#8217;s interesting in the AI world. Is with LLMs, does that change. The model, the pattern? Right. And I haven&#8217;t finished that work. Because what would happen if I told the llm that this action I wanted to make, is that enough now? And these are questions I haven&#8217;t answered, right? Because we&#8217;re into the, we&#8217;re moving into the action era, right? We&#8217;re moving away from the decision era and we&#8217;re moving into the action wave, I think is where the world will go. But yeah, so that&#8217;s where I&#8217;m at, right, is I talk about business questions that you need to answer and then what action will you take if you answer it? And then I get really strong requirements that a data team can, can build based off.</p><p><strong>Mustafa</strong>: Awesome. Awesome. We are on the same page till now. Now let&#8217;s go to the next stage.</p><p><strong>Shane</strong>: Yeah.</p><p><strong>Mustafa</strong>: Because normally what we have just defined in last three, we move so quickly here. It&#8217;s already 35 minutes. So fun. Right? This is what, what normally I call it when I went into your canvas when you had a discussion. What you&#8217;re doing, it&#8217;s by right. It should be an obvious thing for me. It&#8217;s not any journey. All these things should be obvious. But people have forgotten about it. Because they were time pressure. There are so many pressures and they want to do it things very quickly. That&#8217;s why they forgot about these things. But your canvas says, right? You have to start with why and then how and what all those finish and stuff. Now let&#8217;s go. Okay. We as a customer, customer says, okay, we agree with you. That we have defined these basics. Now what? Now what is next stage of data foundation? Because the moment you have a data strategy, which we just discussed why thing, everything. Now there&#8217;s a governance and in parallel there is management data management. Two things underneath. Right? That is where I feel is an egg and chicken. Because if you create governance, which include principles. Procedures, principles, policies, procedures, metrics, tools and responsibility, all those things. Right? That you define and you are telling your workers, do it. But sometimes what happens doing ground reality is much different as compared to what we define. Now you go the other way. You say, okay, let&#8217;s build something and learn from there and then create a governance practice policy, blah, blah, blah. I normally give an example. You, you, you have a new colony. We have a open land. People came and start building houses. In the middle. You have a road can go through. You don&#8217;t have any direct any hurdles over there. But once kids comes out. They can run across the roads. Now you have a, you need to have a policy or you need to have something or maybe a divider across both sides so kids cannot go through. Now kids close up. They start playing. They play with cricket. We, we both know cricket with hardball and this stuff that can damage the cars who are going fast. Now you create bigger walls. So now these are the best practices or experience coming in which goes into a governance documentation. That if you build a new load, you need to follow this, right? So it&#8217;s an thing that is where normally wherever I&#8217;m talking, they are confused. What is foundation? Because if you build up front, we might not need it. But if you bring later, maybe it&#8217;s already broken. And we go under compliance. Way to start governance and management practices, various stuff.</p><p><strong>Shane</strong>: So I remember my language governance as part of management. I&#8217;ll just keep reinforcing that. So this is really interesting, right? And this is something I&#8217;m working on right now.</p><p><strong>Mustafa</strong>: On.</p><p><strong>Shane</strong>: And I kind of think I have a set of patterns now, but I&#8217;m just testing them. And it&#8217;s one I&#8217;ve struggled with for decades, right? Because it comes back to this idea of building the plane while you&#8217;re flying it, right? Like how much of the plane needs to exist. And experimented for years around this and never really got traction. And so the framing of the pattern that I have in my head right now is this idea of pioneers and town builders. And you need to decide which of those two patterns is your organizational culture. And that is a decision that you need to make upfront. Because that frames everything else. Now everything else is just a lego block, right? It&#8217;s a pattern. It&#8217;s a patent template. I&#8217;m doing lots of work on those at the moment. For a whole reason. I mean, we could talk about in a minute around why I think templates actually help solve the problem that we had, which is we lost a lot of our domain expertise when, when we went to democratization, when we bought more people into our domain to do the work that we used to do as experts. We lost the education, we lost the training. And that was a bad thing, but it was also a good thing. So I think we have to teach people to do the work we used to do. And ways that had value. Maybe not the ways we used to do them, but in the same pattern they had value. Like data design, right? We should always do a light data design because it is a valuable thing, but we don&#8217;t need to spend six months doing enterprise data model anymore. So I think these patent templates are actually the unlock to teach people to do what we&#8217;ve got taught over decades to do. But I&#8217;ll go back to pioneers and town builders. So are we going to go out and experiment. Heavily. Find things at work? Buy things that don&#8217;t, and then start codifying those into our town. And build the town after we&#8217;ve pioneered the settlements. Is that our culture? Or do we want to actually build the town? And then get people to come and live in it? Right. Is that our culture? Now, when we build the town again, we can&#8217;t spend two years building the town before we let them come, right? So we&#8217;ve still got to do it and they&#8217;re iterative and a way that has agility. So let&#8217;s say that that&#8217;s a culture decision. And it&#8217;s an important one. And then what I can go back to is I can take that decision that organization has done and I can look at our team design, our measure success, our value stream and our data factory processes that we think we&#8217;re going to run with and go, well, you told me that you&#8217;re going to be pioneers and yet I see heavy team design, heavy value stream processes, right? So you actually, that&#8217;s not your culture. Like one of those two things is out of sync and we need to fix it. And so then, okay, let&#8217;s say that we pioneer all we town builders. The key thing is we have to think about principles, policies and patterns. Those are the three P&#8217;s that I use. And so again to anchor my language. A principle is like a culture thing. It&#8217;s like an agile minute based to us. We prefer this over that. We prefer small teams of three over big teams of 10. Yeah, we prefer delivering value earlier, even though it&#8217;s riskier. Than waiting three months and delivering value later than as higher quality. Or we prefer delivering value later with high quality over early with high risk. They&#8217;re just principal decisions that we want to make. And they set the culture of the team and the way the organization works with data. Policies for me are immutable rules. They are things we will get fired for. Yeah. So you should never store a customer&#8217;s name date of birth and passport number and clear text. Right. That is a policy. But we have to enforce that policy. So if I ever see a customer name date of birth and passport number in an excel spreadsheet. Then we&#8217;ve broken that policy. And the person who&#8217;s done that. Should be. Censured or fired. Right. And what happens though is when we talk about data foundations and especially data governance, we treat policies as wishes. And I&#8217;ve done it, right? I used to write these principle and policy documents that were massive and they were kind of rules, but they either got fired. You know, I work for a bank and they had all these policies. And yet I saw them posting a customer&#8217;s name. Their account number and their last transaction in a teams chat because that was the, yep, because that was the only way that team could solve the problem for that customer at the right time. And so they were breaking the policy. Now, the reason they broke the policy was because no other system was in place that let them solve the problems and they had to solve it. So they solved it with the tools they had. But what we should be saying is that team&#8217;s breaking the policy. What do we need to do to change what that team&#8217;s doing? So they actually don&#8217;t break the rules? Yeah. So policy is very small targeted set of rules. Like you said, the police state, you know, police things, you know, you, you can&#8217;t drive a car at 200ks an hour past a school road, you know, during school time or you will be locked up in prison, right? Quite rightly. Um, so that&#8217;s there. And then patterns are all the other things that are useful. Yeah. They typically what I see people write policies as if you do this, it&#8217;s valuable. If you do this, it&#8217;s useful. You should kind of do that. And that&#8217;s what I look at those three P&#8217;s principles, things we should subscribe to this versus that policies rules that I&#8217;ll get fired if I actually break them. And so I&#8217;ll come back to that. If we say that that&#8217;s the rule, then we even need to automate detection of when we break the policy. Or have auditors in our organization that will go out and audit that those policies aren&#8217;t being broken. If you don&#8217;t enforce a policy, then actually it&#8217;s not a rule, right? It&#8217;s a wish. And then patterns, what we should do is have people that share their patterns or people that define their patents. So let&#8217;s take that back to. The idea of pioneers and town builders. So if I&#8217;ve got a pioneer organization, yeah, then I&#8217;m expecting to set some principles upfront. You know, some disperses there. I&#8217;m expecting those pioneers to iterate around the patterns. And then I&#8217;m expecting to discover the policies that are important. Yeah, because they&#8217;re going to do some things that are wrong. And then I&#8217;m going to go, yeah, no, actually, we need to harden that. Right. And so we&#8217;d then bring that back into a policy. If I&#8217;m a town builder, I would expect the principals policies and patents to be built by the town building team, the data team as they work. Still iteratively, not two years up big build up front. But I&#8217;d be expecting them to do that work. So then it comes back to team design. Right? Because what I&#8217;m then saying is data governance is just a skill and a set of roles within the people doing the data management work. It&#8217;s not a separate team. But you can make it work. If you&#8217;re a town building organization, you can have a separate governance team, you know, like a team of architects or a team of town planners from the council that make sure you&#8217;re actually buildings of high quality that aren&#8217;t going to fall down in the next rate. Right. But you&#8217;ve got to decide which of those you are. And then bring in everything else to align with that way of working. Does that make sense?</p><p><strong>Mustafa</strong>: Yeah, that makes sense. But I want to, I want to throw a challenge over here in my point of view as well. Regarding governance and, and data management. Right. As you correctly mentioned that. When we are doing stuff, then, then governance, as you mentioned, is part of the management. Right. But, and you, you gave an example of pioneer or Greenfield or wrong food kind of stuff. Right. But for me, in data world, right, because everyone wants data. Decisions on data or value out of data. And for me, they might not be any organization. It will be hard to say that anyone who do not have data, everyone have data and everyone have one or the other way data management practices already there. Because we have come from four hours operationalization analysis, analytics. And now decision you&#8217;re saying actions as well. But I bring action under the umbrella of decision. Right. Because without any action decision cannot happen. Right. So now the thing is. I want to bring this anger into it. That that era where you do things and learn and create practices. And policy, as you correctly mentioned. I always principle. Policies and procedures or patterns, these things. Right. I think these are these templates are already there. I think that is where I am already also telling customers that either you are, your domain specific, your banking or telco or some one of the, one of the domain you are holding. And there are a lot of patterns and templates already there. So I. Am on the other side of the table with apologies to you. Is I don&#8217;t want to mix governance with management. Because if you merge governance with management. Governance change based on what you&#8217;re doing. I feel we have come out of that era where governance practices are already matured. I feel you can bring up the template with by the, by the smes subject matter expert, as you mentioned. Last time subject matter expert was the one who doing something. Now we brought other domain people into the data world so they can do things for us. And that is there, I think they&#8217;re all chaos started happening. Right. So I feel data governance need is kind of a law. You&#8217;re creating a town. The data governance is law and legislations, whatever you want to call it. And managing is doing the construction. Now there are best practices when you&#8217;re building a town. You already know which kind of housing Society is going to have, which kind of knowling you are going to have. You need to have a police station. You need to have how many hospitals, how many pharmacies you want to have. So I, I feel this team need to be little small team. I&#8217;m not saying a bigger team, small team on governance need to be there. And there has to be domain expert and they have to be data savvy. Well, I can, you can say I&#8217;m a biased person for a data because I am from data. I always emphasize that in data governance, data people need to be there. Because once data people there, they already know what they are building and they can create principles, policies and procedures and patterns based on their past experiences. We don&#8217;t need to reinvent the wheel. I think we are already 10 minutes left already. Do you have a hard stop?</p><p><strong>Shane</strong>: No, no, I&#8217;m good so we can carry on if it&#8217;s okay with you.</p><p><strong>Mustafa</strong>: Yeah. Do stop me because I&#8217;m just throwing my ideas because I&#8217;m building a data model strategy for someone. So I was telling them, bring up the best practices, right people, because skill set is very important. Nowadays, because of AI, AI is a black box. It creates something. I have an example I gave into last panel discussion. I give you to you now as well for your thought process. Right. That if you don&#8217;t have this, then everybody will do whatever they want to do based on their experiences. And you will have multiple flavors of data governance. If I go with your mindset that data management need to have a data governance, do you see this risk multiple flavor of governances.</p><p><strong>Shane</strong>: Yeah, yeah. But.</p><p><strong>Mustafa</strong>: Oh, you don&#8217;t mind that.</p><p><strong>Shane</strong>: No, I do mind it, but I think it&#8217;s the reality at the moment. So again, I&#8217;m going to slightly disagree with you but agree with you at the same time.</p><p><strong>Mustafa</strong>: Absolutely. And on the, I want to hear it out for my. I can.</p><p><strong>Shane</strong>: Okay. So let&#8217;s, I&#8217;m going to put a stake in the ground and then I&#8217;ll talk around and come back to it that I don&#8217;t believe we have data governance. I don&#8217;t believe I&#8217;ve ever seen it. Right. And let me justify that. So if I&#8217;m in an enterprise organization. We have financial governance. Right? Like we have people who are accountable, CFO to make sure that our financial records are accurate. And we don&#8217;t overspend. And then they have a bunch of principles, policies and patterns that help them do that job. They have a thing called a profit and loss. It is a pattern. That every accountant applies like a balance sheet, like a trial balance, like a cash flow statement. That is part of the practice. As part of their way of working, you get qualified as an accountant, you know what those patents are. You apply them. You are ordered by them. You are held to account. They are governing artifacts. And the data domain, we have check. We have data modeling, but you can have any flavor you want and you don&#8217;t even have to follow it. We never audit any of our data models. Right. You can say that you&#8217;re storing data encrypted, but does anybody ever audit you? You can say that you can&#8217;t do this. But then people go and do it. And that&#8217;s part of the problem. And if we take our town plan, you know, the idea of building a city. We have governance because there is normally a council, a regulatory body that says if you&#8217;re going to get, if we agree that you&#8217;re allowed to build that town, here&#8217;s the rules. You know, you have to have a school. You have to have buildings that aren&#8217;t more than three stories high. And that governance body has power. To punish you if you don&#8217;t follow the rules. In my experience, it&#8217;s very rare for a data governance group to have power in an organization. Now in some organizations it does, but I find that in my experience a very rare occurrence. And so I then say back to my stake in the ground. I don&#8217;t think most data governance teams are governance teams. They&#8217;re not auditors. They&#8217;re not the CFO. They&#8217;re not the risk committee for a bank that will, you know, shut you down if you break the reserve bank rules. You try to do the right thing, but they&#8217;re not empowered to govern. And that for me is the problem.</p><p><strong>Mustafa</strong>: See. That&#8217;s why I&#8217;m saying that skill set comes very obvious over here. When I say, of course you are right. Data governance comes under the domain of governance. Right. And there are financial governments. There are many other governance in the organization. Can you believe that in a financial governance strategy is built by non finance guide? You can&#8217;t think about it. The same way I feel for data governance. It has to be built by data. Guys. What you&#8217;re saying is absolutely right because I have been working in right in organization where I was not part of data governance. We never heard about. We never follow their policies. Reason being we already have way to justify. Right. Because they are not data people. That is my obvious first prerequisite is if someone is building a data governance team. Data people need to be there and senior data people because it&#8217;s about law. You have to implement a law. Law can only be implemented if people understand the law. Otherwise people will bypass the laws. That&#8217;s not my point of view.</p><p><strong>Shane</strong>: Yeah, I&#8217;m going to disagree with you again. And the reason, and I haven&#8217;t thought about this, right? And so I&#8217;m kind of speaking as you&#8217;re making me think. So that&#8217;s great. Thank you. I go back to as data professionals, we have no practice. We have no rules. We have no certification that we&#8217;re held accountable for. Therefore, we can&#8217;t govern ourselves. What we are is we&#8217;re Practitioners. Thinking of the hoop, you know, I think I&#8217;ve seen CFOs, chief financial officers being the best data governance people because they come from a practice of governance. But like you said, they&#8217;re not data professionals, so they don&#8217;t, they can kind of know what to govern but not how to, how to make sure it is governed. Right. And so I go back to this user car analogy. You know, the rule is I can&#8217;t drive more than 100ks.</p><p><strong>Mustafa</strong>: Yeah.</p><p><strong>Shane</strong>: That&#8217;s the rule, right? That&#8217;s the governance in this area. Well, actually, as a car manufacturer, why don&#8217;t I limit the car to never going over 100ks? That doesn&#8217;t happen. Right. And it&#8217;s the same with data. Like, yeah, I can&#8217;t do this, but everybody does. So I think that&#8217;s the problem. And then we come to llms. They, they&#8217;re, they follow the rules as much, you know, they&#8217;re non-deterministic so. But everybody&#8217;s trying to make them deterministic. So let&#8217;s say we finally get that right and it&#8217;ll be really interesting. We ever do. The second problem we&#8217;ve got to solve is, is the rules aren&#8217;t clear. Right? They&#8217;re not described in a way that if the elderly was deterministic, it actually knows how to follow it. And that is a problem with hemp for 30 years. If I drop into an organization and I say to them, what are the rules? I get a conversation. I don&#8217;t get a set of rules. And that&#8217;s part of the problem that teams have struggled with. And that&#8217;s why I come back to this idea of, of patent templates. And what I mean by that, and the canvas was just one of them. Is if we have a thing that we fell out or do as we&#8217;re doing the work, and that tells us whether we are meeting the governance rules or not. We kind of make a whole lot of problems go away. Because I&#8217;ve got a, the first problem is I have to understand what I&#8217;m filling out, right? Like, I&#8217;m, I&#8217;m filling something out. I have to understand what that process is. So if I have to fill out a conceptual model. You know, I&#8217;ve just Concepts and relationships, you know, customer orders product from store. I have to understand how to fill out that concept model, that template, but I actually have to understand what I call a concept is, like, how do I Define what a customer and a product and a supplier and a store is? How do I Define that relationship? But once I&#8217;ve done that, now I&#8217;m by default, I&#8217;m going to start to get a template that&#8217;s got some data in it that can then test the policy of we will only Define customer ones. Yeah, probably a principle or a patent, not a policy. Right. Because you only get fired for doing, doing it wrong. But that&#8217;s kind of where I&#8217;m at the moment. Right. And so what I think from a data governance lens, if we, if the data governance team can&#8217;t believe the true stakeholders that are accountable for that government&#8217;s been applied, then they&#8217;ve got to be enablers, right? They&#8217;ve got to have ways of giving patent templates and ways of working and patterns to the data teams so that those rules are complied with. And that&#8217;s kind of where my head&#8217;s at the moment, right, is, is giving teams things that if they follow those things, the rules are automatically applied for them or flagged when it&#8217;s not. Yeah. But really think I&#8217;m still in the mid of thinking of that one. Right. So that&#8217;s why there&#8217;s not a, not 100 Clarity on, on that one.</p><p><strong>Mustafa</strong>: Absolutely right. Because we, I am trying to tag this data Foundation where governance and management. Because let us bring another flavor for your food for your thought. Right. Matter data. Let&#8217;s bring matter data because for, for me, the data foundation which we are talking about, as we mentioned earlier in this session is your product can best practice as all we discuss decisions and blah, blah, blah. Those should be an obvious. Now those have surfaced because AI came up and start showing that what we are doing wrong. But those were supposed to be their practices supposed to be there. Now. Metadata. Because metadata is also for me is key because when AI comes in. Okay, let me say this example again which I gave in my panel discussion last week. What happened? I was not left coding like 15 years back. But this wipe coding everybody keep telling Mustafa go and try, try, try. Never ahead of time. Now I&#8217;m a jobless like few months. You know that. So I went into coding. I opened a tool called cursor. It&#8217;s a white coding tool. I started creating, replicating. LinkedIn. So it&#8217;s an awesome tool. I gave it a LinkedIn URL. It replicated 50 to 60% of LinkedIn. Those things did not replicate it, which was not. Possible to open without a username as it&#8217;s replicated. It treated the whole data model underneath. And it was working perfectly fine. Now the question is AI can create a product. Now what I did is. I picked up that data model. Put it into a different schema. And ask the same wipe coding to read that schema. And create. Linkedin like portal. It could not do it. Because when it creates that schema, it went from application front end and created backend. But when I gave it a back end, it could not create anything for me. It was a rubbish thing. Like which gave me an idea that, hey, because metadata of those tables are not there because when it created from linked in meta data was there. Conceptual, it went back. It created business model information model. It created logical model. It created conception model. Well, there are many kind of data modeling technique backend. It created that. Then it created a physical model. And it works. Now the second example which I had, it could not. Then what I did is I asked it create a business model on top of it. Informational model fcoim conceptual logical. I created all those and mapped with the physical model. And then I asked it, go and create a portal. 90. So for me, if AI. Asking you to start creating a product, it will create. But if you build a foundation of data product, AI might not be able to. Because metadata is not there. So now correlating our topic data foundation. If we, are we saying that. Creating modeling modeling, as I mentioned, business modeling information modeling, all those things should be a separate practice. And that is the foundation which we are talking about. And we, we can argue there are so many data modeling three and a half star schema data world focal enter hope. So many are there. Right? If we are talking about, are we talking about only up to the logical foundation as a logical modeling? Because after logical modeling, physical comes in. And that is where AI is unable to do it. Are we saying that we should emphasize or spend time building foundation of data modeling up to logical and which will be, by the way, part of the greater governance? If not data management, data management comes when you go towards physical modeling. Are we saying that. Okay, you, you can comment on it. You can consider for me physical modeling can will always change because new tools and Technologies will come up until unless we have a proper up to the logical model. Then these things can be reused. Are we saying these are the data foundation we are looking for or not?</p><p><strong>Shane</strong>: Okay. So that&#8217;s a big question. So let&#8217;s, let&#8217;s go back to the core preface that every part of our foundation is a lego block. Yeah.</p><p><strong>Mustafa</strong>: Okay.</p><p><strong>Shane</strong>: So there&#8217;s small parts that we put together to work the way we want our team and our organization to work. And we don&#8217;t want to spend three years building out all the lego blocks. Because three years of great fun, but no value to the organization. And we don&#8217;t want to just do ad hoc where there are no lego blocks that we can reuse later. Right. So we want to be in that dodgy middle ground and we&#8217;ve got a whole lot of decisions like which Lego blocks are most important. Which ones do we do first? Which one do we use second? What order do we need to do them? Which one&#8217;s a small Lego blocks? We can spin a little amount of time, and that&#8217;s okay. Which ones do we actually have to spend a little bit more time because it just involves them?</p><p><strong>Mustafa</strong>: Yeah.</p><p><strong>Shane</strong>: So, so let&#8217;s use that as our framing and then let&#8217;s go back to the blueprint. Right. So we, we&#8217;ve understood our current state. We&#8217;ve gone and figured our measures of success. If we spend this money in time, this is how the organization is going to change. We&#8217;ve done our, our team design. We know kind of how the team is going to be structured and where they live in the organization and the skills and roles they have. We&#8217;ve done our value stream. Yeah, we know kind of the process from when somebody has a problem, all the steps we&#8217;re going to take. We think it&#8217;ll take till we deliver value. We have our data Factory kind of sketched out, we kind of think this is the way the data will flow and some of those decisions. What I, and we got some data principles. Yeah. Some kind of disv is that. We might have a couple of policies because we already know there&#8217;s some bad things we shouldn&#8217;t do. We probably don&#8217;t have any patterns yet. Then what we do is we then look at, for me, I look at kind of capabilities. Like actually, given all that, what do we actually have to put in place on day one? To, to make some stuff work, you know, get some products out the door that are governed, you know, that are managed. They managed. Right. And so I, I kind of then that&#8217;s where we start getting into tooling capabilities, technology now, right? Like, I need something that does this. I need something that takes the data out of those systems and brings it into the platform. Because we&#8217;ve made an architectural decision that we&#8217;re going to bring all the data into one place. Yeah, it might be a lake, it might be a data warehouse. That pattern, right? We haven&#8217;t made that decision yet. And we&#8217;re not done that in the past. I&#8217;ve always had metadata is important. But we&#8217;ve always treated metadata as an exhaust. I&#8217;ve always gone and said, well, we don&#8217;t click the data. We can&#8217;t build anything really important. We can&#8217;t store the data. Yeah. Again, if we can&#8217;t transform the data. Yeah. And if I can&#8217;t visualize or deliver something kind of thing. And so I foundationally always came back to those moving parts as being the first moving parts of this Lego blocks that have to be built out. And then I&#8217;d bring in some development practices. I&#8217;d say, well, you know, we want to be able to check our code in. We want to be able to deploy and test. And I bring in some other Lego blocks. And for whatever reason, metadata. Kind of always came last, right? It was kind of treated as exhaust. We did all these things. They&#8217;re not now need a catalog. Right. But over a week while I flipped my thinking and, and I kind of said, actually, we need to capture that stuff first and then hydrate everything else. Now I&#8217;m just going to go bound us to some language again. Right. So 10 years ago, I talk about metadata. I&#8217;ve talked about being metadata driven. Yeah. Tools that are metadata driven to find the metadata. The tool does everything else. And then I kind of moved on to config. Yeah, it&#8217;s config driven because we&#8217;re kind of configuring how the system should work and it should hydrate everything else for us. And then last year, there&#8217;s a big, big semantic war in the data world, which was basically semantic layer or context. Yeah. And I&#8217;m a, I&#8217;m on team context, and I think we&#8217;ve won that argument. Although our library sciences friends are now bringing an ontology taxonomies, our and RDF and we&#8217;re back into another semantic war. So I&#8217;m just going to use the word context. Right. And the way I position it now as patterns in my head is we have business context. Yeah. So definition of a customer is business context. Our domains are business context. We have a whole lot of context that is relating to the way we run our organization. We have structural context, you know, the way our tables are structured, the way our fields are structured, the way our systems, the, the things that I would have called metadata 20 years ago. We have operational context. The queries that have been run against our data, who accessed what data when, who exported what data when, what decisions, there&#8217;s a whole decision logging kind of thing coming through now. So there&#8217;s all this operational stuff that&#8217;s really useful from a context point of view. And then we have agent context. The prompts that we give the agents, the skills that we give them if we&#8217;re using something like Claude. The contents that we give it to help reinforce some of the models. Right. This context or things that, that drive the way the agents behave. And that&#8217;s how I think about it now. Right. And, and foundationally, I would start capturing parts of that as I go. But I, again, I&#8217;d flip the model. The way I think about it is we want to capture the context and then have that context drive everything else we do. So give you an example. If we say we want to base on all that, we decided that policies, that we&#8217;re taking in more of a town plan approach and we want to put in place some policies, right, that are complied with as we built that town. Or even if we&#8217;re doing pioneers, we say this, you know, one or two policies applying is can&#8217;t break. Yeah, they can build a town wherever they want, but they can&#8217;t build it on the land over there because it&#8217;s owned by a different organization. Right. So, yeah, don&#8217;t just know you&#8217;ll be fired if you, if you do that. Everything else is on. How do we capture those policies as context? And then how do we hydrate everything from it? Yeah. So how do we say, you know, you can&#8217;t store customer name. Yeah, it&#8217;s a policy, that&#8217;s context. And then how do we hydrate a system that actually checks it&#8217;s never been stored. And automates that formula as a test. Yeah. And that&#8217;s how I think about it. Right. So, yes, I agree with you metadata first, but truly metadata first. Right. We write the context first and then the system builds itself as much as it can off that context. Now, if we don&#8217;t have technology that can do that, that&#8217;s fine. We define the context first and then a human rights code that enforces that, uses that context. I think that&#8217;s where we&#8217;re going to end up in the new world and the new data world. Is everything that&#8217;s going to be defining context first and then hydrating all the other moving parts that we used to do as humans over time.</p><p><strong>Mustafa</strong>: You&#8217;re absolutely right. Just to, just to bring in same example which you&#8217;re mentioning. Right? That. Policies has to map with the, if you have a proper metadata down there, then you can attach your policies with the meta data. Like you give an example of mobile number or ID card or a name or account number of the bank. Right? You cannot. Make those visible. That&#8217;s a policy. Now that policy need to be implemented somewhere by data management folk, which is engineers. Right? Data Engineers. Now giving this policy to them. They are not good enough to understand the business. For me, this policy need to tag with the meta data because in metadata, I normally segregate business metadata, technical metadata and operational metadata. I feel the foundation is business metadata. Because once you have defined business metadata, that won&#8217;t change. In an organization until process doesn&#8217;t change. Business meta data is about processes, how everything works, what is the definitions of blah, blah, blah, blah, all those things. And then policy attached to that particular business model. And now when management folks comes in. This policy get attached into the development activities as well. That wherever one example, wherever ID card is there, it has to be masked. So people don&#8217;t have to think about a developer, don&#8217;t have to think about it because it will go through a, maybe a lookup table or maybe something which automatically do it rather developer has to manually do it. So that is where just to bring my thought process back that data governance has to be little bit maybe coming era, you think about it again. In coming at a data governance has to be from the prospective of business matter has to be separate. Because if you give it to management team, they won&#8217;t care developers are who are the developers python developer or SQL developer. Their developers, we don&#8217;t expect them, as you correctly mentioned early in this session is we brought other domain people into data domain and start doing developers because they don&#8217;t care and we should not put this responsibility on them.</p><p><strong>Shane</strong>: Yeah.</p><p><strong>Mustafa</strong>: To find out what they need to mask, what is the policies. We make it. Again a principle. Principle is follow all the policies. That can one principle.</p><p><strong>Shane</strong>: Yeah. But, but the least type of scenario, right? So, and this is where I go back to finance, because I think they&#8217;re well ahead of us. And, and some of this. You know, they, they have this idea. I&#8217;m sorry. I go back to governance. I see governance teams either taking one or two stances. They&#8217;re auditors or their coaches. If their auditors, what they say is, well, here&#8217;s the policies, and I&#8217;m going to come in and actually audit you. To make sure you&#8217;re following them. If the coaches, they&#8217;re saying, here&#8217;s the policy and here&#8217;s patents or tooling or things you can use that make sure that policy is enforced and they don&#8217;t have to worry. If I&#8217;m a finance auditor and I know that you&#8217;re using a financial system and you have a p m l. That&#8217;s a pattern based governance because I know that there&#8217;s no way the p l can not balance, you know, because it&#8217;s these things. And within the data world. I still, like, we don&#8217;t have the idea of microservices for our tests, right? Global ones. We have local ones, but we don&#8217;t have. A microservice that says, hey, that data, you know, anytime we see something that has ID in it, an ID value, it&#8217;s encrypted. By default. Right. The team doesn&#8217;t have to care. And actually, we used to have that in databases. And when we went to file systems like hadoopa now iceberg and we kind of lost a whole lot of the free that we used to get in made our life easier. So auditors or coaches have systems that enforce what&#8217;s right. And then if we&#8217;re auditors, if I look at people that do auditing, they actually have a plan on how they&#8217;re going to check that control, that policy. Right. What are we doing data governance? We say, here&#8217;s a policy. And I go, how are you going to go check that that&#8217;s been enforced? It&#8217;s the data team&#8217;s problem. Right. And again, we haven&#8217;t solved that. I think the last thing for me is if I go back to this idea of context. Being defined first and hydrating everything. Those capabilities don&#8217;t exist yet. And they don&#8217;t even, it&#8217;s not even that they don&#8217;t exist in, in the data teams. We need them to exist in an organization level. So, you know, if I say the policy is ID can&#8217;t be stored in clear text, then that policy has to be automatically applied in my data platform and my software as a service and my operational systems and my Excel spreadsheets and my SharePoint and my text file sitting on my local hard drive. Like, it&#8217;s a policy, right? It&#8217;s not just a policy for the data team. And that idea of defining context and having it hydrate all our systems, I haven&#8217;t seen that yet. We get it one day, right? But I think it, it&#8217;s a big technical ask to figure out how the hell you, you do that as well. Right? But any step we can do, which takes us. Away more and more away from this idea that metadata is exhaust context is exhaust light. We kind of look at what the system did and said that was the context. And we flip the model to define the context and get the systems to follow that context. As we do the work, I think that&#8217;s a good change in our foundational. So coming back, as I talked about, you know, the foundational technology pieces that I&#8217;d always looked to as data collection, data storage, transformation, visualization, and then a whole lot of other stuff around it. I&#8217;m now saying actually defining context early. Is the first foundational piece before I do any of those. So defining what sort of systems we have as context, where the data lives in them and then how that hydrate the data collection of that data into my platform. That&#8217;s what I do. Yeah. It&#8217;s a change of thinking and it&#8217;s also a complete change of working.</p><p><strong>Mustafa</strong>: No, absolutely.</p><p><strong>Shane</strong>: Yeah.</p><p><strong>Mustafa</strong>: Just to close this session, right, you are absolutely right. That for me, at least people, most of the people think that data governance is more towards only data people. I join data governance business as well. Data governance need to be implemented as much as in data side as much in business side as well. It cannot be one sided and this aside we all know data store word is also become is one of the critical rule in data governance. That they have to work hand in hand with data governance team so they can make sure that business is also following the same thing. As you mentioned, it&#8217;s not about putting policies on data folks. It&#8217;s putting policy, even IT card if it is shown into your email, it should not show. Even it is in your excel, it should not show, which is on your desktop. So yes, there are a lot of technical. Depth or technical implementation need to happen. With the governance. So just to repeat myself, it had to business side. It has to be the it and data side as well. Following all those governance thing. So I think we have covered most of the thing. I want you to go to a data modeling as well, but we have already passed our dedicated time because data people are asking that when you just to throw in last question, right, people are asking, when you talk about data foundation, are you talking about data modeling? Physical data modeling, right? Even before logical like let&#8217;s go to one step back conceptual data modeling. Because logical data modeling is something which. Will. Normalize the tables and entities up to the level it can be implemented. Right. People asking me. That data foundation are you saying that we should finalize our decision that it will be star schema. It&#8217;s a data vault. Which kind of data modeling we need to implement. Is that the foundation? Just the last question.</p><p><strong>Shane</strong>: So I think we have a foundational lego block of our data architecture layers. You know, how many layers staging raw, whatever we&#8217;re going to call them. Are they enforced or are they optional? How does the data move through a system? That is a foundational piece we do early because it kind of sets the scene. So we&#8217;re going to do later. And it&#8217;s, it. S harder to change later than it is to define upfront. I&#8217;m co-writing a book on conceptual modeling right now with your copola. So I&#8217;m very, very opinionated on this. But if I go back to this idea of context and hydration, my view is. A conceptual model is one of the foundational pieces that I would now bring in very, very early into a positive date as of part of data governance. Then logical modeling. Has some value, you know, where do the attributes fit? And then physical modeling. It&#8217;s important. But what I would do is treat it as a candle. Right. So I would say if I use the devops terms, my conceptual model is my pit. And then I should be able to hydrate a physical model. From that conceptual and logical model whenever I felt like it. Yeah. Data Vault, dimensional one big table activity schema. Right. I, I should treat those modeling techniques as disposable now because my conceptual and my logical models are my business context. And those physical ones are my structural context. So that&#8217;s how I think about it now. But most people don&#8217;t. Right. So then.</p><p><strong>Mustafa</strong>: On this one. Absolutely.</p><p><strong>Shane</strong>: Yeah. If you don&#8217;t think about that way, then you, you need a patent or a policy. On your physical modeling technique because you&#8217;re, you&#8217;re losing all the value of doing the context stuff up early. So, yeah, pick one. Yeah. And just be clear as an append. Like I should use data vault or it&#8217;s a policy. I&#8217;ll get fired if I don&#8217;t use data vault. Right. Which of those are, which are those two? Are you telling me? And then I take your point about governance. Right. So I was just kind of thinking about as you&#8217;re talking about it, and I kind of give you an example to close it out. There&#8217;s a lot of work around in the, in the data domain right now around data contracts. And again, let me, let me anchor my, my terminology. Right. A data contract is an agreement. Between somebody on the left and somebody on the right on how they&#8217;re going to share data. Yeah. So it discusses schema frequency, quality. It is a, an agreement. Right. And then we tested that agreement that&#8217;s been there. Typically, it&#8217;s an agreement between the software engineers and the data engineers because we&#8217;re moving data from a software system to the data platform. But I&#8217;ve seen lots of people now using it internally within the data platform between ETL jobs. Yeah, it&#8217;s a, it&#8217;s a contract and agreement that this table will look like this and this table will look like this. And therefore I can write the code in between. If we think about that in terms of true data governance. The data governance team should be mandating that data contracts are put in place whenever data moves from a software system to a data platform. And they should be auditing that actually happens. But we don&#8217;t. I never see that. Right. Yeah. It&#8217;s always a data team.</p><p><strong>Mustafa</strong>: Don&#8217;t do it.</p><p><strong>Shane</strong>: Thing, right? It&#8217;s a tool for them. But actually, just think about that, right? From a governor&#8217;s point of view, you know, when we go and have, we go and buy something from a supplier outside our organization, most organizations, every procurement team that governs there&#8217;s a contract in place. Right. We know what we&#8217;re getting and what we&#8217;re paying and isn&#8217;t illegal agreement. Data contract is exactly that, but for data, and therefore, and the way you think about it, the data governance team should be responsible for making sure contracts are in place and either auditing that they are or giving patents to make sure they happen by default. So, yeah, I&#8217;m like that. So, yeah, contracts, data modeling, they&#8217;re all foundational pieces. For me, I&#8217;d focus on conceptual and logical and treat high physical data modeling as just a execution problem. It&#8217;s cattle. I should be able to change my mind.</p><p><strong>Mustafa</strong>: Yeah.</p><p><strong>Shane</strong>: And the system should just absorb it. Right. I, I don&#8217;t think we&#8217;re there yet. Right. But I think that&#8217;s where we&#8217;re going.</p><p><strong>Mustafa</strong>: I wanted to close this, but I have to throw one more question. As you mentioned, you&#8217;re writing a question writing a book on conceptual modeling. Because again, for me, the anchor is conceptual and somehow little bit logical as well. But conceptual is something which is, which is whole business up to conceptual and then goes to the management side. Right. When you talk about conceptual, are you saying that conceptual model of course need to have a business modeling information modeling all those techniques, taxonomies and all those things. Are you in your book by the way when your book is coming?</p><p><strong>Shane</strong>: I don&#8217;t have a date. Juha has been much better at riding his parts of it that we need than I am. So I am dragging the chain and I&#8217;m trying to get that chain pulled up a lot faster. So, yeah, no, no idea when we&#8217;ll be done done on that one.</p><p><strong>Mustafa</strong>: So now when you say conceptual modeling, are you considering all business modeling information modeling? All those things up to the conceptual modeling, are you saying that as a foundation?</p><p><strong>Shane</strong>: So.</p><p><strong>Mustafa</strong>: Last question.</p><p><strong>Shane</strong>: So the book&#8217;s called modeling business Concepts. And it&#8217;s called that specifically for, for a bunch of reasons. And the, the. The goal of the book is to teach the steps that you need to create a concept model. Right. And so we&#8217;re kind of just working all the way through, like, what does that actually mean? And so we&#8217;ve identified 11 steps, right? So the first step is Define the domain that you&#8217;re going to work in. Like, don&#8217;t model the whole organization, try and figure out a domain. The next step is find a subject matter expert. Yeah. Find somebody in organization that knows how the organization works, and they&#8217;re going to give you the information you need to define those Concepts. And then we go through. And. It has the idea of where we Define the concepts and we Define the relationships, and then we identify where those relationships and Concepts are an event, a core business event. You know, customer orders product, the order is, is something that was really important to us. And then we have a visualization that we&#8217;re working on, like, how do we draw that map, that concept map, what does it look like? And what we&#8217;re doing is we kind of both aligning that map to what a conceptual data model map looks like with a few tweaks. Because that&#8217;s how we think about it, right? That&#8217;s how our expertise and experience has already done it. What&#8217;s interesting is I often use an event Matrix, kind of like a bus Matrix, but a version of it that kind of got from Lawrence core and has been stuff. And so I&#8217;m always looking at it going, yeah, we&#8217;re building this concept map, but actually maybe an event Matrix is another way of articulating that. And I think what we end up with just the core we&#8217;re teaching is the concept map, but we&#8217;ll use those event maps and those other visualizations as a different lens. The thing I struggle with is what is a business model look like? Yeah. I, I, because I always think business map, concept map, logical, physical, right? Like, that&#8217;s in my head. But I&#8217;ve struggled to find a business. I mean, the business canvas is kind of a business map, but nobody really treats it that way. And so, yeah, I&#8217;m very intrigued. If you can find somebody that goes, well, the thing we do before a concept map is the business map. What does it actually look like? That&#8217;d be, that&#8217;d be cool piece of content because I struggle to find a pattern or a patent template that makes sense to me. So I&#8217;m not sure I answered your question on that one because we&#8217;re still writing it, but it&#8217;s kind of a rep.</p><p><strong>Mustafa</strong>: Because then you say conceptual, you are looking towards default conceptual because conceptual doesn&#8217;t come from the air. It has to come from business, as we said.</p><p><strong>Shane</strong>: Lica. Right. Yes. Yes. So, so.</p><p><strong>Mustafa</strong>: So. It has to come from business.</p><p><strong>Shane</strong>: Yes. So when we talk about a concept map, it is a representation of the way the business behaves, not a representation of where the data is stored. Yes. So we should be able to do a concept map without ever looking at a source system. Either looking at a database.</p><p><strong>Mustafa</strong>: Yes. Yeah. And just to answer you to find out, by the way, in my latest book, I am data media. I have added 37 data modeling techniques. So over there I go step by step. Maybe I can share with you. You already bought my previous book. Right?</p><p><strong>Shane</strong>: Probably. I&#8217;ve got a whole bunch of books sitting left to me in paper, and I&#8217;ve got a whole folder of books I bought in PDF, and it&#8217;d be fair to say I have.</p><p><strong>Mustafa</strong>: Yeah. So whoever. Yeah. So whoever have bought my previous book, I&#8217;m giving them free my latest book. So let me pass you my PDF of the latest book. Actually over there you can go into it, have a look. 37 techniques. So wherever conceptual before you can go and see all those techniques, what they do. I spend a lot of time because someone asked me how many typings are there. We have worked only five, six techniques. Normally we work three and a half. Star schema snowflake. Data vault. Logical physical. This is work. But actually when I really went into it from above, I discovered there are 37 data modeling technique either what most of them I didn&#8217;t know.</p><p><strong>Shane</strong>: So, so you know how, you know how you said that you kind of went vibe, started vibe coding and you picked LinkedIn. Yeah. So it&#8217;s kind of, what I find is whenever a wave comes, right, the best way for me to understand the impact of a wave is to learn by doing. And so, of course, I always talk, used to talk about current code, don&#8217;t code, won&#8217;t code, right? Like, I, I tried to code in my early days. I was the worst coder there ever was. But I thought, well, okay, we got this new world. I&#8217;m going to go try and vibe code something. And so the, you know, the obvious candidate for me was I vibe coded the information product canvas. Yeah. So I vibe coded a small app, which means you can do it online. And then I published it as an open source thing. So you could download it and use it and hack and do whatever you want. And then because I&#8217;ve been doing a lot of work on this idea of context and context playing, I was like, oh, well, maybe we&#8217;d extend this out. So I vibe coded the business model canvas and lean campus. And then, of course, I couldn&#8217;t stop myself. And I started vibe coding the business event matrix. The data layered architecture checklist concept model, data dictionary, a glossary. But I purposely kept them all separate little apps, right? Because I&#8217;m testing this theory that these little micro apps, if you use them in your day job have value and store and capture context without you really realizing you&#8217;re doing it. So if you&#8217;ve got 37 different patterns. For the way we can diagram or canvas things, yeah, I&#8217;d love to work with you on it that we kind of just create little bespoke apps for these and publish them as open source. Because I think seeing by doing, like being able to fill out one of those things is a great learning mechanism for people to go, oh, you talk about a concept model and you&#8217;re talking about Concepts and relationships, and that&#8217;s it, right? No boxes and lines and a bit of car melody. I kind of get it now. Like, I got more questions, but I kind of played with something and it&#8217;s visual and I kind of get, I think I kind of get what you&#8217;re talking about. I think that&#8217;s a great way of rounding out the learning in our domain that we&#8217;ve, we&#8217;ve missed or lost. So, yeah, if you&#8217;re up for it once, you know, flip me your book. I&#8217;ll, I&#8217;ll have a look at it and then I&#8217;ll come back to you and go, it&#8217;s vibe code together. You have to move to claud, not, not cursor. But, yeah, and maybe we&#8217;ll do them and publish a couple and see what happens.</p><p><strong>Mustafa</strong>: Same thing cloud is and cursor same thing both are lm behind it cursor is people like me who have lost.</p><p><strong>Shane</strong>: Yeah.</p><p><strong>Mustafa</strong>: Development like 15 20 years back. I can&#8217;t do coding in vs code. So if you are using clot, you need to have vs code as well. So I don&#8217;t know to go into there.</p><p><strong>Shane</strong>: No, no, no, no. I use the claw code gooey. I I can&#8217;t, I can&#8217;t go into that terminal thing or VS code. No, no, I just, I, I go into something that looks like chat GPT and I go, like, I did one last night. I went and I said, I want a small app for metric trees. And then I went to bed. And then this morning I got a really bad app for metric trees. And now I&#8217;m yelling at it, telling it what it needs to fix. So, yeah, I mean, there&#8217;s. Interesting thing, right? That in theory, we can create this context layer for these apps, like the decisions and, and those kind of things that are being used when the app gets written back to your idea of building LinkedIn and, and hold the context of LinkedIn, not the physical data structure. And if we do that, then in theory, we can have Claude or codex or cursor or any of these things. Read that context of that app and then update it. But I&#8217;ve tried it. And, and again, I tried it a while ago. So what happens with the new stuff is you have to try everything every week because something bloody changes and it gets better. But, but what happened was the, the coding lms argued. Like codex would go, oh, Claude obviously wrote their, and it would refactor the code without making anything of extra value. And I kind of liken it to humans. I don&#8217;t know if you&#8217;ve ever seen it, but you walk into a brownfield site and, and the engineers that build all the ETL are gone. And the new people came in and, you know, they typically go, oh, that&#8217;s not the way you write that code. And they&#8217;ll refactor all the code. So it writes the way they wrote, normally write it, but it hasn&#8217;t changed anything. It doesn&#8217;t run faster. It doesn&#8217;t run safer and it hasn&#8217;t edited any new products. So, and so I find that llms are funnily enough doing that as well. So, yeah, we could give it a go. You know, I&#8217;ll give you a point cursor at it and see what it does.</p><p><strong>Mustafa</strong>: I can share it with you. I created a training as well. It&#8217;s not very polished, but I&#8217;ll share with you. I have to polish it, but you can have a look all 37 techniques are in there I gave some examples. And I&#8217;m planning to get agent for each. I think I created agent for first four five techniques. It really, it was awesome because I talked, it narrated into a text. That text was in first prompt for the first modeling. That modeling created an output that one agent that output was an input for a next agent which can do the second modeling. So it was so awesome. And when I gave it to the cursor. Because all metadata was there. It was able to create the application very good, but it was such a big effort. Because someone has to create 37 agents. I didn&#8217;t have a time.</p><p><strong>Shane</strong>: Yeah.</p><p><strong>Mustafa</strong>: I learned in four or five that it&#8217;ll work. So maybe I&#8217;ll share with you.</p><p><strong>Shane</strong>: Interesting thing on that is that lots of people are working now on skills for things like Claude, right, where all the expertise sits in it. And they&#8217;re really, really valuable. But there&#8217;s no feedback loop. And because we know that the lms are still probabilistic, not deterministic, which means that you ask it the same question 10 times, one of the times you will get a different answer. I&#8217;m still fundamentally believe we need a combination of the skills that do the work and visual techniques so somebody can understand the work that&#8217;s been done. So. And your scenario, a skill that I can ask it and it will create that model. And then a visualization of the model in a way that I can understand where that model is correct or not. And that, that becomes the problem. Like, how do you know it&#8217;s correct? Like, do you build another skill that tests it, what we call a judge mechanism? Like first skill writes it, second skill validates it. Yeah, we, we can&#8217;t, we&#8217;re still not really to move to a world where those things are right and therefore people without the expertise can just trust what it&#8217;s giving them every time. But, hey.</p><p><strong>Mustafa</strong>: Meditation after the human. Why I feel it can be my own perspective. That why I was successful because I knew what I want. AI didn&#8217;t new because when I gave it a physical mode, it didn&#8217;t know. A physical model customer is just. Six or seven character world. It doesn&#8217;t know what is customer until I gave it a metadata that what is customer and customer can be different for different domains. For HR customer employee for HR is different. For a loan officer is a different. So I have to give a context. That is how it works. Never mind. I won&#8217;t take you a lot of time. We already one hour 35 minute. I will always chain. I think it was a great session. It become more of a data governance session. But I think data foundation has a big play of data governance as a quick play in data foundation. Because as we are discussing, you need to have right people at the right place. Because you don&#8217;t have a time to test and run and create something governance. I feel which still contradict with you is I feel that data governance team need to be separate. At least in this era. Because AI is doing their own shit until as right people do not know what they are doing. We are lost. That&#8217;s my prospect. Ive.</p><p><strong>Shane</strong>: So I, if we say that data governance now behave like Auditors or risk managers or the CFO, then I agree with you. Yeah, that actually, it&#8217;s, it&#8217;s outside the people doing the work and they are governing that work is done right.</p><p><strong>Mustafa</strong>: Yeah, that&#8217;s what I mean.</p><p><strong>Shane</strong>: That&#8217;s a different pattern to what we see when we see data governance right now, in my view. Right now, we see some people trying to do their best, but they&#8217;re not empowered. Yeah. They can&#8217;t fire people. They can&#8217;t stop things happening. They can&#8217;t delete data.</p><p><strong>Mustafa</strong>: Right.</p><p><strong>Shane</strong>: They can&#8217;t shut down systems. They don&#8217;t have the power to govern. Like a council does if you&#8217;re building a house, like a CFO has if you&#8217;re paying for money, like a procurement team does if you&#8217;re buying something. So, yeah, I&#8217;m with you. We need to elevate governance to be governance and not management.</p><p><strong>Mustafa</strong>: Yes.</p><p><strong>Shane</strong>: And then, then I agree with you. Right.</p><p><strong>Mustafa</strong>: Before you convince me. Okay, thanks. It was such a talking to you. I think we can have more sessions if you share. Take care. Have fun.</p><p><strong>Shane</strong>: Thank you very much for having me. We&#8217;ll talk soon.</p><p><strong>Mustafa</strong>: Yeah. Have a good week. End.</p><h2>&#171;oo&#187;</h2><div class="pullquote"><p><em>Stakeholder - &#8220;Thats not what I wanted!&#8221; <br>Data Team - &#8220;But thats what you asked for!&#8221;</em></p></div><p>Struggling to gather data requirements and constantly hearing the conversation above?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0Bu2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0Bu2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg" width="387" height="342" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:342,&quot;width&quot;:387,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:19725,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agiledata.substack.com/i/160520537?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!0Bu2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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>Want to learn how to capture data and information requirements in a repeatable way so stakeholders love them and data teams can build from them, by using the Information Product Canvas.</p><p>Have I got the book for you!</p><p>Start your journey to a new Agile Data Way of Working.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://adiwow.com/168&quot;,&quot;text&quot;:&quot;Buy the Agile Data Guide now!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://adiwow.com/168"><span>Buy the Agile Data Guide now!</span></a></p><h2>&#171;oo&#187;</h2>]]></content:encoded></item><item><title><![CDATA[I am now an uber Claude powered vibe coding app developer! (well not really)]]></title><description><![CDATA[Why I started building apps after decades of successfully avoiding writing code]]></description><link>https://agiledata.info/p/i-am-now-an-uber-claude-powered-vibe</link><guid isPermaLink="false">https://agiledata.info/p/i-am-now-an-uber-claude-powered-vibe</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Thu, 09 Apr 2026 12:01:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7UyJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When we started AgileData seven years ago we made an initial decision that has served us well for the last seven years, until now. </p><div class="pullquote"><p>We would never build the last mile tool, the BI front end.</p></div><p>The reasoning behind this principles was creating a BI tool or BI platform had too many table stakes from day one to have a chance of succedding.</p><p>Too many expected features, too much competition, too much time, effort and moolah to build something that could compete with the established players. </p><p>So we used third party tools. Looker Studio, Power BI, whatever the customer had already paid for. We focused on the hard bit underneath, the data platform, the data, the business context, the patterns, the scaffolding.</p><p>All bound with the core principles of being able to scale at will, and rin on the smell of a oily rag ( well based on the cost of oil before the latest middle eastern &#8220;adventure&#8221;) </p><p>That was the right call and has lasted us well for the last seven years.</p><p>Then vibe coding turned up and we revisited our thinking.</p><blockquote><p><strong>TL;DR</strong> </p><p><em><strong>We are betting the BI platforms of the previous waves become legacy and &#8220;one shot BI apps&#8221; become the norm.</strong></em></p></blockquote><p>Bold statement right? </p><p>Let me give you some context (after all without Context all we have is data)</p><h2>Why we think &#8220;One Shot BI Apps&#8221; are the new black</h2><p>Up until now if an organisation wanted a bespoke Information Product / BI App that did exactly what a consumer needed, they had to pay an expert development team to build it and then maintain it.</p><p>That took time, effort and money. </p><p>So instead they compromised, they bought a BI platform, a general purpose tool that kind of did what everyone needed but never quite did what anyone actually wanted.</p><p>Stakeholder don&#8217;t actually want a dashboard with 24 areas and 47 filters they have to squint at to find the one number they care about. That is just what they have had to live with until now. </p><p>They want an app that answers their specific question or even better tells them the next best action.  They want an app that works the way they think and the way they work, with nothing else getting in the way.</p><p>Data teams doen&#8217;t want to spend three iterations building a Power BI report that gets used twice and then someone asks for &#8220;just one more chart&#8221;. They want to deliver something that actually gets used, that drives proven organisational outcomes and value and most of all and makes somebody&#8217;s life better.</p><div class="pullquote"><p><strong>That sure as shit ain&#8217;t the dashboards of old.</strong></p></div><p>Stakeholders and Data Teams want something that does one thing well, enables one specific job to be done, and gets out of the way.</p><p>The BI platform was always a compromise. It existed because bespoke was too slow and too expensive.</p><p>And that where vibe coding using tools like Claude Code have changed the promise.</p><p>They promise:</p><ul><li><p>Low cost :: Making bespoke cheap as chips.</p></li><li><p>Speed to market :: Minutes and hours, not weeks and months. </p></li><li><p>Democratisation  :: Anybody who can describe what they need can build it. </p></li><li><p>Cost  :: Less than your annual BI platform licence, and your big server/services infrastructure costs by a long way.</p></li></ul><p>With all these promises why would they keep compromising?</p><h2>We have seen this movie before</h2><p>We have seen promises like this before, promises that are early in the hype wave, and then eventually get grounded in reality</p><p>We have seen how every time we democratise access to something in the data domain, we eventually end up with sprawl.</p><ul><li><p>The OLAP wave democratised access to data. What did we get? A mess of cubes nobody could find or trust.</p></li><li><p>The Tableau wave democratised access to dashboards. What did we get? Thousands of dashboards, most of them showing slightly different numbers for the same thing, or a slightly different number of data columns.</p></li><li><p>The dbt/modern data stack wave democratised access to data transformation. What did we get? 5,000 dbt models with no actual data model, anybody?</p></li></ul><p>Now we are about to democratise access to building BI apps. And the sprawl problem is going to make the previous waves look like a gentle ripple.</p><p>I have written thoughts about some of these anti-patterns in the new &#8220;AI&#8221; wave before:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;09cfb760-f9de-4f93-aa5f-aba578b8a3e5&quot;,&quot;caption&quot;:&quot;The data domain is about to get so fooked by &#8220;AI&#8221;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The data domain is about to get so fooked by &#8220;AI&#8221;&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:2774203,&quot;name&quot;:&quot;Shagility&quot;,&quot;bio&quot;:&quot;I help data and analytics teams change the Way they Work in a Simply Magical Way&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f09a2d19-6707-4ef9-a4e3-a5e770fb640f_1406x853.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-03-14T01:33:28.888Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba2db919-b8df-4a1d-84c3-3fb4f14aff5d_1532x860.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://agiledata.info/p/the-data-domain-is-about-to-get-so&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:159036925,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:4,&quot;comment_count&quot;:0,&quot;publication_id&quot;:952247,&quot;publication_name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ErtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;ed1d61a0-b826-4bd4-8639-b6eba504233a&quot;,&quot;caption&quot;:&quot;I have been playing with Loveable a bit lately.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Data Patterns for Ephemeral \&quot;AI\&quot; Apps &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:2774203,&quot;name&quot;:&quot;Shagility&quot;,&quot;bio&quot;:&quot;I help data and analytics teams change the Way they Work in a Simply Magical Way&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f09a2d19-6707-4ef9-a4e3-a5e770fb640f_1406x853.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-03-27T19:15:05.735Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efe58500-24a8-4d4e-9446-bff084509514_5712x4284.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://agiledata.info/p/data-patterns-for-ephemeral-ai-apps&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:160009395,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:952247,&quot;publication_name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ErtR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h2>But what if you already had the scaffolding?</h2><p>Luckily we have spent the last seven years building out a data platform that is both opinionated and has all the scaffolding that should (in theory) help manage this inevitable sprawl.</p><p>So we started by creating a simple templating pattern in our platform. A way to quickly build and deploy a &#8220;one shot BI app&#8221; using your favourite LLM tool. Claude, ChatGPT, whatever you prefer.</p><p>Then we let it loose with one of our talented early adopters Network patterns, to see what he would actually do with it.</p><p>We were amazed with what he started creating.</p><p>Next we used it to build a prototype for a customer who wanted us to upgrade the capabilities they had been using with us for the last few years.</p><p>They loved it.</p><blockquote><p><em><strong>So once more into the breach, my friends.</strong></em></p></blockquote><h2>&#8220;Can&#8217;t code, won&#8217;t code, don&#8217;t code&#8221; tries vibe coding</h2><p>One of my frequent sayings is </p><div class="pullquote"><p><strong>I &#8220;can&#8217;t code, won&#8217;t code, don&#8217;t code&#8221;.</strong></p></div><p>But I wondered, with the latest tools like Claude Code and the latest models like Opus 4.6, is that still true?</p><p>I find I learn best by doing. </p><p>So I thought I would experiment with creating an app using Claude Code to see how the process would work for somebody like me. Somebody who understands the patterns and requirements inside out, but has spent decades successfully avoiding writing code.</p><p>Now I could have vibe coded a &#8220;one shot BI app&#8221; for a customer, or built something with public dummy data to experiment and learn.</p><p>But the Information Product Canvas was the obvious first cab off the rank.</p><p>I have been iterating that pattern template for over a decade. I know the 12 areas, how they relate to each other, what the user experience should feel like, and what the anti-patterns look like. </p><p>If Claude Code got something wrong, I would (hopefully) know immediately.</p><p>Plus I had &#8220;build an IPC app&#8221; gathering dust on my backlog for years. I never wanted to spend the moolah to pay somebody to build it.</p><p>Vibe coding supposedly changed the economics.</p><h2>The result</h2><p>One of my other common sayings (apart from <em><strong>#Whoot!</strong></em>) is </p><div class="pullquote"><p><strong>Sharing is Caring.</strong></p></div><p>I published the resulting Information Product Canvas app as open source.</p><p>You can read about what it does and how to get it running over on the Information Product Canvas companion site:</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:193667467,&quot;url&quot;:&quot;https://informationproductcanvas.agiledataguides.com/p/the-standalone-information-product&quot;,&quot;publication_id&quot;:2810971,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Information Product Canvas&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!UH3F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ded0e0-62cf-497b-812e-8be9bbbe0629_855x855.png&quot;,&quot;title&quot;:&quot;The Standalone Information Product Canvas App&quot;,&quot;truncated_body_text&quot;:&quot;Do you prefer the feel and joy of reading a physical book?&quot;,&quot;date&quot;:&quot;2026-04-09T10:11:10.951Z&quot;,&quot;like_count&quot;:0,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:2774203,&quot;name&quot;:&quot;Shagility&quot;,&quot;handle&quot;:&quot;shagility&quot;,&quot;previous_name&quot;:&quot;ADI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f09a2d19-6707-4ef9-a4e3-a5e770fb640f_1406x853.jpeg&quot;,&quot;bio&quot;:&quot;I help data and analytics teams change the Way they Work in a Simply Magical Way&quot;,&quot;profile_set_up_at&quot;:&quot;2022-07-03T07:55:44.645Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-07-03T07:55:25.828Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:736779,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:798992,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:798992,&quot;name&quot;:&quot;The Agile Data Big Book of Ways of Working&quot;,&quot;subdomain&quot;:&quot;agiledatawow&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Combining the best of agile, product and data patterns together to craft a new way of working&quot;,&quot;logo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c3f22b18-e014-4ada-b07a-7f76e10704a0_1280x1280.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:2774203,&quot;theme_var_background_pop&quot;:&quot;#9D6FFF&quot;,&quot;created_at&quot;:&quot;2022-03-13T20:45:36.345Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Shagility&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:null,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}},{&quot;id&quot;:896480,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:952247,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:952247,&quot;name&quot;:&quot;Agile Data N&#8217; Info&quot;,&quot;subdomain&quot;:&quot;agiledata&quot;,&quot;custom_domain&quot;:&quot;agiledata.info&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Simply Magical content about Agile Data Ways of Working&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8892c64-a0c7-4c7b-9f49-a73be5280f22_1280x1280.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:351594449,&quot;theme_var_background_pop&quot;:&quot;#FF6B00&quot;,&quot;created_at&quot;:&quot;2022-06-25T05:33:33.273Z&quot;,&quot;email_from_name&quot;:&quot;Data.N.Info@AgileData&quot;,&quot;copyright&quot;:&quot;Agile Data Limited&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}},{&quot;id&quot;:2855394,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:2810971,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:2810971,&quot;name&quot;:&quot;Information Product Canvas&quot;,&quot;subdomain&quot;:&quot;informationproductcanvas&quot;,&quot;custom_domain&quot;:&quot;informationproductcanvas.agiledataguides.com&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Information Product Canvas\na pattern template, to quickly discover and capture, data and information requirements, \nin a repeatable way, so stakeholders love them and data teams can build from them&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68ded0e0-62cf-497b-812e-8be9bbbe0629_855x855.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:131335767,&quot;theme_var_background_pop&quot;:&quot;#9A6600&quot;,&quot;created_at&quot;:&quot;2024-07-21T19:30:03.601Z&quot;,&quot;email_from_name&quot;:&quot;Shane Gibson (Shagility) from Agile Data Guides&quot;,&quot;copyright&quot;:&quot;Agile Data Guides&quot;,&quot;founding_plan_name&quot;:&quot;Free Book&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}},{&quot;id&quot;:5552097,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:5443082,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:5443082,&quot;name&quot;:&quot;Data Persona Template&quot;,&quot;subdomain&quot;:&quot;datapersonatemplate&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Data Personas&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85a1bb1b-6a61-4c40-b7a3-521a9a924805_1280x1280.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:null,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2025-06-24T22:16:36.075Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Agile Data Guides&quot;,&quot;founding_plan_name&quot;:&quot;Free Book&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}},{&quot;id&quot;:6645834,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:6512167,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:6512167,&quot;name&quot;:&quot;Data Team Design&quot;,&quot;subdomain&quot;:&quot;datateamdesign&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Data Team Design&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d02012c5-3c47-4c62-b6eb-872bbbd17238_1280x1280.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:null,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2025-10-09T03:48:21.118Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Shagility&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;disabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}},{&quot;id&quot;:7065871,&quot;user_id&quot;:2774203,&quot;publication_id&quot;:6923446,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:6923446,&quot;name&quot;:&quot;Modeling Business Concepts&quot;,&quot;subdomain&quot;:&quot;modelingbusinessconcepts&quot;,&quot;custom_domain&quot;:&quot;modelingbusinessconcepts.agiledataguides.com&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Modeling Business Concepts&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/91fdf95d-96db-40a1-a2ec-c9f4b1a0060f_1280x1280.png&quot;,&quot;author_id&quot;:2774203,&quot;primary_user_id&quot;:null,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2025-11-15T12:27:38.041Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Shagility&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}}],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:1,&quot;accent_colors&quot;:null},&quot;paidPublicationIds&quot;:[10845,1473069],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://informationproductcanvas.agiledataguides.com/p/the-standalone-information-product?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!UH3F!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ded0e0-62cf-497b-812e-8be9bbbe0629_855x855.png" loading="lazy"><span class="embedded-post-publication-name">Information Product Canvas</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">The Standalone Information Product Canvas App</div></div><div class="embedded-post-body">Do you prefer the feel and joy of reading a physical book&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">4 months ago &#183; Shagility</div></a></div><p>And grab the code from GitHub:</p><div class="callout-block" data-callout="true"><p><a href="https://github.com/AgileDataGuides/information-product-canvas">https://github.com/AgileDataGuides/information-product-canvas</a></p></div><h2>But of course I didn&#8217;t stop at one app</h2><p>For those that know me  know when I find something interesting, something that looks like a useful pattern, but I cant describe that pattern with clarity results in something I can&#8217;t leave well enough alone.</p><p>The Information Product Canvas app scratched one itch. </p><p>But it also made me realise how quickly I could experiment with ideas and templates that had been stuck on the backlog for years.  Pattern Templates like the:</p><ul><li><p>Business Event Matrix;</p></li><li><p>Concept Models;</p></li><li><p>Business Glossary;</p></li><li><p>Layered Data Architecture Checklist;</p></li><li><p>Data Dictionary;</p></li><li><p>Data Contracts;</p></li><li><p>Data Asset Catalog;</p></li></ul><p>Ideas I couldn&#8217;t justify spending the time or money on before, but could now explore by whispering sweet nothings to Claude Code in the background for a few hours, while still doing other more important work.</p><p>So I have kept building. More standalone apps, all connected by a shared backend. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7UyJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7UyJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.png 424w, https://substackcdn.com/image/fetch/$s_!7UyJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.png 848w, https://substackcdn.com/image/fetch/$s_!7UyJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.png 1272w, https://substackcdn.com/image/fetch/$s_!7UyJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7UyJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.png" width="1456" height="1079" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1079,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:571222,&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://agiledata.info/i/193666806?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.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_!7UyJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.png 424w, https://substackcdn.com/image/fetch/$s_!7UyJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.png 848w, https://substackcdn.com/image/fetch/$s_!7UyJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.png 1272w, https://substackcdn.com/image/fetch/$s_!7UyJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4321efc-0d6a-45bd-a8c1-b48359cbe84f_1647x1220.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></p><p>Some of them are getting close to useful. Some of them I still hate.</p><p>I will publish each of them as open source standalone apps as they get to a stage where I don&#8217;t hate them. </p><p>If you have been following my Context Plane experiments you will start to see how these pieces fit together.</p><p><a href="https://agiledata.info/t/context-plane">https://agiledata.info/t/context-plane</a></p><p>If you want to help build them with me, just sing out and let me know, the more the merrier.</p><h2>The bit I haven&#8217;t been sharing</h2><p>As part of my <em>Sharing is Caring</em> mantra I realised I haven&#8217;t been sharing my journey as I learn the process and pros and cons of vibe coding something that needs to be actually used, as a person in the data domain who can&#8217;t code.</p><p>So as I keep working, off and on, on my vibe coding process and building out apps, I will post articles on what I have experienced and my thoughts around it.</p><p>What worked. What went sideways. What surprised me. What I learned about building software through conversation rather than writing code.</p><p>If you are a data person curious about vibe coding, or a builder wondering what it is like when someone who &#8220;can&#8217;t code, won&#8217;t code, don&#8217;t code&#8221; picks up Claude Code and starts whispering sweet nothings to it, hopefully the series will be useful.</p><p>If not, maybe turn off substack notifications for this site for a little while ;-)</p>]]></content:encoded></item><item><title><![CDATA[Its not about your shiny tools, its about the value you deliver using them]]></title><description><![CDATA[And if you get this wrong you will probably be called to account for the cost not the value]]></description><link>https://agiledata.info/p/its-not-about-your-shiny-tools-its</link><guid isPermaLink="false">https://agiledata.info/p/its-not-about-your-shiny-tools-its</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Fri, 27 Feb 2026 11:45:47 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fa9e9189-e8e3-45bd-aaf6-3d3fb4933f77_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I caught up with a data friend for a virtual coffee this week, they were lamenting the whole &#8220;single source of truth&#8221; they were experiencing with an org they were working with.</p><p>It was the same pattern <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Joe Reis&quot;,&quot;id&quot;:3531217,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e4716b1-c223-41e3-b943-def0291bf217_1175x783.jpeg&quot;,&quot;uuid&quot;:&quot;beada44e-bfb9-4fb0-877d-0a4cbf60520f&quot;}" data-component-name="MentionToDOM"></span> talks about in this draft book chapter:</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:188928717,&quot;url&quot;:&quot;https://practicaldatamodeling.substack.com/p/what-data-modeling-is-and-is-not&quot;,&quot;publication_id&quot;:1473069,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Practical Data Modeling&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Q0I-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6eecf34a-ff04-4526-a4b3-4163469579cd_500x500.png&quot;,&quot;title&quot;:&quot;What Data Modeling Is and Is Not &quot;,&quot;truncated_body_text&quot;:&quot;Here&#8217;s the revision of Chapter Two for Mixed Model Arts, where I discuss various definitions of data modeling and bring it into the present day. We are no longer modeling just for humans, but modeling for humans AND machines.&quot;,&quot;date&quot;:&quot;2026-02-23T18:12:02.833Z&quot;,&quot;like_count&quot;:32,&quot;comment_count&quot;:3,&quot;bylines&quot;:[{&quot;id&quot;:3531217,&quot;name&quot;:&quot;Joe Reis&quot;,&quot;handle&quot;:&quot;joereis&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e4716b1-c223-41e3-b943-def0291bf217_1175x783.jpeg&quot;,&quot;bio&quot;:&quot;Best Selling Co-author of Fundamentals of Data Engineering (O'Reilly) | Data Engineer and Architect | Recovering Data Scientist &#8482; | Speaker | Professor | Podcaster &amp; content creator | DJ | Occasional athlete&quot;,&quot;profile_set_up_at&quot;:&quot;2022-03-09T19:34:00.392Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-04T04:10:27.874Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:39449,&quot;user_id&quot;:3531217,&quot;publication_id&quot;:47214,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:47214,&quot;name&quot;:&quot;Joe Reis&quot;,&quot;subdomain&quot;:&quot;joereis&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;My rants on data, technology, and business&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5bdde2d6-c6ac-46b5-942a-004438d1fd47_300x300.png&quot;,&quot;author_id&quot;:3531217,&quot;primary_user_id&quot;:3531217,&quot;theme_var_background_pop&quot;:&quot;#0068EF&quot;,&quot;created_at&quot;:&quot;2020-05-18T11:49:05.293Z&quot;,&quot;email_from_name&quot;:&quot;Joe Reis&quot;,&quot;copyright&quot;:&quot;Joe Reis&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;disabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:null,&quot;is_personal_mode&quot;:false}},{&quot;id&quot;:1438665,&quot;user_id&quot;:3531217,&quot;publication_id&quot;:1473069,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:1473069,&quot;name&quot;:&quot;Practical Data Modeling&quot;,&quot;subdomain&quot;:&quot;practicaldatamodeling&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Welcome to Practical Data Modeling! Whether you're a beginner or an experienced data professional interested in leveling up your data modeling, we will help you take your skills to the next level.&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6eecf34a-ff04-4526-a4b3-4163469579cd_500x500.png&quot;,&quot;author_id&quot;:3531217,&quot;primary_user_id&quot;:null,&quot;theme_var_background_pop&quot;:&quot;#2EE240&quot;,&quot;created_at&quot;:&quot;2023-03-07T02:12:42.856Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Joe Reis&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false}},{&quot;id&quot;:8187789,&quot;user_id&quot;:3531217,&quot;publication_id&quot;:8003297,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:8003297,&quot;name&quot;:&quot;Practical Data Community&quot;,&quot;subdomain&quot;:&quot;practicaldatacommunity&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Home of the Practical Data Community&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e4716b1-c223-41e3-b943-def0291bf217_1175x783.jpeg&quot;,&quot;author_id&quot;:3531217,&quot;primary_user_id&quot;:null,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2026-02-13T01:50:56.273Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Joe Reis&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;disabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false}}],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100,&quot;status&quot;:{&quot;bestsellerTier&quot;:100,&quot;subscriberTier&quot;:5,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:100},&quot;paidPublicationIds&quot;:[10845,1501429,35345,817132,4417548],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:false,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://practicaldatamodeling.substack.com/p/what-data-modeling-is-and-is-not?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!Q0I-!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6eecf34a-ff04-4526-a4b3-4163469579cd_500x500.png"><span class="embedded-post-publication-name">Practical Data Modeling</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">What Data Modeling Is and Is Not </div></div><div class="embedded-post-body">Here&#8217;s the revision of Chapter Two for Mixed Model Arts, where I discuss various definitions of data modeling and bring it into the present day. We are no longer modeling just for humans, but modeling for humans AND machines&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">6 months ago &#183; 32 likes &#183; 3 comments &#183; Joe Reis</div></a></div><p>A quote from that chapter:</p><p>&lt;-o-&gt; </p><p>&#8220;I&#8217;d just been hired as a consultant for a mid-sized e-commerce company that was hemorrhaging money. Their CEO pulled me aside within the first hour: &#8220;Joe, our inventory system says we have 50,000 units in stock. Our warehouse says 12,000. Our website shows customers that they can buy things that don&#8217;t exist. We had to refund $400K last month alone.&#8221;</p><p>&#8220;I spent the next three days spelunking through their systems. What I found was a horror show. They had an &#8216;orders&#8217; table with 500 columns. Customer data lived in six different databases, none of which agreed on what a &#8220;customer&#8221; was. The product catalog was a single enormous spreadsheet that someone manually uploaded to the database every Friday afternoon. Date fields were stored as strings. Some prices included tax, some didn&#8217;t, and nobody could tell you which was which.&#8221;</p><p>&lt;-oo-&gt; </p><p>My data friend was telling me about the time and money the orgs CDO had spent implementing a &#8220;Modern Data Platform&#8221; and how they were now being asked to present what &#8220;outcomes&#8221; had been delivered for that expenditure.</p><p>Unfortunately when my data friend had to go and get a single number for the  equivalent of Joes &#8220;Count of Stock&#8221;, they found multiple systems that had different counts.</p><p>And when asking various Subject Matter Experts (SME) which count could be trusted they all gave different answers.</p><p>But the SME&#8217;s were all aligned when they said the one count they didn&#8217;t trust was the count in the new data platform.</p><p>I joked that the CDO should probably google (or perplexity) the three envelope joke about now.</p><p>But realistically its not a joke. That is shareholders money that has been spent, its peoples jobs that will probably be impacted as a result of cost that seemed to have no value.</p><p>So lets say it again .....</p><div class="pullquote"><p><strong>Its not about the tools you use.</strong></p><p><strong>Its about the value you deliver using those tools.</strong></p></div><p>End of rant and here is a suggestion.</p><p>If you are investing in new tools, or a new shiny data platform do three simple extra steps.</p><ol><li><p>Define an Information Product using the Information Product Canvas<br><br>You can learn about it for free here:  </p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:2810971,&quot;embedding_publication_id&quot;:null,&quot;name&quot;:&quot;Information Product Canvas&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!UH3F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ded0e0-62cf-497b-812e-8be9bbbe0629_855x855.png&quot;,&quot;base_url&quot;:&quot;https://informationproductcanvas.agiledataguides.com&quot;,&quot;hero_text&quot;:&quot;Information Product Canvas\na pattern template, to quickly discover and capture, data and information requirements, \nin a repeatable way, so stakeholders love them and data teams can build from them&quot;,&quot;author_name&quot;:&quot;Shagility&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:&quot;#ffffff&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://informationproductcanvas.agiledataguides.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!UH3F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ded0e0-62cf-497b-812e-8be9bbbe0629_855x855.png" width="56" height="56" style="background-color: rgb(255, 255, 255);"><span class="embedded-publication-name">Information Product Canvas</span><div class="embedded-publication-hero-text">Information Product Canvas
a pattern template, to quickly discover and capture, data and information requirements, 
in a repeatable way, so stakeholders love them and data teams can build from them</div><div class="embedded-publication-author-name">By Shagility</div></a><form class="embedded-publication-subscribe" method="GET" action="https://informationproductcanvas.agiledataguides.com/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div></li><li><p>Take <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Nick Zervoudis&quot;,&quot;id&quot;:6245781,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/2c89fc3f-12ff-4f16-b1a1-502c70441381_1332x1810.png&quot;,&quot;uuid&quot;:&quot;88ba922f-742d-4cdc-9c20-7d7fa5d5a7a4&quot;}" data-component-name="MentionToDOM"></span> course on how to easily and quickly identify the value of the information that the Information Product will deliver. <br><br>You can find his course here: <a href="https://maven.com/nick-zervoudis/dpm-value-course">https://maven.com/nick-zervoudis/dpm-value-course</a><br></p></li><li><p>Have you data team build the identified Information Product at the same time they build your shiny new Data Platform.  <br><br>And then use the number from #2 above to start justifying the value the new data platform is delivering.<br></p></li></ol>]]></content:encoded></item><item><title><![CDATA[What is the new Moat in the new "AI" Vibe Coding" world]]></title><description><![CDATA[Its no longer effort and i'm not sure its expertise either, it might still be experience..]]></description><link>https://agiledata.info/p/what-is-the-new-moat-in-the-new-ai</link><guid isPermaLink="false">https://agiledata.info/p/what-is-the-new-moat-in-the-new-ai</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Wed, 25 Feb 2026 11:08:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!GS0_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The moats of old are disappearing and im ok with that.</p><p>The thing I love about experimentation is it helps me coalesce some divergent ideas that have been floating in my head for a while, into some semblance of order.</p><p>A bit like writing does.</p><p>I wanted to get a handle on the latest state of &#8220;vibe coding&#8221; so decided to experiment with building an app using Claude Code and Opus 4.6.</p><p>I picked vibe coding an app for the Information Product Canvas, its an app I have wanted built for a while, but the cost to build it the old way never matched the value I found people were willing to pay for it.</p><p>Vibe coding in theory reduced the cost, the experiment was would it?</p><p>You can see the results of a few iterations of the canvas:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GS0_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GS0_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.png 424w, https://substackcdn.com/image/fetch/$s_!GS0_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.png 848w, https://substackcdn.com/image/fetch/$s_!GS0_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.png 1272w, https://substackcdn.com/image/fetch/$s_!GS0_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GS0_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.png" width="1456" height="1055" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1055,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:315781,&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://agiledata.substack.com/i/189123057?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.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_!GS0_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.png 424w, https://substackcdn.com/image/fetch/$s_!GS0_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.png 848w, https://substackcdn.com/image/fetch/$s_!GS0_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.png 1272w, https://substackcdn.com/image/fetch/$s_!GS0_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd73633a7-eb63-4201-aabe-24d5b93d135d_1790x1297.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>Plus a side experiment into the world of the Context Plane (couldn&#8217;t help myself).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oyWY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oyWY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.png 424w, https://substackcdn.com/image/fetch/$s_!oyWY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.png 848w, https://substackcdn.com/image/fetch/$s_!oyWY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.png 1272w, https://substackcdn.com/image/fetch/$s_!oyWY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oyWY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.png" width="1456" height="1055" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1055,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:477155,&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://agiledata.substack.com/i/189123057?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.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_!oyWY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.png 424w, https://substackcdn.com/image/fetch/$s_!oyWY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.png 848w, https://substackcdn.com/image/fetch/$s_!oyWY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.png 1272w, https://substackcdn.com/image/fetch/$s_!oyWY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6ff1ac2-2ecd-4f63-a516-07a53f60a860_1790x1297.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></p><p>But that not the point of this post.</p><p><strong><a href="https://www.linkedin.com/feed/#">Nick Pinfold</a></strong> is experimenting with his teams Agile Data Ways of Working and freely sharing his journey via LinkedIn comments.</p><p>In this comment</p><p><a href="https://www.linkedin.com/feed/update/urn:li:ugcPost:7432018978505617408?commentUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A7432018978505617408%2C7432267116197765120%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287432267116197765120%2Curn%3Ali%3AugcPost%3A7432018978505617408%29">https://www.linkedin.com/feed/update/urn:li:ugcPost:7432018978505617408?commentUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A7432018978505617408%2C7432267116197765120%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287432267116197765120%2Curn%3Ali%3AugcPost%3A7432018978505617408%29</a></p><p>He talks about how he is creating a Streamlit app that allows him to capture the IPC content as Context and use it to assist with the next steps in their Information Factory.</p><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Anna Bergevin&quot;,&quot;id&quot;:61243663,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ffdf50fb-64e3-4a0b-8806-3ea6c47d3d66_1537x2046.jpeg&quot;,&quot;uuid&quot;:&quot;502bb079-2225-4622-84e8-007ac70d91e1&quot;}" data-component-name="MentionToDOM"></span> posted a comment on this Substack post:</p><div class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/&quot;,&quot;commentId&quot;:218173031,&quot;comment&quot;:{&quot;id&quot;:218173031,&quot;date&quot;:&quot;2026-02-22T18:16:36.126Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;Great comment Andrew, this idea of buying datapacks you can converse with is exactly what I&#8217;m thinking. \n\nI&#8217;m currently reading &#8220;Your Best Meeting Ever&#8221; on audio written by Rebecca Hinds. Fantastic book. But I can&#8217;t take notes easily when I drive or pull a quote to share with my leadership team to talk about applying the principles. Or build a could slides to raise in our leadership meeting about having our own Meeting Doomsday. \n\nI want authors like Rebecca to get paid for her work (I bought it and would pay extra for access to a data pack I could converse with.) - if we can figure out how to protect the IP and keep authors pay I think there&#8217;s an interesting path forward here for readers and to get even more value from what authors create. \n\nSome may skip the traditional end to end reading, some may do both like I am. But if authors are getting paid and the ideas are circulating that feels like an interesting idea to me.&quot;,&quot;body_json&quot;:{&quot;type&quot;:&quot;doc&quot;,&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;content&quot;:[{&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Great comment Andrew, this idea of buying datapacks you can converse with is exactly what I&#8217;m thinking. &quot;}],&quot;type&quot;:&quot;paragraph&quot;},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;I&#8217;m currently reading &#8220;Your Best Meeting Ever&#8221; on audio written by Rebecca Hinds. Fantastic book. But I can&#8217;t take notes easily when I drive or pull a quote to share with my leadership team to talk about applying the principles. Or build a could slides to raise in our leadership meeting about having our own Meeting Doomsday. &quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;I want authors like Rebecca to get paid for her work (I bought it and would pay extra for access to a data pack I could converse with.) - if we can figure out how to protect the IP and keep authors pay I think there&#8217;s an interesting path forward here for readers and to get even more value from what authors create. &quot;}]},{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Some may skip the traditional end to end reading, some may do both like I am. But if authors are getting paid and the ideas are circulating that feels like an interesting idea to me.&quot;}]}]},&quot;restacks&quot;:0,&quot;reaction_count&quot;:3,&quot;attachments&quot;:[{&quot;id&quot;:&quot;d6381ea9-4de0-42b9-83b8-0df058b34293&quot;,&quot;type&quot;:&quot;comment&quot;,&quot;publication&quot;:null,&quot;post&quot;:null,&quot;comment&quot;:{&quot;id&quot;:218005616,&quot;body&quot;:&quot;Interesting, reminds me of the ideas here: https://lethain.com/competitive-advantage-author-llms/&quot;,&quot;body_json&quot;:{&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;text&quot;:&quot;Interesting, reminds me of the ideas here: &quot;,&quot;type&quot;:&quot;text&quot;},{&quot;text&quot;:&quot;https://lethain.com/competitive-advantage-author-llms/&quot;,&quot;type&quot;:&quot;text&quot;,&quot;marks&quot;:[{&quot;type&quot;:&quot;link&quot;,&quot;attrs&quot;:{&quot;target&quot;:&quot;_blank&quot;,&quot;href&quot;:&quot;https://lethain.com/competitive-advantage-author-llms/&quot;,&quot;rel&quot;:&quot;nofollow ugc noopener&quot;,&quot;class&quot;:&quot;note-link&quot;}}]}]}],&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;},&quot;type&quot;:&quot;doc&quot;},&quot;publication_id&quot;:null,&quot;post_id&quot;:null,&quot;user_id&quot;:12301499,&quot;type&quot;:&quot;feed&quot;,&quot;date&quot;:&quot;2026-02-22T09:54:04.023Z&quot;,&quot;edited_at&quot;:null,&quot;ancestor_path&quot;:&quot;217895979&quot;,&quot;reply_minimum_role&quot;:&quot;everyone&quot;,&quot;media_clip_id&quot;:null,&quot;user&quot;:{&quot;id&quot;:12301499,&quot;name&quot;:&quot;Andrew Jones&quot;,&quot;handle&quot;:&quot;andrewrjones&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1487daae-ccfb-4061-9206-b6b0653a3003_3024x3024.jpeg&quot;,&quot;bio&quot;:&quot;Principal (Data) Engineer. Coined Data Contracts. Father of 2. Brewer of beer.&quot;,&quot;profile_set_up_at&quot;:&quot;2023-02-07T16:59:01.478Z&quot;,&quot;reader_installed_at&quot;:&quot;2023-09-23T08:51:51.077Z&quot;,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null},&quot;primary_publication&quot;:{&quot;id&quot;:3078050,&quot;subdomain&quot;:&quot;andrewrjones&quot;,&quot;custom_domain_optional&quot;:false,&quot;name&quot;:&quot;Andrew Jones&quot;,&quot;author_id&quot;:12301499,&quot;user_id&quot;:12301499,&quot;handles_enabled&quot;:false,&quot;explicit&quot;:false,&quot;is_personal_mode&quot;:false,&quot;payments_state&quot;:&quot;disabled&quot;,&quot;pledges_enabled&quot;:true}},&quot;reaction_count&quot;:0,&quot;reactions&quot;:{&quot;&#10084;&quot;:0},&quot;restacks&quot;:1,&quot;restacked&quot;:false,&quot;children_count&quot;:0,&quot;user_bestseller_tier&quot;:null,&quot;userStatus&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null},&quot;user_primary_publication&quot;:{&quot;id&quot;:3078050,&quot;subdomain&quot;:&quot;andrewrjones&quot;,&quot;custom_domain_optional&quot;:false,&quot;name&quot;:&quot;Andrew Jones&quot;,&quot;author_id&quot;:12301499,&quot;user_id&quot;:12301499,&quot;handles_enabled&quot;:false,&quot;explicit&quot;:false,&quot;is_personal_mode&quot;:false,&quot;payments_state&quot;:&quot;disabled&quot;,&quot;pledges_enabled&quot;:true},&quot;attachments&quot;:[{&quot;id&quot;:&quot;462e6143-2317-4ff1-9d9f-e7aedaa4b2e0&quot;,&quot;type&quot;:&quot;link&quot;,&quot;linkMetadata&quot;:{&quot;url&quot;:&quot;https://lethain.com/competitive-advantage-author-llms/&quot;,&quot;host&quot;:&quot;lethain.com&quot;,&quot;title&quot;:&quot;What is the competitive advantage of authors in the age of LLMs?&quot;,&quot;description&quot;:&quot;Over the past 19 months, I&#8217;ve written Crafting Engineering Strategy,\na book on creating engineering strategy. I&#8217;ve also been working increasingly with\nlarge language models at work.\nUnsurprisingly, the intersection of those two ideas is a topic that I&#8217;ve been thinking\nabout a lot. What, I&#8217;ve wondere&#8230;&quot;,&quot;image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ff68084-baae-4aa4-b837-6a29d58595f1_400x400.png&quot;,&quot;original_image&quot;:&quot;https://lethain.com/static/author.png&quot;},&quot;explicit&quot;:false}]},&quot;trackingParameters&quot;:{&quot;item_primary_entity_key&quot;:&quot;c-218005616&quot;,&quot;item_entity_key&quot;:&quot;c-218005616&quot;,&quot;item_type&quot;:&quot;comment&quot;,&quot;item_comment_id&quot;:218005616,&quot;item_content_user_id&quot;:12301499,&quot;item_content_timestamp&quot;:&quot;2026-02-22T09:54:04.023Z&quot;,&quot;item_context_type&quot;:&quot;comment&quot;,&quot;item_context_type_bucket&quot;:&quot;&quot;,&quot;item_context_timestamp&quot;:&quot;2026-02-22T09:54:04.023Z&quot;,&quot;item_context_user_id&quot;:12301499,&quot;item_context_user_ids&quot;:[],&quot;item_can_reply&quot;:false,&quot;item_last_impression_at&quot;:null,&quot;impression_id&quot;:&quot;f93ce6b0-ac7f-45aa-8462-2ffd78b82e16&quot;,&quot;followed_user_count&quot;:172,&quot;subscribed_publication_count&quot;:140,&quot;is_following&quot;:true,&quot;is_explicitly_subscribed&quot;:false,&quot;note_velocity_factor&quot;:1.00489453674,&quot;note_delay_seconds&quot;:93,&quot;note_notes_per_hour&quot;:3242.770362,&quot;item_current_reaction_count&quot;:0,&quot;item_current_restack_count&quot;:1,&quot;item_current_reply_count&quot;:0}}],&quot;name&quot;:&quot;Anna Bergevin&quot;,&quot;user_id&quot;:61243663,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ffdf50fb-64e3-4a0b-8806-3ea6c47d3d66_1537x2046.jpeg&quot;,&quot;user_bestseller_tier&quot;:null,&quot;userStatus&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:1,&quot;accent_colors&quot;:null},&quot;paidPublicationIds&quot;:[10845,1473069],&quot;subscriber&quot;:null}},&quot;source&quot;:null,&quot;forumChannel&quot;:null}" data-component-name="CommentPlaceholder"></div><p>On how she is seeing &#8220;datapacks&#8221; that provide the content of a book in a way it can be easily used in an LLM as having some value.</p><p>Both of these show that there is value in writing books and creating apps, but that the typical moat of both of those things has changed.</p><p>Nick can vibe code a IPC app as fast as I can, if not faster</p><p>Anna can take the ePUB version of my book and use it in a LLM as fast as I can.  If she pays more for tokens and the latest models than I do, she can do it faster and better than I can.</p><p>So effort and expertise are no longer the moat.</p><p>Given I have always said I &#8220;Can&#8217;t Code, Don&#8217;t Code, Won&#8217;t Code&#8221; but now I can now create an App but just asking questions, Im pretty sure Effort and Expertise is not the moat it was anymore either.<br><br>But maybe experience is.<br><br>To create my app in a way that meant it was actually useful, I had to have experience:</p><ul><li><p>experience using the canvas</p></li><li><p>experience working with multiple data teams on the problem the IPC solves</p></li><li><p>experience using apps to know what UX features were needed</p></li><li><p>experience to know that I needed to add Google Auth to provide an easy login </p></li><li><p>experience to know not to store any API keys in a way that were public</p></li><li><p>experience to know that I wanted to use Google Spanner as the backend data repository and Svelte as the front end language</p></li><li><p>experience to know I wanted a API layer between the backend data repository and the front end app</p></li><li><p>experience to know &#8230;.. </p></li></ul><p>I don&#8217;t have an answer to what the new moat is, but I have more clarity on what it isn&#8217;t after these experiments.</p>]]></content:encoded></item><item><title><![CDATA[Fact-based modelling patterns with Marco Wobben]]></title><description><![CDATA[AgileData Podcast #81]]></description><link>https://agiledata.info/p/fact-based-modelling-patterns-with</link><guid isPermaLink="false">https://agiledata.info/p/fact-based-modelling-patterns-with</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Sat, 14 Feb 2026 10:46:07 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6954060b-988e-4da4-9ab9-379b975be344_800x800.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Join Shane Gibson as he chats with Marco Wobben about the patterns within Fact-based modeling.</p><blockquote><p><strong><a href="https://agiledata.substack.com/i/187938526/listen">Listen</a></strong></p><p><strong><a href="https://agiledata.substack.com/i/187938526/google-notebooklm-mindmap">View MindMap</a></strong></p><p><strong><a href="https://agiledata.substack.com/i/187938526/google-notebooklm-briefing">Read AI Summary</a></strong></p><p><strong><a href="https://agiledata.substack.com/i/187938526/transcript">Read Transcript</a></strong></p></blockquote><p></p><h2>Listen</h2><p>Listen on all good podcast hosts or over at:</p><p><a href="https://podcast.agiledata.io/e/fact-based-modelling-patterns-with-marco-wobben-episode-81/">https://podcast.agiledata.io/e/fact-based-modelling-patterns-with-marco-wobben-episode-81/</a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://podcast.agiledata.io/e/fact-based-modelling-patterns-with-marco-wobben-episode-81/&quot;,&quot;text&quot;:&quot;Listen to the Podcast Episode on Podbean&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://podcast.agiledata.io/e/fact-based-modelling-patterns-with-marco-wobben-episode-81/"><span>Listen to the Podcast Episode on Podbean</span></a></p><p></p><p></p><blockquote><p><strong>Subscribe:</strong> <a href="https://podcasts.apple.com/nz/podcast/agiledata/id1456820781">Apple Podcast</a> | <a href="https://open.spotify.com/show/4wiQWj055HchKMxmYSKRIj">Spotify</a> | <a href="https://www.google.com/podcasts?feed=aHR0cHM6Ly9wb2RjYXN0LmFnaWxlZGF0YS5pby9mZWVkLnhtbA%3D%3D">Google Podcast </a>| <a href="https://music.amazon.com/podcasts/add0fc3f-ee5c-4227-bd28-35144d1bd9a6">Amazon Audible</a> | <a href="https://tunein.com/podcasts/Technology-Podcasts/AgileBI-p1214546/">TuneIn</a> | <a href="https://iheart.com/podcast/96630976">iHeartRadio</a> | <a href="https://player.fm/series/3347067">PlayerFM</a> | <a href="https://www.listennotes.com/podcasts/agiledata-agiledata-8ADKjli_fGx/">Listen Notes</a> | <a href="https://www.podchaser.com/podcasts/agiledata-822089">Podchaser</a> | <a href="https://www.deezer.com/en/show/5294327">Deezer</a> | <a href="https://podcastaddict.com/podcast/agiledata/4554760">Podcast Addict</a> |</p></blockquote><div id="youtube2-A8NNwWWsMro" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;A8NNwWWsMro&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/A8NNwWWsMro?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><p>You can get in touch with Marco via <a href="https://www.linkedin.com/in/wobben/">LinkedIn</a> or over at <a href="https://casetalk.com">https://casetalk.com</a></p><div class="pullquote"><p><strong>Tired of vague data requests and endless requirement meetings? The Information Product Canvas helps you get clarity in 30 minutes or less?</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledataguides.com/ipc&quot;,&quot;text&quot;:&quot;Fix Your Data Requirements&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://agiledataguides.com/ipc"><span>Fix Your Data Requirements</span></a></p></div><h2>Google NotebookLM Mindmap </h2><p></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SSeF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SSeF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.png 424w, https://substackcdn.com/image/fetch/$s_!SSeF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.png 848w, https://substackcdn.com/image/fetch/$s_!SSeF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.png 1272w, https://substackcdn.com/image/fetch/$s_!SSeF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SSeF!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.png" width="1200" height="1596.4285714285713" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1937,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:1079335,&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://agiledata.substack.com/i/187938526?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SSeF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.png 424w, https://substackcdn.com/image/fetch/$s_!SSeF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.png 848w, https://substackcdn.com/image/fetch/$s_!SSeF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.png 1272w, https://substackcdn.com/image/fetch/$s_!SSeF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06da155-bf0f-4e7c-99ce-adf7fd87e932_4012x5337.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></p><h2>Google NoteBookLM Briefing</h2><h2><strong>Executive Summary</strong></h2><p>This document synthesizes key insights from a  discussion between Shane Gibson and Marco Wobben regarding <strong>Fact-Based Modeling </strong>&#8212;also known as Fact-Oriented Modeling. The central premise is that modern data modeling has become a &#8220;lost art,&#8221; leading to significant &#8220;business debt&#8221; where organizations lose the context and meaning behind their data due to silos and rapid staff turnover.</p><p>The core solution presented is Fact-Based Modeling, a methodology that grounds abstract technical requirements in &#8220;administrative reality&#8221; by combining linguistic terms with actual data examples. By focusing on how stakeholders communicate (Information Modeling) rather than just how systems store data (Data Modeling), Fact-Based Modeling allows organizations to bridge the gap between business subject matter experts (SMEs) and technical implementations. This approach not only ensures more accurate system design but also provides the necessary semantic grounding for emerging technologies like Large Language Models (LLMs).</p><p>--------------------------------------------------------------------------------</p><h3><strong>The Crisis of Lost Context: Technical and Business Debt</strong></h3><p>The current state of data management is characterized by a widening gap between what is stored in systems and what those records mean to the business.</p><ul><li><p><strong>Evaporation of Knowledge:</strong> Senior experts with decades of organizational history are retiring or leaving, and the average job tenure (four to six years) is too short to maintain deep context.</p></li><li><p><strong>Business Debt:</strong> This is the cumulative loss of meaning within an organization. When systems are built without documenting the &#8220;story&#8221; behind the data, the original business intent is lost, leaving IT to guess the context of legacy records.</p></li><li><p><strong>The Context Gap:</strong> Technical optimization (how data is stored) often overrides business representation (how data is used). This leads to &#8220;tribal wars&#8221; where different departments use the same terms (e.g., &#8220;inventory&#8221; or &#8220;customer&#8221;) to mean entirely different things based on their specific departmental needs.</p></li></ul><p>--------------------------------------------------------------------------------</p><h3><strong>Defining Fact-Based Modeling </strong></h3><p>Fact-Based Modeling is a methodology developed to capture domain knowledge by focusing on &#8220;facts&#8221;&#8212;statements about the business that are agreed upon as true within a specific context.</p><p><strong>Core Components of the Fact-Based Modeling Approach</strong></p><ul><li><p><strong>Grounding in Examples:</strong> Unlike traditional modeling that looks at abstract entities and attributes, Fact-Based Modeling uses &#8220;data by example.&#8221; Instead of discussing a &#8220;Customer&#8221; entity, a modeler uses a statement like: <em>&#8220;Customer 123 buys Product XYZ.&#8221;</em></p></li><li><p><strong>Binding Term and Fact:</strong> By combining the linguistic term with a concrete fact, modelers can identify misalignments quickly. For instance, seeing that one system identifies a customer by an email and another by a numeric ID reveals a transformation problem that abstract modeling might miss.</p></li><li><p><strong>Information Modeling vs. Data Modeling:</strong></p><ul><li><p> <strong>Information Modeling:</strong> Focuses on how humans communicate about data to reach alignment.</p></li><li><p> <strong>Data Modeling:</strong> Focuses on technical storage, structures, and optimization.</p></li><li><p> <strong>The Distinction:</strong> Information modeling is the &#8220;primary citizen,&#8221; while technical artifacts (SQL, schemas) are secondary outputs derived from it.</p></li></ul></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WSQf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WSQf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png 424w, https://substackcdn.com/image/fetch/$s_!WSQf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png 848w, https://substackcdn.com/image/fetch/$s_!WSQf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png 1272w, https://substackcdn.com/image/fetch/$s_!WSQf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WSQf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png" width="676" height="299.05349794238685" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:215,&quot;width&quot;:486,&quot;resizeWidth&quot;:676,&quot;bytes&quot;:27542,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agiledata.substack.com/i/187938526?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!WSQf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png 424w, https://substackcdn.com/image/fetch/$s_!WSQf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png 848w, https://substackcdn.com/image/fetch/$s_!WSQf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png 1272w, https://substackcdn.com/image/fetch/$s_!WSQf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57420bb3-698b-43ec-a661-0de5e37e561d_486x215.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>--------------------------------------------------------------------------------</p><h3><strong>Methodology: The Process of Fact-Based Modeling</strong></h3><p>Fact-Based Modeling follows a specific logical flow to ensure that complexity is simplified without losing essential nuances.</p><ol><li><p><strong>Scope the Domain:</strong> Identify the specific problem area (e.g., Sales, Emergency Room, Tax).</p></li><li><p><strong>Gather Data Stories:</strong> Interview SMEs to collect verbalizations of how they describe their work.</p></li><li><p><strong>Identify Business Constraints:</strong> Use interactive questioning to find the &#8220;rules&#8221; of the data. (e.g., &#8220;Can a citizen be registered in more than one municipality at once?&#8221;)</p></li><li><p><strong>Identify Exceptions:</strong> Use the data examples to flush out the &#8220;edge cases&#8221; that SMEs often forget until they see a specific record.</p></li><li><p><strong>Alignment through Generalized Objects:</strong> When different departments use different identifiers for the same concept (e.g., Name vs. Email), Fact-Based Modeling uses &#8220;generalized object types&#8221; to link these different views into a unified communication framework.</p></li></ol><p>--------------------------------------------------------------------------------</p><h3><strong>Strategic Value and Modern Application</strong></h3><p><strong>1. Automation and Efficiency</strong></p><p>Fact-Based Modeling allows for a &#8220;context-first&#8221; implementation. Because the model is rich in semantics and constraints, tools can automatically generate:</p><ul><li><p>SQL for database creation.</p></li><li><p>Data Vault or normalized models.</p></li><li><p>Database views that represent the original user stories.</p></li><li><p>Test data derived directly from the interviews.</p></li></ul><p><strong>2. Grounding AI and LLMs</strong></p><p>LLMs are proficient at generating &#8220;fabricated stories&#8221; but lack organizational context. Fact-Based Modeling provides the &#8220;ground truth&#8221; needed to keep AI outputs accurate. By feeding an LLM the terms, definitions, facts, and business constraints from a fact-based model, the AI can perform tasks with a much higher degree of reliability.</p><p><strong>3. Avoiding the &#8220;Generic Model&#8221; Trap</strong></p><p>The document highlights the failure of massive, pre-built industry models (e.g., the IBM Banking Model). These models often fail because organizations do not know their own &#8220;edge&#8221; or specific context. Fact-Based Modeling allows a company to capture its unique business logic rather than trying to fit into a generic template that ignores their specific reality.</p><p>--------------------------------------------------------------------------------</p><h3><strong>Notable Insights and Quotes</strong></h3><p><strong>On Complexity and Simplicity:</strong> &#8220;If the end product is presented and everybody goes: &#8216;Wow, is this it? Did it really take you that long... I could have done this,&#8217; then I succeeded in making something very complicated very simple to understand.&#8221; &#8212; <em>Marco Wobben.</em></p><p><strong>On the collaborative nature of solving data ambiguity: </strong>&#8220;It is somehow a team effort to slay this beast of miscommunication until everybody agrees and understands each other. ... It&#8217;s all about, working together and trying to fight it. What are we not seeing? What are we missing? How do we tackle this? And a lot of that is just human interaction.&#8221;  &#8212; <em>Marco Wobben.</em></p><p><strong>On the Definition of a Fact:</strong> &#8220;A fact is a piece of data that&#8217;s physically represented somewhere... I can point to it. It has been created. I&#8217;m not inferring it. It is something that is factually there.&#8221; &#8212; <em>Shane Gibson.</em></p><p><strong>On Party Entity Data Models:</strong> &#8220;The most expensive part of our systems is the humans and [understanding] that context... as soon as you design a system with &#8216;thing as a thing&#8217; and that context lives nowhere else, I now have to spend a massive amount of expensive time trying to understand what the hell [it is].&#8221; &#8212; <em>Shane Gibson.</em></p><p><strong>On the concept of &#8220;business debt&#8221; created by rapid technological change: </strong>&#8220;This is the paradox where business wants to have changed faster. And it ruined the party by saying, we can deliver faster with this new latest tech, but neither party realized what they were losing along the way. So it&#8217;s technical debt, it&#8217;s business debt.&#8221; &#8212; <em>Marco Wobben.</em></p><p>--------------------------------------------------------------------------------</p><p><strong>Conclusion</strong></p><p>Fact-Based Modeling serves as a bridge between the human understanding of business processes and the technical requirements of data storage. By prioritizing the &#8220;authentic story&#8221; of the business and grounding it in real-world data examples, organizations can mitigate the risks of technical and business debt, ensuring that their data remains a usable, understood asset even as technology and personnel change.</p><p></p><div class="pullquote"><p><strong>Tired of vague data requests and endless requirement meetings? The Information Product Canvas helps you get clarity in 30 minutes or less?</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://agiledataguides.com/ipc&quot;,&quot;text&quot;:&quot;Fix Your Data Requirements&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://agiledataguides.com/ipc"><span>Fix Your Data Requirements</span></a></p></div><p></p><h2>Transcript</h2><p><strong>Shane</strong>: Welcome to the Agile Data Podcast. I&#8217;m Shane Gibson.</p><p><strong>Marco</strong>: And I&#8217;m Marco Wobben.</p><p><strong>Shane</strong>: Hey, Marco. Thank you for coming on the show. Today we&#8217;re gonna talk about a thing called fact-based modeling, but before we do that, why don&#8217;t you give the audience a bit of background about yourself?</p><p><strong>Marco</strong>: Ah, yes. Thank you. Thanks for having me. Yeah, background a lot of background there. I&#8217;ve been around a few decades. I first fell in love with computers when I was still in secondary school. That got me hooked when somebody showed me the break key on a keyboard and we could stop games mid play, change the code and resume.</p><p>And that was like, oh, this is magic. I need to figure out how to make this my toolbox. And I enjoyed making software, hacking software working with computers ever since. And. From getting a job onboarding people on Microsoft Windows and Office. Back in the day, I decided to just chase my own career, quit the job and started doing entrepreneur work, made custom software from design to end product for a number of startups. And then somewhere early two thousands, a professor knocked on our door and said, we have this source code of a modeling tool. And the kids that graduated on it, with, they took a different path and we need somebody to maintain it. And ever since early 2000, I&#8217;ve been working on fact-based modeling that I had to learn from the inside out.</p><p>So that&#8217;s where I am now. I&#8217;m being considered the expert currently. &#8216;Cause a lot of professors retired and the young people haven&#8217;t caught on for it yet, just and here I am talking about fact-based modeling or fact oriented modeling, if you will. </p><p><strong>Shane</strong>: Yeah, it&#8217;s interesting. We before we started, we talked briefly about the fact that data modeling&#8217;s become a lost art. And actually, I think it&#8217;s coming back now with all the AI focus, it seems that data modeling is a term I&#8217;m seeing used a lot. But, if you think about your career path, that idea that you could start out with games as a way of introducing yourself to, to computers in the early days.</p><p>I was like, you I started out. We had a couple of computers at school. The old I think they went green. I think they were amber screens back then. And yeah, again, I got hooked by the games. And I wondered whether that&#8217;s the thing that&#8217;s been missing is gamifying data modeling.</p><p>Like actually making it exciting is, it&#8217;s probably the missing thing, right? Is if there was a game that you just happened to date, a model when you did it. Maybe that&#8217;s what we needed to make what we do sticky with with people that are coming up in their career.</p><p><strong>Marco</strong>: that&#8217;s an interesting take on it. it&#8217;s interesting looking at my users, I&#8217;ve been maintaining this information modeling tool for years now, is that there seems to be more. Interest from people that are curious and like doing things right and talk about things. And this is, I can see that in, in a lot of gaming communities where, you know, in the old days it was like you play your game single player with this computer, right?</p><p>But gamification nowadays is so much more you can team up and you none of that stuff was there in the early years. Even graphics were not there yet. The communication aspects right nowadays is more and more prevalent and important and it&#8217;s. If you look back, what data modeling really is to get the technical requirements of what people actually needed the computer to do in store and how to manage it.</p><p>Seeing that come back a little I dunno if gamification would help, but there&#8217;s definitely more openness to let&#8217;s talk about it. And you can see it a little bit in the agile phenomena where there&#8217;s a lot of standups stakeholders, product owners, and everybody starts talking and communicating with each other.</p><p>So that&#8217;s definitely on the rise. I&#8217;ve seen a few data modeling efforts that actually try to gamify it and it&#8217;s like a, they have this data modeling tool and it has flashing text and animated tables and, I&#8217;m not sure if that&#8217;s really the end goal, but I can see how it might help. </p><p><strong>Shane</strong>: Yeah. I was thinking more about gamification as in the adrenaline rush when you are successful in solving a problem not the flashing things. Because earlier in my career, I worked for a software startup in the accounting space called X. One of the reasons that they became successful was they had this gamification of bank reconciliation.</p><p>So pretty much you had bank transactions on the left and your invoices and all that on the right. And whenever a transaction came up on your bank statement, you pretty much dragged it and matched it to the right. And then that road disappeared and it was a very simple gamification process.</p><p>But there&#8217;s this adrenaline rush going in and seeing your bank rec with 50 transactions you haven&#8217;t reconciled, and just going bing, bang Bosch, and it becomes clear. And, I don&#8217;t, it didn&#8217;t have confetti. Actually that was one of the big arguments at the time was should it have confetti con? </p><p><strong>Marco</strong>: more like a Tetris road disappearing from your screen.</p><p><strong>Shane</strong>: Yeah. Yeah, exactly. And so you sit there going, maybe that&#8217;s it. So as I think about it more, when I&#8217;m conceptually modeling the adrenaline rush is when I create a map that I can show to a stakeholder and they just nod and go, yeah, that&#8217;s business reality. I get it. Yeah. That&#8217;s how we work.</p><p>When I logically model, it&#8217;s this idea of yeah, I can take that conceptual model and I can slam it into the modeling Pattern that I use and it makes sense. And then when I take that logical model and I make a physical model and the cloud database actually takes it and I can actually query it fast and it doesn&#8217;t cost me a fortune, and any question that I get asked can be answered with that data.</p><p>There&#8217;s that adrenaline rush, right? That gamification of each of those steps adding value to my life or somebody else&#8217;s. I don&#8217;t dunno, I just, I haven&#8217;t thought about it that way until you mentioned that you started out hacking games.</p><p><strong>Marco</strong>: That is, it definitely is true for me because, as I add features that support user functionality and all that, and it&#8217;s like there&#8217;s definitely a rush when I see people use it and they go oh, this is handy. This is practical. This, makes my work easier. Then I get the adrenaline rush. Definitely on the modeling part itself. It usually goes through long cycles of deep talks about the subject matter at hand, which, there&#8217;s definitely an adrenaline rush, but not necessarily always the good ones. As a, as an example that I used a lot and some other authors put it in their book too, is I had a long interview with the subject matter expert and it took us about two hours to figure out one requirement, and there was a lot of talk on the type level that created confusion because, yeah, what is a customer really? So I have to get through that. And in the end there was a little bit of an euphoria, which is, the adrenaline in rush, if you will, where we finally nailed it. The subject matter expert re replied, somewhat baffled and in disbelief, and he says, I had no idea my work was that complicated. And then being able to write it down in a way that everybody suddenly understands. That&#8217;s definitely a moment of adrenaline and rush, if you will. It takes two hours of hard work. It takes a lot of interviews, a lot of digging. And then finally when you reach that point, and it&#8217;s like one of, I remember a quote in a book I forgot which one it was, but I the quote really spoke to me and he this man was speaking about information modeling on a data modeling level.</p><p>And he said if the end product is presented and everybody goes. Wow, is this it? Did it really take you that long and work so hard to just present this? I could have done this, and then his reply was then I succeeded in making something very complicated. Very simple to understand.</p><p><strong>Shane</strong>: And that&#8217;s the key is to take that complexity and describe it in a simple way where everybody nods and either agrees or disagrees. I remember one where we literally spent three months with an organization trying to get the definition of active subscription. And the problem was we had three business units.</p><p>Effectively three domains that all had different definitions, but couldn&#8217;t agree. They actually had different definitions. It wasn&#8217;t around the model itself, it was around the plain language description of that term where either we added a term in front of it, marketing, active subscription, finance, active description.</p><p>So we were clear they two different definitions or they actually agreed active description was described in this way. And that human engagement was where the time was spent not creating a map with nodes and links on it. Not creating the database, but without actually getting to a stage that we ever agreed or disagreed with that term.</p><p>There was minimal value carrying on because we would present a number that people don&#8217;t agree with because the definition&#8217;s wrong, not the number. </p><p><strong>Marco</strong>: in the years of information modeling that I, I call it information modeling, but it&#8217;s really just a fact-based modeling underneath as well. But I&#8217;ve encountered so many synonyms or harmoniums or it&#8217;s just, people just completely get confused and it becomes almost like a battle.</p><p>But here&#8217;s the thing, and I think you explained that as well. It is somehow a team effort to slay this beast of miscommunication until everybody agrees and understands each other. I just recently started watching the latest series on Stranger Things that it&#8217;s we have to team up to fight this monster from the underworld, which is, we can&#8217;t see it. We know it&#8217;s there. And it&#8217;s like, how do you fight it? And and it&#8217;s all about, working together and trying to figure it out. What are we not seeing? What are we missing? How do we tackle this? And a lot of that is just human interaction.</p><p><strong>Shane</strong>: And finding ways of taking that expertise that we have that ability to take complexity in a business organization and try and create a map that has simplicity that we can all share. That is a skill, And it&#8217;s how do we take other people on the journey without going into a room for six months on our own or creating really complex ERD diagrams with many to many crow&#8217;s feet that, few people understand, And terminology is really important. And so it&#8217;s interesting that you talk about information modeling and then you also talk about fact-based modeling. &#8216;cause as soon as I heard of fact-based modeling, I naturally go to dimensional modeling and star schemas because that is where I first heard a definition of the term fact.</p><p>And my understanding is you are talking about information modeling rather than anything to do with dimensional or star schemas. Is that correct?</p><p><strong>Marco</strong>: Yes. That&#8217;s funny &#8216;cause your first take on the word fact is how I met my wife at a data modeling conference in Portland in the USA. She was like, oh, fact-based modeling I&#8217;m doing something with data warehousing. I should go to that class to listen what this man has to say.</p><p>And it was just not the same fact. So even there, even in it, we have confusion of words, but the word fact really boils down to something that is maybe a little older even where database records really store facts as they happen in our administrative reality as I call it nowadays.</p><p>Because there&#8217;s a lot of the single point of truth. We need to get the truth out there, the reality and all of those things. But there&#8217;s something seriously flawed with that, is that we all perceive from our own bias and subjective reality, the world out there. So there is no such thing as truth. But when you store data and you consider that to be true in your world, then you can state that as effect. Effect as in, I&#8217;m writing this down and me and my colleagues agree on it. And so that&#8217;s where the terminology came from. Nowadays we trying to figure out, maybe we should call those claims instead because we all say something and we all think it&#8217;s true.</p><p>And sometimes, especially in data warehousing you collect data from different source systems. Yeah, but you can&#8217;t just say that they all state facts because some might be alternate facts. So let&#8217;s put it as all the source systems claim a certain statement about this is what happened. </p><p><strong>Shane</strong>: it&#8217;s interesting, &#8216;cause we&#8217;re talking again beforehand about how we&#8217;ve both been in the domain for quite a while, but we&#8217;ve never really crossed paths. And I&#8217;ve heard your name a lot, but I&#8217;ve never really read a lot of your stuff. And one of the things I did do, I had to train a new team moving to the data space.</p><p>And so I was trying to describe the difference between facts, measures, and metrics. And what he ended up coming up with is a language definitions that I used and the definition I used was a fact is a piece of data that&#8217;s physically represented somewhere. So if I go into a database and I see a number.</p><p>That is a fact. If I go into a spreadsheet and I see a number or a piece of text, that is a fact because I can prove it existed. I can say, that factually it&#8217;s there. I can point to it. It has been created. I&#8217;m not inferring it. It is something that is factually there for me. And that&#8217;s kinda why I use fact.</p><p>And the reason I raised information modeling versus dimensional modeling is &#8216;cause as soon as I use that term fact, anybody in the data domain goes, oh, you&#8217;re talking about a fact table. And I&#8217;m like, no. And then for me, I defined, measure as a formula, some of this, that kind of thing.</p><p>And then a metric is a complex formula. So this over this based on that at this point in time. And so for me, I didn&#8217;t mind whether people disagreed with my definitions as long as they gave me a different definition. But that&#8217;s the three terms that I used that seemed to get clarity and understanding when I was talking to people who weren&#8217;t data experts.</p><p>So yeah, I go back to the true definition of that term. Fact is not a fact table and a dimensional model. And, maybe yeah, should we move to claim or should we just bring back the true definition of that term, that&#8217;s one of the problems we have in our domain is we have what we call pedantic semantic arguments about the the most non-interesting things for.</p><p><strong>Marco</strong>: We are not gonna solve that because there&#8217;s so much when I do actually information modeling and we can come up with the word, I&#8217;ve used it in, in, in different environments, but we can all agree upon what the definition is for the word inventory. It&#8217;s the amount of things that we have and offer certain article, but then you go into different departments.</p><p>Sale comes up with three because they already sold a few. Purchasing says, we have eight because they already ordered a few. And then you go into the warehouse and the guy goes but I only have one on the shelf. The, what the hell is going on? No, even though everybody agrees they have different data. And as soon as you, you and I would speak about facts, then, I could say that the customer buys a product and we agree and we call that a fact, but it has nothing to do with the data at all. So the word fact itself is like inventory, is location is like customers that you can apply it to anything and it doesn&#8217;t mean anything. So getting too hung up on it. Is very tricky because then you will start tribal wars because no. This is what the definition for a fact is. But the reality is that the word fact the linguistical part of it, the term of it is used in different contexts. So if you wanna use it within your dimensional world, it&#8217;s fine. I&#8217;m not gonna argue with that. Is similar to calling something red, we will find it in different environments. I&#8217;m looking at a book that has a red cover. You look at the fire truck is also red. It&#8217;s, oh, we&#8217;re all good.</p><p><strong>Shane</strong>: Unless you&#8217;re in a country where the firetrucks green. And yeah, it&#8217;s interesting &#8216;cause Remco Broekmans talks about the example he has of definition of a bed in a hospital. And where one group basically said, it is the metal frame that the patient sleeps on. And another part of the organization said, nah, hold on.</p><p>It&#8217;s the room where the patient&#8217;s located. And so if I looked at the data, I would see one was probably two meters by two and a half meters and the other one was probably five meters by five meters. And then I could say the fact that this beard is five meters by five meters and has no wheels confuses me because I&#8217;d expect it to be two by three with wheels.</p><p>Maybe that data&#8217;s gonna gimme a hint that the definitions are different. So getting into that. can you just gimme a helicopter view of how fact-based modeling works.</p><p><strong>Marco</strong>: You already gave me some beautiful examples is that to distinguish the things. You also have to look at the data and what I see happening in the data modeling space is usually. The data is not that relevant. We&#8217;re all looking at tables, entities, classes and what kind of attributes they have, what columns need to go in and what are the relationships or foreign keys and all.</p><p>So there&#8217;s a lot of technical views on it, and some of it may be guided by the data at hand. But the data itself is a secondary citizen. And as I just stated with the example of inventory, is it&#8217;s only by looking at the data that you start realizing, wait a minute, we&#8217;re all calling this inventory, but we&#8217;re seeing different things.</p><p>So there must be a distinction. And instead of having, this, I call it these tribal wars, these linguistical fights about no, that&#8217;s not what I said. This is what it means. And all of that. I call that. Type level arguments, type level discussions. It&#8217;s abstract in a way. So what factory ended modeling does is two things, is first, how do I talk about my data? And I use the data in the expressions, so I&#8217;m grounding it. I&#8217;m not talking about customer buys product. I&#8217;m saying customer with customer number 1, 2, 3 buys the product X, Y, z. Where both 1, 2, 3, and x, YZ is actual data, is real examples to ground the discussion.</p><p>Because, if I use inventory and I don&#8217;t specify that, I look at it in a certain way by giving the data, we will not discover that we might have a difference of perception there. So why the factor oriented modeling or fact-based modeling is that really we need to figure out how. I talk about it, how you talk about it and how we can talk about it and ground it with actual facts, this actual data it&#8217;s not enough to say the customer buys the product because you and I would agree, but it&#8217;s only by giving the actual data examples that we might start realizing, wait a minute, I have numbers to identify my customers, and you might have email addresses to identify your customers, so there&#8217;s something else going on. So it is really digging that one level deeper into it, and not letting that go because in the fact-based modeling, we keep tying the examples data with the language, with the fact types. So it&#8217;s always that package so that we can at any point, transform our information models into any kind of artifact, but still show the example data to accompany the definitions, to accompany the structures and to illustrate that this comes with a specific data use. And I think that&#8217;s the biggest difference from what you look at data modeling or dimensional modeling or data vault modeling is that it&#8217;s all on a type level and it&#8217;s usually geared towards how do we structure the storage of data. And it&#8217;s less about how do you and I figure out how we talk about the data and how do we quantify with data that we&#8217;re talking the same thing? </p><p><strong>Shane</strong>: What I found interesting was so I&#8217;ve used the who does what Pattern a lot, And I think, I probably got it from Lawrence Coors Beam stuff. &#8216;cause that was some of the stuff I read earlier in my career. And I&#8217;ll often talk about customer orders, product from employee in store.</p><p>And then I&#8217;ve also used data by example a lot. And again, I can&#8217;t remember where I found that patent, but I found it valuable, so Bob purchased three scoops of chocolate ice cream from Jane at 1 0 6 High Street in Swindon. And what interests me about the fact-based modeling when I had a quick look at some of your presentations, is it seems like you are combining both those patterns.</p><p>So you are combining both the term and the fact into that data story. So you are saying, customer Bob purchased product, chocolate, ice cream from employee Jane at store 1 0 6 High Street.</p><p>Is that what you&#8217;re doing? You are combining the term and the fact together to give much more context around that business reality to then help you in the rest of the work.</p><p><strong>Marco</strong>: yeah, definitely. It&#8217;s very much that approach and of course tools give you different functions to, to do it in a different way. But the theory that was even developed in, mid seventies and continue to develop all the way up to the end of the nineties was really about how can we write it down in a way that non-technical people can actually read what it means.</p><p>And in the interviewing phase, in the workshops, in the explorative areas, is that, as I&#8217;ve given the examples earlier is that it&#8217;s not enough to just say, okay, we have a customer and we need a data system for that. It&#8217;s like we needed to also figure out how you talk about it.</p><p>And I think what is an increasingly more difficult problem is that where in the seventies, eighties, even nineties a lot of systems were built for a specific purpose, for a specific department, for a specific system that everybody knew the context of. So now if I&#8217;m doing a customer registration, then I&#8217;m just doing just that for my department within my group of employees.</p><p>And we all know the context. So everybody understands that if I put customer there, they all know what customer is. Now with the increase of it is that. It added a computer on every department, in every system, But they never integrated. So this is where data warehousing came in. But because it was very high context, implied the data warehousing, the BI team now had to figure out, okay, what if we pull the data?</p><p>What does it even mean? But we&#8217;re really trying to rediscover the context of where it is used. The human aspects of understanding need to be reverse engineered on top of the data structure. And this especially goes for what we&#8217;re currently seeing with all the LLMs. Yes, it can give great semantics or storylines, but does it really understand the context?</p><p>So this is another gap. And what the fact oriented modeling approaches is that we try to interview and capture the knowledge of the domain and subject matter experts. With all the context, with their language, with their examples and try to line that up with the data, the language and the meaning of some other department that uses a different system. And not just to be able to talk about that specific system, but to also align the communication across departments, across contexts. That&#8217;s really what got lost. If you have individual silos that you want to bring together into a data warehouse solution, that the missing piece is the original and authentic communication about their systems in the first place. And then the factor oriented approach allows those subject matter experts to talk about it in a way that they understand and can be verified by colleagues and can be transferred across. Context. And I think that&#8217;s the real added value that when systems were built within a specific context, the value of that was not really seen because it served the context.</p><p>Everybody knew that. where you see now an increasing in interest in, okay, we need to get back to our ontology, we need to get back to our semantics. We need to get back to meaning, we have to get back to information. So all of that was there and it&#8217;s still there if you don&#8217;t throw away the baby with the bath water.</p><p><strong>Shane</strong>: I agree. I, we go through waves, so we see a wave right now outside the AI wave. We see a wave of bi me metric layers. This idea of having a layer where you can define a metric and then regardless of which system, the data&#8217;s coming from or you are hitting that same metric&#8217;s been applied.</p><p>And I go well, you know, years ago in the old BI tools we had end user layer or a universe. We&#8217;ve had that Pattern and then we lost it, and then we get it back. I&#8217;m also with you in terms of the way systems have evolved. We&#8217;ve gone from a mainframe where we had one system where there was a term called customer and there was one fact and that was it.</p><p>And then we went to client Server N Tier, and we ended up with seven. And then software as a service, 50 to a hundred. And with the AI wave now and Gen ai, we&#8217;re gonna see these one shot apps. We&#8217;re gonna see thousands of things that have created for one use case get stood up really quickly, and then probably disposed of.</p><p>And so this ability to have a language where regardless of the system and how many we have, we get shared context is really important.</p><p>And that example that you used, I just wanna come back to that because I hadn&#8217;t thought about it that way. So if I said customer orders, product. I have a thousand systems that involve a customer, an order, and a product.</p><p>I have absolutely no context whether they&#8217;re defining the same things the same way.</p><p>But if I use this data by example, if I say customer, Bob, ordered product, and then in another system I see customer bob@gmail.com ordered product, and in another system I see customer 1, 2, 3, ordered product, and in another system, customer A, B, C, ordered product.</p><p>What I know now based on Pattern recognition, is that I have a problem with the unique identifier of customer.</p><p>Like I can tell that in 10 seconds by seeing those four data examples and it&#8217;s something I know I need to solve.</p><p>Because to mash that all up, I need some form of conformity, right?</p><p>Some form of either shared identifier or a way of mapping it. And so I can see by this combining this term and this fact together, it gives me the richness to understand the problems I need to solve much quicker than any of the other techniques where they&#8217;re separated.</p><p><strong>Marco</strong>: That&#8217;s true and it&#8217;s, you&#8217;re still some somewhat catching an optimal path because you already assumed in this example that all those systems had something called customer. And in one system it&#8217;s probably CST. Then you have to combine it with SAP, where it has X 3 0 4 as a table name and then you have a very abstract table called persons. So you can see where this is going because all of those systems, the storage and the structuring of the data in that system served only one purpose. Optimizing the IT part of it, the IT end product presented the data in a way that the business wants to work with it and wants to see it, but it doesn&#8217;t represent how it is stored. The storage and the management of the physical data is technically optimized. It is not with the business representation in mind necessarily. And this is what a lot of people in the data space have encountered too. It&#8217;s okay, now I have 200 source systems and I need to figure out what is what.</p><p>So is this email address, does that indeed correspond with my customer? In the other system where it&#8217;s identified with 1, 2, 3, is that even the same customer? Is it a customer in the first place? So there is so much not just technical debt for systems that are undocumented or not well documented or behind in documentation, but also a, what I increasingly call the business debt is that nobody knows what that meant to the business anymore. And this is the paradox where business wants to have changed faster. And it ruined the party by saying, we can deliver faster with this new latest tech, but neither party realized what they were losing along the way. So it&#8217;s technical debt, it&#8217;s business debt. In governments it&#8217;s even worse because there&#8217;s a massive gap between the legal articles made up by politicians full of compromises and loopholes to the actual systems used by government bodies.</p><p>And, now we changed the law. Which system did we need to change or vice versa? We&#8217;re looking at data here but we have no idea if we&#8217;re even allowed to have this data or even be able to look at it because we don&#8217;t know the legal articles with it. So everything in it scaled up in the past 30 years so quickly. It totally got outta control in a way where the next tool&#8217;s not gonna solve it. An LLM is wonderful, magical stuff, but it&#8217;s not gonna solve the real thinking issues. We can do data profiling because we were still not sure if we got the context right. We can do LLM, but we are still not sure if the relationships are correct. So there&#8217;s still that gap of knowledge that we lost and somehow need to reintroduce to make things really work.</p><p><strong>Shane</strong>: And actually that&#8217;s interesting around that organizational context and losing that knowledge. Because if I think about it, if I was walking into a new organization and I wanted to understand the context of that organization, my natural technique was to find somebody who&#8217;d been there for a long time as a subject matter expert, that person that&#8217;d been there for 20 years because they&#8217;ve got the stories of how that context happened and why it happened.</p><p>And so moving to the uk I had to set up bank accounts. And so I went, and there&#8217;s a whole reason that I needed to do a UK domicile bank rather than one of the newer, easier to deal with banks. And so I went to one of the main banks, I created a personal bank account.</p><p>Took a while. All good. And then I went back to that. &#8216;cause now I&#8217;m a customer of being identified. In theory. Everything is easy. And I tried to create a business bank account and it forced me to create a new identity. I had to go through the whole identity process, even though I used the same email address, which was my form of identification, my identifier, I had to go and revalidate myself that I have a same address, same passport number.</p><p>And you sit back as a customer and you go, that&#8217;s just crazy bollocks. And then I talked to somebody that had worked for that bank, that subject matter expert who&#8217;d been there for a while. And they said, yeah, but you gotta understand that was two different banks, two different systems, and they haven&#8217;t been merged.</p><p>And therefore you may think you&#8217;ll be dealing with the same organization, but you&#8217;re not really. And I&#8217;m like, yeah, actually. Okay, that makes sense. Now why? Why did I not understand that working in data so often, but if we go back to that example of term, in fact, so yes, if the term changes, so now I see a customer and I see person and I see prospect and I see X 2 0 3.</p><p>If the fact is the same, if every one of those is customer Bob at Gmail X 2 0 3, Bob at Gmail, prospect Bob at Gmail, again, I&#8217;m getting more context, I&#8217;m not getting an answer, but I&#8217;m getting more information that can help me understand a problem to be solved. And as we know with data, there&#8217;s so many problems to be solved.</p><p>It&#8217;s such a complex space. When we hit reality of organizations, the way they work, the terms they use, the systems they use, the way they create and store data. But this idea of binding term and facts. Gives me some more hints because now I can say they&#8217;re all the same email address, are they the same term?</p><p>And then somebody will say actually no, when you see prospect and customer, it is a different rule and then somebody else will go. But you do know that they can change their email address whenever they feel like it. And you&#8217;re like, yep, seen that Pattern before. Okay, so it&#8217;s an identifier, it&#8217;s a unique identifier, but it&#8217;s not a consistent or persistent identifier.</p><p>There&#8217;s all these patterns and data that we know are gonna hit us, but by binding that term, in that fact, I get some hints at the beginning across multiple subject matter experts. So I can see real value in, in that part of the process early. And so talk me through that, You drop into a new organization.</p><p>You wanna start off with fact-based modeling. How do you do it? What do you actually do?</p><p><strong>Marco</strong>: It&#8217;s a funny question. I, a lot of people ask me that, how do you start it? If you open up the books about this topic that either are written as a university. Proof of concept all the way to, self study. It always starts with gather your sources, figure out what is the domain about in the first place.</p><p>So there&#8217;s very much a almost top down approach where you go okay, we got sales, we&#8217;ve got production. so it&#8217;s the general area. You can&#8217;t just jump into the jungle and start describing all the little insects on the jungle floor.</p><p>It&#8217;s that&#8217;s not how it works. But usually there is a problem domain, there is an integration problem. and. So what needs to happen is that you need to be able to carve out some time with at least some business domain expert subject matter expert to sit down and say, okay what&#8217;s the issue here?</p><p>What do you, what are you doing? What does it do? And start writing it down. so far, not that much different from actual data modeling, if you will. But the distinction starts with the nitty gritty where you need to get things right. And it&#8217;s usually getting things right, not just to verify if you understood correctly, because that&#8217;s already a hard part as my two hour example earlier showed to, just get one line of requirements, correct. But that back and forth with language and examples is of great help in getting to actual understanding. But the major part is usually you need to work with a colleague that also needs to understand it. And with the current short-lived career jumps, if you will, is that you may find an expert, but he might be gone in four hours or as is happening currently as well. A lot of seniors that actually know the organization, they&#8217;re getting in a pension range and they just leaving the company. And what is left behind is usually short lived career steps, short lived managers that move on. There&#8217;s a lot of tempo where at the average job years is four to six years. So the knowledge actually evaporates while we&#8217;re looking at it, while we&#8217;re trying to document it. and that&#8217;s where the difference starts to rise between traditional data modeling that creates diagrams and type level schemas into a, if you compare that with factory and modeling, you have real user stories that you can, with a click of a mouse can pull up and you can read how it&#8217;s being used in language in the organization and how it&#8217;s being transferred to other departments. And I think that securing that knowledge, that semantic rich document, if you will that is something that I see that gets lost with the more traditional, more technical data modeling. It&#8217;s, yes, you have the traditional layers of conceptual, logical, physical. But still, there&#8217;s not really a story there. And the people that I talked with and explained this kind of stuff is that they all recognize what I&#8217;m describing and a lot of the architects and a lot of the data models will reply with, yeah, that&#8217;s what I do in my head. And then my question is, my obvious question is but does it leave your head, does it get written down somewhere so that if you leave, your colleague can take over? And then the answer is usually no. There might be a document somewhere, describes the use case, but that very quickly gets evaporated as well, because everybody starts looking at the artifacts and the technical schemas. So by having an environment where you tie it all together, that you cannot do one without the other. That was really the grounding for the discussions the proof of the pudding, if if you will. But it also gives you the anchors going forward to technical artifacts. So by capturing that from the domain experts, putting that in an information model and being able to generate technical artifacts, even SQL to generate database, it will still comment all that SQL with all the written language and examples. It will generate a database with test data that came from the interview in the first place. It will add database views representing the full user stories on top of the production data, representing the interview. So it really is that don&#8217;t throw it away, don&#8217;t throw it away. Keep it as long as possible so that everybody is able to understand and read what the actual data is and what it means and how it&#8217;s communicated.</p><p><strong>Shane</strong>: that&#8217;s interesting because that is a form of context first implementation. And what I mean by that is with our product, we define the context first and then the technical implementation is hydrated. So I&#8217;ll create the context of a business rule, change rule, and then our system will hydrate that into physical tables and SQL transformations.</p><p>But that context that I create is the key thing we, we care about, right? That is our pet. The way we deploy it and run it is our cattle. And what we&#8217;re seeing in the new Gen ai, LLM world is that context is actually far more important for the LMS and the physical implementation of that context.</p><p>And then as I said, we&#8217;re I&#8217;m working with Juha Coer at the moment trying to write a book around how to concept model. And one of the things we came up with is one of the steps is define your domain scope. So like you said, find a subject matter expert who understands it.</p><p>The next one is get data stories. And then after that, identify events, then concepts, and then connections or relationships. And the key thing is, as you said, is when you talk to experts in this process, if they can articulate the steps they take, those steps are often common. They might use different terms, and they might do them in slightly different order in slightly different ways, but we all do it the same.</p><p>If we think about it consciously, it&#8217;s where we bring in patent templates, where we bring in artifacts that we use repeatably, that we get that repeatability, that ability for that context to be stored in a way that another person can use it.</p><p>So in my view, yes, it&#8217;s great if we have a system that does all that for us, but we don&#8217;t have to, if we just have templates that are reusable, that&#8217;s valuable on its own.</p><p>If we have a repeatable process that&#8217;s not a methodology, right? It&#8217;s not fixed, but it&#8217;s just a way of working that is valuable because it&#8217;s bringing that knowledge back. So I just wanna take you back to something that you said, So if I take this idea of term, in fact having massive value and that we get that with a subject matter expert, and by documenting it in that format.</p><p>That context is able to be seen and understood by many people other than us. You then said that it&#8217;s also a way of getting alignment. So if I get that term, in fact, if I get that fact-based model for inventory from three different domains,</p><p>How do you deal with the alignment problem?</p><p><strong>Marco</strong>: I can illustrate it by an example. And let&#8217;s stay close to the examples that we already mentioned, but it&#8217;s more powerful, more generic and more diverse than that. But I think we would need a podcast of another two days that would explain all of the ins and outs, but, so really to just show you how that would work. And I have to for the listeners doing this in an audio only podcast, I&#8217;ll try to make it as visual as I can. So when I say Marco Ban lives in Urich, which is the city of, where I live, is that would be effect that you and I can agree on and, me and my wife, we definitely agree upon that.</p><p>So let&#8217;s consider that effect and the statement that is to hold some truth value there. But there&#8217;s something else going on because Marco Warban lives, INTA is a state statement that, my wife lives in nut, my kids live in, so there&#8217;s a bunch of statements.</p><p>They all express something that we can classify as the city of residence. So by stating multiple examples like that, we can type those kind of statements as city of residence as the fact type. Now within me saying Mark of wo lives inre, I actually embed knowledge in there, even though you and I can agree upon the actual fact. I&#8217;m also saying, wait, Marco Ban is the citizen, is the city. But it goes a little deeper because my citizen is not really a citizen. It is just how I identify a citizen. And in that identification I can see, wait a minute, there&#8217;s a first name and there&#8217;s a surname. Similar with the city of Urich. It&#8217;s not really a city, it&#8217;s we&#8217;re representing the city by storing the name of the city. So you can see that if you can visualize that there&#8217;s knowledge, almost like a graph in there where I started with the city of residence. I gave it the semantics lives in, but it also has structure. It has the citizen, it has the city, it has the first name, the surname, the city name, and all of that ties together into this single fact statement. Now I can populate that with different examples. I can give my wife a position in there and my kids. And so it is populated with all kinds of example data and then the subject matter experts is then post with a series of questions. Could it happen at the same time that Marco lives in re as ma Marco lives in New York?</p><p>And then he would probably say, no, there&#8217;s something wrong with that. By going through these interactive sessions, which is almost like a gamification of the interview if you will, is you discover the business constraints and then by discovering the business constraints, that will lead to a certain structure.</p><p>When it comes to data modeling. If I can live in only one city, then the city is probably an attribute in the citizen&#8217;s table. If I can have multiple cities where I can live because that&#8217;s allowed in our register, then I would probably need a linking table in the end in physical model. So these constraints steer how the data is structured. And this is the interesting byproduct and I&#8217;m not sure if I&#8217;m still on track of their question, is that. In the interviews with subject matter experts, we can find ourselves very easily in hours long sessions about, what is a citizen. But as soon as they cannot give me a proper example to illustrate what they&#8217;re talking about, I&#8217;m talking to the people that are working outside of their scope of expertise. So that helps steering that. So there&#8217;s an organizational alignment in my efforts to find the data, illustrating the information. Now, the alignment on the other hand is now I start identifying Marco at some Gmail address lives in. So now I&#8217;m identifying the same citizen, but I&#8217;m using an email address. Now, obviously, in, in official organizations and registers that would never do, but, let&#8217;s suppose we have a small tennis club and it&#8217;s fine, so what I find now is that I still speak of city of residence. I still speak of citizen and city name, but I don&#8217;t have first name and surname.</p><p>So suddenly that citizen, where it used to be first name and surname now is an email address, but it still identifies a citizen. So what happens in the information grammar, if you will, is that there is something introduced called a generalized object type. My citizen can either be identified by first name and surname or by email address. So in the modeling part, it&#8217;s very easy to find statements that either generalize, which means that it allows different ways of identification for it, or different ways to talk about it. I now, I am presented with a data challenge because which combination of first name and surname goes with which email address. So again, I need a different fact statement that now would introduce, Marco W has an email address called Marco such and such at Gmail, which links the two keys. So nothing in my communication has to be altered to support alignment of different ways of identifying it, doing data mapping, just as part of the verbalization. I have a department here that only works with names. I have a department there that only works with Gmail addresses. I can make them talk to each other &#8216; cause that needs to happen sooner or later. And the way that they talk to each other is say yeah, you&#8217;re right. This market woman corresponds with that email address because I have proof of that.</p><p>So then suddenly you have a mechanism introduced in the communication on how to identify certain entities in your data administration in a unified way. So this is different examples on how these alignments work on both semantic level, on a data level, on an identification level. In short.</p><p>Shane: I was thinking about it slightly differently, but it&#8217;s exactly the same process, I think. So let me play it back to you where I think I got to. you are talking there about, okay, we have this term and the term has the same context definition but the facts that identify that term are slightly different, right?</p><p>And we can then do some alignment where we see these different identifiers.</p><p><strong>Marco</strong>: Yep.</p><p><strong>Shane</strong>: The one that I was thinking about is where a domain or a business unit has a completely different definition for that term. And another one does. And we identify that. So let me give you an example that&#8217;s real for me right at the moment around citizenship or residency.</p><p><strong>Marco</strong>: Oh.</p><p><strong>Shane</strong>: So I think I know what made me a resident in the uk. It&#8217;s when I got a certain kind of visa and I entered the country. And as soon as I did that, that&#8217;s the rule that tricked the tick in the box that I am a resident of the uk but when I deal with tax residency, it&#8217;s a different set of rules.</p><p>And so they&#8217;re slightly different, I have to live here, but then also I have to make sure that there&#8217;s certain things I don&#8217;t do anymore back in my original country of tax residency. And so they&#8217;re both residencies, but they&#8217;re slightly different. And then how would I articulate that using term and fact, How would I fact based modeling it. And the thing that you talked about is this idea of business constraints. If I can describe the business constraint of what our residency is versus the business constraint of a tax residency, again, now I&#8217;ve got two patterns and I can look at those two patterns, those two constraints and say they&#8217;re the same or similar or they&#8217;re very different.</p><p>And in this case I&#8217;d say they&#8217;re different, One is around how my financial transactions work and one is where my ass sits when I have breakfast for the majority of the year, &#8216;cause I can spend a certain amount of time outside the country and I am still a resident of this country.</p><p>And then I think the other thing that this Pattern gives us, which we know happens a lot because we see humans do it, is as soon as I give somebody those terms and facts. And a set of business constraint, a set of descriptions of how they behave. Humans love to point out exceptions, especially subject matter experts.</p><p>It&#8217;s yeah, you could be a tax resident in the UK if you do that, but actually if you do this one other thing that nobody ever tells you about, actually you are not That&#8217;s the exception. Oh. And by the way, system A knows about that, but System B doesn&#8217;t. And humans are really good at pulling out that.</p><p>I dunno, what would you call it? The knowledge that only they have. And like you said, when we used to work for organizations for 25 years, that knowledge state in the organization, now you&#8217;re lucky if it&#8217;s five. So that context, that knowledge of those exceptions disappears. I can see how this idea of defining or articulating business constraints, identifying exceptions, finding them to that term, in fact Pattern in an artifact that&#8217;s repeatable.</p><p>We can now shortcut, like you said, the need for a data expert and a subject matter expert to spend a week in a room going through this magical process that only two people can do. And make it a little bit more, not democratized, but a little bit more accessible and repeatable.</p><p><strong>Marco</strong>: it&#8217;s an interesting example, but again, it&#8217;s, it touches the exceptions. Again, your example in itself is an exception. And it&#8217;s, it is too much to say about exceptions. But even talking about it as you just did from a tax context, Shane, the citizen dot. So even in our semantic and in our language use, oh, we already start distinguishing that. And then it comes back to do we identify the citizen in a text context the same as the citizen in a legal context. And to tie it back to my previous example, are those two the same citizen? And all three of them are different domains. There is the text domain, there&#8217;s the legal domain, and there is the domain where we might want to match if this is the same person, for whatever anti-terrorist rule organization or whatever. So there&#8217;s different domains and every domain has different rule set. So blankly calling them all citizen because in mentally we can say, yeah, it&#8217;s the same person, it&#8217;s the same citizen. But data administration wise, the data administration of identifiers for a citizen are not the same as the data administration for identifiers for a citizen in a different context. And I think again, that&#8217;s the big separator between and it causes a lot of confusion in interviews and workshops, is that. We humans unify that because we see that the reality, it is about one person. But what distinguishes that is that we need to talk about how we talk about the data. And that is not the same thing as the reality. And by separating those out, it makes it, in a way, it makes it easier to say, okay, but are we talking about the same data administration?</p><p>No. Then we&#8217;re separating those out and if we are talking about three different domains that need to come together in one data administration, then we need more semantics. Distinguishing the three.</p><p><strong>Shane</strong>: a couple of things I want to loop around there. So again if we go back to the term actually, there is a citizen and a , physical residency and a tax residency because I&#8217;m actually a citizen of New Zealand still, but I&#8217;m resident physically in the UK and my tax residencies coming with me. But again, it&#8217;s not until we, we start using term and facts together that I can articulate that those are three different things, and it&#8217;s the business constraints and the exceptions that tell me there are different things. one of the things that I find interesting is this idea of focusing on the complexity and modeling that, is the area that&#8217;s gonna cause you a problem.</p><p>So if you ever do data bulk training with Hans and WinCo Brockman, they&#8217;ll, and I dunno if they do it anymore, but they used to talk about Peter the fly. And so the example would be if I am sitting in this ice cream store and I see Bob come in and order that ice cream and there&#8217;s an order id, So I can say when I put term, in fact, there&#8217;s a an ID in there of 1, 2, 3, 4, which is the order number. And if I want to know whether they actually got the ice cream. Is a separate part of that process. And on Peter the fly, I can see the ice cream being handed to Bob. So I know it happens if I&#8217;m in the room, but if I&#8217;m looking purely at the data, at the facts, I see nothing because there is no handover,</p><p>there&#8217;s no delivery ID that they got the ice cream. So I&#8217;m gonna have to infer that if there was an order and no refund turned up, that I&#8217;m inferring that happened, but it&#8217;s not a fact. And so I think, again, those terms and facts tell our stories and then as data modelers we can look at the exceptions that we know we need to worry about.</p><p>But I wanna go back to this idea of domain because it&#8217;s one that I struggled with a lot and I still do is a domain boundary can be anything. It can be a business unit, it can be a series of core business events. It can be a process, it can be a use case, it can be a team topology it, a domain is just a boundary where you say it&#8217;s in that boundary or it&#8217;s not right.</p><p>It&#8217;s in this domain. It&#8217;s in that domain. And I hadn&#8217;t thought about using the term fact and business constraints as a way of defining boundaries. For domains. So if I see, a term, in fact that&#8217;s all around my citizenship and I see another term in series of facts and business constraints around my residency and I see another one around tax residency and they are different, then I can use those as domain boundaries.</p><p>They might be too granular for the intent that I want to use it for. But what we&#8217;re saying is they are different. You write them down as words and numbers you can tell they&#8217;re different. So that gives us a form of boundary. And so that&#8217;s really interesting because it gives us a Pattern,</p><p>it gives us a formula of how we can say that this sits in boundary A domain A, and this sits in domain B because of these rules. And I find that really intriguing and valuable &#8216;cause it&#8217;s solving a problem that I&#8217;ve been trying to solve for many years. &#8216;cause it&#8217;s annoying me.</p><p><strong>Marco</strong>: Yeah. It&#8217;s, it is. So there&#8217;s two you&#8217;re right there&#8217;s two big areas where you can see there&#8217;s a separation of domain. And so rules is one of them. It&#8217;s in a hospital systems for example, you might wanna need somebody&#8217;s birthday to be able to put it into the computer.</p><p>As we had this kind of operations, these treatments, it needs to go this to his insurance company and all of that. But if you&#8217;re brought into the emergency room unconscious, you have no idea on you. You&#8217;re still being registered as a patient. So the rule is entirely different, but yet we have a patient number somehow. And the definition of the patient is clear across the whole hospital. So rules determine some sort of context. Or, if you come in with an appointment, they probably know your birthdate. If you wanna send it to the insurance company, they have to have your birthdate. The emergency room doesn&#8217;t really care. So how do you align all of that? So then you see, again it&#8217;s we&#8217;re unified in the language, we&#8217;re differentiating on the rules, and somehow we have to integrate systems. The most important part is that independent of which system is being built, we need to figure out how we communicate first.</p><p>So that language always goes number one. And that&#8217;s basically the what fact-based modeling does. It allows people to talk about it from their context, and then given that specific context, you add specific rules for that context. The example where can I live in multiple cities, municipality wise, no, you cannot. You have to be registered in one municipality. Now, in a more generic way, you can have people registered to different places. Sure. I have an office here, I live there, I have a vacation home there. And it&#8217;s yeah, different places. But on a municipality level where it becomes more context specific, there is a rule that says you can only register in one municipality. So there&#8217;s that too. There&#8217;s, there is a way to generalize in a more abstract way. If Ft has been doing that for years, where they introduced the party model, is it a person, is it an organization? Is it, we don&#8217;t know, is let&#8217;s call it party. We&#8217;ll give it an artificial key and we&#8217;re good. That&#8217;s just the way to keep the IT system running. It has nothing to do with semantic or integration or alignment or whatsoever. It&#8217;s just a technical solution because we didn&#8217;t get the business meaning in the first place, or we are not specific enough to a specific context. So these problems will always occur. And I think that separates the data modeling from information modeling is where the data modeling is. Do we find alignment in how we need to build the system? Whereas information modeling is, do we find alignment on how we communicate about the data?</p><p><strong>Shane</strong>: so again, you are making a context differentiation</p><p>between the audience. That&#8217;s the consumer of what we are creating. And you are saying if it&#8217;s stakeholders who aren&#8217;t data experts or IT experts, then we&#8217;re information modeling. If it&#8217;s data people or IT people then we are data modeling,</p><p>And the ability to have both languages, but then a mapping and sharing across those languages of where the real value is. And so like you, I&#8217;m not a fan of thing as a thing. I don&#8217;t agree we should ever use that term in our information models. We should never use party entity thing as a thing.</p><p>A thing is associated with a thing as a generic way of describing context to a stakeholder. I also don&#8217;t think we should put that in our technical systems. Years ago when we had mainframes and we had no memory and we had no disc and the infrastructure was expensive yes, it had value to us. Right now, the most expensive part of our systems is the humans and understand that context.</p><p>And as soon as you design a system with thing, as a thing, and that context lives nowhere else, I now have to spend a massive amount of expensive time trying to understand what the hell, how many things you have, how many things they are related to, and how many things those relationships are.</p><p>And that is an expensive piece of work. And I just can&#8217;t justify doing that anymore. But as you can tell, I&#8217;m slightly opinionated on that one. And it&#8217;s also, if I come back to the way we do that information modeling the grain of it, The detail we go to is interesting</p><p>because if I do it just based on terms customer orders product, it&#8217;s very different doing it based on terms and facts customer bob orders ice cream </p><p><strong>Marco</strong>: Yes. </p><p><strong>Shane</strong>: And so what you are saying is actually you are bringing more detail, a higher level of grain into that information modeling process earlier because it has value, so you&#8217;re doing more work upfront because you&#8217;ve found ways of taking that work that&#8217;s done early and automating some of the downstream work in terms of the technical implementations.</p><p>And so bringing, from an agile point of view, you are doing work upfront work in advance, which could be waste, but you&#8217;re found a way of taking that work and reducing the waste further down the value stream.</p><p><strong>Marco</strong>: Yeah. Correct. It&#8217;s really that, and for those who are interested in this a lot of the information can be found on the website called casetalk.com. What it shows, and this was developed in in, like I said in the seventies, all the way up to 2000 is it&#8217;s not just, oh, how can we capture the language?</p><p>But it was really, how do we talk to the domain expert to come up with the appropriate IT system? And I think what happened really is that it is such a rich and detailed environment where people modeling traditionally with business knowledge in their heads doing the IT itself, which was very close bound to, organization. When the first computers came in, it&#8217;s like it was usually the domain expert that got an IT training. They knew the context, but nowadays it scales up so much is that you are an IT professional. You have no idea about any business. You just, your business is it. So getting back on that and trying to find that alignment with business is, it is of increasing interest, but it&#8217;s not the majority.</p><p>A lot of new young professionals base their efforts on the tools and the ability of tools and not as much as are we doing the right thing for the business because they don&#8217;t really care. They were not educated as such. There&#8217;s a massive gap there that where business looks at it is like you&#8217;re, you are the expert, so you tell me and then there&#8217;s this rift and. You mentioned data Vault a couple of times where, traditionally the hub is the natural business key, right? It&#8217;s not a technical key in the source system. So what is the business key? Then you have to talk to the business. And the rich information modeling does with all the fact base is that already mentioned Marco Ledge and Nutra.</p><p>So I already have the natural business keys right there. And with a push of a button, it can then be generated into a citizen table and a city table and even have artificial keys with minor annotations like city of residence. We might want to keep a log in time, we might wanna have history in there, but also when is he planning to move to the next city so it becomes bitemporal. And these are very simple flags in the information model that can be generated to a data model that says, did you want a data volt model or a normalized model, or did you want a adjacent schema? So the physical parts become automatable. The data model becomes automatable and having all the semantics and verbiage and examples, it makes it verifiable and readable by the business. And so that really what it ties in and some experiments show that precisely that combination is the real power to keep LLMs grounded as well.</p><p><strong>Shane</strong>: I definitely agree on the LM front. We know that if we pass at the terms definitions of the terms, the facts, so data examples around those terms and their relationships and natural language business constraints into those lms, we get a much better response when we want to do a task.</p><p><strong>Marco</strong>: Yep.</p><p><strong>Shane</strong>: So that context is really important.</p><p>And that&#8217;s why, it&#8217;s interesting watching all the, bi semantic layer vendors try to say they&#8217;re context engines and you&#8217;re sitting there going, but you&#8217;re just at the end of the chain, you&#8217;ve just got metrics and maybe some definitions, but the richness is all sitting on the left of our value stream.</p><p>It&#8217;s all around problem ideation, discovery design. It&#8217;s not physical implementation of our consume layer for your cube. Yes, it&#8217;s got some value And so I&#8217;m in really interested to watch the reinvention of the market yet again. &#8216;cause as you said technology is often what people get taught.</p><p>A number of times I&#8217;ll talk to a data science student who&#8217;s been taught Python</p><p>And you go back and you go, but. How do you understand the business problem? How do you understand the value you&#8217;re gonna deliver if you build that ML model? And we&#8217;ve seen, as you said, we&#8217;ve seen over time data teams that don&#8217;t add value don&#8217;t survive.</p><p><strong>Marco</strong>: True. And I remember an interview that was told that we&#8217;re, and not to talk them down, but it really points at the lack of education as well, or, the business debt and the technical debt. It&#8217;s just people are being trained in tools and in technical approaches where some of the analysts really said, what is your highlight of the day?</p><p>Is that when they discover insight, it&#8217;s like insight. Should it not have started with the insight as documentation, or what are we really doing instead of let&#8217;s discover it. That is, like you said it&#8217;s the end of the chain while everybody shouts. Shift left shift left. It&#8217;s yeah, why?</p><p>Because that&#8217;s where it started and that&#8217;s what we lost. From my perspective, it just starts with can we talk to each other and are we writing that down? How we do that? Because that&#8217;s what we need to do in the end. And whatever it system we built, whatever dashboard is being built, it actually serves to better communicate about what we are really doing. So it all ties back to that. And yeah, there&#8217;s a never ending story because the LLM is the next silver bullet. It&#8217;s gonna solve all our problems. And it&#8217;s not, it&#8217;s helpful, but it&#8217;s not the silver bullet. &#8216;cause we still need to get the authentic story, not the fabricated story.</p><p><strong>Shane</strong>: Yeah it&#8217;ll help us understand where the context differs but it won&#8217;t help us actually define what the context is.</p><p><strong>Marco</strong>: Yep.</p><p><strong>Shane</strong>: At the moment. from the stuff I&#8217;ve done with it. Oh maybe the, the next generation a GI version will, or, maybe we all end up with standardized context that every business follows.</p><p>But we know that&#8217;s not true either, right? We saw that with tools like SAP, where it&#8217;s implemented vanilla and then $50 million and five years later there&#8217;s a bastardized customized version because that organization is different with air quotes.</p><p><strong>Marco</strong>: and I can illustrate that by fairly simple examples is that, I mentioned that somewhere else. It&#8217;s like there&#8217;s not a bank in the world that I didn&#8217;t purchase the IBM banking model at the same time I dare any bank in the world to actually have implemented it. and that points to a massive gap is that, to be able to implement it, you first have to know what you already do. Which is a massive dilemma &#8216;cause nobody has the information models and then you are presented with a technical model, like the banking model that says, everything will fit in here.</p><p>It&#8217;s okay, but what do we have that actually fits? So there&#8217;s a massive dilemma there. And then in the end every bank will try to do it a little bit different. So they have an advantage over the competition. So they don&#8217;t really want to confirm to one standard, which points back at. There is no real universal Pattern because everybody tries to give it their own little edge, which means you have to capture that edge, not just build something that you think will fit.</p><p>You have to be very specific and in that I&#8217;ve seen systems database was designed with rigor and the software was developed three times over, but the database didn&#8217;t change. What happened is. A new wave of tech came, it used to be mainframe, then it became Windows, then it became internet, then it became mobile Data did not change the way the technology work, changed the organization, changed the business processes because, we&#8217;re not having a physical storefront for the bank, but we now we have a mobile app. So the process of working with the data changed, but the data itself didn&#8217;t change. So there&#8217;s a lot of dynamics going on and it really shows the importance of getting the data right and don&#8217;t throw away the story that came with it so that you can actually reinvent all the processes and all the software on top of it without losing meaning. But it also points at the fast changing world where we perceive everything changes all the time. So we cannot sit down to do a proper information model and have a data model set up, et cetera, et cetera, because we&#8217;re in a hurry. We need to deliver what? Nobody realizes that if you sit down long enough to have that information correct, you have the data model correct.</p><p>And don&#8217;t throw away the story that it will definitely give you a return of investment.</p><p><strong>Shane</strong>: I&#8217;ve gotta say that the IBM data model was a masterclass in sales, The fact that you could sell a diagram, a picture for millions of dollars that nobody ever used, apart from putting it on their wall. That is a masterclass. But I go back just to close it out, I go back to that idea of terms and facts.</p><p>So if I have a retail bank, had a store. The terms and facts might have been customer Shane has an account. 1, 2, 3.</p><p>If I became a mobile only customer when we changed technology, I might see the term in fact change slightly, where it&#8217;s customer oh seven five, yada y has an account 1, 2, 3.</p><p>Now I can look at those two lines and I can see something&#8217;s changed.</p><p>The fact that relates to that term has changed and now I can have a conversation about is that just what you are showing me? And in the background it still says Shane, or did it never say Shane in the real data? It was always customer id. 1, 2, 3, 9, 2, 4. There&#8217;s a whole lot of conversations I have, but I know that something&#8217;s different and now I know what to have a conversation about with that subject matter expert.</p><p>As you said in the past, the subject matter expert, the data person and the IT person was the same person.</p><p>Then it became the same team. Then we became a business and IT team, and now we are a business subject matter expert team, a data team and an IT team. We are, we&#8217;ve team topologies have got more matrix E, more bigger, and that separation causes some problems.</p><p>So by using patents and patent templates and artifacts and shared language, we can close that gap again. And for me, this idea of fact-based modeling, this idea of binding terms and facts with a set of rules, with a set of exceptions as context is really valuable. We can use it in so many ways.</p><p>So just to close it out, if people wanted to hear more about this, read more about this, find out more around fact-based modeling, where do they go?</p><p><strong>Marco</strong>: I think the quickest way into it is to just go to I personally wrote a little book which is published by techniques publications called Just the Facts. It tells the story and names a few examples that I mentioned in this podcast too. It gives you an overview from management to architecture, modelers and developers, and how communication and effects weave through all the disciplines. Obviously CaseTalk is the software tool to support all of that. But you will find links for actual books if you happen to have a copy of the DMBOK by DAMA . The older edition has a crippled article about it. The version two latest edition has a slightly improved article about it. It&#8217;s on Wikipedia sources enough, but the good starting point would be casetalk.com.</p><p><strong>Shane</strong>: Excellent. Alright, thank you for that. I&#8217;ve got a new set of patterns and templates I need to go and read a lot more about. It&#8217;s gonna be me over the next few months again. But thank you for that</p><p><strong>Marco</strong>: good. Thanks for having me and talk to you soon.</p><p><strong>Shane</strong>: I hope everybody has a simply magical day. </p><h2>&#171;oo&#187;</h2><div class="pullquote"><p><em>Stakeholder - &#8220;Thats not what I wanted!&#8221; <br>Data Team - &#8220;But thats what you asked for!&#8221;</em></p></div><p>Struggling to gather data requirements and constantly hearing the conversation above?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0Bu2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0Bu2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg" width="387" height="342" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:342,&quot;width&quot;:387,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:19725,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agiledata.substack.com/i/160520537?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!0Bu2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0Bu2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea54a17-bf89-4dc3-a46b-d039a4585eee_387x342.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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>Want to learn how to capture data and information requirements in a repeatable way so stakeholders love them and data teams can build from them, by using the Information Product Canvas.</p><p>Have I got the book for you!</p><p>Start your journey to a new Agile Data Way of Working.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://adiwow.com/168&quot;,&quot;text&quot;:&quot;Buy the Agile Data Guide now!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://adiwow.com/168"><span>Buy the Agile Data Guide now!</span></a></p><h2>&#171;oo&#187;</h2>]]></content:encoded></item><item><title><![CDATA[Google Cloud just added Shopify and Mailchimp to their list of data collection services]]></title><description><![CDATA[deffo a case of slowly slowly catchy monkey]]></description><link>https://agiledata.info/p/google-cloud-just-added-shopify-and</link><guid isPermaLink="false">https://agiledata.info/p/google-cloud-just-added-shopify-and</guid><dc:creator><![CDATA[Shagility]]></dc:creator><pubDate>Wed, 04 Feb 2026 08:27:24 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e3510903-552f-4f7f-a15b-405d9f1e999b_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Google Cloud just added Shopify and Mailchimp to their list of data collection services, deffo a case of slowly slowly catchy monkey.</p><p>Just under seven years ago Nigel Vining and I onboarded our first customer, The Good Registry, to give our MVP AgileData.Cloud platform a run for its money, to test what survived and what didn&#8217;t.</p><p>One of the first requirements was to collect data from Shopify.</p><p>We had a principle back then (a principle we still have today) to use the Google Cloud Data Transfer Services as our first cab off the rank for data collection.</p><p>Alas at that time there was no Google Cloud data collection service for Shopify, so Nigel crafted a set of patterns using the Meltano open source framework to automate the collection of this data.</p><p>Part of this work was to refactor Meltano so we could operate it as a &#8220;serverless&#8221; pattern on Google Cloud, rather than it operating under a 24/7 always on container pattern, that would cost more money.</p><p>We have reused this data collection pattern many many times over the last 7 years, another great example of our DORO (Define Once, Rese Often) principle.</p><p>I saw last month an announcement that Google Cloud have added Shopify and Mailchimp to their ever expanding list of data collection services or what they call &#8220;Data Transfer Services&#8221;.</p><p>If you haven&#8217;t noticed Google have been quietly expanding out the list of systems of capture that this service can collect data from.</p><p>To me it looks like they are starting to ramp up in this space and will become a serious competitor to tools like Fivetran.</p><p>Time will tell.</p><p>One of the many things I have learnt about Google Cloud over the last 7 years, is they may not be first to market, but when they go after a market, they have the firepower to do it at scale.</p><p>Google Gemini showed us that yet again.</p><p>You can check out the doco for the new Data Transfer Services here:</p><p><a href="https://docs.cloud.google.com/bigquery/docs/shopify-transfer%0A%0A">https://docs.cloud.google.com/bigquery/docs/shopify-transfer</a></p><p><a href="https://docs.cloud.google.com/bigquery/docs/mailchimp-transfer">https://docs.cloud.google.com/bigquery/docs/mailchimp-transfer</a></p><p></p><p></p>]]></content:encoded></item></channel></rss>