<?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[Old Mug]]></title><description><![CDATA[A newsletter about engineering leadership with things that you probably already know. ]]></description><link>https://oldmug.io</link><image><url>https://substackcdn.com/image/fetch/$s_!zHMd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdade99b9-bf2d-4328-893c-747e96aae400_1024x1024.png</url><title>Old Mug</title><link>https://oldmug.io</link></image><generator>Substack</generator><lastBuildDate>Wed, 08 Apr 2026 11:03:09 GMT</lastBuildDate><atom:link href="https://oldmug.io/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Andre Nobre]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[andrenobre@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[andrenobre@substack.com]]></itunes:email><itunes:name><![CDATA[Andre Nobre]]></itunes:name></itunes:owner><itunes:author><![CDATA[Andre Nobre]]></itunes:author><googleplay:owner><![CDATA[andrenobre@substack.com]]></googleplay:owner><googleplay:email><![CDATA[andrenobre@substack.com]]></googleplay:email><googleplay:author><![CDATA[Andre Nobre]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Foundations #3: The Rise of Virtualization]]></title><description><![CDATA[An idea born in the 1960s that made the cloud possible.]]></description><link>https://oldmug.io/p/foundations-3-the-rise-of-virtualization</link><guid isPermaLink="false">https://oldmug.io/p/foundations-3-the-rise-of-virtualization</guid><dc:creator><![CDATA[Andre Nobre]]></dc:creator><pubDate>Sun, 12 Oct 2025 14:02:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0ded9b93-ae5a-4277-b3f7-4331d8d3d077_448x298.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This article is part of the <a href="https://oldmug.io/t/foundations">&#8220;Foundations&#8221; series</a>, exploring the roots of well-known technologies, patterns, and solutions that quietly revolutionized our industry.</em></p><div><hr></div><p>Today, spinning up a virtual machine in the cloud takes only a few seconds. For most developers, it feels natural, almost invisible, that hardware resources can be sliced, abstracted, and shared at the click of a button. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>But the idea of virtualization is much older than cloud computing. It dates back to the 1960s, when computing resources were scarce, expensive, and shared among users who had to wait their turn.</p><p>Just as <a href="https://oldmug.io/p/foundations-1-the-proposal-for-relational">Edgar Codd&#8217;s relational model</a> redefined how we structure data, and <a href="https://oldmug.io/p/foundations-2-the-birth-of-rest">Roy Fielding&#8217;s REST</a> reframed how we exchange it, virtualization reimagined the very foundation of how we run it. It turned computing from a physical constraint into an abstraction, the foundation upon which cloud infrastructure, containers, and serverless computing would later be built.</p><p>This article covers:</p><ul><li><p>The origins of virtualization;</p></li><li><p>The technical and economic conditions that led to its rebirth;</p></li><li><p>The engineering breakthroughs that made it possible.</p></li></ul><h3>Time-Sharing and Mainframes</h3><p><strong>Virtualization began not as a convenience but as a necessity</strong>. In the 1960s, computers were enormous mainframes that cost millions of dollars. Only universities and large corporations could afford them, and they needed ways to share computing power among dozens of users at once.</p><p>IBM pioneered this concept with systems like <a href="https://en.wikipedia.org/wiki/IBM_CP-40">CP-40</a> and <a href="https://en.wikipedia.org/wiki/CP-67">CP-67</a>, which allowed multiple virtual machines to coexist on a single mainframe. Each user believed they had a full computer, complete with its own operating system, but they were actually running in isolated environments managed by a control program.</p><p>In 1972, IBM released VM/CMS, a milestone in computing history. It formalized the idea that a single physical machine could host many virtual ones. This model introduced the concept of <a href="https://en.wikipedia.org/wiki/Virtualization#Full_virtualization">full virtualization</a>, simulating complete hardware environments, and set the stage for decades of innovation.</p><p>The motivation was simple but powerful: maximize the use of extremely expensive resources, provide isolation between workloads, and allow experimentation without risk.</p><p>By the 1980s, however, the computing landscape had shifted. The personal computer revolution had begun, and hardware became cheap enough that individuals could own their own machines. The need to share a single computer among many users faded.</p><p><strong>Virtualization entered a quiet period</strong>. The industry&#8217;s focus moved toward multitasking operating systems and networked PCs. UNIX, Windows, and macOS offered process isolation and scheduling, which was &#8220;good enough&#8221; for most organizations.</p><p>In academic and enterprise labs, though, the idea of virtualizing systems never disappeared. Researchers continued exploring ways to abstract hardware, particularly for performance and scalability, laying the groundwork for what would later become the <em>second age of virtualization</em>.</p><h3>Hardware Abstraction Returns</h3><p>By the mid-1990s, data centers were facing a new kind of inefficiency. Enterprises were running hundreds of physical servers, each operating at 10&#8211;20% capacity. This &#8220;server sprawl&#8221; was expensive and hard to manage. Companies needed a way to consolidate workloads, improve utilization, and reduce hardware costs.</p><p>At the same time, research in system abstraction was making significant strides. In 1997, the paper <strong><a href="https://pages.cs.wisc.edu/~remzi/Classes/838/Spring2013/Papers/bugnion97disco.pdf">&#8220;Disco: Running Commodity Operating Systems on Scalable Multiprocessors&#8221;</a></strong> by Edouard Bugnion, Scott Devine, and Mendel Rosenblum introduced a new perspective on virtualization for modern hardware.</p><p>The <em>Disco</em> project, developed at Stanford, proposed a <strong>thin virtual machine monitor (VMM)</strong> that could run multiple copies of commodity operating systems on a multiprocessor system. Each OS instance believed it controlled the hardware, while in reality, the VMM multiplexed CPUs, memory, and devices across them.</p><p>What made <em>Disco</em> special wasn&#8217;t just its performance, it was its vision. It treated the VMM not as an emulation layer, but as a <strong>resource manager</strong>. It could dynamically allocate CPU and memory to workloads, isolate failures, and support scalability on shared-memory multiprocessors.</p><p>That idea of using virtualization as a flexible abstraction layer for commodity systems directly influenced the near future.</p><h3>The VMware Breakthrough</h3><p>Two years later, in 1999, several of the same researchers behind <em>Disco</em> founded <strong>VMware</strong> and published the paper <em><a href="https://www.cse.iitb.ac.in/~mythili/virtcc/papers/vmware.pdf">&#8220;Bringing Virtualization to the x86 Architecture with the Original VMware Workstation&#8221;</a>.</em> This work brought the concepts pioneered in mainframes and research labs into the mainstream world of PCs.</p><p>The challenge was formidable. The <strong>x86 architecture</strong>, designed for desktop computers, was <em>not virtualizable</em> by classical definitions. Certain privileged instructions behaved differently depending on the CPU&#8217;s mode, making it impossible to trap and emulate them cleanly.</p><p>VMware&#8217;s solution was brilliant: a combination of <strong>dynamic binary translation</strong> and <strong>direct execution</strong>. Instead of running guest operating systems directly on the hardware, VMware&#8217;s hypervisor scanned and modified their code on the fly. Privileged instructions were replaced with safe equivalents that could run under host control, while non-privileged code executed natively on the CPU.</p><p>This approach preserved both <strong>transparency</strong> (no OS modifications required) and <strong>performance</strong> (most instructions executed at full speed).</p><p>As the authors wrote:</p><blockquote><p>&#8220;We use dynamic binary translation to modify guest instructions that access privileged state, ensuring that the virtual machine monitor maintains full control of the hardware.&#8221; (<em>Bugnion, 1999</em>)</p></blockquote><p>VMware also introduced the <strong>hosted architecture</strong>: the hypervisor ran on top of a standard operating system (like Linux or Windows), making it accessible to any developer without specialized hardware. This architectural decision was pivotal, since it democratized virtualization.</p><p>Within months, VMware Workstation made it possible for developers to run multiple OSes side by side on a laptop. For enterprises, it marked the start of true <strong>server consolidation</strong>: multiple workloads, isolated and portable, running efficiently on commodity hardware.</p><h3>From Workstation to Data Center</h3><p>The success of VMware Workstation started a wave of innovation. Enterprises quickly realized that virtualization could solve not just developer convenience, but large-scale infrastructure problems.</p><p>Virtualization improved <strong>resource utilization</strong>, reduced <strong>hardware costs</strong>, and enabled <strong>rapid provisioning</strong>. Most importantly, it introduced <strong>abstraction</strong> between workloads and hardware, a concept that would become fundamental to cloud computing.</p><p>VMware&#8217;s work soon evolved into <strong>ESX Server</strong>, a bare-metal hypervisor that ran directly on hardware, eliminating the overhead of a host OS. Other players entered the market: <strong>Xen</strong>, <strong>Microsoft Hyper-V</strong>, and open-source projects like <strong>KVM</strong> extended virtualization into new domains.</p><p>By the early 2000s, virtualization was no longer a lab curiosity, it was a production necessity.</p><h3>Virtualization and the Birth of the Cloud</h3><p>In 2006, <strong>Amazon Web Services</strong> launched <strong>EC2</strong>, the first large-scale commercial cloud built entirely on virtualization. Each EC2 instance was a virtual machine, dynamically provisioned from a pool of servers.</p><p>The key properties of cloud, <strong>elasticity, scalability, and multi-tenancy</strong>, all depended on virtualization. By decoupling applications from hardware, AWS could sell computing as a service.</p><p>This was the moment virtualization transcended its technical origins. It became an economic model: compute as an on-demand utility.</p><h3>From VMs to Containers and Beyond</h3><p>Virtual machines were transformative, but not perfect. Each VM required its own operating system, consuming significant memory and storage. Startup times were slow compared to the speed of modern software delivery.</p><p>In response, engineers turned to <strong>containers</strong>, lightweight environments that isolate applications at the OS level. Technologies like <strong>LXC</strong> and later <strong>Docker (2013)</strong> offered the benefits of virtualization, with isolation, portability, reproducibility, without the heavy footprint.</p><p>Kubernetes (2014) extended this model at scale, orchestrating thousands of containers across clusters. Interestingly, most of these container workloads still run <em>on top of virtualized infrastructure</em>. Virtualization remained the invisible layer of the cloud.</p><h3>Lasting Lessons</h3><p>The history of virtualization teaches recurring truths about computing:</p><ol><li><p><strong>Abstraction is the ultimate scaling mechanism.</strong> By separating logic from hardware, we gain flexibility, efficiency, and resilience.</p></li><li><p><strong>Constraints inspire innovation.</strong> VMware&#8217;s biggest breakthrough came precisely because the x86 architecture was <em>not</em> designed for virtualization.</p></li><li><p><strong>Old ideas resurface in new forms.</strong> The same isolation IBM introduced in the 1970s reappeared decades later in data centers and cloud environments.</p></li></ol><h3>Conclusion</h3><p>Like the relational model and REST, virtualization was born out of necessity, to make computing more efficient, more accessible, and more adaptable. It began as a way to share expensive mainframes, reemerged to solve server sprawl, and ultimately became the foundation of the cloud.</p><p>As new paradigms emerge, edge computing, serverless architectures, confidential VMs, and the principles remain the same: isolate, abstract, and share efficiently.</p><p>Virtualization reminds us that progress in computing often comes not from adding complexity, but from rethinking boundaries.</p><h3>References</h3><ul><li><p>Bugnion, E., Devine, S., Rosenblum, M., Sugerman, J., &amp; Wang, E. (1999). <em>Bringing Virtualization to the x86 Architecture with the Original VMware Workstation.</em> VMware, Inc.<br><a href="https://www.cse.iitb.ac.in/~mythili/virtcc/papers/vmware.pdf?utm_source=chatgpt.com">PDF link</a></p></li><li><p>Bugnion, E., Devine, S., Govil, K., &amp; Rosenblum, M. (1997). <em>Disco: Running Commodity Operating Systems on Scalable Multiprocessors.</em> Stanford University.<br><a href="https://pages.cs.wisc.edu/~remzi/Classes/838/Spring2013/Papers/bugnion97disco.pdf?utm_source=chatgpt.com">PDF link</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building Better Interview Processes: Lessons From the Candidate’s Side]]></title><description><![CDATA[Lessons from over twenty interviews across startups, scale-ups, and big tech &#8212; and what they reveal about how companies value people.]]></description><link>https://oldmug.io/p/building-better-interview-processes</link><guid isPermaLink="false">https://oldmug.io/p/building-better-interview-processes</guid><dc:creator><![CDATA[Andre Nobre]]></dc:creator><pubDate>Mon, 06 Oct 2025 15:02:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/cdbb522a-5ab2-46e3-8c91-b567bc90438a_825x741.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Earlier this year, I decided to take a step back. After twenty years working in software engineering, from writing <s>bad</s> code to leading large organizations, I took a sabbatical. Eight months away from the routine, intentionally slowing down, gave me the perspective I didn&#8217;t know I needed.</p><p>By the end of my sixth month, I felt ready to return. That meant applying, interviewing, and once again sitting on the other side of the table. What followed was a series of processes that were as revealing as surprising.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Some left me impressed, others disappointed, and many raised questions about how we treat people in such a critical moment, when they&#8217;re considering joining the company.</p><p>In this article, I will cover:</p><ul><li><p>Highlights and lowlights of several interviewing processes I ran into;</p></li><li><p>What you should do as a team leader (not in HR);</p></li><li><p>and what HR should take into consideration.</p></li></ul><h3>The basics first: what defines a good interviewing process?</h3><p>Before sharing stories from my recent months of interviews, it&#8217;s worth taking a step back. <strong>What makes an interview process </strong><em><strong>good</strong></em><strong> in the first place?</strong></p><p>A good process is not about trick questions, endless rounds, or proving how &#8220;selective&#8221; a company can be. It&#8217;s about creating clarity, respect, and fairness for both sides. Research consistently shows that structured and transparent interviews lead not only to better candidate experiences but also to more reliable hiring decisions<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p><p>The fundamentals include:</p><ul><li><p><strong>Clarity of purpose</strong>: every stage must have a reason. If you can&#8217;t explain why a round exists, it probably shouldn&#8217;t exist.</p></li><li><p><strong>Consistency and structure</strong>: when interviewers are aligned and all candidates are asked the same role-relevant questions, bias is reduced and reliability improves. Unstructured interviews, by contrast, are among the weakest predictors of job performance<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>.</p></li><li><p><strong>Respect for time</strong>: processes should keep to schedules, avoid last-minute cancellations, and acknowledge the candidate&#8217;s investment. Lack of closure &#8212; never hearing back after applying or interviewing &#8212; is one of the clearest signs of poor process.</p></li><li><p><strong>Feedback and closure</strong>: every candidate deserves to know where they stand. Even a simple rejection email is better than silence, which communicates indifference and damages the company&#8217;s brand.</p></li><li><p><strong>Transparency and expectation management</strong>: timelines, criteria, and outcomes should be communicated clearly. Overselling a role or creating unnecessary highs that collapse later is worse than being upfront from the start.</p></li><li><p><strong>Adaptability</strong>: while structure is essential, conversations should flex to the candidate&#8217;s background. Experienced candidates won&#8217;t fit neatly into a script.</p></li><li><p><strong>Trained interviewers</strong>: interviewing is a skill. Less experienced interviewers should be supported with clear rubrics, preparation, and pairing with senior colleagues to avoid superficial evaluations.</p></li></ul><p>When these basics are present, interviewing shifts from a filtering mechanism to a meaningful two-way evaluation, one where both the company and the candidate can genuinely decide if they are the right fit for each other.</p><h3>When the basics break down</h3><p>With these principles in mind, my own experience re-entering the market showed just how often they are overlooked, and how much difference it makes when they are respected.</p><p>To give you a sense of scale, here&#8217;s how my interviews spread across company types:</p><ul><li><p><strong>Big Tech (10,000+ employees)</strong>: 3 interview processes;</p></li><li><p><strong>Large companies / global players (1,000+ employees)</strong>: <em>7</em> interview processes;</p></li><li><p><strong>Mid-size scale-ups (300&#8211;999 employees, high growth)</strong>: <em>6</em> interview processes;</p></li><li><p><strong>Startups / small organizations (~300 employees, often with founders involved)</strong>: <em>5</em>  interview processes;</p></li></ul><p>I had 4 offers in total, from different clusters.</p><p>Each cluster carried its own patterns. Big Tech processes were highly structured and consistent. Large companies varied, some had strong frameworks, others showed cracks in alignment. Scale-ups often moved fast but at the cost of structure. And startups were the most personal, but also the least predictable.</p><p>Let&#8217;s jump into the facts.</p><h3>What the clusters revealed</h3><h4>Big Techs: the gold standard <br>(10,000+ employees)</h4><p>Big Techs were, by far, the best places to interview. Structured, consistent, and respectful processes. Every step had a clear purpose, interviewers were aligned, and expectations were well communicated. Even in rejection, you left with the sense that your time was valued and that the company had its process under control.</p><p><strong>Highlights:</strong></p><ul><li><p>Process stages presented upfront with absolute clarity.</p></li><li><p>Immediate and constant availability of the recruiter throughout the process.</p></li><li><p>Interviewers were well-trained regarding timing, questions, and follow-up discussions.</p></li><li><p>Clear timelines, follow-ups exactly within the expected timeframe, and detailed feedback afterward.</p></li></ul><p><strong>Lowlights:</strong></p><ul><li><p>Processes sometimes felt <em>too</em> standardized, highly trained but at times overly scripted or even artificial.</p></li></ul><h4>Large companies: trying to balance scale and humanity<br>(1,000+ employees)</h4><p>Large companies often sat in the middle. Some leaned closer to Big Tech in structure, others closer to scale-up chaos. In general, they seemed to be searching for the right balance between standardization and a human touch. Sometimes it worked, and sometimes it slipped into bureaucracy or inconsistency.</p><p><strong>Highlights:</strong></p><ul><li><p>Clearer processes, with phases presented upfront.</p></li><li><p>Ongoing communication and availability of someone to support the candidate throughout.</p></li><li><p>Supporting materials: study suggestions, detailed explanations about each phase, and structured feedback afterward.</p></li></ul><p><strong>Lowlights:</strong></p><ul><li><p>Interviewers with some training but limited experience.</p></li><li><p>Lack of adaptability during the interview. Some interviewers followed the script strictly but couldn&#8217;t adjust on the fly to the candidate&#8217;s seniority or direction of the conversation.</p></li><li><p>Occasional <em>false highs</em>: moments where enthusiasm or premature optimism created expectations of an imminent offer, only for the process to end abruptly without clear closure. Recruiting shouldn&#8217;t be about creating excitement, it should be about building alignment and trust.</p></li></ul><h4>Mid-size scale-ups: the weakest link <br>(300&#8211;999 employees, high growth)</h4><p>Mid-size scale-ups were, in my experience, the weakest link, mostly due to inconsistency. Repeated questions, shifting timelines, and sometimes outright disrespect. Many of these companies are growing fast, but speed without structure often turns into chaos for candidates.</p><p><strong>Lowlights:</strong></p><ul><li><p>Lack of clarity about the goal of each interview stage.</p></li><li><p>Interviewers clearly had little or no formal training.</p></li><li><p>Conversations were fluid, which can seem positive at first, but often missed essential evaluation points.</p></li><li><p>In several cases, interviewers seemed to be chosen mainly for their seniority or tenure within the company, but not necessarily for their interviewing skills. The result was visible: unstructured conversations, biased assessments, and a lack of depth in evaluating technical and leadership capabilities. When seniority replaces preparation, the process risks becoming a reflection of internal hierarchy rather than a genuine assessment of talent.</p></li></ul><h4>Startups and small organizations: authentic but unpolished <br>(~300 employees)</h4><p>Overall, startups and small organizations were a genuinely good experience. The processes were more personal, often involving founders or long-time team members. While these interviews lacked polish and standardization, they made up for it with authenticity and transparency. You could feel the company&#8217;s culture in every exchange.</p><p><strong>Highlights:</strong></p><ul><li><p>More intimate processes, focused on the human side, showing genuine care for the candidate.</p></li><li><p>Participation of founders or long-standing employees, bringing context and stories that help you understand the company&#8217;s reality.</p></li><li><p>Openness and full transparency about what matters most to the candidate.</p></li></ul><p><strong>Lowlights:</strong></p><ul><li><p>Unpredictable process length/unclear number of steps or interviews.</p></li><li><p>Time was not always respected, mostly because conversations lacked structure and naturally took longer than necessary.</p></li></ul><h3>What you can do with this information</h3><p>Observing these patterns across more than twenty interviews made one thing clear: the quality of your hiring process says more about your organization than any mission statement or culture deck ever will.</p><p>But what can you <em>actually</em> do with that insight? Here are two perspectives, one for <strong>team leaders</strong>, and another for <strong>HR leaders</strong>, because improving interviews is everyone&#8217;s job.</p><h4>If you&#8217;re a team leader</h4><p>Team leaders are often the face of the company during interviews. Candidates will remember how you listened, how you structured the conversation, and how transparent you were.</p><ul><li><p><strong>Be intentional about structure.</strong> Don&#8217;t just show up and go in without intention. Know what you&#8217;re evaluating and why. If your company doesn&#8217;t provide a structured framework, create your own rubric &#8212; even a simple one helps ensure fairness.</p></li><li><p><strong>Respect time and follow up.</strong> Candidates are giving you their focus and emotional energy. Always close the loop, even when the outcome is negative.</p></li><li><p><strong>Prepare beyond the CV.</strong> Read the candidate&#8217;s background before the call and tailor your questions. Senior candidates, especially, can sense when you&#8217;re improvising too much.</p></li><li><p><strong>Balance listening and probing.</strong> The goal isn&#8217;t to trap the candidate, it&#8217;s to learn how they think and how they&#8217;d fit your context.</p></li><li><p><strong>Represent the culture you want to see.</strong> The way you interview sets the tone for how your future team will feel.</p></li></ul><p>In short, interviewing isn&#8217;t a side task, it&#8217;s part of leadership. Treat it as such.</p><h4>If you&#8217;re an HR or talent leader</h4><p>For HR and talent leaders, interviews are the front door of the company&#8217;s brand. Every touchpoint, from scheduling to rejection, tells a story about who you are.</p><ul><li><p><strong>Audit your process.</strong> Map every stage, understand what each one is supposed to evaluate, and remove redundancy. If two rounds cover the same thing, that&#8217;s a signal of misalignment.</p></li><li><p><strong>Train your interviewers.</strong> Don&#8217;t assume people &#8220;just know how&#8221; to interview. Provide guidance, calibration sessions, and feedback. Interviewing is a skill, it requires deliberate practice.</p></li><li><p><strong>Ensure feedback and closure.</strong> Silence is not neutral, it&#8217;s a form of disrespect. Automate rejections if needed, but never leave candidates without closure.</p></li><li><p><strong>Measure candidate experience.</strong> Gather feedback from candidates, not only those who got offers. It&#8217;s the most honest data you&#8217;ll get about your process.</p></li><li><p><strong>Balance automation with humanity.</strong> Technology can streamline hiring, but no tool replaces empathy, clarity, and respect.</p></li></ul><p>A mature hiring process isn&#8217;t about being perfect, it&#8217;s about being deliberate. Companies that care about how they interview show, in practice, that they care about people.</p><h3>Culture in action</h3><p>Looking back, the contrast between these experiences made one thing clear: interviewing is not just a hiring tool, it&#8217;s a cultural signal.</p><p>The way you design, structure, and run your hiring process communicates your culture more clearly than any &#8220;About Us&#8221; page or beautiful video in Linkedin. Respect, clarity, and adaptability aren&#8217;t luxuries, they are culture in action.</p><blockquote><p>If companies want to attract strong talent, they need to treat interviews as more than a filter. They need to treat them as a mirror.</p></blockquote><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC9553626">Best Practices for Reducing Bias in the Interview Process</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p><a href="https://www.researchgate.net/publication/380930509_Exploring_Interview_Dynamics_in_Hiring_Process_Structure_Response_Bias_and_Interviewee_Experience">Exploring Interview Dynamics in Hiring Process: Structure, Response Bias, and Interviewee Experience</a></p></div></div>]]></content:encoded></item><item><title><![CDATA[Foundations #2: The Birth of REST]]></title><description><![CDATA[How Roy Fielding&#8217;s 2000 dissertation reshaped the web by embracing its constraints.]]></description><link>https://oldmug.io/p/foundations-2-the-birth-of-rest</link><guid isPermaLink="false">https://oldmug.io/p/foundations-2-the-birth-of-rest</guid><dc:creator><![CDATA[Andre Nobre]]></dc:creator><pubDate>Mon, 29 Sep 2025 14:01:54 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5bd3890f-1d75-498a-b4f5-f06fe85a7614_270x392.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This article is part of the &#8220;Foundations&#8221; series, exploring the roots of well-known technologies, patterns, and solutions that quietly revolutionized our industry.</em></p><div><hr></div><h1>Introduction</h1><p>Recently, in one of my consulting projects, I had to integrate a CRM system with an outdated Magento platform that still relied on a SOAP integration. It reminded me how painful it used to be, 20+ years ago, when our only choices were heavy, rigid integration methods that required verbose XML, complicated schemas, and endless debugging sessions.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Thanks to Roy Fielding, that&#8217;s not our current reality.</p><p>In this article, I&#8217;m going to cover:</p><ul><li><p>What were the options to create distributed applications and integrations in early 2000;</p></li><li><p>The main issues that Roy Fielding addressed through his doctoral dissertation;</p></li><li><p>What lessons we can take from the way he thought about it.</p></li></ul><h3>The Context Before REST</h3><p>In the late 1990s, the World Wide Web had exploded in popularity, yet the underlying model of interaction was poorly understood. HTTP was already widespread, but primarily treated as a transport mechanism for documents. Meanwhile, distributed object technologies such as CORBA, DCOM, and RMI were attempting to dominate the conversation on how systems should communicate.</p><p>From a software architecture perspective, these technologies shared common ground: they all attempted to <strong>abstract distributed communication into object-oriented calls</strong>, hiding the network behind familiar programming models. CORBA allowed invoking methods on remote objects as if they were local. DCOM extended the Microsoft COM model across machines. RMI let Java applications call methods on objects located in other JVMs.</p><p>While elegant in theory, this approach assumed homogeneity, required complex middleware, and often resulted in complicated integrations. <strong>The network was abstracted away, but at the cost of interoperability, scalability, and simplicity</strong>.</p><p>SOAP, introduced in 1999, took a slightly different path by leveraging XML over HTTP. But despite its promise of platform independence, SOAP still carried the same mindset: remote calls wrapped in complex envelopes, schemas, and contracts. It treated HTTP as a tunnel rather than embracing its inherent semantics.</p><p>These approaches all shared one thing: they were built with the mindset of <strong>making the network invisible</strong>. But the web was proving that exposing the network, and designing with its constraints in mind, was the key to global scale.</p><h3>A Timeline of the Late 1990s</h3><p>To better understand why REST emerged, it helps to place it against the chronology of distributed system technologies:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wD48!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7f143ec-32d6-4029-a140-880c98dee399_1806x502.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wD48!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7f143ec-32d6-4029-a140-880c98dee399_1806x502.png 424w, https://substackcdn.com/image/fetch/$s_!wD48!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7f143ec-32d6-4029-a140-880c98dee399_1806x502.png 848w, https://substackcdn.com/image/fetch/$s_!wD48!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7f143ec-32d6-4029-a140-880c98dee399_1806x502.png 1272w, https://substackcdn.com/image/fetch/$s_!wD48!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7f143ec-32d6-4029-a140-880c98dee399_1806x502.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wD48!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7f143ec-32d6-4029-a140-880c98dee399_1806x502.png" width="1456" height="405" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7f143ec-32d6-4029-a140-880c98dee399_1806x502.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:405,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77603,&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://oldmug.io/i/174085542?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7f143ec-32d6-4029-a140-880c98dee399_1806x502.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_!wD48!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7f143ec-32d6-4029-a140-880c98dee399_1806x502.png 424w, https://substackcdn.com/image/fetch/$s_!wD48!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7f143ec-32d6-4029-a140-880c98dee399_1806x502.png 848w, https://substackcdn.com/image/fetch/$s_!wD48!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7f143ec-32d6-4029-a140-880c98dee399_1806x502.png 1272w, https://substackcdn.com/image/fetch/$s_!wD48!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7f143ec-32d6-4029-a140-880c98dee399_1806x502.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong>Early 1990s</strong> &#8211; The web takes shape with HTTP 0.9/1.0 and HTML, primarily serving static documents.</p></li><li><p><strong>1994&#8211;1997</strong> &#8211; Distributed object models rise: CORBA gains traction in enterprise systems, Microsoft pushes DCOM, and Java introduces RMI. The promise is transparency of remote method calls, but complexity and interoperability issues grow.</p></li><li><p><strong>1997&#8211;1998</strong> &#8211; The web grows explosively, challenging existing models of integration. Developers begin tunneling RPC-style calls over HTTP to bypass firewalls and proxies.</p></li><li><p><strong>1999</strong> &#8211; SOAP emerges, promoted by Microsoft and IBM as a standardized XML-based messaging protocol over HTTP. It simplifies some cross-platform concerns but adds layers of verbosity and rigidity.</p></li><li><p><strong>2000</strong> &#8211; Roy Fielding publishes his dissertation at UC Irvine, proposing REST as a distinct architectural style&#8212;leaning into the constraints of the web rather than hiding them.</p></li></ul><p>This timeline shows the shift: from early web simplicity, to the complexity of distributed objects and SOAP, and then back to a simpler, constraint-based approach with REST.</p><h3>What Roy Fielding Saw</h3><p>Roy Fielding, deeply involved in the development of HTTP and the early web standards, noticed this mismatch. The web had succeeded not because it reinvented distributed computing, but because it relied on a few <strong>simple, robust principles</strong>:</p><ul><li><p>URIs as a global addressing mechanism;</p></li><li><p>Stateless interactions that made each request independent;</p></li><li><p>Caching as a built-in efficiency layer;</p></li><li><p>A client&#8211;server separation that allowed independent evolution.</p></li></ul><p>What the web lacked was a clear architectural model that explained why these choices worked and how they could be extended to future systems.</p><p>As Fielding put it:</p><blockquote><p><em>&#8220;The World Wide Web has succeeded in large part because its software architecture has been designed to meet the needs of an Internet-scale distributed hypermedia system.&#8221;</em> (Abstract)</p></blockquote><p><a href="https://ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf">His dissertation</a>, published in 2000, was his attempt to <strong>codify the architecture of the web</strong>. Rather than following the object-oriented, RPC-based mindset of CORBA, DCOM, RMI, or SOAP, Fielding proposed a different path: embrace the web&#8217;s constraints instead of hiding them.</p><h3>REST as a Historical Response</h3><p>It&#8217;s important to see REST not just as a checklist of constraints, but as a <strong>historical response</strong> to the limitations of the time. Distributed object systems promised transparency, but they collapsed under the realities of latency, heterogeneity, and scale. SOAP attempted to patch this by standardizing messages, but it still carried complexity and rigidity.</p><p>REST, in contrast, was about working with the network as it is. By deliberately constraining design, it enabled:</p><ul><li><p>Scalability through statelessness;</p></li><li><p>Evolvability through a uniform interface;</p></li><li><p>Interoperability through resources identified by URIs;</p></li><li><p>Resilience through layered intermediaries like proxies and caches.</p></li></ul><p>The contrast was clear: while CORBA or SOAP required developers to agree on detailed contracts before integration, REST allowed systems to interact dynamically through standard operations and representations. Where the other options tried to <strong>hide the web</strong>, REST leaned into it.</p><h3>Adoption of REST</h3><p>REST&#8217;s adoption was gradual. In the early 2000s, most enterprises still relied heavily on SOAP, especially in large corporate and government integrations where WS-* standards promised reliability and security. </p><p>REST, meanwhile, spread organically through the open web. Companies like Amazon, eBay, and later Twitter and Facebook began exposing public APIs that leaned on REST principles. The simplicity of URIs and HTTP verbs made it accessible for web developers who were already fluent in these technologies. </p><p>By the late 2000s, REST had become the dominant style for web APIs, while SOAP retreated into more specialized enterprise use cases. This divergence highlighted a cultural as much as a technical shift: <strong>developers favored pragmatic, lightweight integrations over rigid, contract-driven systems</strong>.</p><h3>Lessons Beyond REST</h3><p>Looking at REST in this historical context, its greatest contribution was not just a new way of designing APIs, but a shift in mindset:</p><ul><li><p><strong>Constraints as enablers</strong>: by limiting design choices, REST created systems that could scale to Internet levels.</p></li><li><p><strong>The web as the platform</strong>: instead of abstracting away the network, REST built directly on top of it.</p></li><li><p><strong>Simplicity over complexity</strong>: REST thrived where object-distributed models struggled, because it embraced the reality of diversity and failure in the network.</p></li></ul><p>More than two decades later, many of the technologies that once competed with REST have faded into history, while REST remains a baseline for how we think about integration.</p><h3>Emerging Alternatives After REST</h3><p>The dominance of REST eventually sparked new explorations. By the mid-2010s, developers were facing new challenges, like mobile clients with bandwidth constraints, applications requiring complex queries, and real-time updates that REST was not designed to handle elegantly. </p><p>This led to the emergence of <a href="https://graphql.org/">GraphQL</a> (2015), which prioritized flexible queries and minimized over-fetching; <a href="https://grpc.io/">gRPC</a>, which focused on performance and type safety through Protocol Buffers, and event-driven or streaming APIs using WebSockets and Kafka. </p><p>Each of these approaches can be seen as a response to specific limitations of REST, while still building on the lessons of constraint-driven architecture and interoperability. </p><p>Together, they show how REST provided a foundation, but not the final word in distributed system design.</p><h3>Conclusion</h3><p>Roy Fielding&#8217;s dissertation did not just propose an architectural style, it documented a turning point. It captured the lessons of the early web and set a direction away from the complexity of distributed objects and RPC toward a simpler, constraint-driven model.</p><p>As Fielding reminded us:</p><blockquote><p><em>&#8220;A good architecture is not created in a vacuum. All design decisions at the architectural level should be made within the context of the functional, behavioral, and social requirements of the system being designed.&#8221;</em> (Chapter 1)</p></blockquote><p>The context of the late 1990s with SOAP, CORBA, DCOM, RMI, and the growing pains of the web, was exactly that environment. REST was his answer. And it remains a powerful reminder that <strong>the best architectures are those that embrace their constraints, not those that try to escape them</strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Disappearing Skill: Why Intuition Still Matters in an AI World]]></title><description><![CDATA[How the rise of AI is threatening the experience we need to build intuition, and what we can do about it.]]></description><link>https://oldmug.io/p/the-disappearing-skill-why-intuition</link><guid isPermaLink="false">https://oldmug.io/p/the-disappearing-skill-why-intuition</guid><dc:creator><![CDATA[Andre Nobre]]></dc:creator><pubDate>Sun, 21 Sep 2025 13:02:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zHMd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdade99b9-bf2d-4328-893c-747e96aae400_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the last couple of years, I have been hearing all the time that our decisions should be 100% data-driven. And in some cases, I confess, I was the person saying this.</p><p>When I was working at <a href="https://vtex.com/en-us/">VTEX</a>, discussing about prioritizing and implementing the <a href="https://help.vtex.com/tutorial/delivery-promise-beta--p9EJH9GgxL0JceA6dBswd">Delivery Promises feature</a>, as the engineering leader I was advocating for getting enough data to support the decision whether we should or should not prioritize the initiative.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>But how can we come up with the numbers to justify something so complex?</p><p>And the results were obvious: of course, doing something that anticipates customers&#8217; expectations would result positively. I have seen that before, there&#8217;s a clear pattern easily recognizable. Maybe the discussion should be how much we should invest, but not if we should initially invest in that.</p><p>That&#8217;s a good example of when intuition wins over analytics, while analytics support and refine the decision over time.</p><p><strong>Today, intuition is at risk</strong>. As AI takes on more operational and repetitive tasks, many companies are reshaping or even eliminating entry-level roles. This raises a critical question: if experience is the raw material from which intuition is created, how will the next generation of professionals build the judgment needed to grow into senior and leadership positions?</p><h3>First things first: some basic concepts</h3><p>Intuition is not magic. Gary Klein, in <em>The Power of Intuition</em>, defines it as &#8220;the way we translate our experience into action.&#8221; It is the product of <strong>pattern recognition</strong>, built through repeated exposure to <strong>real situations</strong>, feedback loops, and reflection.</p><p>Daniel Kahneman would put it as the System 1 thinking: fast, automatic, and effortless. It&#8217;s the firefighter who knows where the fire will spread before seeing the flames, the chess master who sees a checkmate five moves ahead without calculating every branch, the senior engineer who senses a cascading failure from a single metric behaving oddly.</p><p>What makes intuition powerful is that it compresses <strong>years of experience</strong> into a fraction of a second. You don&#8217;t need to consciously run the numbers &#8212; you just know something is off.</p><p>And this is not irrational: research shows that experts often make better, faster decisions under uncertainty precisely because their brains have stored thousands of cases that inform those choices. In fast-moving organizations, this can be the difference between acting in time or missing the opportunity entirely.</p><h3>The challenge that arises with the evolution of AI</h3><p>Here&#8217;s where the problem emerges. If intuition depends on experience, and AI is now doing the repetitive, entry-level work that used to provide that experience, where will the next generation of professionals get theirs?</p><p>Take the example of a junior SRE or support engineer a decade ago: they would triage dozens of tickets per day, learn to read logs, spot patterns, and escalate issues. Over time, they built a mental library of &#8220;failure signals.&#8221;</p><p>Now, with AI handling log analysis, auto-remediating incidents, and summarizing alerts, that engineer might only see the most complex edge cases &#8212; without the &#8220;baseline cases&#8221; that teach them what normal looks like.</p><blockquote><p>This is not just a technical challenge &#8212; it&#8217;s a leadership pipeline challenge.</p></blockquote><p>Tomorrow&#8217;s senior engineers, product managers, and directors will be asked to make judgment calls, but they may lack the accumulated intuition that today&#8217;s leaders take for granted.</p><p>Gary Klein warns that &#8220;intuition is only reliable when it&#8217;s based on genuine expertise.&#8221; Without the repetitions, expertise never forms, and we risk raising a generation of professionals who are great at asking AI for answers but cannot sense when the AI is confidently wrong.</p><div class="pullquote"><p>We risk raising a generation of professionals who are great at asking AI for answers but cannot sense when the AI is confidently wrong.</p></div><h3>How to solve it</h3><p>We can&#8217;t simply turn back the clock and remove AI from the equation. But we can be intentional about designing experiences that build intuition.</p><p>One solution is <strong>Decision-Making Exercises (DMX)</strong>, structured scenarios where professionals must make choices with partial information, defend their reasoning, and review outcomes. This mirrors what Gary Klein calls recognition-primed decision making, forcing participants to build mental models they can use later.</p><p>Another effective method is the same one used in SRE practices: <strong>simulations</strong>, <strong>GameDays</strong>, and <strong>live drills</strong>. Netflix&#8217;s Chaos Engineering program is a well-known example, deliberately breaking production-like environments so engineers learn to diagnose, communicate, and recover under pressure. These repetitions create the &#8220;muscle memory&#8221; that intuition depends on.</p><p>The formula is simple:</p><ul><li><p>Expose people to realistic situations.</p></li><li><p>Allow them to fail safely.</p></li><li><p>Debrief and reflect so the lesson sticks.</p></li></ul><p>If AI removes the natural volume of learning opportunities, we must create artificial ones, otherwise the intuition skill will indeed disappear.</p><h3>Food for thought</h3><p>AI is rewriting the way we work. But intuition, that ability to make timely, high-quality decisions in ambiguity, remains one of the rarest and most valuable human skills.</p><p>As we embrace AI, we must ask ourselves:</p><ul><li><p>Are we still creating paths for people to accumulate the experiences that form intuition?</p></li><li><p>Are we prioritizing efficiency at the expense of future leadership capacity?</p></li><li><p>Are we willing to slow down enough to let people learn, fail, and grow?</p></li></ul><p>If we fail to answer these questions, we might end up with organizations that are efficient but fragile, dependent on machines that lack judgment and on humans who have never developed it.</p><p>Intuition might be disappearing, but it doesn&#8217;t have to. We just have to fight for it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Foundations #1: The Proposal for Relational Databases]]></title><description><![CDATA[I&#8217;m launching a series of posts called &#8220;Foundations,&#8221; which will present the roots of well-known technologies, patterns, or solutions that quietly revolutionized their fields.]]></description><link>https://oldmug.io/p/foundations-1-the-proposal-for-relational</link><guid isPermaLink="false">https://oldmug.io/p/foundations-1-the-proposal-for-relational</guid><dc:creator><![CDATA[Andre Nobre]]></dc:creator><pubDate>Sun, 15 Dec 2024 20:00:52 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/636eadf0-b133-4f98-b572-3b7071e9adbf_650x478.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>I&#8217;m launching a series of posts called &#8220;Foundations,&#8221; which will present the roots of well-known technologies, patterns, or solutions that quietly revolutionized their fields.  Each post will uncover the details that were groundbreaking in their day yet still echo through the systems and software we use today.</em></p><p>If you&#8217;re 40 or under, you have probably started your database-related software development learning path with relational databases. And even more, you have worked with relational databases for most of your career without even thinking about it. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>But have you ever thought about how the world was before that? Some contextual information at that time:</p><ul><li><p>Hierarchical and network data models dominated, requiring engineers to understand every detail of data storage and access paths.</p></li><li><p>In the '60s, the cost per megabyte of storage was around $6,000 (yes, six thousand dollars).</p></li><li><p>Software changes were complex and manual, requiring planning, coding, and manually compiling on mainframes. Debugging could take days, as any minor error required punching code onto cards and rerunning entire programs.</p></li></ul><p>One strong contributor to high costs on software maintenance was how data was organized and accessible. Data management was an inflexible and intricate process. Changing one element, like adding a field or adjusting a data type, often meant reprogramming large portions of the system, which took a long time and cost.</p><p>One example is <em>tree-structured files</em>, a hierarchical data model. Programs that consumed this database model would suffer if the file&#8217;s structure changed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HmqZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb40abf-56a7-4597-8892-67df8659aff6_325x409.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HmqZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb40abf-56a7-4597-8892-67df8659aff6_325x409.png 424w, https://substackcdn.com/image/fetch/$s_!HmqZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb40abf-56a7-4597-8892-67df8659aff6_325x409.png 848w, https://substackcdn.com/image/fetch/$s_!HmqZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb40abf-56a7-4597-8892-67df8659aff6_325x409.png 1272w, https://substackcdn.com/image/fetch/$s_!HmqZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb40abf-56a7-4597-8892-67df8659aff6_325x409.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HmqZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb40abf-56a7-4597-8892-67df8659aff6_325x409.png" width="325" height="409" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4bb40abf-56a7-4597-8892-67df8659aff6_325x409.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:409,&quot;width&quot;:325,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:20835,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HmqZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb40abf-56a7-4597-8892-67df8659aff6_325x409.png 424w, https://substackcdn.com/image/fetch/$s_!HmqZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb40abf-56a7-4597-8892-67df8659aff6_325x409.png 848w, https://substackcdn.com/image/fetch/$s_!HmqZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb40abf-56a7-4597-8892-67df8659aff6_325x409.png 1272w, https://substackcdn.com/image/fetch/$s_!HmqZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb40abf-56a7-4597-8892-67df8659aff6_325x409.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Example of a tree-structured file. Source: Codd&#8217;s article.</figcaption></figure></div><p>Codd mentioned this kind of challenge as &#8220;data independence&#8221;:</p><blockquote><p><em>Independence of application programs and terminal activities from growth in data types and changes in data representation--and certain kinds of data inconsistency which are expected to become troublesome even in nondeductive systems.</em></p></blockquote><p>Based on all these challenges, he presented a data model in June 1970 that offered something transformative for the time: independence from data storage details. </p><p>In his article &#8220;A Relational Model of Data for Large Shared Data Banks&#8221;, Codd discussed the foundation for relational databases and the concept of a universal data sublanguage, which would become the SQL language.</p><p>Codd recognized the issue with this heavy data storage dependency and its correlation with data evolution:</p><blockquote><p><em>Future users of large data banks must be protected from having to know how the data is organized in the machine (the internal representation). </em></p><p><em>[&#8230;] Changes in data representation will often be needed as a result of changes in query, update, and report traffic and natural growth in the types of stored information.</em></p></blockquote><p>This abstraction was groundbreaking because it removed the need for users and programs to "know" the exact layout or storage mechanisms of data. Instead, they could query data using logical structures without regard for physical order or indexes. </p><h3>The definition</h3><p>Codd&#8217;s proposal relies on separating the responsibilities of data description from machine representation. This separation could facilitate software maintenance and its impact by allowing users to focus on the necessary parts rather than the whole.</p><p>From there, Codd proposed a new way to represent data and its relations through the <strong>relational data model</strong>.</p><p>Codd's concept of a&nbsp;<em>relation&nbsp;</em>is based on the mathematics discipline, alongside concepts such as&nbsp;<em>sets</em>,&nbsp;<em>domains,</em>&nbsp;and&nbsp;<em>degrees</em>, defined in <em><a href="https://en.wikipedia.org/wiki/Binary_relation">heterogeneous relation</a></em>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6l8y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02ddb1d7-9254-48f7-9a92-ea3ff8a731c5_406x287.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6l8y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02ddb1d7-9254-48f7-9a92-ea3ff8a731c5_406x287.png 424w, https://substackcdn.com/image/fetch/$s_!6l8y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02ddb1d7-9254-48f7-9a92-ea3ff8a731c5_406x287.png 848w, https://substackcdn.com/image/fetch/$s_!6l8y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02ddb1d7-9254-48f7-9a92-ea3ff8a731c5_406x287.png 1272w, https://substackcdn.com/image/fetch/$s_!6l8y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02ddb1d7-9254-48f7-9a92-ea3ff8a731c5_406x287.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6l8y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02ddb1d7-9254-48f7-9a92-ea3ff8a731c5_406x287.png" width="406" height="287" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02ddb1d7-9254-48f7-9a92-ea3ff8a731c5_406x287.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:287,&quot;width&quot;:406,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:35659,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6l8y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02ddb1d7-9254-48f7-9a92-ea3ff8a731c5_406x287.png 424w, https://substackcdn.com/image/fetch/$s_!6l8y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02ddb1d7-9254-48f7-9a92-ea3ff8a731c5_406x287.png 848w, https://substackcdn.com/image/fetch/$s_!6l8y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02ddb1d7-9254-48f7-9a92-ea3ff8a731c5_406x287.png 1272w, https://substackcdn.com/image/fetch/$s_!6l8y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02ddb1d7-9254-48f7-9a92-ea3ff8a731c5_406x287.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Correlation of Codd&#8217;s definition and mathematics concepts. Source: Codd&#8217;s article</figcaption></figure></div><p>The idea was that an <em>n-ary</em> relation could be represented through an array of relations. In the example below, there&#8217;s a relation &#8220;supply&#8221; of degree 4, and its rows and domains explicitly identified:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aPCQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F674dfbdb-2840-4c32-a45b-647380a53c4c_1022x322.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aPCQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F674dfbdb-2840-4c32-a45b-647380a53c4c_1022x322.png 424w, https://substackcdn.com/image/fetch/$s_!aPCQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F674dfbdb-2840-4c32-a45b-647380a53c4c_1022x322.png 848w, https://substackcdn.com/image/fetch/$s_!aPCQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F674dfbdb-2840-4c32-a45b-647380a53c4c_1022x322.png 1272w, https://substackcdn.com/image/fetch/$s_!aPCQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F674dfbdb-2840-4c32-a45b-647380a53c4c_1022x322.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aPCQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F674dfbdb-2840-4c32-a45b-647380a53c4c_1022x322.png" width="1022" height="322" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/674dfbdb-2840-4c32-a45b-647380a53c4c_1022x322.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:322,&quot;width&quot;:1022,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38363,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aPCQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F674dfbdb-2840-4c32-a45b-647380a53c4c_1022x322.png 424w, https://substackcdn.com/image/fetch/$s_!aPCQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F674dfbdb-2840-4c32-a45b-647380a53c4c_1022x322.png 848w, https://substackcdn.com/image/fetch/$s_!aPCQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F674dfbdb-2840-4c32-a45b-647380a53c4c_1022x322.png 1272w, https://substackcdn.com/image/fetch/$s_!aPCQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F674dfbdb-2840-4c32-a45b-647380a53c4c_1022x322.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Basic properties represented on the &#8220;supply&#8221; relation. Source: Codd&#8217;s article</figcaption></figure></div><p>Codd also defined some very familiar concepts throughout his proposal:&nbsp;<em>primary</em>&nbsp;and&nbsp;<em>foreign keys</em>:</p><blockquote><p><em>One domain (or combination of domains) of a given relation has values which uniquely identify each element (n-tuple) of that relation. Such a domain (or combination) is called a primary key.</em></p><p><em>We shall call a domain (or domain combination) of relation R a foreign key if it is not the primary key of R but its elements are values of the primary key of some relation S.</em></p></blockquote><p>Primary keys (PK) and foreign keys (FK) were essential to another concept that Codd introduced: the <em>normal form</em>.</p><p>In a nutshell, Codd stated that when in a &#8220;complicated data structure&#8221;, there was a need to eliminate the nonsimple domains using the process that he called &#8220;normalization&#8221;, consisting of: </p><ol><li><p>Starting with the relation at the top of the tree, take its primary key and expand each of the immediately subordinate relations by inserting this primary key domain or domain combination.</p></li><li><p>The primary key of each expanded relation consists of the primary key before expansion augmented by the primary key copied down from the parent relation. </p></li><li><p>Strike out from the parent relation all nonsimple domains, remove the top node of the tree, and repeat the same sequence of operations on each remaining subtree.</p></li></ol><p>For instance, consider the unnormalized data sets employee, job history, children, and salary history, each with its respective domains:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CmYF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bfbe21-034f-41c8-881e-8034ac61bc67_539x278.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CmYF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bfbe21-034f-41c8-881e-8034ac61bc67_539x278.png 424w, https://substackcdn.com/image/fetch/$s_!CmYF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bfbe21-034f-41c8-881e-8034ac61bc67_539x278.png 848w, https://substackcdn.com/image/fetch/$s_!CmYF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bfbe21-034f-41c8-881e-8034ac61bc67_539x278.png 1272w, https://substackcdn.com/image/fetch/$s_!CmYF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bfbe21-034f-41c8-881e-8034ac61bc67_539x278.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CmYF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bfbe21-034f-41c8-881e-8034ac61bc67_539x278.png" width="539" height="278" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37bfbe21-034f-41c8-881e-8034ac61bc67_539x278.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:278,&quot;width&quot;:539,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13194,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CmYF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bfbe21-034f-41c8-881e-8034ac61bc67_539x278.png 424w, https://substackcdn.com/image/fetch/$s_!CmYF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bfbe21-034f-41c8-881e-8034ac61bc67_539x278.png 848w, https://substackcdn.com/image/fetch/$s_!CmYF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bfbe21-034f-41c8-881e-8034ac61bc67_539x278.png 1272w, https://substackcdn.com/image/fetch/$s_!CmYF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37bfbe21-034f-41c8-881e-8034ac61bc67_539x278.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After applying the normalization form, the set would become:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mVCc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F130e2310-4364-42c5-98c5-1e31feab55ec_444x97.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mVCc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F130e2310-4364-42c5-98c5-1e31feab55ec_444x97.png 424w, https://substackcdn.com/image/fetch/$s_!mVCc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F130e2310-4364-42c5-98c5-1e31feab55ec_444x97.png 848w, https://substackcdn.com/image/fetch/$s_!mVCc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F130e2310-4364-42c5-98c5-1e31feab55ec_444x97.png 1272w, https://substackcdn.com/image/fetch/$s_!mVCc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F130e2310-4364-42c5-98c5-1e31feab55ec_444x97.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mVCc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F130e2310-4364-42c5-98c5-1e31feab55ec_444x97.png" width="444" height="97" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/130e2310-4364-42c5-98c5-1e31feab55ec_444x97.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:97,&quot;width&quot;:444,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8653,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mVCc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F130e2310-4364-42c5-98c5-1e31feab55ec_444x97.png 424w, https://substackcdn.com/image/fetch/$s_!mVCc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F130e2310-4364-42c5-98c5-1e31feab55ec_444x97.png 848w, https://substackcdn.com/image/fetch/$s_!mVCc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F130e2310-4364-42c5-98c5-1e31feab55ec_444x97.png 1272w, https://substackcdn.com/image/fetch/$s_!mVCc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F130e2310-4364-42c5-98c5-1e31feab55ec_444x97.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Of course, this is extremely well-known. Normalization is part of every database course around there. However, at that time, it was crucial to represent complex data structures while keeping the key aspects of the proposal for a relational data model.</p><h3>The Linguistic Foundations of Relational Databases</h3><p>The shift to a relational model changed not only how data was organized but also fundamentally how we communicate with data systems. Before Codd's work, interacting with databases required low-level, system-specific commands. The relational model, however, introduced the idea of a&nbsp;<strong>universal data sublanguage</strong>, which evolved into SQL language.</p><p>At its core, this universal language was built on the principles of applied <strong><a href="https://en.m.wikipedia.org/wiki/First-order_logic">predicate calculus</a></strong>. By employing first-order logic, it offered a framework robust enough to express any valid query or manipulation of relational data. </p><p>Once we have characteristics such as <em>domains</em> descriptions, the <em>relations</em> between them, <em>primary</em> and <em>foreign</em> <em>keys</em>, plus <em>normalization</em> process, the use of <em>terms</em>, <em>formulas</em>, <em>quantifiers</em>, and <em>variables</em>, fundamental of <em>predicate calculus</em>, becomes possible, giving space for creating the above-mentioned universal data sublanguage.</p><blockquote><p><em>The universality of the data sublanguage lies in its descriptive ability.</em></p></blockquote><p>This was revolutionary: instead of being bound by rigid, system-dependent syntax, users could describe <em>what</em> they wanted without specifying <em>how</em> to get it. Codd&#8217;s vision meant that data operations could now focus on <em>intent</em>.</p><p>Key features of this linguistic framework included:</p><ol><li><p><strong>Logical Independence</strong>: Queries could be written abstractly without regard to the underlying physical structure or storage methods.</p></li><li><p><strong>Declarative Nature</strong>: Users specify desired outcomes (e.g., "retrieve all suppliers for Project X") without detailing the process.</p></li><li><p><strong>Descriptive Power</strong>: The language could handle the complexity of expressing relationships, constraints, and logical dependencies through a single unified syntax.</p></li></ol><p>By separating the description of relationships from their implementation, this approach not only simplified data interactions but also democratized access to powerful database capabilities.</p><p>In his paper, Codd didn&#8217;t define the SQL language itself. He limited himself to defining the foundation of the data sublanguage but also went through mentioning and relating some operations, such as&nbsp;<em>permutation</em>,&nbsp;<em>projection,</em>&nbsp;and&nbsp;<em>join,&nbsp;</em>that are connected to the usage of&nbsp;<em>predicate calculus</em>&nbsp;and operations regarding&nbsp;<em>sets</em>. </p><h3>What happened next</h3><p>Codd&#8217;s work was the initial seed for several critical advancements in relational databases, the SQL language, and the establishment of a new paradigm in software development. His paper not only created a revolutionary concept but also set the stage for practical implementations that would define the future of data management.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q0rf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8203a2c1-93fd-4fc1-9522-c51ee1f6952d_603x247.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q0rf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8203a2c1-93fd-4fc1-9522-c51ee1f6952d_603x247.png 424w, https://substackcdn.com/image/fetch/$s_!q0rf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8203a2c1-93fd-4fc1-9522-c51ee1f6952d_603x247.png 848w, https://substackcdn.com/image/fetch/$s_!q0rf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8203a2c1-93fd-4fc1-9522-c51ee1f6952d_603x247.png 1272w, https://substackcdn.com/image/fetch/$s_!q0rf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8203a2c1-93fd-4fc1-9522-c51ee1f6952d_603x247.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!q0rf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8203a2c1-93fd-4fc1-9522-c51ee1f6952d_603x247.png" width="603" height="247" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8203a2c1-93fd-4fc1-9522-c51ee1f6952d_603x247.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:247,&quot;width&quot;:603,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28420,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!q0rf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8203a2c1-93fd-4fc1-9522-c51ee1f6952d_603x247.png 424w, https://substackcdn.com/image/fetch/$s_!q0rf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8203a2c1-93fd-4fc1-9522-c51ee1f6952d_603x247.png 848w, https://substackcdn.com/image/fetch/$s_!q0rf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8203a2c1-93fd-4fc1-9522-c51ee1f6952d_603x247.png 1272w, https://substackcdn.com/image/fetch/$s_!q0rf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8203a2c1-93fd-4fc1-9522-c51ee1f6952d_603x247.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Summary section in Codd&#8217;s article</figcaption></figure></div><p>Following his proposal, Codd continued refining and expanding his ideas, working alongside IBM researchers to transform theory into practice. </p><p>One of the most notable projects inspired by his work was <a href="https://en.wikipedia.org/wiki/IBM_System_R">System R</a>, an experimental database system developed in the early 1970s. This system was instrumental in proving the viability of the relational model for real-world applications. </p><p>System R&#8217;s architecture serves as a good example of a real implementation of Codd&#8217;s concepts. Codd&#8217;s idea of separating data representation from machine representation is clearly stated as the Relational Data Interface (RDI) and Relational Storage Interface (RSI).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kiV5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7701b144-0482-493f-a9e7-9dcea08100e7_429x406.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kiV5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7701b144-0482-493f-a9e7-9dcea08100e7_429x406.png 424w, https://substackcdn.com/image/fetch/$s_!kiV5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7701b144-0482-493f-a9e7-9dcea08100e7_429x406.png 848w, https://substackcdn.com/image/fetch/$s_!kiV5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7701b144-0482-493f-a9e7-9dcea08100e7_429x406.png 1272w, https://substackcdn.com/image/fetch/$s_!kiV5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7701b144-0482-493f-a9e7-9dcea08100e7_429x406.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kiV5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7701b144-0482-493f-a9e7-9dcea08100e7_429x406.png" width="429" height="406" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7701b144-0482-493f-a9e7-9dcea08100e7_429x406.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:406,&quot;width&quot;:429,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:12212,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kiV5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7701b144-0482-493f-a9e7-9dcea08100e7_429x406.png 424w, https://substackcdn.com/image/fetch/$s_!kiV5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7701b144-0482-493f-a9e7-9dcea08100e7_429x406.png 848w, https://substackcdn.com/image/fetch/$s_!kiV5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7701b144-0482-493f-a9e7-9dcea08100e7_429x406.png 1272w, https://substackcdn.com/image/fetch/$s_!kiV5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7701b144-0482-493f-a9e7-9dcea08100e7_429x406.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>From System R&#8217;s original paper: &#8220;<em>The Relational Data Interface (RDI) is the principal external interface of System R. It provides high level, data independent facilities for data retrieval, manipulation, definition, and control. The data definition facilities of the RDI allow a variety of alternative relational views to be defined on common underlying data</em>&#8221;.</p><p>And &#8220;<em>The Relational Storage Interface (RSI) is an internal interface which handles access to single tuples of base relations. This interface and its supporting system, the Relational Storage System (RSS) , is actually a complete storage subsystem in that it manages devices, space allocation, storage buffers, transaction consistency and locking, deadlock detection, backout, transaction recovery, and system recovery. Furthermore, it maintains indexes on selected fields of base relations, and pointer chains across relations</em>&#8216;.</p><p>Codd&#8217;s work regarding a &#8220;universal data sublanguage&#8221; also served as the foundation for SEQUEL (Structured English Query Language), the precursor to&nbsp;<a href="https://en.wikipedia.org/wiki/SQL">SQL</a>. SEQUEL&#8217;s design emphasized simplicity and usability, allowing non-specialists to interact with data in previously unimaginable ways.</p><p>Building on the success of System R and SEQUEL, IBM released <a href="https://en.wikipedia.org/wiki/IBM_Db2">DB2</a> in the 1980s, the first commercial relational database management system (RDBMS) based on Codd&#8217;s relational principles. This marked the beginning of the adoption of relational databases across industries. </p><p>Other companies, including Oracle, Sybase, and Informix, followed suit, creating their own RDBMS products that adhered to and expanded upon the relational model. These systems became the backbone of enterprise data management, powering applications from banking systems to e-commerce platforms.</p><p>Codd&#8217;s influence extended beyond software to shape the culture of database design and development. His principles encouraged a focus on data abstraction, independence, and normalization&#8212;concepts that remain at the core of modern database education and practice. </p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Winning Hearts and Minds: Persuasion Strategy for Engineering Leaders]]></title><description><![CDATA[In the end, it's not about selling an idea; it's about inspiring a movement.]]></description><link>https://oldmug.io/p/winning-hearts-and-minds-persuasion</link><guid isPermaLink="false">https://oldmug.io/p/winning-hearts-and-minds-persuasion</guid><dc:creator><![CDATA[Andre Nobre]]></dc:creator><pubDate>Tue, 17 Oct 2023 15:00:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7570a8a3-accb-4f87-b75f-30c9308bdc1c_1792x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the world of software engineering, great ideas are the lifeblood of innovation. But here's the catch: having a brilliant idea is just the beginning. Convincing your team and peers to embrace that idea and turn it into reality can be the real challenge. As a software engineering leader, I've learned that persuasion is the key to success.</p><h3>Understanding the Significance of Persuasion in Software Engineering</h3><p>Consider this scenario: You're a software engineering leader with a game-changing concept. You could march into your team's meeting room and declare your idea as the next big thing. But, what's the likelihood that your team will jump on board with enthusiasm? Probably not very high (see <a href="https://oldmug.io/i/137569113/lack-of-ownership-buy-in-versus-ownership">Lack of Ownership</a>).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><a href="https://chelseatroy.com/about/">Chelsea Troy</a>, in her insightful post about "<a href="https://chelseatroy.com/2018/02/25/how-to-socialize-big-changes-at-work-part-1-start-at-the-grassroots-level/">How to Socialize Big Changes at Work</a>" highlights a common pitfall when introducing new ideas to a group:</p><blockquote><p><em>Presumably, if the whole team is together, they know the topic they&#8217;re there to discuss, and they&#8217;ve agreed that it&#8217;s relevant. You show up and drag the topic onto your new thing. No one in this meeting has had the chance to agree that this thing is relevant. </em></p><p><em>So you&#8217;re co-opting time that people have given to something relevant. Co-opting people&#8217;s time without their consent annoys them, at best. It&#8217;s an <strong>emotional hurdle</strong> you don&#8217;t need in your effort to get your idea adopted.</em> </p></blockquote><p>In this context, persuasion isn't solely about selling; it's about engaging. Your team and peers need to believe in it, see its potential, and feel motivated to contribute. After all, <strong>a great idea is only as good as its execution</strong>, and that requires a committed team.</p><p>So, how to start? Feedback is the answer.</p><h3>Initiating the Process with Feedback</h3><p>One of the first steps in persuading your team to embrace your idea is to seek feedback. This approach may seem counterintuitive, as you might fear that criticism could derail your vision. However, feedback is vital in refining your idea and involving your team in the creative process.</p><p>Imagine presenting your idea as a rough sketch and inviting your team to contribute their thoughts. This approach fosters collaboration and helps you identify potential pitfalls early on. When people feel heard and valued, they're more likely to get on board.</p><p>In the realm of software engineering, the best way to do this is by using <strong>written communication</strong>. </p><p>By segregating the message's definition from its dissemination, you have the opportunity to meticulously craft your message to ensure that your ideas are conveyed with clarity and precision. This clarity significantly aids your audience in comprehending your perspective.</p><p>Also, written materials can be easily distributed to a wide audience, making it an efficient way to reach and persuade multiple individuals or stakeholders simultaneously, regardless of their time zones.</p><p>And last, written communication creates a permanent record of your message, which can be referred to later. In his <a href="https://techlead.academy/p/communication">communication course</a>, Pat Kua highlights that writing is important to <strong>capture context</strong>.</p><p>As mentioned in his material, a good example is <a href="https://www.cognitect.com/blog/2011/11/15/documenting-architecture-decisions">architecture decision records</a>. This short text file (Michael Nygard&#8217;s definition) is used by many companies and teams to document and share the details about the trade-offs and other information that may explain the decisions that someone made over time.</p><p>When this does not happen, Pat Kua defines it as &#8220;Tribal Knowledge&#8221;:</p><blockquote><p> &#8220;Tribal Knowledge&#8221; sounds fun when you&#8217;re sitting around a campfire sharing stories but other cannot benefit if that person with that &#8220;Tribal Knowledge&#8221; is no longer around. </p></blockquote><p>Another important decision to make while seeking feedback is choosing the right people for it. According to <a href="https://profiles.stanford.edu/riitta-katila">Riitta Katila</a>, your manager is definitely not the ideal candidate for initial feedback on a new idea. You should first look for people with a &#8220;creator&#8221; mindset, who are more open to fresh ideas, changes, and innovation.  </p><p>Once you have started or concluded the co-creation phase using the obtained feedback, it is time to spread the message through additional voices.</p><h3>Finding Internal Sponsors and Allies </h3><p>Even the most revolutionary ideas need champions within the organization. These champions can be your internal sponsors and allies who support and <strong>advocate for your idea</strong>. Seek out individuals who share your vision and can help you navigate the complex landscape of organizational politics.</p><div class="pullquote"><p>As per <a href="https://profiles.stanford.edu/riitta-katila">Riitta Katila</a>&#8217;s insights, managers are 57% more likely to embrace new ideas when they are presented by someone other than the idea's originator.</p></div><p>Think of these allies as partners in your journey. They can help you gain the support and resources you need, making it easier to persuade others. Remember, you don't have to go alone.</p><p>A productive method for identifying these supporters within your organization is to pay attention to social interactions and identify those who share similar interests. Look for potential allies through your company's Slack channels, internal communication platforms, All Hands meetings, and other opportunities for engagement.</p><h3>Effective Communication </h3><p>Communication is the cornerstone of persuasion. You might have a brilliant idea, but it's unlikely to gain traction if you can't articulate it clearly. Craft a compelling narrative around your idea, emphasizing its benefits and value to the team and the organization.</p><p>Your goal is to create a shared understanding and enthusiasm for the idea. There is no better strategy for this than demonstrating its value and benefits, connected with your company&#8217;s business drivers.</p><p>Every idea, no matter how innovative, must demonstrate its worth. Showcase how your idea can address pain points, improve efficiency, or drive revenue. When your team and peers can connect the dots between your idea and <strong>tangible benefits</strong>, they're more likely to buy in.</p><p>Use real-world examples or success stories to illustrate how your idea has worked in similar contexts. People are more inclined to trust and support something with a proven track record.</p><h3>Dealing with Resistance and Challenges </h3><p>Resistance is inevitable. Not everyone will immediately embrace your idea, and that's okay. When faced with resistance, approach it as an <strong>opportunity for growth and learning</strong>.</p><p>Listen to concerns and objections with an <strong>open mind</strong>, and be prepared to adapt your approach. Sometimes, making small adjustments can turn skeptics into advocates. Patience and persistence are your allies in overcoming challenges.</p><h3>Conclusion</h3><p>In the ever-evolving world of software engineering, leadership is about more than just making decisions; it's about inspiring and guiding your team toward a shared vision. Persuasion, done with empathy and authenticity, is a powerful tool that allows you to lead with influence, not authority.</p><p>Remember, you're not selling a product; you're championing an idea that has the potential to transform your team and your organization. Use feedback, allies, effective communication, and a demonstration of value to win hearts and minds. Embrace resistance as an opportunity for growth, and watch your ideas flourish in the hands of a motivated and engaged team.</p><blockquote><p>In the end, it's not about selling an idea; it's about inspiring a movement.</p></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Riding the Wave First: The Ups, Downs, and Loop-de-Loops of Being a Software Development Trailblazer]]></title><description><![CDATA[First-Mover in Software Engineering: Navigating the Balance Between Innovation and Prudence]]></description><link>https://oldmug.io/p/riding-the-wave-first-the-ups-downs</link><guid isPermaLink="false">https://oldmug.io/p/riding-the-wave-first-the-ups-downs</guid><dc:creator><![CDATA[Andre Nobre]]></dc:creator><pubDate>Thu, 12 Oct 2023 09:11:26 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/80f0ee8a-78fc-49b5-afc1-09f1d520e7aa_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Laying hands on a new tool, language, framework or anything related in the tech space presents a duality of excitement and uncertainty. We have been living this for a long time, since the beginning of our tech-related studies until the first day of our retirement.</p><p><a href="https://oldmug.io/p/coming-soon">I remember when I was a teenager</a> and bought my first programming language book (C language). I sat down on my chair, in front of a 386 PC, opened an editor, and started reading the book hoping to write code and see everything working smoothly. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The problem is that it takes more than excitement to make things work, especially if you're taking your first steps in any context.</p><p>Stepping into a leadership role amplifies this dynamic. Guiding a team into uncharted technological waters is both invigorating and fraught with potential pitfalls.</p><p>Beyond the excitement, it is crucial for any engineering manager to be completely aware of the advantages and disadvantages of being a first-mover, especially nowadays with the efficiency mindset spread around the companies.</p><p>&#127775; <strong>Perks of Being a First Mover</strong></p><p>As someone from engineering, there is a personal satisfaction of being back to breaking new ground and  harnessing the power of a tool before anyone else. </p><p>But beyond that, the <strong>innovation can skyrocket your team</strong> to unforeseen heights, giving visibility to your team&#8217;s ability on discovery and <strong>visibility to the team&#8217;s members</strong> throughout your engineering organization. You and your team become the go-to peeps for insights.</p><p>Also, early adoption can <strong>shape the tool&#8217;s path</strong>, potentially even swinging it to align closely with your team's needs. This is especially important if your team will rely on this tool for a long-term basis.</p><p>&#128679; <strong>The Not-So-Glam Side</strong></p><p>On the other hand, there is time and uncertainty. Being the inaugural adopters of a technology casts us into the <strong>murky abyss of the unknown</strong>, where systemic bugs, unforeseen complications, and a potential dearth of troubleshooting resources loom. </p><p>These <strong>unanticipated complexities</strong> can potentially morph into time and resource sinks, directing vital energies away from other pivotal pursuits. Moreover, the relative <strong>scarcity of community support</strong> and pre-established solutions often means that the team is left to its own devices, navigating through challenges with limited external guidance.</p><p>Thus, the audacity to forge ahead as trailblazers also mandates an acceptance of the potentialities of uncharted challenges and solitary problem-solving.</p><p>&#129337; <strong>Juggling Innovation and Stability</strong></p><p>The pursuit of equilibrium between innovative zeal and strategic caution forms the bedrock of <strong>sustainable first-mover approaches</strong>: </p><ul><li><p>Conducting a meticulous <strong>risk assessment</strong>, evaluating not only the glittering promises but also potential pitfalls and resource requisites of a new technology, forms the initial step; </p></li><li><p><strong>Incremental adoption strategy</strong>, where technologies are piloted and evaluated in controlled environments before expansive deployment, can serve as a prudent measure to ascertain their viability and utility; </p></li><li><p>Cultivating an <strong>organizational culture</strong> that marries the boldness of innovation with the wisdom of calculated risk-taking ensures that the journey through unknown technological terrains is both exhilarating and strategically sound.</p></li></ul><p>&#127906; <strong>The Loop-De-Loop Conclusion</strong></p><p>In conclusion, the journey as a first-mover in the software engineering space is indeed a multi-faceted adventure, illuminated by potential innovations and occasionally punctuated by unforeseen complexities. </p><p>A rhapsody of innovation, glimpses into the future, and occasionally, a tad bit of &#8220;Why did we jump into this again?&#8221;</p><p>See you in the next publication.<br>&#8212; Andr&#233; Nobre</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Double-Edged Sword of Positional Power in Tech Organizations]]></title><description><![CDATA[Positional power, the inherent authority that comes with a specific title or position, can be a game-changer in technology organizations, especially in the realm of software engineering.]]></description><link>https://oldmug.io/p/the-double-edged-sword-of-positional</link><guid isPermaLink="false">https://oldmug.io/p/the-double-edged-sword-of-positional</guid><dc:creator><![CDATA[Andre Nobre]]></dc:creator><pubDate>Sun, 01 Oct 2023 17:01:15 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c2537ca0-44ce-44ae-8284-09728e1d35cc_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Positional power, the inherent authority that comes with a specific title or position, can be a game-changer in technology organizations, especially in the realm of software engineering. While the context here is software engineering, the insights apply universally across product development sectors.</p><h1><strong>Understanding Positional Power</strong></h1><p>In every company, there are several sources of power, each with its characteristics and effects within the organization. Regardless of its type, the use of power must be understood as something normal and necessary, considering its conscious use and knowledge of its consequences.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>One such source, positional power, is the kind of power you have when you have a specific position or title in an organization. It is usually accompanied by legitimate power, which is the formal power to act in an organization.</p><p>But even when legitimate, if misused, it can bring problems for the organization.</p><p>In software engineering, you can identify its misuse in these situations:</p><ul><li><p>Someone in a higher position proposes a solution design that is blindly followed  by the other participants;</p></li><li><p>Team members avoid discussing ideas pitched by those in higher ranks;</p></li><li><p>Teams agree with senior propositions just to avoid conflict;</p></li><li><p>Priorities set by senior figures lack clear justification.</p></li></ul><blockquote><p><em><strong>Positional power risk</strong> is equivalent to the role gap between participants in the initiative or meeting.</em></p></blockquote><p>Awareness is the antidote to misuse. Let&#8217;s delve into the pitfalls and solutions.</p><h1><strong>Pitfalls of Misusing Positional Power</strong></h1><p>While there are several unexpected effects of misuse of positional power, this list highlights three that have the greatest impact on product development:</p><h2><strong>Lack of ownership (buy-in </strong><em><strong>versus</strong></em><strong> ownership)</strong></h2><p>Ownership is a cornerstone of any successful product journey. When a team has ownership, they fully embrace every idea, decision, and subsequent action. This means they are not only actively involved but also hold themselves accountable for the outcomes, whether they're successful or otherwise. It's this sense of ownership that fuels motivation and commitment, driving teams to give their very best.</p><p>On the flip side, we have buy-in. Imagine the entire thinking, ideation, and decision-making being charted out by someone else or perhaps an entirely different team. Now, the primary role of the development team becomes to be convinced of this externally derived idea and execute it. Opting for this approach might seem efficient initially, but in the long run, it's often synonymous with mediocre results. And when obstacles arise? That's when the cracks really start to show, giving rise to what many dread: a blame culture.</p><p>Chasing buy-in can be translated as the desire to keep a tight grip on things during the chaotic process of change.</p><h2><strong>Misalignment</strong></h2><p>When a team doesn't truly "own" a project, a domino effect of endless realignments begins. It's a cycle of trying to grasp the core challenge and, if lucky, eventually embracing it wholeheartedly. </p><p>But here's the twist: the journey to truly attain ownership after merely buying into an idea is as taxing as building that sense of ownership from the ground up. So, when a solution is handed down by someone atop the corporate ladder, does it genuinely offer any advantages? Or is it just an illusion of efficiency?</p><h2><strong>The need to be seen at any cost</strong></h2><p>Picture this: A high-ranking individual walks into a room, and suddenly, it feels like a golden opportunity for many. The allure is almost magnetic. For some, it might seem like their big break, their chance to shine brighter than ever. </p><p>But in this glittering rush, a dangerous shift occurs. The focus deviates from collective team goals to individual showmanship. The outcome? An atmosphere rife with conflicts and, you guessed it, further misalignment.</p><h1><strong>How to avoid the negative effects of positional power</strong></h1><p>If you find yourself in a situation of being the highest-ranking person at the table, be aware of the following approaches to avoid problems:</p><h2><strong>Don&#8217;t Lead When There&#8217;s a Big Gap in Positions</strong></h2><p>Avoid leading the discussion when there is a gap of more than 2 levels between you and the rest of the audience. During the discussion or meeting, try to avoid setting the tone with initial ideas or acting as the <em>production blocker</em> &#8212; when an idea is promptly blocked. Remember that it is crucial that the team has ownership and not just buy-in.</p><h2><strong>Drive based on results</strong></h2><p>It's disheartening, to say the least, when someone else dictates the fruits of your intellectual labor. Instead of being tethered to another's vision, champion an outcome-driven approach. Let key performance indicators be your compass, and don't shy away from challenging your team with thought-provoking questions. The results might just surprise you!</p><h2><strong>Use the overall process to create value</strong></h2><p>A company's process shouldn't be a straitjacket. It should be a catalyst, opening doors for every individual to lend their voice and unique insights. Dive into the existing processes headfirst, advocating for an environment that minimizes the shadows of positional power. And if you feel the process is more of a roadblock than a runway, speak up and be the catalyst for change.</p><h1><strong>Positional power as an important tool</strong></h1><p>Positional power gives you the power to make decisions and move your team forward in unison. This is extremely important in a dynamic product development organization, especially under a heavy operational load.</p><p>You can (and should) use your positional power in these circumstances:</p><ul><li><p>The decision must be taken in a timely manner, with no consensus among the team;</p></li><li><p>When a decision includes high risk or is a strategic move that could impact the organization as a whole;</p></li></ul><p>Usually, <strong>positional power is very well seen in situations where there is little time for critical operational</strong> <strong>decision-making</strong> or for direction where the team has not arrived at a vision and needs help. Even so, try to follow through with more questions than answers.</p><h1><strong>What to do next</strong></h1><p>Start raising awareness within your organization about the unexpected effects of positional power. Identify your misuse and align with your peers on appropriate actions when it happens. Give feedback promptly and work together to ensure a better place to work.</p><p>In conclusion, while positional power is an inherent aspect of hierarchical structures in software engineering organizations, its effects on creativity, communication, and diversity can be far-reaching and detrimental. By recognizing and addressing these effects, organizations can strive to create an environment that supports innovation, effective communication, and inclusivity, ultimately leading to improved software development processes and outcomes.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://oldmug.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Old Mug! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>