<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
  <title>Paradigma Digital</title>
  <link>https://www.paradigmadigital.com/blog/</link>
  <atom:link href="https://www.paradigmadigital.com/feed.xml" rel="self" type="application/rss+xml" />
  <description>Big Data, Blockchain, cultura ágil, desarrollo, diseño… Te ofrecemos toda la información que necesitas para estar al día en tecnología.</description>
  <generator>Eleventy - 11ty.dev</generator>
  <language>en-US</language>
  <lastBuildDate>Fri, 03 Jul 2026 06:47:27 GMT</lastBuildDate>
  <image>
    <url>https://www.paradigmadigital.com/assets/img/logo/favicon.png</url>
    <title>Paradigma Digital</title>
    <link>https://www.paradigmadigital.com/blog/</link>
    <width>192</width>
    <height>192</height>
  </image>
  <item>
        <dc:creator>
            <![CDATA[  ]]>
        </dc:creator>
        <title>From Claude Fable 5 to the new Siri: the AI developments you need to know about</title>
        <link>https://en.paradigmadigital.com/dev/from-claude-fable-5-to-new-siri-ai-developments-you-need-to-know-about/</link>
        <pubDate>Thu, 02 Jul 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/dev/from-claude-fable-5-to-new-siri-ai-developments-you-need-to-know-about/</guid>
        <description>The month an AI model got blocked over national security. Our analysis of the June AI developments that signal where the industry is going.
</description>
        <content:encoded>
            <![CDATA[
                <p>June 2026 has sent several clear signals that the artificial intelligence landscape is undergoing a structural shift.</p>
<p>Beyond the individual announcements, <strong>the developments of recent weeks reflect four underlying trends</strong>:</p>
<ul>
<li>The emergence of a new generation of models with advanced agentic capabilities.</li>
<li>The integration of AI into mass-market consumer platforms.</li>
<li>The convergence of infrastructure and AI-assisted software development.</li>
<li>The growing importance of digital identity and regulatory compliance.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Claude Fable 5: when an AI model becomes a matter of national security</h2>
<p><strong>Anthropic launched Claude Fable 5 as a commercially accessible version of Mythos 5</strong> — the model many analysts regard as the most advanced AI system built to date.</p>
<p>According to the company, Fable 5 shares the same core architecture and capabilities as Mythos, with additional safeguards to restrict certain use cases and support public deployment.</p>
<p><strong>Early benchmarks and independent testing point to significant improvements in coding, complex reasoning, and — most notably — agentic capabilities</strong>.</p>
<p>The step forward from previous generations doesn't appear to lie solely in output quality. What stands out is the model's ability to plan, execute, and monitor tasks autonomously over extended periods.</p>
<p>The launch, however, was immediately overshadowed by an unexpected development. Just days after release, <strong>the US Government issued an export control directive requiring Anthropic to suspend access to both Fable 5 and Mythos 5 for non-US users</strong>.</p>
<p>Unable to implement the restriction quickly and selectively, the company chose to temporarily disable both models for all users while it worked on compliance mechanisms.</p>
<p>The official justification centred on concerns about jailbreak techniques capable of circumventing some of the model's protections.</p>
<p>Anthropic has publicly disputed the severity of these vulnerabilities, arguing that the scenarios presented by the government are not unique to Fable 5 — they reflect behaviours that can be observed across other advanced models already on the market.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Apple reimagines Siri with a little help from Google</h2>
<p>Two years after announcing its AI ambitions, <strong>Apple has unveiled the next generation of Siri</strong>. What makes the move particularly interesting is that it confirms <strong>a hybrid strategy: Google's models running on Apple's privacy infrastructure</strong>.</p>
<p>According to published reports, Apple is paying approximately one billion dollars a year to licence a customised version of Gemini. But the company isn't simply integrating an external chatbot and calling it done.</p>
<p>Instead, <strong>it uses distillation to produce optimised versions capable of running locally on iPhone and Mac</strong>, while maintaining compatibility with its Private Cloud Compute architecture.</p>
<p>From a technical standpoint, the approach is significant because it shows that differentiation no longer rests solely on training the most powerful model. <strong>Apple has chosen to leverage Google's research capability while retaining control over user experience, hardware, and privacy</strong>.</p>
<p>The new Siri capabilities reflect this evolution. The assistant can interpret on-screen context, coordinate information across apps, execute multiple actions in parallel, and draw on personal data to handle complex tasks without requiring detailed instructions.</p>
<p>In practice, <strong>Siri is moving away from being a glorified search interface and towards something closer to a contextual digital assistant</strong>.</p>
<p>Apple's approach also highlights a broader market reality: foundation model development is concentrating in a shrinking pool of players, while other tech giants compete on integration, distribution, and user experience.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">SpaceX acquires Cursor and accelerates vertical integration</h2>
<p>Another significant move has been <strong>SpaceX's acquisition of Cursor</strong>.</p>
<p>Cursor had become one of the most widely adopted coding agents on the market, competing directly with tools like Claude Code, Codex, and Antigravity. Like many companies working in applied AI, however, it depended on third-party infrastructure to run and train its models.</p>
<p>The deal gives SpaceX three strategic assets under one roof: <strong>compute infrastructure, model development, and developer productivity tooling</strong>.</p>
<p>This kind of vertical integration is becoming an increasingly visible pattern. Companies that simultaneously control compute capacity, models, and distribution hold real advantages in cost, iteration speed, and end-product optimisation.</p>
<p>For Cursor, direct access to compute removes one of the main constraints on its growth. For SpaceX, it means absorbing a product with strong traction among engineering teams and a well-established position within the software agent ecosystem.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Digital identity comes to AI models</h2>
<p>Anthropic has also announced a meaningful change to how users access Claude: <strong>certain advanced features will now require verification via a government-issued ID and a selfie</strong>.</p>
<p>Although the company states that this data will not be used to train models, <strong>the decision marks an inflection point for the industry as a whole</strong>. For years, access to the most capable models has been effectively anonymous.</p>
<p>The introduction of verification mechanisms suggests that AI labs are beginning to treat digital identity as a necessary component of risk management — particularly as the systems themselves grow more powerful.</p>
<p>This approach is likely to spread over the coming years, especially for capabilities tied to advanced automation, acting on a user's behalf, or accessing high-impact tooling.</p>
<p>The shift echoes patterns already seen in digital banking and financial services: <strong>as platforms gain operational power, the demand for robust identification mechanisms grows with them</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Switzerland backs an open-source alternative built for European regulation</h2>
<p>While the United States continues to lead large-scale commercial model development, <strong>Europe is still working out how to combine technological innovation with regulatory compliance</strong>.</p>
<p>The <strong>Swiss AI Initiative</strong> — led by EPFL and ETH Zurich — has stepped into that gap with <strong>Apertus Mini, a family of sixteen open models developed specifically to align with the requirements of the EU AI Act</strong>.</p>
<p>What makes the initiative particularly noteworthy is that it publishes not just the model weights, but also the training datasets and associated documentation. <strong>That level of transparency is a direct response to the regulatory requirements now taking shape across Europe</strong>.</p>
<p>While Apertus Mini's current capabilities appear primarily suited to RAG systems and lower-risk enterprise applications, <strong>the project offers a clear picture of how the European AI ecosystem might evolve</strong>: smaller models, fully auditable, and designed from the ground up to operate within strict regulatory frameworks.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusion</h2>
<p>The developments of June 2026 show an industry entering a new phase of maturity.</p>
<p><strong>Models are no longer competing solely on benchmark performance — they're competing to become agents capable of executing complex tasks autonomously</strong>.</p>
<p>At the same time, <strong>AI is embedding itself ever more deeply into mass-market products</strong>, while infrastructure, digital identity, and regulatory compliance are moving from background concerns to front-and-centre priorities.</p>
<p>If 2024 and 2025 were the years of racing to build ever more powerful models, <strong>2026 is shaping up to be the year the industry figures out how to turn that power into systems that are useful, governable, and scalable for millions of users</strong>.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Miguel Pérez Galván ]]>
        </dc:creator>
        <title>Analytics with AI Agents: What If the Next Report Is More Than Just a Report?</title>
        <link>https://en.paradigmadigital.com/techbiz/analytics-ai-agents-next-report-more-than-report/</link>
        <pubDate>Tue, 30 Jun 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/techbiz/analytics-ai-agents-next-report-more-than-report/</guid>
        <description>Analytics with AI agents replaces the traditional cycle of opening a dashboard, applying filters, failing to find the answer, and calling an analyst with a conversational interface that understands business context, delivers structured answers, and suggests next steps. This shift is transforming the analyst’s role, allowing them to focus on governing the ecosystem that enables machines to do the job effectively. In this post, we explore how it works.
</description>
        <content:encoded>
            <![CDATA[
                <p>How many times have you seen a dashboard packed with filters that nobody actually uses, only to end up asking for a specific data point anyway?</p>
<p>Imagine <strong>replacing the delivery of a dashboard with twenty charts</strong> with a <strong>conversational interface connected to your data</strong>. This is not about eliminating dashboards, but about breaking that endless cycle of manual modifications. However, there is a catch: without a <strong>solid semantic layer and well-defined metrics</strong>, we will simply be accelerating the speed at which we obtain the wrong answers.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">What If the Next Report Wasn't a Report? Conversational Analytics</h2>
<p>This scenario will probably sound familiar: a business stakeholder needs to understand why sales have dropped over the last week. They open a Data Studio dashboard, start combining dimensions, apply several filters, and eventually end up calling an analyst—either because they do not trust the number they see or because an unexpected question arises, such as a sudden change in campaign performance, causing the entire workflow to break down.</p>
<p><strong>The dashboard has evolved from a democratization tool into a technical barrier that requires constant interpretation.</strong></p>
<p>Conversational analytics completely changes this paradigm. It is not about deploying a ChatGPT clone and giving it unrestricted access to your databases. Instead, it is about <strong>building natural language interfaces capable of understanding business context</strong>. We move from exploration based on clicking visual filters to a <strong>model where the data source is governed, an agent processes the question, returns a structured answer, and suggests the next steps</strong>. Visual dashboards will continue to be useful for monitoring recurring KPIs, but they will no longer be the only gateway for querying data.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Why You Need a Semantic Layer Before Talking to Your Data</h2>
<p>Placing a language model directly in front of a database without any intermediary is a recipe for operational disaster. <strong>AI models do not inherently understand your business logic.</strong> If a query asks for the number of users from the last month, the system may execute a technically perfect query against a table while still producing a result that is conceptually wrong from a business perspective.</p>
<p>AI is not a mind reader; it is a context processor. If we ask about last month's revenue, the agent must know whether we mean placed orders, paid orders, or revenue net of returns. <strong>Without a semantic layer acting as the official business dictionary, the system will mix incompatible dimensions and drag us into an operational nightmare of decisions based on inaccurate data.</strong> The challenge is not the chat interface itself, but the governance behind it. <strong>A semantic layer acts as a universal translator that standardizes business definitions before they reach the model.</strong></p>
<p>Tools such as Looker build their value proposition around this principle. <a href="https://cloud.google.com/blog/products/business-intelligence/looker-conversational-analytics-now-ga" target="_blank">Looker Conversational Analytics</a> does not query storage directly; instead, it <strong>interacts with its shared semantic layer</strong>. When you ask how the conversion funnel performed, the technology translates that request using rules, dimensions, and metrics already centralized and audited by the data team. If your organization lacks a unified definition of what constitutes an active customer or a net sale, the analytics agent will not magically solve the problem—it will simply propagate the error faster.</p>
<h2 class="block block-header h--h30-15-400 left  ">Whats Under the Hood of an Analytics Agent?</h2>
<p>What truly differentiates a FAQ bot from a genuine analytics agent? A traditional chatbot simply predicts the next word based on static training data. <strong>An analytics agent has execution capabilities that allow it to connect to APIs, analyze data schemas, generate real-time visualizations, and strictly enforce user access permissions.</strong></p>
<p>Today's ecosystem already shows <strong>clear movements</strong> in this direction:</p>
<ul>
<li><strong>The MCP Server for Google Analytics 4</strong></li>
</ul>
<p>The Model Context Protocol enables external LLM systems to connect directly to the GA4 API. At present, this integration is limited to read-only operations, allowing access to behavioral data and dimensions without any risk of altering property configurations.</p>
<ul>
<li><strong>Looker Conversational Analytics and Dashboard Agents</strong></li>
</ul>
<p>This Google Cloud infrastructure combines foundation models with BigQuery to enable multi-turn exploration. Users can ask why revenue has declined and then continue the conversation by drilling deeper into the returned data, all while preserving row-level and column-level security restrictions associated with their role.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">When the Chatbot Hallucinates Your Conversion Funnel</h2>
<p>The biggest enemy of conversational analytics is not processing cost—it is the <strong>loss of trust among business teams</strong>. If a stakeholder identifies even a single <strong>inconsistent figure</strong> in a report generated by an agent, <strong>they are likely to abandon the system entirely</strong> and return to the traditional Data Studio dashboard—or worse, to spreadsheets.</p>
<p>The <strong>risks</strong> in this environment are both technical and operational:</p>
<ul>
<li><strong>The Ambiguous Terminology Trap</strong></li>
</ul>
<p>The term &quot;user&quot; could refer to a GA4 cookie, a unique CRM record, or a customer with active backend transactions. Without strict mapping, the agent will combine incompatible sources and produce inaccurate figures.</p>
<ul>
<li><strong>The Illusion of a Coherent Answer</strong></li>
</ul>
<p>A language model will always present its responses in a convincing and professional manner, even when it has misinterpreted a time range or a geographic filter.</p>
<ul>
<li><strong>The Permissions Nightmare</strong></li>
</ul>
<p>If the agent does not inherit corporate security policies, a marketing user could end up querying salary data or restricted profit margins simply by asking a well-crafted question.</p>
<h2 class="block block-header h--h30-15-400 left  ">How Is the Role of the Digital Analyst Being Redefined?</h2>
<p>Now for something important: with the rise of analytics agents, the role of digital and data analysts is being fundamentally transformed. <strong>Analysts are no longer spending their days rearranging charts on dashboards; they are becoming functional architects of the information ecosystem.</strong> Their value is no longer measured by the number of dashboards they build, but by the <strong>quality and robustness of the context they provide</strong> to machines.</p>
<p>The <strong>priority tasks</strong> of this new analytical profile shift toward designing detailed data dictionaries, continuously auditing agent-generated responses, and turning frequently asked business questions into reusable analytical assets.</p>
<p>Analysts become the <strong>final validation layer</strong>, ensuring that attribution rules and conversion goals are properly documented so that models do not operate blindly inside an algorithmic black box.</p>
<h2 class="block block-header h--h30-15-400 left  ">Where Do We Start Building This New Ecosystem?</h2>
<p>Before connecting any AI model to your information repositories, you must establish a solid foundation. <strong>If you try to automate access to a disorganized data ecosystem, you will simply automate chaos at scale.</strong> Use the following <strong>checklist</strong> to assess your organization's maturity:</p>
<ol>
<li><strong>Build a unified metrics catalog.</strong> Document every KPI in writing, including its exact calculation formula and source systems.</li>
<li><strong>Ensure naming consistency.</strong> Establish strict naming conventions for events, URL parameters, and data warehouse columns.</li>
<li><strong>Implement a semantic layer.</strong> Deploy tools that act as intermediaries between model queries and production databases.</li>
<li><strong>Define a validation question set.</strong> Create a collection of critical queries with known answers to regularly audit agent behavior.</li>
<li><strong>Set consumption and action limits.</strong> Restrict agents to read-only environments and limit consecutive requests to avoid excessive costs.</li>
</ol>
<p><strong>Conversational analytics</strong> is not here to replace human judgment; it is here to <strong>free teams from the repetitive work of extracting reports.</strong> The success of these agentic AI systems will depend directly on the quality of the architecture and governance that support them.</p>
<p><strong>Is your organization ready to build a reliable semantic layer, or will you keep sending emails every time a KPI deviates from expectations?</strong></p>
<h2 class="block block-header h--h20-175-500 left  add-last-dot">References and Links</h2>
<ul>
<li><a href="https://modelcontextprotocol.io" target="_blank">Anthropic Model Context Protocol</a></li>
<li><a href="https://cloud.google.com/looker/docs/semantic-layer" target="_blank">Official Looker Semantic Layer Documentation</a></li>
<li><a href="https://developers.google.com/analytics/devguides/reporting/data/v1" target="_blank">Google Analytics 4 API</a></li>
</ul>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Jesús Pau de la Cruz ]]>
        </dc:creator>
        <title>AI Isn’t Coming for Your Job (Yet), It’s Coming for the Paperwork</title>
        <link>https://en.paradigmadigital.com/dev/ai-is-not-coming-for-your-job-yet-it-is-coming-for-paperwork/</link>
        <pubDate>Thu, 25 Jun 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/dev/ai-is-not-coming-for-your-job-yet-it-is-coming-for-paperwork/</guid>
        <description>AI is not coming to take your job away just yet, but if it is properly designed, it can certainly take a lot of paperwork off your hands. And perhaps that is the real short-term impact of AI in many organizations: not the sudden replacement of entire professions, but the elimination of repetitive work that prevents professionals from dedicating more time to the tasks that truly require their judgment, expertise, and decision-making capabilities.
</description>
        <content:encoded>
            <![CDATA[
                <p>Artificial intelligence is no longer a technology reserved for laboratories or isolated prototypes. In recent years, and especially with the <strong>popularization of generative AI</strong>, it has become a <strong>tool capable of integrating into everyday workflows</strong>: from automating repetitive processes to analyzing information, generating content, supporting decision-making, and improving internal operations that previously relied almost entirely on manual intervention.</p>
<p>One of the areas where its impact is most immediate is <strong>document validation</strong>. Many organizations review files, contracts, payslips, identity documents, supporting evidence, bank statements, or forms on a daily basis. These processes are necessary, but often <strong>repetitive, time-consuming, and difficult to scale</strong> as volumes increase.</p>
<p>The idea for this article emerged from a conversation with a friend who faces exactly this kind of work: reviewing documentation, checking that everything is correct, identifying missing information or inconsistencies, and repeating the same process file after file. From that real-world need came a practical question: <strong>could we build a solution capable of performing an initial automated validation and simplifying part of this tedious work without removing professional oversight?</strong></p>
<p>Starting from that question, this article presents a <strong>specific use case: applying document intelligence, generative AI, and asynchronous processing within a cloud architecture</strong> to automate part of the document validation process in administrative workflows. It is not conceived as a chatbot, but rather as a <strong>business solution</strong> designed to transform scattered documents into structured, verifiable, and actionable information for decision-making.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">The problem: the hidden cost of administrative work</h2>
<p>In many organizations, <strong>a significant portion of the workload</strong> is not about making major decisions or solving complex problems, but about <strong>checking that everything is in order</strong>.</p>
<p>A case file arrives with multiple documents. Someone must open them, verify that they are complete, check dates, amounts, and data, identify inconsistencies, and determine whether the case can move forward. Viewed in isolation, this may seem simple, but the <strong>problem emerges when the process is repeated dozens, hundreds, or thousands of times</strong>.</p>
<p>In rental or real estate transactions, mortgage assessments, invoice accounting, or internal operations, this review may include ID cards, residence permits, payslips, employment contracts, tax returns, bank statements, supporting documents, and other complementary paperwork. Every document requires attention, every case requires context, and every exception forces someone to stop and investigate.</p>
<p>This is where <strong>operational friction</strong> appears: lost administrative time, missing documents detected too late, unnoticed errors, duplicated reviews, poor traceability, and difficulty understanding the real status of each case.</p>
<p>The challenge is not only deciding whether a file can proceed. Often, the real <strong>bottleneck</strong> lies in <strong>getting to that decision</strong>: organizing documents, classifying them, searching for relevant information, identifying missing elements, detecting inconsistencies, and reconstructing the actual state of the file.</p>
<p>The goal is not to introduce AI for the sake of it. The goal is to <strong>identify the points in the process where repetitive work, risk of error, and time loss are highest</strong>. Those are precisely the areas where AI can create the most value: classifying documents, extracting information, identifying warnings, and preparing an initial structured review.</p>
<p>Improvement percentages should always <strong>be measured in real-world scenarios</strong>, but as a working hypothesis, one could expect a significant reduction in mechanical review tasks and late-stage error detection. Not because AI is infallible, but because it helps review documents earlier, more effectively, and with greater context.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Paperwork rarely seems urgent until it becomes a bottleneck</h3>
<p>And <strong>this is where artificial intelligence can add value</strong>. Not by replacing professional judgment, but by changing the starting point. Instead of facing a folder full of unprocessed documents, people can <strong>receive an initial structured assessment</strong>: which documents are present, which are missing, what information has been extracted, what inconsistencies have been detected, and which cases require immediate attention.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">AI does not eliminate review, it organizes it</h3>
<p>It is no longer necessary to review everything from scratch. The person responsible can focus on exceptions, questionable cases, and decisions that genuinely require human judgment.</p>
<h3 class="block block-header h--h20-175-500 left  ">What does generative AI contribute in this context?</h3>
<p><strong>Generative AI</strong> is particularly useful when information does not arrive as clean, structured data, but rather as <strong>heterogeneous documents, free text, PDFs, images, or forms</strong> with different formats and structures.</p>
<p>Many organizations do not suffer from a lack of information. They have <strong>too much information, but it is scattered</strong>.</p>
<p>In a document-processing application, the <strong>value of generative AI</strong> lies in its ability to interpret content, classify documents, extract relevant fields, generate standardized outputs, and highlight warnings that can later be reviewed by a person.</p>
<p>The <strong>key</strong>, in my view, is <strong>not to treat AI as an infallible source of truth, but as an assistance layer</strong>. A <strong>tool capable of preparing the ground</strong>: reading, organizing, flagging, and prioritizing.</p>
<p>The objective is not to remove people from the equation, but <strong>to prevent them from having to start from scratch every time</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">From idea to solution</h2>
<p>Up to this point, the idea is simple: <strong>use artificial intelligence to reduce part of the manual effort</strong> associated with document validation.</p>
<p>However, for that idea to deliver real value, it is not enough to connect a generative model and wait for a response. A useful solution must <strong>integrate into a complete workflow</strong>: receiving documents, storing them, processing them securely, extracting information, interpreting it, storing results, displaying issues, and allowing a person to review the file's status.</p>
<p>And this is critical. In a project like this, <strong>AI is only one part of the solution</strong>. We also need <strong>components capable of fitting into the process</strong>: a document upload interface, a backend orchestration layer, secure storage, asynchronous processing, extraction services, models capable of interpreting content, and a clear way to present results.</p>
<p><strong>The objective is not for AI to make the final decision, but to handle the heaviest preparatory work</strong>. The idea is for the person responsible to stop dealing with a disorganized collection of files and instead work from a clear, traceable, and prioritized summary.</p>
<p>From there, the solution can be understood from <strong>two complementary perspectives</strong>: the <strong>functional architecture</strong>, which explains what the system does and how the process flows, and the <strong>cloud architecture</strong>, which shows how it is technically implemented on AWS to ensure security, scalability, and maintainability.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Functional architecture: from scattered documents to a reviewable case file</h3>
<p>The system's functional workflow can be summarized in a single idea: <strong>transform scattered documents into a structured and reviewable case file</strong>.</p>
<p>To achieve this, the solution is designed as a <strong>chain of responsibilities</strong>. Each component fulfills a specific role within the process.</p>
<p>The user <strong>interacts with a simple interface</strong> to create case files, upload documents, and monitor validation status. Underneath, the <strong>backend acts as an orchestrator</strong>: registering each document, linking it to the corresponding file, creating processing jobs, and coordinating the rest of the workflow.</p>
<p>From that point onward, the system avoids one of the most common mistakes in these types of solutions: processing everything during upload. Instead of blocking the user, it <strong>delegates analysis to an asynchronous processing layer</strong>. This allows text extraction, content interpretation, and result generation without turning the user experience into a waiting game.</p>
<p><strong>AI enters the workflow only once the document is ready to be analyzed</strong>. First, text and structure are extracted; then generative intelligence helps classify the document, extract relevant fields, detect inconsistencies, and produce a normalized output.</p>
<p>The final result is not an isolated model response, but a <strong>traceable view of the case file</strong>: received documents, processing statuses, extracted data, warnings, incidents, and elements requiring professional review.</p>
<p><strong>The key is that AI does not replace the workflow; it integrates into it.</strong></p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Cloud architecture: bringing the functional workflow to AWS</h3>
<p>Once the functional architecture has been defined, the next step is to ask <strong>how to bring that workflow into a real-world environment that is secure, scalable, and maintainable</strong>.</p>
<p>A solution like this requires a <strong>solid technical foundation</strong>. Documents must be stored correctly, resource-intensive processes must not block users, results need to persist, components must communicate in a controlled way, and permissions must be managed without exposing unnecessary credentials.</p>
<p>This is where the <strong>cloud architecture</strong> comes into play.</p>
<p>In this solution, <strong>the functional workflow is implemented on AWS</strong> through a combination of containers, managed services, serverless processing, asynchronous messaging, a relational database, and generative AI services.</p>
<p>I will not go into the internal cloud networking configuration, Terraform, Kubernetes, or every AWS service involved. The goal here is different: <strong>to understand the workflow, the role of each component, and how the architecture enables AI to transform scattered documents into useful information</strong> for professional review.</p>
<p>From there, the architecture can be understood as a <strong>technical chain of responsibilities</strong> serving the validation process.</p>
<p>The user <strong>interacts with a web application</strong> to create files, upload documents, and review results. React and Nginx power the frontend, while FastAPI running on EKS orchestrates the backend workflow.</p>
<p>When a document is uploaded, the backend stores it in Amazon S3, registers the job in PostgreSQL on Amazon RDS, and publishes an event to Amazon SQS. AWS Lambda consumes the event and performs the analysis in the background, ensuring the user is not blocked.</p>
<p>Once Lambda retrieves the document from S3, the most distinctive part of the system begins: transforming a file into useful information. To achieve this, the solution separates two responsibilities. The first is <strong>content extraction</strong>; the second is <strong>content interpretation</strong>.</p>
<p><strong>Amazon Textract</strong> handles extraction. Its role is to obtain text and structure from documents that may arrive in different formats: PDFs, images, forms, or scanned documents. In other words, it transforms visual or semi-structured files into processable content.</p>
<p>But <strong>reading the document is not enough</strong>. In a validation process, it is not only important to know what the document says, but also what it means within the context of the case file.</p>
<p>This is where <a href="https://en.paradigmadigital.com/techbiz/amazon-bedrock-enabler-generative-ai-projects/" target="_blank">Amazon Bedrock</a> comes in as the generative intelligence layer. Based on the extracted content, it helps classify document types, locate relevant fields, normalize information, detect potential inconsistencies, and generate reviewable warnings.</p>
<p>The concept can be summarized as follows:</p>
<ul>
<li><strong>Textract transforms documents into content. Bedrock transforms content into context.</strong></li>
<li><strong>Textract</strong> answers a technical question: <strong>What text and structure exist in this document?</strong></li>
<li><strong>Bedrock</strong> helps answer business questions: <strong>What type of document is this? What relevant information does it contain? Is anything missing? Are there inconsistencies? What should a person review?</strong></li>
</ul>
<p>In this way, AI does not act as an absolute truth or a final judgment. It acts as <strong>an assistance layer</strong> that prepares the case file so the responsible professional can review it more effectively, more quickly, and with greater context.</p>
<h2 class="block block-header h--h30-15-400 left  ">What does this solution really deliver?</h2>
<p>Beyond the technologies involved, the value of the project lies in <strong>changing the way people work with documentation</strong>:</p>
<ul>
<li><strong>Reduces</strong> repetitive manual review.</li>
<li><strong>Enables</strong> earlier detection of missing documents and inconsistencies.</li>
<li><strong>Improves</strong> case-file traceability.</li>
<li><strong>Separates</strong> document upload from resource-intensive processing.</li>
<li><strong>Allows</strong> professionals to review issues instead of navigating disorganized folders.</li>
<li><strong>Turns</strong> AI into an assistance layer rather than a black-box decision engine.</li>
</ul>
<p>The benefit is not only saving time. It is <strong>improving the starting point</strong> from which people work.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Project source code</h2>
<p><a href="https://github.com/paradigmadigital/doc_validator" target="_blank">The source code is available on GitHub</a>. The repository contains the <strong>complete implementation of the solution</strong>: frontend, backend, asynchronous processing, AI integration, and cloud architecture.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusion: less paperwork, more judgment</h2>
<p>The implemented solution demonstrates a simple idea: <strong>AI creates the most value when it stops being an isolated demonstration and becomes part of a real process</strong>.</p>
<p>In this case, artificial intelligence is not used to replace professionals, but to <strong>prepare the work</strong>: extracting information, classifying documents, identifying warnings, and transforming scattered files into a structured case file.</p>
<p><strong>The cloud architecture supports the workflow. Textract extracts the content. Bedrock interprets the information.</strong> But the final decision remains where it belongs: with the person who understands the context, and <strong>that is the interesting balance</strong>.</p>
<p>This is not about automating for the sake of automation or delegating sensitive decisions to a model. It is about <strong>reducing noise, eliminating repetitive work, and allowing professionals to spend more time reviewing what truly matters</strong>.</p>
<p>AI is not coming to take your job away just yet. However, if it is properly designed, it can certainly take a lot of paperwork off your hands. And perhaps that is the <strong>real short-term impact of AI</strong> in many organizations: not the sudden replacement of entire professions, but the elimination of repetitive work that prevents professionals from delivering greater value.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Rafael Márquez ]]>
        </dc:creator>
        <title>AI Doesn’t Create Bugs, but It’s Amplifying the Problem</title>
        <link>https://en.paradigmadigital.com/dev/ai-does-not-create-bugs-amplifying-problem/</link>
        <pubDate>Tue, 23 Jun 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/dev/ai-does-not-create-bugs-amplifying-problem/</guid>
        <description>Have Bugs Increased in Your Project Since You Started Using AI? This is a pattern many teams are beginning to observe. AI accelerates code delivery, but it can also increase the number of defects that surface in later stages of the development lifecycle. In this post, we explore why this happens and what teams can do to prevent it.
</description>
        <content:encoded>
            <![CDATA[
                <p>At this point, it is practically impossible to <strong>talk about software development without talking about AI</strong>. The two have become so closely intertwined that it now feels unusual not to have AI integrated into our IDE and working alongside us in our daily activities in one way or another.</p>
<p>This article starts from an important premise. <strong>AI brings us tremendous benefits and has become an indispensable tool</strong>, not only for software developers but also for other technical roles, including QA professionals like myself.</p>
<p>By now, there are countless articles discussing the advantages of using AI. However, I find it much harder to come across <strong>content that addresses some of the issues that are increasingly emerging due to a “less-than-conscious” use</strong> of this technology.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Apparent Productivity vs. Real Quality</h2>
<p><strong>AI has multiplied our ability to generate code and deliver features</strong> at a speed that would have seemed impossible just a few years ago. In most cases, that is undeniably a positive development.</p>
<p>The <strong>problem</strong> arises when we start measuring productivity based on the number of closed tickets, commits, automated tests, or even AI prompts executed <strong>without considering the quality</strong> of the output.</p>
<p><strong>Speed has increased, but that does not necessarily mean quality has improved as well</strong>, or even remained at the same level.</p>
<p>Sometimes we rush, even when nobody is explicitly asking us to. If Real Betis could wait six months for Isco Alarcón to recover from injury, surely a software feature can be delivered two days later.</p>
<p>Just as a football player can relapse if they return before fully recovering, code that is delivered prematurely will likely require rework if it has not received the necessary attention throughout all development phases.</p>
<p>In fact, many projects are beginning to experience something concerning. <strong>More issues are being detected in later stages, regressions are increasing, and maintenance is becoming more complex</strong>, even though it appears that teams are &quot;moving faster.&quot;</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">The Problem and Its Possible Causes</h2>
<p>Although this article reflects my personal opinion, naturally shaped by my own experiences, I must admit that my motivation for writing it comes from conversations with several colleagues in the industry.</p>
<p>After speaking with them, we all identified a common issue that, to a greater or lesser extent, was affecting our projects:</p>
<p><strong>The number of bugs has increased significantly since AI entered our lives.</strong></p>
<p>I do not want anyone to misunderstand me. This is by no means a criticism of AI. We are simply capable of producing much more code in much less time, and not only the positive aspects get amplified.</p>
<p>That is why, as I mentioned earlier, I want to make one thing clear:</p>
<p><strong>The problem is not AI. The problem is how we are using it in some cases.</strong></p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Requirements Definition</h2>
<p>Requirements are the foundation of every software project. <strong>They were important before, and they are even more important now.</strong></p>
<p>Having well-defined requirements has always been necessary, although it is something that still does not happen as often as we would like. This is not a new problem. Naturally, neither humans nor AI can perform miracles and deliver software without a clear understanding of what is actually needed.</p>
<p>AI has one major characteristic: <strong>it dramatically amplifies the quality of the information it receives</strong>. When requirements are clear and well defined, AI can become an incredible asset:</p>
<ul>
<li>It <strong>accelerates</strong> development.</li>
<li>It <strong>generates useful and maintainable structures</strong>.</li>
<li>It <strong>proposes valid solutions</strong>.</li>
<li>It <strong>significantly reduces</strong> repetitive work.</li>
</ul>
<p>However, <strong>when requirements are ambiguous, incomplete, or constantly changing</strong>, the effect can be the exact opposite.</p>
<p>That opposite effect is becoming increasingly noticeable. Generally speaking, <strong>we have not improved the quality of our requirements</strong>, yet we are delivering a greater volume of AI-generated code. The result is predictable: <strong>a considerable increase in the number of bugs</strong> over recent months and years.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">The Deprofessionalization of Software Quality</h2>
<p>More and more frequently, <strong>test automation is being delegated to people whose primary expertise is not quality engineering</strong>. This often happens under the assumption that &quot;anyone can automate tests.&quot;</p>
<p>Personally, I believe there is an important confusion here between <strong>knowing how to use a tool</strong> such as <a href="https://www.paradigmadigital.com/dev/plantilla-automatizar-tests-e2e-cypress-cucumber-page-objects/" target="_blank">Cypress</a> or <a href="https://www.paradigmadigital.com/dev/ejecutando-tests-end-to-end-playwright-herramienta-microsoft/" target="_blank">Playwright</a> and <strong>truly understanding how to ensure software quality</strong>.</p>
<p>Automation is not simply about generating and executing automated tests. The truly difficult part lies in <strong>making decisions</strong> such as:</p>
<ul>
<li>What is actually <strong>worth testing</strong>.</li>
<li>What <strong>risks</strong> exist.</li>
<li>What <strong>impact</strong> each change may have.</li>
<li>Which <strong>scenarios</strong> are critical.</li>
</ul>
<p>This is where the expertise of <strong>quality specialists</strong> remains essential.</p>
<p>AI can help tremendously when generating tests or even entire test suites much faster than a human could. However, <strong>that does not guarantee that those tests are useful, meaningful, or strategically valuable</strong>. Just like application code, tests must be analyzed and understood.</p>
<p>In fact, a <strong>new risk is already emerging</strong>. Many teams are developing a <strong>false sense of coverage and security</strong>. They see plenty of tests, extensive automation, and green pipelines, but in reality there is little meaningful validation of critical business behavior.</p>
<p>Ultimately, this leads back to the same issue that should already sound familiar:</p>
<p><strong>Bugs are increasing because many automated tests are failing to fulfill their purpose when validating new developments and preventing regressions.</strong></p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conscious Development</h2>
<p>Earlier, I said that requirements are the foundation of every software project, but I must admit that is not entirely true.</p>
<p>For me, <strong>people are and always will be the true foundation</strong>.</p>
<p>One of the biggest risks we are starting to see is <strong>how some people’s relationship with the code they produce is changing</strong>.</p>
<p>A conscious developer (fortunately, most are) is not simply someone who manages to make a feature &quot;work.&quot; It is someone who <strong>takes the time to understand the requirement, challenge it when necessary, analyze impacts, think about alternative scenarios, and care deeply about the final quality of the software being delivered</strong>.</p>
<p>AI dramatically accelerates code generation, but developers remain responsible for the code produced. That means it is equally important that they <strong>analyze it, understand it, and test it</strong> before delivery.</p>
<p>Unfortunately, we are increasingly seeing situations where <strong>AI-generated code is delivered without being properly analyzed, understood, or tested</strong>, and even cases where an AI-generated pull request is approved without sufficient review.</p>
<p><strong>In the long term</strong>, this can create several problems:</p>
<ul>
<li><strong>Poorly maintainable code</strong>.</li>
<li>Developers who become <strong>technically stagnant</strong>.</li>
<li>Developers who <strong>no longer fully understand their own applications</strong>, either functionally or technically.</li>
</ul>
<p>My experience tells me that <strong>developers who were engaged before AI remain engaged today</strong>, while those who were not engaged before simply have their shortcomings exposed more clearly because they are now producing significantly more code.</p>
<p><strong>AI can help us become dramatically more productive, but it should never replace something fundamental: technical responsibility</strong> for what we deliver.</p>
<h2 class="block block-header h--h30-15-400 left  ">What Can We Do?</h2>
<p>AI is here to stay, and who knows how far it will go. It would be absurd to reject all the value it brings.</p>
<p><strong>The goal should not be to use it less, but to use it better.</strong> Generating code has never been easier, and we should embrace that opportunity.</p>
<p>Regardless of our role, I believe <strong>many of the solutions are common to everyone</strong>, and they all share one thing: the passion and professionalism with which we approach our work.</p>
<p>We must continue <strong>insisting on high-quality requirements</strong>, and if they are not provided, we should help define them, because no one understands an application better than the people who build it.</p>
<p>We must also continue emphasizing the <strong>importance of assigning each task to the appropriate specialist</strong>, while clearly explaining the real consequences of failing to do so.</p>
<p>Finally and perhaps most importantly we must maintain <strong>genuine involvement and enthusiasm throughout every phase of the product lifecycle</strong>, without forgetting that <strong>AI should be a support tool, not a replacement for our commitment and engagement</strong>.</p>
<p><em>“The real problem is not whether machines think, but whether men do.”</em> — B. F. Skinner.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Vanessa Davo Parreño ]]>
        </dc:creator>
        <title>Write Better for Everyone: A Guide to Accessible Web Content Writing</title>
        <link>https://en.paradigmadigital.com/dev/write-better-everyone-guide-accessible-web-content-writing/</link>
        <pubDate>Thu, 18 Jun 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/dev/write-better-everyone-guide-accessible-web-content-writing/</guid>
        <description>Web content accessibility is not just the responsibility of design and development teams, it also depends on the people who write the content. The way a text is written and structured can either facilitate or hinder access to information for people who use screen readers, have reading difficulties, low vision, or attention-related challenges. Here are five best practices we recommend.
</description>
        <content:encoded>
            <![CDATA[
                <p>When people talk about web accessibility, they often think only about <strong>development or design</strong>. However, <strong>the people who write articles, informational pages, and digital content also play a major role in the user experience</strong>.</p>
<p>The way text is written and structured can <strong>make information easier or harder to access</strong>. Accessible content benefits everyone, but it is especially important for people who use <strong>screen readers, have reading difficulties, attention-related challenges, low vision, or any other permanent or temporary limitation</strong> that affects how they interact with the web.</p>
<p>In addition, many accessibility practices also <strong>improve the overall reading experience</strong>: they make content clearer and easier to understand for any user.</p>
<p>That is why, in today's article, I want to share <strong>five best practices you can follow to improve your writing and make your content much more accessible</strong>. It is not just about writing well—it is about writing for everyone.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">1 <span class="enum-header"></span> Organize Content with Clear Headings</h2>
<p><strong>Headings are essential for structuring an article.</strong> They not only help visually divide content, but also allow users to quickly understand what each section is about.</p>
<p>People who use <strong>screen readers</strong> often navigate a page by jumping between headings, so headings should accurately describe the content that follows.</p>
<p>For example, a heading such as <em>&quot;Important Information&quot;</em> is too generic. By contrast, a heading like <em>&quot;How to Write Alternative Text for Images&quot;</em> immediately communicates the topic of the section.</p>
<p>It is also important to <strong>maintain a logical and consistent structure</strong>, as a well-organized article makes reading easier and reduces the effort required to find information.</p>
<p>In addition, <strong>headings should follow a hierarchy</strong>. This means content should follow a <strong>clear structural order</strong>: there should be a single H1 representing the main topic of the page, followed by H2s for major sections, H3s for subsections, and so on.</p>
<p>The proper use of headings is related to <a href="https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html" target="_blank">Success Criterion 1.3.1 &quot;Info and Relationships&quot;</a>, which states that <strong>the structure and organization of content must be programmatically identifiable</strong>, for example through titles and hierarchical headings.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">2 <span class="enum-header"></span> Add Useful Alternative Text to Images</h2>
<p>Alternative text, also known as <em>alt text</em>, allows us to <strong>describe images for people who cannot see them and rely on screen readers</strong>.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">How to Write Good Alternative Text</h3>
<p>The best way to know whether your alternative text is effective is to ask yourself: <em>&quot;If I were reading this article to someone over the phone, how would I describe this image?&quot;</em></p>
<ul>
<li><strong>Poor:</strong> &quot;Image of a dog.&quot;</li>
<li><strong>Good:</strong> &quot;A Golden Retriever running across the grass with a ball in its mouth.&quot;</li>
</ul>
<p>Images are often used to <strong>illustrate or reinforce the main message of the text</strong>. Therefore, alternative text should not simply describe what appears in the image—it should communicate <strong>the message the image is intended to convey</strong>.</p>
<table>
<thead>
<tr>
<th>Image</th>
<th>Context: Adoption Article</th>
<th>Context: Veterinary Article</th>
</tr>
</thead>
<tbody>
<tr>
<td>Sleeping cat</td>
<td>&quot;Rescued cat resting happily in its new home.&quot;</td>
<td>&quot;Cat in a relaxed position showing no signs of abdominal pain.&quot;</td>
</tr>
</tbody>
</table>
<p>Do not start descriptions with phrases such as <em>&quot;Image of...&quot;</em> or <em>&quot;Photograph of...&quot;</em>. Screen readers already announce that the element is an image, so it is better to get straight to the point.</p>
<h3 class="block block-header h--h20-175-500 left  ">When Should You Add Alternative Text?</h3>
<p>Not every image requires a description. Knowing <strong>when not to use alt text</strong> is just as important:</p>
<ul>
<li><strong>Informative images:</strong> charts, photographs of people speaking, contact icons (e.g., an envelope representing email), and similar elements <strong>require alternative text</strong>.</li>
<li><strong>Decorative images:</strong> divider lines, abstract backgrounds, or images used solely for visual decoration <strong>do not require alternative text</strong> and should use an empty alt attribute (<code>alt=&quot;&quot;</code>), indicating that screen readers should ignore them.</li>
</ul>
<p><strong>Important:</strong> if the image already includes a caption that communicates exactly the same information, the alternative text can be shorter or even treated as decorative to avoid repeating information for users.</p>
<p>The <strong>correct use of alternative text for images</strong> is related to <a href="https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html" target="_blank">Success Criterion 1.1.1 &quot;Non-text Content&quot;</a>, which states that <strong>all non-text content</strong> (such as images) <strong>must have a text alternative</strong> that serves the same purpose or conveys the same information.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">3 <span class="enum-header"></span> Use Descriptive Links</h2>
<p>Many people who use assistive technologies <strong>navigate using lists of links automatically extracted from a page</strong>. Therefore, links should make sense on their own, even when read out of context.</p>
<p><strong>A good link should stand on its own.</strong> Users should know exactly what they will find when they activate it, without having to read surrounding text.</p>
<ul>
<li><strong>Poor:</strong> &quot;To learn about our offers, click <strong>here</strong>.&quot; or &quot;To read the full article, <strong>click this link</strong>.&quot;</li>
<li><strong>Good:</strong> &quot;Explore our <strong>seasonal offers</strong>.&quot; or &quot;<strong>Read the full accessibility article</strong>.&quot;</li>
</ul>
<p>Avoid generic phrases such as <em>&quot;Read more,&quot; &quot;View content,&quot;</em> or <em>&quot;Learn more.&quot;</em> If several links on a page use the same text, screen reader users will hear a repetitive and confusing list of identical options.</p>
<p>For a link to be truly useful, it is not enough for the destination to be clear—it should also <strong>communicate what type of interaction will occur next</strong>. These three recommendations can help:</p>
<ul>
<li><strong>Set expectations:</strong> if the link starts a download or opens a specific format, include that information. For example: <em>&quot;Download the budget as a PDF&quot;</em> or <em>&quot;Watch the event video on YouTube.&quot;</em></li>
<li><strong>Avoid raw URLs:</strong> do not paste web addresses directly (e.g., <code>https://www.example.com/downloads/final-file-01.pdf</code>). Screen readers will read every letter and symbol aloud, which can be frustrating. Instead, use: <em>&quot;Download the style guide in PDF format.&quot;</em></li>
<li><strong>New windows:</strong> if the link opens in a new tab or window, it is good practice to indicate this briefly, for example: <em>&quot;Open transparency portal (opens in a new window).&quot;</em></li>
</ul>
<p>If you use an icon to communicate this, make sure it is also accessible to screen readers.</p>
<p>In addition to improving accessibility, <strong>descriptive links also enhance the overall navigation experience</strong>.</p>
<p>The <strong>use of descriptive links</strong> is related to <a href="https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-in-context.html" target="_blank">Success Criterion 2.4.4 &quot;Link Purpose (In Context)&quot;</a>, which states that the purpose of <strong>each link must be identifiable from the link text itself</strong>. This allows users to understand where a link will take them and decide whether they want to activate it.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">4 <span class="enum-header"></span> Be Careful with Emojis and Symbols</h2>
<p>Emojis can add personality and warmth to content, but <strong>overusing them can negatively affect navigation and comprehension</strong> for people who use screen readers.</p>
<p>Screen readers <strong>translate every emoji into words</strong>, so what appears visually as decoration becomes an <strong>audible interruption</strong> for assistive technology users.</p>
<ul>
<li><strong>Text:</strong> &quot;Hello everyone! 👋✨ We are very excited 🤩 to announce...&quot;</li>
<li><strong>Screen reader output:</strong> &quot;Hello everyone! <em>Waving hand, sparkles</em>. We are very excited <em>star-struck face</em> to announce...&quot;</li>
</ul>
<p>When too many emojis are used in succession, <strong>the main message becomes buried</strong> beneath a list of image descriptions, making the text harder to understand.</p>
<p>The best approach is <strong>not to rely on symbols or emojis to communicate important information</strong>, and if you use them, do so sparingly.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">5 <span class="enum-header"></span> Avoid Content That May Trigger Photosensitive Seizures</h2>
<p>Certain types of visual content, such as flashing lights or rapid blinking effects, can affect people with photosensitive epilepsy and other seizure disorders.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">The Three-Flashes Rule</h3>
<p>For content to be considered safe, <strong>it should not flash more than three times per second</strong>. If a visual element exceeds this frequency, it could potentially trigger a seizure.</p>
<ul>
<li><strong>Poor:</strong> an advertising banner with rapidly flashing neon colors designed to attract attention.</li>
<li><strong>Good:</strong> a smooth, slow animation without abrupt brightness changes or extreme contrasts.</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">How to Create Safe Visual Content</h3>
<p>To ensure your website is safe for everyone, follow these guidelines:</p>
<ul>
<li><strong>Avoid autoplay for flashing videos.</strong> Never automatically play videos containing strobe lights or flashing effects.</li>
<li><strong>Allow animations to be paused.</strong> Any element that moves or flashes for more than five seconds should be pausable or stoppable by the user.</li>
<li><strong>Be careful with geometric patterns.</strong> High-contrast moving stripe patterns can also cause discomfort. Smooth transitions are generally a safer option.</li>
</ul>
<p>Compliance with these recommendations is related to <a href="https://www.w3.org/WAI/WCAG21/Understanding/three-flashes-or-below-threshold.html" target="_blank">Success Criterion 2.3.1 &quot;Three Flashes or Below Threshold&quot;</a>, which states that <strong>web content must not be designed in ways known to cause seizures</strong>. This ensures that accessing information does not put users at physical risk.</p>
<p>This section is also related to <a href="https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide.html" target="_blank">Success Criterion 2.2.2 &quot;Pause, Stop, Hide&quot;</a>. This criterion requires that for any content that moves, flashes, or updates automatically (such as carousels or GIFs), <strong>users must always have control to pause or stop it</strong>. This prevents constant motion from becoming a distraction or a risk for people with attention disorders or sensory sensitivities.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusion</h2>
<p>To be honest, even if you read this entire article, you will probably overlook some details from time to time—especially if you write content every day. But <strong>what really matters is the intention: keeping these guidelines in mind is the first step toward ensuring your content reaches everyone</strong>.</p>
<p>Accessibility is not a goal that can be achieved overnight; it is a <strong>continuous process and a shared responsibility</strong>. It is not about doing everything perfectly from the start, but about choosing to improve every day so that, eventually, you get there.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ José Luis Palomino ]]>
        </dc:creator>
        <title>Basic Prompting Techniques for Enterprise Environments: What Does the Ideal Prompt Structure Look Like?</title>
        <link>https://en.paradigmadigital.com/dev/basic-prompting-techniques-enterprise-environments-what-ideal-prompt-look-like/</link>
        <pubDate>Tue, 16 Jun 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/dev/basic-prompting-techniques-enterprise-environments-what-ideal-prompt-look-like/</guid>
        <description>AI doesn’t produce noise because it’s a black box; it produces noise because you’re giving it vague instructions. Treating prompts like pieces of code with clear structure, context, and a defined output format is the difference between generating unusable text and delivering real business value.
</description>
        <content:encoded>
            <![CDATA[
                <p>Writing to a language model seems easy until it starts returning unusable text. Many people believe it is enough to type a couple of lines as if they were talking to a coworker, but reality is very different. <strong>If we want to apply best practices and start building real business solutions, we need to focus on implementing a structured methodology from day one.</strong></p>
<h2 class="block block-header h--h30-15-400 left  ">Why Does AI Return Noise Instead of Solutions?</h2>
<p>We are transitioning from deterministic programming to the probabilistic environments of large language models, and this completely changes the way we approach many tasks.</p>
<p>Interacting with this technology as if there were a human on the other side interpreting our intent is the fastest path to failure. <strong>When we provide vague instructions, the system returns noise and empty answers that deliver no real business value.</strong> This lack of precision is often unfairly labeled as an incomprehensible &quot;black box.&quot;</p>
<p>To avoid this operational nightmare, we must start <strong>treating our text requests as pieces of software code</strong>—something similar to pseudocode. In this post, we will explain how to reduce the deviations and hallucinations we face when working with any language model.</p>
<h2 class="block block-header h--h30-15-400 left  ">Why Do We Need to Break Down and Delimit Context?</h2>
<p>Plain, unstructured text often causes the <strong>model to lose focus and mix instructions with raw data</strong>. This jumble of information undermines the reliability of the final result, especially when using medium-sized or small models. The most effective way to address this issue is <strong>modular segmentation</strong>.</p>
<p>Leading companies strongly recommend separating context, rules, and input data using explicit delimiters. Using <strong>XML tags</strong> or simple <strong>Markdown markers</strong> helps the model process each block as clearly as possible. By creating a clear contract between inputs and outputs, <strong>we limit the margin of error</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  ">How Do We Control Style and Ensure Integration?</h2>
<p>Beyond structuring information, we need to <strong>govern the way the system communicates</strong>. Based on effective design patterns, assigning a specific <strong>role or persona</strong> forces the AI to activate a particular subset of its training. Giving it an <strong>expert identity</strong> transforms a generic response into a deeper analysis tailored to our domain.</p>
<p>It is not enough to ask it to act as a developer or consultant. We should also <strong>define the level of formality, perspective, and expected level of detail</strong>. If we request a conversational tone without corporate jargon, the content becomes far more digestible.</p>
<p>Likewise, if we want to connect the response with an external application, enforcing a <strong>structured output format</strong> is non-negotiable. Requiring rigid formats such as JSON ensures interoperability with other components of our software. <strong>Models respond far better to positive, imperative instructions</strong> that specify exactly what they should do rather than long lists of prohibitions.</p>
<h2 class="block block-header h--h30-15-400 left  ">What Are Examples Really Useful For?</h2>
<p>Expecting a model to solve complex problems correctly on the first attempt and without references is often too optimistic in enterprise environments. <strong>Providing a small set of input/output examples is the fastest way to calibrate system behavior without touching a single line of code.</strong> By explicitly showing what we consider correct and incorrect, we define the scope of the task.</p>
<p>This strategy <strong>standardizes the output format and reduces unpredictable responses</strong>. You will find that this guided context acts as a highly effective safety net for classification and data extraction tasks.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Breaking Down the Anatomy of a Good Prompt</h2>
<p>Below is what I consider an ideal baseline prompt structure:</p>
<p><strong>### ROLE ### (role)</strong>: Don't let the AI guess how it should communicate. Assign it a role (e.g., <em>&quot;You are an expert Python developer&quot;</em> or <em>&quot;You are a creative advertising copywriter&quot;</em>). This automatically adjusts the tone and vocabulary it will use.</p>
<p><strong>### CONTEXT ### (context)</strong>: The AI cannot read your mind. Explain the &quot;why&quot; and the &quot;for whom&quot; (e.g., <em>&quot;I am preparing an investor presentation for a new mobile app&quot;</em>). This provides the context required to avoid generic answers.</p>
<p><strong>### TASK ### (task)</strong>: Place your request here in a direct manner. It should be expressed as an action verb (write, summarize, analyze, translate). There is no need to say &quot;please.&quot; Doing so only increases token consumption.</p>
<p><strong>### RULES &amp; CONSTRAINTS ### (rules and constraints)</strong>: This is where you define boundaries for creativity and reduce the risk of hallucinations. Specify exactly which rules must be followed (e.g., <em>&quot;Do not use technical jargon&quot;</em> or <em>&quot;The text must not exceed 200 words&quot;</em>).</p>
<p><strong>### CHAIN OF THOUGHT &amp; SELF-CHECK ### (reasoning and self-review)</strong>: It is often useful to instruct the AI to think step by step and review its answer before delivering it. This reduces logical errors, especially in tasks that require more advanced reasoning.</p>
<p><strong>### FEW-SHOT EXAMPLES ### (examples)</strong>: The best way to teach is through real input/output examples. This helps the model calibrate the final result.</p>
<p><strong>### INPUT ### (input)</strong>: The raw data, text to analyze, or specific question.</p>
<p><strong>### OUTPUT FORMAT ### (output format)</strong>: Do you want a table? JSON? Markdown?</p>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/estructura_prompt_117c417452.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/estructura_prompt_117c417452.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/estructura_prompt_117c417452.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/estructura_prompt_117c417452.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/estructura_prompt_117c417452.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Structure of an ideal prompt" title="Prompt Structure"/></article>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusions</h2>
<p>Mastering basic prompting techniques is the prerequisite for scaling any generative AI product. With these best practices as a foundation, we can move on to more advanced architectures such as agents, orchestration frameworks, and recursive optimization techniques.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">References</h3>
<ul>
<li><a href="https://arxiv.org/html/2503.02400v2" target="_blank">Promptware Engineering: Software Engineering for Prompt-Enabled Systems</a></li>
<li><a href="https://www.emergentmind.com/topics/xml-prompting" target="_blank">The Architecture of Cognitive Steering</a></li>
<li><a href="https://www.aifire.co/p/advanced-prompt-engineering-10-private-secret-methods-from-google-openai-anthropic" target="_blank">Advanced Prompt Engineering</a></li>
<li><a href="https://www.nucamp.co/blog/ai-essentials-for-work-2025-top-10-prompting-techniques-that-instantly-improve-ai-output-in-2025" target="_blank">Top 10 Prompting Techniques That Instantly Improve AI Output in 2025</a></li>
</ul>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Fran Vañó ]]>
        </dc:creator>
        <title>Enterprise Blockchain: Real-World Use Cases and the Leap Toward the “Internet of Value”</title>
        <link>https://en.paradigmadigital.com/dev/enterprise-blockchain-real-world-use-cases-internet-of-value/</link>
        <pubDate>Thu, 11 Jun 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/dev/enterprise-blockchain-real-world-use-cases-internet-of-value/</guid>
        <description>When you hear the word blockchain, what comes to mind? Most likely Bitcoin or cryptocurrencies. But this technology goes far beyond that. From auditable supply chains to authenticity certificates for luxury goods, blockchain is enabling entirely new ways of establishing trust in digital ecosystems. In this article, we explain how it works and, more importantly, how companies across a wide range of industries are already putting it into practice.
</description>
        <content:encoded>
            <![CDATA[
                <p>Blockchain has traditionally been associated with <strong>monetary investment</strong>, and this global perception is <strong>severely limiting the full range of possibilities</strong> this technology offers. If we move into pure technical development, we find that this infrastructure has <strong>enormous competitive advantages</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">The Technical Anatomy of an Incorruptible Record</h2>
<p>At its strictest core, we are operating with a <strong>distributed database</strong> that encapsulates information into blocks. The real disruption does not come from this concept itself, but from <strong>three non-negotiable architectural properties</strong>.</p>
<p>First, <strong>immutability</strong>. Each block integrates the cryptographic hash of the previous one. This alphanumeric identifier acts as an unalterable mathematical seal that links the entire sequence back to the original block, known in blockchain terminology as the Genesis block. Modifying a single intermediate record would require recalculating the entire subsequent chain. In mature networks with significant volume, this computational effort becomes directly prohibitive and practically impossible to execute.</p>
<p>Second, <strong>decentralization</strong>. We completely do away with master servers or controlling entities. The network is sustained by thousands of nodes that apply identical rules through what we call a “consensus protocol.” This mathematical mechanism validates each transaction, placing trust exclusively in code and eliminating any single point of failure.</p>
<p>And third, <strong>transparency</strong>. In public deployments, information is visible to any participant. Although we operate under pseudonyms based on alphanumeric addresses, asset traceability is absolute.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">From Wallet to Mempool</h2>
<p>To understand its potential, we need to get into the details and <strong>observe how information flows</strong>. The deployment of an operation does not happen by magic: it follows a <strong>logical and auditable sequence</strong>.</p>
<p>Everything starts in the <strong>wallet or digital wallet</strong>. This tool acts as the user’s cryptographic gateway to the network. If I decide to transfer an asset, I sign the request specifying the destination address and the amount. This is where the <strong>network of nodes</strong> comes into play. When the transaction is launched, a first node intercepts it, mathematically verifies its validity, and propagates it in cascade across the rest of the infrastructure.</p>
<p>Once validated, the request is not executed immediately. It moves into a <strong>temporary waiting room called the mempool (memory pool)</strong>. Transactions wait there until the nodes responsible for assembling blocks select and package them. Depending on the rules of that specific network’s consensus protocol, <strong>a particular node will seal the block, recording the operation in the immutable history of the database</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">The Threshold of the “Internet of Value”</h2>
<p>For decades, we have been comfortable with the “internet of data.” Until now, the network allowed us to send simple copies of digital files. Today, however, <strong>we have crossed the threshold into the “internet of value.”</strong></p>
<p>This infrastructure enables the <strong>peer-to-peer movement of real assets</strong>, eliminating dependency on banks, clearing houses, or traditional validation entities. When the first network, Bitcoin, was launched in late 2008, its only function was to transfer native value. Smart contracts did not yet exist.</p>
<p>The corporate explosion arrived with later operating ecosystems such as <strong>Ethereum</strong>. Here, the native cryptocurrency does not function as a mere investment. It acts as the technical fuel strictly required to <strong>deploy and run decentralized applications</strong>. If, as a developer, I want to upload a solution to this infrastructure, I need to pay that operational cost in the network’s currency.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Operational Deployments Beyond the Bubble</h2>
<p>The financial impact overwhelms inherited standards. We settle cross-border transfers in minutes compared to the days required by archaic banking pipelines. Decentralized finance (DeFi) already supports complex institutional-grade operations. We operate with <strong>algorithmic banks that issue loans or applications that generate yields</strong>. From my current company, Merso, we are immersed in this deployment by developing native protocols for installment payments using cryptocurrencies.</p>
<p>But the real qualitative leap for traditional industry happens in <strong>supply chains</strong>. The ability to audit the origin and journey of products on an immutable foundation solves historical trust deficits. These functional deployments already dominate the market:</p>
<ul>
<li><strong>Food traceability</strong>: Navidul monitors the full biography of its Iberian cured meats, from the moment the animal steps onto the pastureland to the supermarket shelf. Consumers can audit this unalterable record, including curing processes and factory timelines, by scanning a QR code.</li>
<li><strong>Industrial auditability</strong>: the AIJU technological institute applies this logic to legally prove that toy manufacturing processes meet the most demanding regulatory and safety standards regarding materials.</li>
<li><strong>Luxury certification</strong>: consortia such as Aura Blockchain, promoted by brands like Prada, Cartier, and Louis Vuitton, issue digital passports. These certificates protect authenticity against counterfeiting, tracing the product from raw material extraction to manufacturing, while also enabling a secure secondary market.</li>
<li><strong>Mechanical guarantees</strong>: the second-hand vehicle market suffers from chronic mistrust. Recording maintenance history and mileage on a distributed network neutralizes fraud. Buyers verify the real condition of the car, sellers increase the value of their asset, and the certifying workshop boosts its credibility against competitors.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Roadmap for Executive Teams: How to Bring This Down to Earth</h2>
<p>Bringing this infrastructure into your company requires <strong>technical strategy</strong>. It is not enough to install prepackaged software. Based on my experience, the integration I always propose requires <strong>three key steps</strong>:</p>
<ol>
<li><strong>Audit the technological foundation</strong></li>
</ol>
<p>Study the fundamentals. Understanding the technology is a non-negotiable requirement before proposing business hypotheses. Dive into open resources such as the book <em>Mastering Ethereum</em> or subscribe to daily technical newsletters like the one I personally write. If you do not understand the base architecture, implementation failure is guaranteed.</p>
<ol start="2">
<li><strong>Track the industry</strong></li>
</ol>
<p>Look for pioneers who have validated similar models in your sector. The trial-and-error phase in distributed systems consumes resources at an alarming rate. Validate your idea by observing previous success cases to avoid burning budget on blind experiments.</p>
<ol start="3">
<li><strong>Ground the architecture</strong></li>
</ol>
<p>Rely on technical profiles capable of analyzing the real feasibility of the infrastructure. Present your business model, design the optimal solution, and make sure to “bring it down to earth” by validating technical feasibility before writing the first line of code.</p>
<p>The paradigm shift has already happened. The only decision left is <strong>whether your organization will lead the adoption of this new “Internet of Value” or try to adapt</strong> once market standards have changed forever.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Sergio David Morel ]]>
        </dc:creator>
        <title>Measuring the Performance of AWS S3 Files: A Comparative Benchmark with S3fs-fuse</title>
        <link>https://en.paradigmadigital.com/dev/measuring-performance-aws-s3-files-comparative-benchmark-s3fs-fuse/</link>
        <pubDate>Tue, 09 Jun 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/dev/measuring-performance-aws-s3-files-comparative-benchmark-s3fs-fuse/</guid>
        <description>AWS launched S3 Files in April 2026 as a native alternative for mounting S3 buckets as a filesystem. It sounds promising on paper, but how does it actually perform compared to s3fs-fuse in production environments? We put it to the test using fio, Terraform, and real-world workloads. The numbers tell an interesting story.
</description>
        <content:encoded>
            <![CDATA[
                <p>Based on our experience in cloud environments, <strong>accessing object storage such as AWS S3</strong> is typically solved in one of three ways: through direct API calls (<strong>AWS CLI</strong>), by mounting the bucket as a local filesystem using <strong>s3fs-fuse</strong>, or through Amazon’s new native client, <strong>AWS S3 Files</strong>.</p>
<p>In this article, we present an automated benchmark built with <strong>Terraform/OpenTofu</strong> to compare the real-world performance of these three approaches, measuring sequential read and write operations across different file sizes.</p>
<p>We analyze the <strong>IOPS, latency, and throughput of each method</strong>, concluding that there is no universally superior solution. Instead, the optimal choice depends on the characteristics of the workload.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Architecture</h2>
<p>The <strong>test environment</strong> is fully defined as <strong>Terraform infrastructure-as-code</strong> and consists of the following components:</p>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/entorno_pruebas_terraform_dd27ab9529.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/entorno_pruebas_terraform_dd27ab9529.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/entorno_pruebas_terraform_dd27ab9529.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/entorno_pruebas_terraform_dd27ab9529.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/entorno_pruebas_terraform_dd27ab9529.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Test environment configured with Terraform" title="undefined"/><figcaption>Test environment configured with Terraform</figcaption></figure>
<p>Each component serves a specific <strong>role</strong>:</p>
<ul>
<li><strong>S3 Bucket</strong> — Object storage with versioning enabled, SSE-KMS encryption, and public access blocked.</li>
<li><strong>EC2 Instance</strong> — Executes the benchmark automatically at startup through <strong>user-data</strong>.</li>
<li><strong>IAM Role</strong> — Least-privilege policies: GetObject, PutObject, DeleteObject, ListBucket, and HeadObject on the test bucket.</li>
<li><strong>S3 Files Mount Target</strong> — NFS mount point within the VPC subnet that connects the EC2 instance to the S3 Files filesystem.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Methodology</h2>
<p>The benchmark follows a <strong>structured design</strong> to ensure comparable results across all approaches.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Test Parameters</h3>
<table>
<thead>
<tr>
<th style="text-align:center">Parameter</th>
<th style="text-align:center">Value</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">Region</td>
<td style="text-align:center">eu-south-2 (Spain)</td>
</tr>
<tr>
<td style="text-align:center">Instance</td>
<td style="text-align:center">t3.micro (2 vCPU, 1 GiB RAM)</td>
</tr>
<tr>
<td style="text-align:center">OS</td>
<td style="text-align:center">Amazon Linux 2023</td>
</tr>
<tr>
<td style="text-align:center">File Sizes</td>
<td style="text-align:center">1 KB, 100 KB, 1 MB, 10 MB, 100 MB</td>
</tr>
<tr>
<td style="text-align:center">Files per Size</td>
<td style="text-align:center">10</td>
</tr>
<tr>
<td style="text-align:center">Generation Method</td>
<td style="text-align:center">/dev/urandom (non-compressible data)</td>
</tr>
</tbody>
</table>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Measured Operations</h3>
<p>For <strong>AWS CLI</strong>, five sequential operations are measured:</p>
<ul>
<li><strong>UPLOAD</strong> — Upload 10 files to the bucket.</li>
<li><strong>LIST</strong> — Recursively list the test directory.</li>
<li><strong>DOWNLOAD</strong> — Download the 10 files to local disk.</li>
<li><strong>HEAD / STAT</strong> — Retrieve metadata for each object.</li>
<li><strong>DELETE</strong> — Remove the 10 objects from the bucket.</li>
</ul>
<p>For <strong>s3fs-fuse</strong> and <strong>S3 Files</strong>, benchmarks are performed using  <a href="https://github.com/axboe/fio?utm_source=chatgpt.com" target="_blank">oai_citation:0‡github.com</a> (v3.32) with direct I/O (libaio, direct=1), measuring:</p>
<ul>
<li><strong>IOPS</strong> — Sustained I/O operations per second over 30 seconds.</li>
<li><strong>Throughput (MB/s)</strong> — Effective bandwidth.</li>
<li><strong>Latency (μs)</strong> — Average latency per operation.</li>
</ul>
<p>The primary metric is the <strong>total execution time in milliseconds</strong> required to complete each operation (10 files) for the CLI approach, complemented by <strong>IOPS and throughput (MB/s)</strong> for the FUSE and S3 Files mounts.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Automation</h3>
<p>The entire lifecycle—creating the bucket, launching the instance, installing dependencies, compiling s3fs-fuse from source, mounting S3 Files, executing the tests, and generating the results CSV—is orchestrated through a single script executed as <strong>user-data</strong> during instance startup.</p>
<p>The infrastructure is defined as code using Terraform with <strong>two reusable modules</strong>:</p>
<ul>
<li><strong>modules/s3-bucket</strong> — Creates the bucket with the required security configurations.</li>
<li><strong>modules/ec2-benchmark</strong> — Deploys the instance, IAM Role, Security Group, and uploads the benchmark script to the bucket so the instance can download it at startup.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Components</h2>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">AWS CLI (Native S3)</h3>
<p>The native approach uses <strong>AWS CLI v2</strong> (aws-cli/2.33.15), which internally performs calls to the <strong>S3 REST API</strong>. Each invocation of <code>aws s3 cp</code> involves:</p>
<ul>
<li>Starting a new Python/CLI process.</li>
<li>Resolving credentials from the instance profile metadata service.</li>
<li>Establishing an HTTPS connection to the S3 endpoint.</li>
<li>Authenticating using <strong>SigV4</strong> signing.</li>
<li>Transferring content (multipart upload for files larger than 8 MB).</li>
<li>Closing and cleaning up the process.</li>
</ul>
<pre><code class="language-none"># UPLOAD — a single file
aws s3 cp &quot;test_10MB_1.dat&quot; &quot;s3://my-bucket/native/test_10MB_1.dat&quot; --no-progress

# LIST — recursive listing
aws s3 ls &quot;s3://my-bucket/native/&quot; --recursive

# HEAD — object metadata
aws s3api head-object --bucket &quot;my-bucket&quot; --key &quot;native/test_10MB_1.dat&quot;
</code></pre>
<p>For <strong>UPLOAD</strong> and <strong>DOWNLOAD</strong> operations, the benchmark iterates sequentially over the 10 files while measuring the total execution time of the entire block.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">s3fs-fuse</h3>
<p><strong>s3fs-fuse</strong> (v1.97, compiled from source from  <a href="https://github.com/s3fs-fuse/s3fs-fuse?utm_source=chatgpt.com" target="_blank">oai_citation:1‡github.com</a>) mounts an S3 bucket as a  <a href="https://en.wikipedia.org/wiki/Filesystem_in_Userspace?utm_source=chatgpt.com" target="_blank">oai_citation:2‡en.wikipedia.org</a> (<strong>Filesystem in Userspace</strong>), allowing objects to be accessed using standard POSIX operations such as <code>cp</code>, <code>ls</code>, <code>stat</code>, and <code>rm</code>.</p>
<pre><code class="language-none"># Build from source (Amazon Linux 2023)
dnf install -y fuse fuse3 fuse3-devel fuse-devel libcurl-devel \
libxml2-devel gcc-c++ make openssl-devel autoconf automake libtool git

cd /tmp &amp;&amp; git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse &amp;&amp; ./autogen.sh &amp;&amp; ./configure
make -j$(nproc) &amp;&amp; make install &amp;&amp; ldconfig

# Mount using temporary IAM Role credentials
eval $(aws configure export-credentials --format env)

s3fs &quot;my-bucket&quot; &quot;/mnt/s3&quot; \
-o access_key_id=&quot;$AWS_ACCESS_KEY_ID&quot; \
-o secret_access_key=&quot;$AWS_SECRET_ACCESS_KEY&quot; \
-o session_token=&quot;$AWS_SESSION_TOKEN&quot; \
-o use_cache=/tmp \
-o use_path_request_style \
-o enable_noobj_cache \
-o sigv2
</code></pre>
<p><strong>Note:</strong> s3fs-fuse is not available as a package for <strong>Amazon Linux 2023</strong>, so it must be compiled from source during instance initialization.</p>
<p>The <strong>mount options</strong> are critical for performance:</p>
<table>
<thead>
<tr>
<th style="text-align:center">Option</th>
<th style="text-align:center">Purpose</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">use_cache=/tmp</td>
<td style="text-align:center">Stores downloaded files in RAM (tmpfs), avoiding repeated downloads.</td>
</tr>
<tr>
<td style="text-align:center">enable_noobj_cache</td>
<td style="text-align:center">Caches object non-existence to reduce HeadObject calls.</td>
</tr>
<tr>
<td style="text-align:center">use_path_request_style</td>
<td style="text-align:center">Uses path-style URLs (/bucket/key) instead of virtual-hosted style.</td>
</tr>
<tr>
<td style="text-align:center">sigv2</td>
<td style="text-align:center">Forces API Signature Version 2, reducing authentication overhead.</td>
</tr>
</tbody>
</table>
<p>Internally, s3fs-fuse translates each POSIX operation into the corresponding S3 API call. For example, copying a new file becomes a PUT Object request, while a <code>stat</code> operation maps to a HEAD Object request.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">AWS S3 Files (mount.s3files)</h3>
<p><strong>AWS S3 Files</strong> is Amazon’s native service for mounting S3 buckets as filesystems, available through <code>mount.s3files</code> on Amazon Linux 2023. Unlike s3fs-fuse, S3 Files <strong>does not connect the EC2 instance directly to S3</strong>. The actual data path is as follows:</p>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/aws_s3_files_428b2dfccb.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/aws_s3_files_428b2dfccb.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/aws_s3_files_428b2dfccb.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/aws_s3_files_428b2dfccb.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/aws_s3_files_428b2dfccb.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="AWS S3 Files" title="undefined"/><figcaption>AWS S3 Files</figcaption></figure>
<p>The EC2 instance mounts a <strong>filesystem</strong> via the <strong>NFS protocol</strong> from an EFS-backed mount target that acts as a high-performance cache. This cache serves local copies of files and synchronizes changes back to the S3 bucket.</p>
<pre><code class="language-none"># Installation (Amazon Linux 2023)
dnf install -y amazon-efs-utils

# Mounting — OpenTofu creates the File System and Mount Target in the VPC.
# The benchmark script mounts it using the File System ID:

mount_file_id=$(cat /root/benchmark-results/s3files_fs_id)
/usr/sbin/mount.s3files &quot;${mount_file_id}&quot; /root/s3files-mount

# Verify mount
mount | grep s3files

# Example output:
# fs-0bbbd1d66142be171 on /root/s3files-mount type s3files ...
</code></pre>
<p>Key characteristics of <strong>S3 Files</strong>:</p>
<table>
<thead>
<tr>
<th>Characteristic</th>
<th>S3 Files</th>
<th>s3fs-fuse</th>
</tr>
</thead>
<tbody>
<tr>
<td>Architecture</td>
<td>NFS Client → Mount Target (VPC) → File System → S3</td>
<td>FUSE → HTTPS → S3 API</td>
</tr>
<tr>
<td>Protocol</td>
<td>NFSv4.1 / NFSv4.2</td>
<td>FUSE (POSIX operations translated into S3 REST API calls)</td>
</tr>
<tr>
<td>Network Path</td>
<td>EC2 → Local VPC Mount Target → S3 (AWS-managed)</td>
<td>EC2 → Internet/VPC Endpoint → S3 REST API</td>
</tr>
<tr>
<td>Read Cache</td>
<td>EFS cache (Fast Path for files &lt;128 KB)</td>
<td>Local RAM cache (use_cache=/tmp, tmpfs)</td>
</tr>
<tr>
<td>Consistency</td>
<td>Strong read-after-write by default</td>
<td>Eventual consistency with enable_noobj_cache</td>
</tr>
<tr>
<td>Credentials</td>
<td>Automatic IAM Role resolution via Mount Target</td>
<td>Manual injection of temporary credentials</td>
</tr>
</tbody>
</table>
<p>S3 Files is designed to provide <strong>strong consistency and simplified operations</strong>, but its performance characteristics can differ significantly from s3fs-fuse depending on the workload.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Environment Setup</h2>
<p>The full deployment is executed with <strong>three commands</strong>:</p>
<pre><code class="language-none"># 1. Initialize OpenTofu
tofu init

# 2. Review the plan
tofu plan -var-file=terraform.tfvars

# 3. Deploy
tofu apply -var-file=terraform.tfvars

After apply, OpenTofu returns the instance's public IP.
The benchmark starts automatically in less than one minute:

Outputs:

instance_public_ip = &quot;&lt;EC2_PUBLIC_IP&gt;&quot;
results_location = &quot;/root/benchmark-results/&quot;
ssh_command = &quot;ssh -i &lt;ssh_key&gt;.pem ec2-user@&lt;EC2_PUBLIC_IP&gt;&quot;
</code></pre>
<p>Results are stored in <strong>/root/benchmark-results/</strong> with the following files:</p>
<ul>
<li><strong>results.csv</strong> — Raw benchmark data (<code>test_name</code>, <code>operation</code>, <code>file_size</code>, <code>bw_mbps</code>, <code>iops</code>, <code>lat_us</code>).</li>
<li><strong>fio_*.json</strong> — Detailed fio logs per method and file size (latency percentiles, I/O distribution).</li>
<li><strong>benchmark.log</strong> — Complete execution log.</li>
<li><strong>summary.txt</strong> — Configuration summary and commands for downloading results.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Results</h2>
<p>The complete dataset is collected in CSV format. CLI results are measured as the total time required to perform 10 sequential operations, while s3fs-fuse and S3 Files results are measured using <strong>fio</strong> in sustained mode (30 seconds, direct I/O with libaio).</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Sequential Read — IOPS</h3>
<table>
<thead>
<tr>
<th style="text-align:center">Size</th>
<th style="text-align:center">AWS CLI</th>
<th style="text-align:center">s3fs-fuse</th>
<th style="text-align:center">S3 Files</th>
<th style="text-align:center">FUSE vs Files</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1 KB</td>
<td style="text-align:center">1</td>
<td style="text-align:center">30,546</td>
<td style="text-align:center">1,452</td>
<td style="text-align:center">21.0x</td>
</tr>
<tr>
<td style="text-align:center">100 KB</td>
<td style="text-align:center">1</td>
<td style="text-align:center">13,213</td>
<td style="text-align:center">750</td>
<td style="text-align:center">17.6x</td>
</tr>
<tr>
<td style="text-align:center">1 MB</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1,590</td>
<td style="text-align:center">30</td>
<td style="text-align:center">53.0x</td>
</tr>
<tr>
<td style="text-align:center">10 MB</td>
<td style="text-align:center">0</td>
<td style="text-align:center">114</td>
<td style="text-align:center">16</td>
<td style="text-align:center">7.1x</td>
</tr>
<tr>
<td style="text-align:center">100 MB</td>
<td style="text-align:center">0</td>
<td style="text-align:center">14</td>
<td style="text-align:center">2</td>
<td style="text-align:center">7.0x</td>
</tr>
</tbody>
</table>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Sequential Read — Average Latency (μs)</h3>
<table>
<thead>
<tr>
<th style="text-align:center">Size</th>
<th style="text-align:center">AWS CLI</th>
<th style="text-align:center">s3fs-fuse</th>
<th style="text-align:center">S3 Files</th>
<th style="text-align:center">FUSE vs Files</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1 KB</td>
<td style="text-align:center">738</td>
<td style="text-align:center">34</td>
<td style="text-align:center">686</td>
<td style="text-align:center">0.05x</td>
</tr>
<tr>
<td style="text-align:center">100 KB</td>
<td style="text-align:center">745</td>
<td style="text-align:center">75</td>
<td style="text-align:center">1,389</td>
<td style="text-align:center">0.05x</td>
</tr>
<tr>
<td style="text-align:center">1 MB</td>
<td style="text-align:center">785</td>
<td style="text-align:center">503</td>
<td style="text-align:center">33,580</td>
<td style="text-align:center">0.02x</td>
</tr>
<tr>
<td style="text-align:center">10 MB</td>
<td style="text-align:center">735</td>
<td style="text-align:center">8,761</td>
<td style="text-align:center">67,888</td>
<td style="text-align:center">0.13x</td>
</tr>
<tr>
<td style="text-align:center">100 MB</td>
<td style="text-align:center">729</td>
<td style="text-align:center">71,089</td>
<td style="text-align:center">493,593</td>
<td style="text-align:center">0.14x</td>
</tr>
</tbody>
</table>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Sequential Write — IOPS</h3>
<table>
<thead>
<tr>
<th style="text-align:center">Size</th>
<th style="text-align:center">s3fs-fuse</th>
<th style="text-align:center">S3 Files</th>
<th style="text-align:center">FUSE vs Files</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1 KB</td>
<td style="text-align:center">22,600</td>
<td style="text-align:center">219</td>
<td style="text-align:center">103.2x</td>
</tr>
<tr>
<td style="text-align:center">100 KB</td>
<td style="text-align:center">9,211</td>
<td style="text-align:center">82</td>
<td style="text-align:center">112.3x</td>
</tr>
<tr>
<td style="text-align:center">1 MB</td>
<td style="text-align:center">1,453</td>
<td style="text-align:center">49</td>
<td style="text-align:center">29.7x</td>
</tr>
<tr>
<td style="text-align:center">10 MB</td>
<td style="text-align:center">105</td>
<td style="text-align:center">12</td>
<td style="text-align:center">8.8x</td>
</tr>
<tr>
<td style="text-align:center">100 MB</td>
<td style="text-align:center">10</td>
<td style="text-align:center">2</td>
<td style="text-align:center">5.0x</td>
</tr>
</tbody>
</table>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Sequential Write — Average Latency (μs)</h3>
<table>
<thead>
<tr>
<th style="text-align:center">Size</th>
<th style="text-align:center">s3fs-fuse</th>
<th style="text-align:center">S3 Files</th>
<th style="text-align:center">FUSE vs Files</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1 KB</td>
<td style="text-align:center">42</td>
<td style="text-align:center">4,553</td>
<td style="text-align:center">0.01x</td>
</tr>
<tr>
<td style="text-align:center">100 KB</td>
<td style="text-align:center">106</td>
<td style="text-align:center">12,246</td>
<td style="text-align:center">0.01x</td>
</tr>
<tr>
<td style="text-align:center">1 MB</td>
<td style="text-align:center">684</td>
<td style="text-align:center">20,514</td>
<td style="text-align:center">0.03x</td>
</tr>
<tr>
<td style="text-align:center">10 MB</td>
<td style="text-align:center">9,496</td>
<td style="text-align:center">80,100</td>
<td style="text-align:center">0.12x</td>
</tr>
<tr>
<td style="text-align:center">100 MB</td>
<td style="text-align:center">103,649</td>
<td style="text-align:center">485,609</td>
<td style="text-align:center">0.21x</td>
</tr>
</tbody>
</table>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Read Throughput (MB/s)</h3>
<table>
<thead>
<tr>
<th style="text-align:center">Size</th>
<th style="text-align:center">s3fs-fuse</th>
<th style="text-align:center">S3 Files</th>
<th style="text-align:center">FUSE vs Files</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1 KB</td>
<td style="text-align:center">30.5</td>
<td style="text-align:center">1.4</td>
<td style="text-align:center">21.4x</td>
</tr>
<tr>
<td style="text-align:center">100 KB</td>
<td style="text-align:center">1,321</td>
<td style="text-align:center">74</td>
<td style="text-align:center">17.8x</td>
</tr>
<tr>
<td style="text-align:center">1 MB</td>
<td style="text-align:center">1,620</td>
<td style="text-align:center">30</td>
<td style="text-align:center">54.0x</td>
</tr>
<tr>
<td style="text-align:center">10 MB</td>
<td style="text-align:center">1,164</td>
<td style="text-align:center">164</td>
<td style="text-align:center">7.1x</td>
</tr>
<tr>
<td style="text-align:center">100 MB</td>
<td style="text-align:center">1,496</td>
<td style="text-align:center">210</td>
<td style="text-align:center">7.1x</td>
</tr>
</tbody>
</table>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Write Throughput (MB/s)</h3>
<table>
<thead>
<tr>
<th style="text-align:center">Size</th>
<th style="text-align:center">s3fs-fuse</th>
<th style="text-align:center">S3 Files</th>
<th style="text-align:center">FUSE vs Files</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1 KB</td>
<td style="text-align:center">24.0</td>
<td style="text-align:center">0.2</td>
<td style="text-align:center">120x</td>
</tr>
<tr>
<td style="text-align:center">100 KB</td>
<td style="text-align:center">1,117</td>
<td style="text-align:center">9</td>
<td style="text-align:center">124x</td>
</tr>
<tr>
<td style="text-align:center">1 MB</td>
<td style="text-align:center">1,761</td>
<td style="text-align:center">52</td>
<td style="text-align:center">33.9x</td>
</tr>
<tr>
<td style="text-align:center">10 MB</td>
<td style="text-align:center">1,120</td>
<td style="text-align:center">136</td>
<td style="text-align:center">8.2x</td>
</tr>
<tr>
<td style="text-align:center">100 MB</td>
<td style="text-align:center">1,027</td>
<td style="text-align:center">216</td>
<td style="text-align:center">4.8x</td>
</tr>
</tbody>
</table>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">AWS CLI Operations — Total Times (ms, 10 files)</h3>
<table>
<thead>
<tr>
<th>Operation</th>
<th>1 KB</th>
<th>100 KB</th>
<th>1 MB</th>
<th>10 MB</th>
<th>100 MB</th>
</tr>
</thead>
<tbody>
<tr>
<td>UPLOAD</td>
<td>1,801</td>
<td>777</td>
<td>911</td>
<td>1,071</td>
<td>1,432</td>
</tr>
<tr>
<td>STAT</td>
<td>738</td>
<td>734</td>
<td>785</td>
<td>735</td>
<td>729</td>
</tr>
<tr>
<td>DOWNLOAD</td>
<td>824</td>
<td>854</td>
<td>878</td>
<td>880</td>
<td>1,539</td>
</tr>
</tbody>
</table>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Results Analysis</h2>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">1 <span class="enum-header"></span> AWS CLI Has a Fixed Overhead of ~7–10 Seconds</h3>
<p>Regardless of file size (1 KB or 10 MB), AWS CLI operations show a <strong>constant floor of 7 to 10 seconds</strong> to process 10 files (meaning it cannot go below that value). This is because each <code>aws s3 cp</code> invocation runs an independent process that:</p>
<ul>
<li><strong>Initializes</strong> the Python runtime.</li>
<li><strong>Loads</strong> AWS configuration (<code>~/.aws/config</code>, environment variables, metadata service).</li>
<li><strong>Establishes</strong> a new TLS connection with the S3 endpoint.</li>
<li><strong>Calculates</strong> the SigV4 signature (which includes payload hashing for uploads).</li>
</ul>
<p>File size has little influence because the <strong>setup cost dominates</strong> over the actual transfer cost, especially for small files over a sufficiently capable network connection.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">2 <span class="enum-header"></span> s3fs-fuse Takes Advantage of the Kernel Page Cache</h3>
<p>The most dramatic performance difference (up to <strong>750x</strong> in DELETE) is explained by the <strong>in-memory cache</strong>. With the <code>use_cache=/tmp</code> option, s3fs-fuse stores downloaded files in tmpfs (RAM). On Amazon Linux 2023, <code>/tmp</code> is a tmpfs mounted in memory, not on disk. This means the cache competes directly with the available memory of the instance. When the test downloads the same files that were previously uploaded, the kernel satisfies reads from the <strong>page cache</strong> without generating network traffic.</p>
<p>This is not “cheating”; it reflects a real usage pattern: <strong>in production, the same files are often read more than once, and the s3fs-fuse cache eliminates network latency on repeated access</strong>.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">3 <span class="enum-header"></span> S3 Files: Consistency in Exchange for Performance</h3>
<p>AWS S3 Files behaves fundamentally differently from s3fs-fuse. Benchmarks with <strong>fio</strong> in direct mode (<code>direct=1</code>, <code>libaio</code>) show that S3 Files presents read latencies <strong>7x to 53x higher</strong> and write latencies <strong>8x to 115x higher</strong> than s3fs-fuse:</p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>S3 Files (1 KB)</th>
<th>s3fs-fuse (1 KB)</th>
<th>Difference</th>
</tr>
</thead>
<tbody>
<tr>
<td>Read IOPS</td>
<td>1,426</td>
<td>30,546</td>
<td>FUSE 21x faster</td>
</tr>
<tr>
<td>Read Latency</td>
<td>698 μs</td>
<td>31 μs</td>
<td>FUSE 23x faster</td>
</tr>
<tr>
<td>Write IOPS</td>
<td>219</td>
<td>22,600</td>
<td>FUSE 103x faster</td>
</tr>
<tr>
<td>Write Latency</td>
<td>4,553 μs</td>
<td>42 μs</td>
<td>FUSE 108x faster</td>
</tr>
</tbody>
</table>
<p>For <strong>large files (10 MB)</strong>, the gap narrows but remains significant:</p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>S3 Files (10 MB)</th>
<th>s3fs-fuse (10 MB)</th>
<th>Difference</th>
</tr>
</thead>
<tbody>
<tr>
<td>Read IOPS</td>
<td>16</td>
<td>114</td>
<td>FUSE 7x faster</td>
</tr>
<tr>
<td>Read Latency</td>
<td>62,423 μs</td>
<td>8,761 μs</td>
<td>FUSE 7x faster</td>
</tr>
<tr>
<td>Write IOPS</td>
<td>12</td>
<td>105</td>
<td>FUSE 9x faster</td>
</tr>
<tr>
<td>Write Latency</td>
<td>80,100 μs</td>
<td>9,496 μs</td>
<td>FUSE 8x faster</td>
</tr>
</tbody>
</table>
<p>The main cause is <strong>s3fs-fuse userspace caching</strong>. Even with the fio <code>direct=1</code> option (which bypasses the kernel page cache), s3fs-fuse maintains its own cache in <code>/tmp</code> at the FUSE process level, while S3 Files performs each request through NFS toward S3 without an intermediate cache, <strong>prioritizing strong read-after-write consistency</strong>. This double-hop architecture (EC2 → EFS → S3) explains part of the additional latency observed with large files.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">4 <span class="enum-header"></span> UPLOAD with s3fs-fuse Shows Variable Results</h3>
<p>UPLOAD times with s3fs-fuse fluctuate (35–55 ms) without direct correlation to file size. This happens because the <code>cp</code> operation to a FUSE mount is <strong>asynchronous by default</strong>: the kernel returns success when data enters the buffer, while s3fs-fuse performs the PUT to S3 in the background. The subsequent <code>sync</code> <strong>forces the full write</strong>, but the measurement captures only the initial return of <code>cp</code>.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">5 <span class="enum-header"></span> LIST Is Extremely Fast with s3fs-fuse</h3>
<p>The LIST operation with s3fs-fuse (2–3 ms) is notably faster than with AWS CLI (721–738 ms) because <strong>the directory is already cached after previous operations</strong>. AWS CLI, by contrast, runs paginated <code>ListObjectsV2</code> on each invocation, traversing all bucket prefixes.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">6 <span class="enum-header"></span> HEAD/STAT: The Metadata Cache Advantage</h3>
<p>The <code>enable_noobj_cache</code> option allows s3fs-fuse to <strong>also cache negative HeadObject responses</strong>. With a constant 15 ms for any file size, s3fs-fuse resolves STAT operations from local cache, while AWS CLI must perform 10 independent HTTP calls (one per file).</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">7 <span class="enum-header"></span> S3 Files Latency Scales with File Size</h3>
<p>A distinctive characteristic of S3 Files is that <strong>its latency grows proportionally with file size</strong>, both for reads and writes. This is expected in a system without local caching where each I/O operation must complete synchronously through the NFS Mount Target toward S3: <strong>EC2 → Mount Target (VPC) → File System → S3</strong>. Unlike s3fs-fuse, where per-operation latency remains low thanks to local in-memory caching (tmpfs), <strong>S3 Files does not have that intermediate layer</strong>:</p>
<ul>
<li><strong>Read</strong> 1 KB → 686 μs; read 10 MB → 67,888 μs (99x slower)</li>
<li><strong>Write</strong> 1 KB → 4,553 μs; write 10 MB → 80,100 μs (18x slower)</li>
</ul>
<p>By comparison, <strong>s3fs-fuse shows much smoother growth</strong>:</p>
<ul>
<li><strong>Read</strong> 1 KB → 34 μs; read 10 MB → 8,761 μs (258x, but starting from a much lower base)</li>
<li><strong>Write</strong> 1 KB → 42 μs; write 10 MB → 9,496 μs (226x)</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">8 <span class="enum-header"></span> At 100 MB: S3 Files Throughput Gets Closer to s3fs-fuse</h3>
<p>The 100 MB data reveals a key pattern: <strong>the s3fs-fuse advantage decreases significantly for large files</strong>. For reads, S3 Files throughput (210 MB/s) approaches s3fs-fuse throughput (1,496 MB/s), reducing the gap from 54x (1 MB) to 7.1x (100 MB). For writes, the trend is similar: S3 Files reaches 216 MB/s compared to 1,027 MB/s for s3fs-fuse, a difference of only 4.8x.</p>
<p>This <strong>behavior is consistent with the S3 Files architecture described by AWS</strong>: for large files (≥ 1 MB), reads are streamed <strong>directly from S3</strong>, bypassing the cache layer. Since S3 provides high throughput for large sequential transfers, performance converges toward the available network bandwidth.</p>
<p>However, <strong>s3fs-fuse read throughput for large files</strong> (1,496 MB/s for 100 MB) suggests that <strong>its local cache is still serving data</strong> from the kernel page cache, since 1.5 GB/s exceeds what a typical network connection can provide. This confirms that fio tests with <code>direct=1</code> do not fully bypass the s3fs-fuse cache at the FUSE process level, unlike what happens with S3 Files.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">9 <span class="enum-header"></span> S3 Files vs. s3fs-fuse in Scalability</h3>
<p>The following table summarizes <strong>how write latency evolves</strong> with file size:</p>
<table>
<thead>
<tr>
<th style="text-align:center">Size</th>
<th style="text-align:center">s3fs-fuse (μs)</th>
<th style="text-align:center">S3 Files (μs)</th>
<th style="text-align:center">Ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1 KB</td>
<td style="text-align:center">42</td>
<td style="text-align:center">4,553</td>
<td style="text-align:center">108x</td>
</tr>
<tr>
<td style="text-align:center">100 KB</td>
<td style="text-align:center">106</td>
<td style="text-align:center">12,246</td>
<td style="text-align:center">115x</td>
</tr>
<tr>
<td style="text-align:center">1 MB</td>
<td style="text-align:center">684</td>
<td style="text-align:center">20,514</td>
<td style="text-align:center">30x</td>
</tr>
<tr>
<td style="text-align:center">10 MB</td>
<td style="text-align:center">9,496</td>
<td style="text-align:center">80,100</td>
<td style="text-align:center">8.4x</td>
</tr>
<tr>
<td style="text-align:center">100 MB</td>
<td style="text-align:center">103,649</td>
<td style="text-align:center">485,609</td>
<td style="text-align:center">4.7x</td>
</tr>
</tbody>
</table>
<p>The advantage of s3fs-fuse decreases convergently: from 108x at 1 KB to only 4.7x at 100 MB. This has important <strong>practical implications</strong>:</p>
<ul>
<li><strong>For small-file workloads</strong> (metadata, configs, logs), s3fs-fuse is unavoidable: 100x faster.</li>
<li><strong>For large-file workloads</strong> (videos, datasets, backups), the difference shrinks to ~5x, and S3 Files offers strong consistency in exchange for lower performance.</li>
<li><strong>For massive transfers</strong> where throughput matters more than per-operation latency, S3 Files at 216 MB/s write throughput may be sufficient for many pipelines.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Advantages and Challenges</h2>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Advantages of AWS CLI (Native S3)</h3>
<ul>
<li><strong>Operational simplicity</strong> — Requires no additional installation or compilation. It comes preinstalled on all Amazon Linux AMIs.</li>
<li><strong>Strong consistency</strong> — Each operation queries S3 directly, ensuring up-to-date data.</li>
<li><strong>Granular control</strong> — Full support for all S3 options: multipart tuning, storage class transitions, tagging, and lifecycle policies from the CLI.</li>
<li><strong>No local state</strong> — Does not depend on cache or persistent mounts. Ideal for ephemeral pipelines (CI/CD, Lambda with containers).</li>
<li><strong>Auditable</strong> — Each operation leaves an explicit record in CloudTrail with the CLI user-agent.</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Advantages of s3fs-fuse</h3>
<ul>
<li><strong>Dramatically higher performance</strong> for repeated access thanks to local file and metadata caching.</li>
<li><strong>Transparency for legacy applications</strong> — Any application that works with a POSIX filesystem can work against S3 without modifications.</li>
<li><strong>Interactivity</strong> — Manual bucket exploration with standard tools (<code>ls</code>, <code>cat</code>, <code>less</code>, <code>grep</code>).</li>
<li><strong>Integration with existing tools</strong> — <code>rsync</code>, <code>tar</code>, <code>find</code>, and Bash scripts that operate on file paths.</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Advantages of AWS S3 Files</h3>
<ul>
<li><strong>Guaranteed strong consistency</strong> — Each read reflects the latest write without the risk of stale data. Ideal for workloads where data integrity is critical.</li>
<li><strong>Simplified credential management</strong> — Automatically resolves the instance profile IAM Role without needing to manually inject temporary credentials.</li>
<li><strong>NFS protocol with managed Mount Target</strong> — S3 Files uses NFSv4.1 to communicate with a Mount Target in the VPC without going through FUSE. AWS manages the S3 connectivity endpoint, avoiding the kernel/userspace context-switch overhead introduced by FUSE.</li>
<li><strong>Official AWS support</strong> — Maintained by Amazon, with native integration in Amazon Linux 2023 and technical support.</li>
<li><strong>Simple installation</strong> — Available as a system package (<code>amazon-efs-utils</code>) without needing to compile from source.</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Challenges of s3fs-fuse</h3>
<ul>
<li><strong>Eventual consistency</strong> — The local cache may serve stale data if the bucket is modified from another source. Manual invalidation is required in multi-writer scenarios.</li>
<li><strong>Mounting complexity</strong> — Requires compiling from source on Amazon Linux 2023 (dependencies: <code>fuse3-devel</code>, <code>autoconf</code>, <code>automake</code>, <code>libtool</code>). Temporary IAM Role credentials must be injected explicitly because s3fs-fuse does not always resolve <code>iam_role=auto</code> correctly.</li>
<li><strong>POSIX limitations</strong> — Does not support atomic renames, hard links, or operations that require file locking. Directory operations can be slow in buckets with millions of objects.</li>
<li><strong>Mount lifecycle management</strong> — Reconnections after network failures require monitoring scripts or systemd mount units with <code>x-systemd.automount</code>.</li>
<li><strong>Memory overhead</strong> — The s3fs process consumes memory proportional to the number of cached objects, which can be significant on resource-constrained instances (such as the t3.micro used in this benchmark).</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Challenges of AWS S3 Files</h3>
<ul>
<li><strong>Lower performance than s3fs-fuse</strong> — Without local cache, each I/O operation incurs network latency against S3. In our benchmark, S3 Files shows 7x to 115x fewer IOPS than s3fs-fuse, and latencies 7x to 108x higher.</li>
<li><strong>Latency proportional to file size</strong> — Without intermediate caching, each operation’s duration scales linearly with object size, especially affecting large files (62 ms per 10 MB read vs. 8.7 ms in s3fs-fuse).</li>
<li><strong>Limited availability</strong> — AWS S3 Files is not available in all regions. If the region does not support S3 Files, the option simply does not exist.</li>
<li><strong>Limited IOPS for small files</strong> — With only ~1,400 read IOPS for 1 KB files, S3 Files is far below the ~30,500 achieved by s3fs-fuse, making it unsuitable for metadata-intensive workloads.</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Challenges of AWS CLI</h3>
<ul>
<li><strong>Per-file performance overhead</strong> — Each file involves a full process execution. For massive transfers of small files, overhead dominates over actual transfer time.</li>
<li><strong>No native cache</strong> — Every <code>aws s3 cp</code> download requests the data from S3 again, even if the file has not changed.</li>
<li><strong>Limitations for legacy applications</strong> — Applications expecting POSIX file paths cannot use the CLI directly without a wrapper or adapter layer.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Production Use Cases</h2>
<p>Beyond the benchmark numbers, these are the <strong>scenarios where each method fits best</strong>:</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">ML Training with Datasets in S3</h3>
<p>With S3 Files, we can mount petabytes of training data directly as a filesystem without duplicating them onto EBS volumes. Training workers (up to 25,000 simultaneously) access the data as local files, and large training batches are streamed directly from S3.</p>
<p><strong>Recommendation</strong>: S3 Files for shared accessibility; s3fs-fuse if epoch-level latency is critical and eventual consistency is acceptable.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Collaborative Workspaces for AI Agents</h3>
<p>Multi-agent systems where each agent reads and writes logs, state, and memory into a shared S3 directory. Up to 25,000 resources (EC2, Lambda, EKS pods) can connect to the same filesystem simultaneously.</p>
<p><strong>Recommendation</strong>: S3 Files — strong consistency for concurrent writes and bidirectional S3 ↔ NFS access.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Batch ETL Pipelines</h3>
<p>Processes that download files from S3, transform them, and upload them back. They do not require a persistent mount.</p>
<p><strong>Recommendation</strong>: AWS CLI — simplicity, no local state, and no mounts to manage.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Interactive Bucket Exploration</h3>
<p>Data scientists and DevOps teams that need to browse a bucket using <code>ls</code>, <code>cat</code>, <code>grep</code>, or <code>find</code> without mounting anything permanently.</p>
<p><strong>Recommendation</strong>: s3fs-fuse — local caching provides instant responses for repeated access, and POSIX interactivity is unmatched.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Large File Processing (&gt; 100 MB)</h3>
<p>Videos, image datasets, and backups where throughput matters more than per-operation latency.</p>
<p><strong>Recommendation</strong>: S3 Files or s3fs-fuse — at 100 MB, the throughput difference narrows to 5–7x. Prefer S3 Files if strong consistency or simultaneous access from multiple instances is required.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusion</h2>
<p>This benchmark shows that the <strong>choice between native AWS CLI, s3fs-fuse, and AWS S3 Files</strong> depends fundamentally on the <strong>access pattern, file size, and consistency requirements</strong>:</p>
<ol>
<li>For <strong>single-use batch workloads</strong> (ETL, backups, one-off migrations), <strong>AWS CLI</strong> is the simplest and most predictable option, with strong consistency and no local state.</li>
<li>For <strong>frequent interactive access or applications expecting a filesystem, s3fs-fuse</strong> delivers 7x to 115x higher IOPS than S3 Files, and 7x to 108x lower latency, thanks to local caching, in exchange for managing eventual consistency and mount lifecycle.</li>
<li>For <strong>workloads requiring strong consistency with concurrent writes and filesystem access, S3 Files</strong> provides read-after-write guarantees without the need to manage caches, but with significantly lower performance for small files: 1,452 read IOPS for 1 KB files compared to 30,546 with s3fs-fuse, and write latencies of 4.5 ms compared to 42 μs.</li>
<li>For <strong>large file transfers (100 MB+), S3 Files converges toward s3fs-fuse throughput</strong>: at 100 MB, S3 Files reaches 210 MB/s read throughput (7.1x lower than s3fs-fuse), which may be acceptable when strong consistency is the priority.</li>
</ol>
<p>A key point to consider is that s3fs-fuse results benefit significantly from the <strong>read cache</strong>. In first-read scenarios (cold cache), download times will be comparable to AWS CLI and S3 Files, since all three approaches must transfer data from S3 over the network.</p>
<p>Adding S3 Files to the benchmark reveals that <strong>there is no universally superior solution</strong>: s3fs-fuse sacrifices consistency for performance, S3 Files sacrifices small-file performance for consistency and operational simplicity, and AWS CLI offers operational simplicity without filesystem mounting. The choice must align with the specific requirements of each workload.</p>
<p>The complete infrastructure for this benchmark is available as a reusable <strong>OpenTofu</strong> module in <a href="https://github.com/paradigmadigital/aws-s3files-benchmark" target="_blank">this repository</a>, ready to deploy in any AWS account with minimal configuration.</p>
<p>Have you run similar benchmarks in your infrastructure? What strategy do you use to access S3 from your applications? Share your experience in the comments.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">References</h3>
<ul>
<li><a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files.html" target="_blank">AWS S3 Files Documentation</a> — Complete service guide, architecture, synchronization, and performance.</li>
<li><a href="https://aws.amazon.com/blogs/aws/launching-s3-files-making-s3-buckets-accessible-as-file-systems/" target="_blank">AWS News Blog: S3 Files GA Announcement</a> — General availability announcement (April 7, 2026).</li>
<li><a href="https://github.com/hashicorp/terraform-provider-aws/releases/tag/v6.40.0" target="_blank">AWS Terraform provider: Release v6.40.0</a> - Terraform provider version with S3 Files support.</li>
<li><a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-files-performance.html" target="_blank">S3 Files Performance Specifications</a> — Throughput, latency, and limits specifications.</li>
<li><a href="https://aws.amazon.com/s3/pricing/" target="_blank">S3 Files Pricing</a> — Cache storage, data access, and synchronization costs.</li>
<li><a href="https://github.com/s3fs-fuse/s3fs-fuse" target="_blank">s3fs-fuse GitHub Repository</a> — s3fs-fuse documentation and mount options.</li>
<li><a href="https://fio.readthedocs.io/" target="_blank">fio — Flexible I/O Tester</a> — I/O benchmark tool used in the tests.</li>
<li><a href="https://tutorialsdojo.com/amazon-s3-files-object-storage-meets-file-performance/" target="_blank">Tutorials Dojo: Amazon S3 Files</a> — Conceptual analysis of the S3 Files architecture.</li>
</ul>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Vanessa Davo Parreño ]]>
        </dc:creator>
        <title>WCAG 3.0: How It Is Changing the Way We Understand Web Accessibility</title>
        <link>https://en.paradigmadigital.com/dev/wcag-3-0-how-changing-way-understand-web-accessibility/</link>
        <pubDate>Thu, 04 Jun 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/dev/wcag-3-0-how-changing-way-understand-web-accessibility/</guid>
        <description>WCAG has spent decades measuring web accessibility with a binary approach: either you comply or you don’t. Version 3.0 aims to change that with new levels, progressive scoring, and, above all, a stronger focus on people’s real experiences. In this post, we walk through the changes proposed by this new version.
</description>
        <content:encoded>
            <![CDATA[
                <p>The Web Content Accessibility Guidelines (WCAG) are the reference standard that defines how to create accessible web applications for everyone, regardless of their abilities or the context in which they browse.</p>
<p>We are currently on <a href="https://www.w3.org/TR/WCAG22/" target="_blank">WCAG 2.2</a>, published as a recommendation on October 5, 2023, and until now the approach behind these guidelines has remained fairly stable.</p>
<p>Up to this point, the model has been relatively straightforward to understand: on one hand, there was a set of technical criteria defining which aspects a website needed to meet in order to be accessible, and on the other, different <a href="https://www.w3.org/TR/WCAG22/#cc1" target="_blank">conformance levels</a> (A, AA, and AAA) indicating the degree of accessibility achieved.</p>
<p>But this is changing, and that is precisely why I wanted to write this article.</p>
<p>It has now been more than five years since the publication of the first draft of <a href="https://www.w3.org/TR/wcag-3.0/" target="_blank">WCAG 3.0</a>, and although it is still exactly that—a draft—the proposal is beginning to take shape and giving us a glimpse of <strong>where digital accessibility is heading</strong>.</p>
<p><em><em>Before continuing, I want to clarify that this is not yet an official standard and should not be used as a legal or compliance reference. For now, organizations should continue working with WCAG 2.2.</em></em></p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">How Accessibility Evaluation Changes in WCAG 3.0</h2>
<p>I think the best way to understand what I mean by <em>“this is changing”</em> is to analyze <strong>how accessibility will be evaluated in WCAG 3.0</strong>. Because beyond new criteria or small technical adjustments, what is truly changing is the <strong>way we understand accessibility</strong>.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Conformance</h3>
<p>From <a href="https://www.w3.org/TR/WAI-WEBCONTENT/" target="_blank">WCAG 1.0</a> through to WCAG 2.2, the system for determining whether a website was accessible has remained almost unchanged: there was a set of <strong>success criteria</strong>, and depending on which ones were met, a given conformance level was achieved.</p>
<p>These levels were:</p>
<ul>
<li><strong>A</strong>. This is the minimum conformance level and is achieved when the website complies with all Level A success criteria.</li>
<li><strong>AA</strong>. This level is the minimum legal requirement for most websites that are required to be accessible. It is achieved when all Level A and AA criteria are met.</li>
<li><strong>AAA</strong>. This is the highest accessibility level and is achieved when all A, AA, and AAA criteria are met.</li>
</ul>
<p>However, <strong>WCAG 3.0</strong> proposes abandoning this traditional model and replacing it with a <strong>new level system</strong>:</p>
<ul>
<li><strong>Bronze</strong>. This would become the <strong>minimum conformance level</strong>. To achieve it, all pages, views, and processes included within the evaluation scope must meet all core requirements plus a portion of the supplemental requirements and assertions defined within each <a href="https://www.w3.org/TR/wcag-3.0/#functional-performance-statements" target="_blank">Functional Performance Statement</a>.</li>
<li><strong>Silver</strong>. To achieve this level, all core requirements must be met along with a greater proportion of supplemental requirements and assertions than in Bronze.</li>
<li><strong>Gold</strong>. This would become the <strong>highest conformance level</strong> within WCAG 3.0. It would require meeting all core requirements and nearly all applicable supplemental requirements and assertions.</li>
</ul>
<p>You can read more about the <a href="https://www.w3.org/TR/wcag-3.0/#conformance-requirements" target="_blank">WCAG 3.0 conformance requirements in the draft</a>.</p>
<p>Later in this article I’ll explain in more detail <strong>what core requirements, supplemental requirements, and assertions mean in WCAG 3.0</strong>. For now, the important thing to understand is that the current model works in a binary way: <strong>a criterion either passes or fails</strong>.</p>
<p>However, this new version (WCAG 3.0) aims to move away from that approach and proposes a <strong>much more flexible and progressive system based on scoring, outcomes, and real accessibility experiences</strong>.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Functional Performance Statements</h3>
<p>This new version introduces the concept of <strong>Functional Performance Statements</strong>, which broaden the way accessibility is understood. You can <a href="https://www.w3.org/TR/wcag-3.0/#functional-performance-statements" target="_blank">read more about Functional Performance Statements in the draft</a>.</p>
<p>These statements are not technical criteria as in previous versions, but rather <strong>descriptions of how a person can interact with technology based on their functional capabilities</strong>, regardless of a specific disability.</p>
<p>The goal is not to produce a list of disabilities but to <strong>describe functional limitations</strong> that may <strong>occur in different contexts</strong> and may <strong>affect anyone</strong>, whether permanently, temporarily, or situationally.</p>
<p>For example, a person with a <strong>visual impairment</strong> may need “use without vision,” but someone using a <strong>mobile phone under bright sunlight with poor visibility</strong> may encounter a similar situation.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Types of Provisions</h3>
<p>Finally—at least within the scope of this article—version 3.0 also introduces a <a href="https://www.w3.org/TR/wcag-3.0/#types-of-provision" target="_blank">new concept called Types of Provisions</a>, which defines <strong>how different requirements are evaluated and weighted</strong> within the conformance model.</p>
<p>These provision types include:</p>
<ul>
<li><strong>Core requirements</strong>. These are the aspects considered <strong>essential</strong> for an accessible experience. If any of these requirements fail, conformance cannot be achieved regardless of the total score obtained.</li>
<li><strong>Supplemental requirements</strong>. These are aspects that <strong>enhance</strong> the accessibility experience but whose absence does not completely invalidate conformance. They help measure the overall quality of the accessible experience.</li>
<li><strong>Assertions</strong>. These are <strong>additional declarations</strong> made by the organization itself to demonstrate accessibility practices that cannot always be validated automatically.</li>
</ul>
<p>Each of these has a <strong>different weight and purpose</strong> within the new evaluation system proposed by WCAG 3.0.</p>
<figure class="block block-caption -link -inline-block -like-text-width -center"><a href="https://www.w3.org/TR/wcag-3.0/#accessibility-supported"  target="_blank"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/W3_C_WCAG_3_0_Working_Draft_0787cea51c.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/W3_C_WCAG_3_0_Working_Draft_0787cea51c.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/W3_C_WCAG_3_0_Working_Draft_0787cea51c.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/W3_C_WCAG_3_0_Working_Draft_0787cea51c.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/W3_C_WCAG_3_0_Working_Draft_0787cea51c.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Source: W3C – WCAG 3.0 Working Draft" title="undefined"/><figcaption>Source: W3C – WCAG 3.0 Working Draft</figcaption></a></figure>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusions</h2>
<p>WCAG 3.0 is still in <strong>draft status</strong>, but it already points to an <strong>important shift</strong> in the way we understand digital accessibility.</p>
<p>Beyond new levels, new terminology, or new metrics, what truly changes is the <strong>approach</strong>: we move from a model based on strict technical compliance to a <strong>model more focused on outcomes, context, and real user experience</strong>.</p>
<p>This does not mean WCAG 2.2 becomes irrelevant—quite the opposite: it remains the current standard and the active reference for web accessibility. But understanding where WCAG 3.0 is heading helps us <strong>anticipate how digital product design and development will evolve</strong> over the coming years.</p>
<p>That said, I hope you enjoyed this article and that it helped you better understand what we can expect from the new version of WCAG. I’d love to hear your thoughts in the comments!</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Manuel Zaforas ]]>
        </dc:creator>
        <title>What is Organizational Debt and Why Does Your Company Need to Manage it Today?</title>
        <link>https://en.paradigmadigital.com/organizational-transformation-rev/what-organizational-debt-why-company-need-manage-today/</link>
        <pubDate>Tue, 02 Jun 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/organizational-transformation-rev/what-organizational-debt-why-company-need-manage-today/</guid>
        <description>We measure, prioritize, and manage technical debt in every sprint.We measure, prioritize, and manage technical debt in every sprint. Organizational debt, which has an equally real impact on teams, gets ignored for years, and it's time to change that. In this post, we give you 4 concrete patterns to start managing it today
</description>
        <content:encoded>
            <![CDATA[
                <p>In the IT industry, we have internalized a fundamental concept for our survival: <strong>technical debt</strong>. We pay a lot of attention to it, measure it, discuss it in our retrospectives, and know perfectly well the toll it takes if we ignore it.</p>
<p>In engineering, we have reflected deeply and worried a great deal about <strong>how to properly manage and address this structural problem</strong>. Good technical debt management tends to make it emerge, be identified, and enable agile mechanisms to deal with it, so that <strong>it becomes sustainable over time and does not block our deployments</strong>.</p>
<p>However, there is another type of debt that has a much larger and deeper impact on organizations and, paradoxically, we talk about it much less: <strong>organizational debt</strong>.</p>
<p>While our technical teams refactor code and optimize infrastructures, our <strong>corporate structures</strong> often accumulate <strong>inefficiencies, obsolete processes, and departmental misalignments</strong> that threaten organizational health.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">The Silent Origin: When the End Justifies the Means</h2>
<p>Just like financial debt, taking on debt can be a good thing when it serves a strategic purpose and, at the same time, we are able to build a reasonable framework over time to repay that debt. <strong>Accepting temporary friction in the organization to capture a market opportunity</strong> is a perfectly valid business decision.</p>
<p>Organizational debt occurs when there is a decision, whether explicit or implicit, that creates an <strong>unmanaged future cost</strong>. This debt accumulates and behaves like a small virus that gradually enters organizations and slowly spreads over time.</p>
<p>Sometimes it begins as a small decision justified by a greater good, whether operational efficiency, the unavoidable urgency of time to market, or the conscious choice of the lesser evil to save a critical milestone. And this is not necessarily wrong. Just as we must be able to generate and assume technical debt responsibly when developing a product, exactly the same must happen with organizational debt in business management.</p>
<p><strong>The problem comes when, at an organizational level, we are unable to identify the debt we are generating and tackle it continuously</strong>. That is when “temporary exceptions” crystallize and become the norm.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">The Impact on Culture and Proactivity</h2>
<p><strong>Organizational debt can take many forms</strong>, and if you work in a large company, all of this will probably sound familiar.</p>
<p>It may be a <strong>workflow</strong> between departments that simply does not work and creates constant bottlenecks, a <strong>bureaucratic procedure</strong> that was defined with the best intentions but was never successfully implemented in operational reality, a <strong>lack of clear role and responsibility definition</strong> that leaves critical tasks orphaned, or even a way of <strong>organizing internal knowledge that is not structured</strong>, forcing us to reinvent the wheel in every new project.</p>
<p>You have probably seen these things a thousand times in every organization. And it is also very likely that, if you have tried to ask about them, you have received <strong>automatic responses</strong> such as: <em>“we’ve always done it this way,” “we all know it doesn’t work, but it doesn’t hurt anyone,”</em> or <em>“this is the usual way of doing things in our culture.”</em> <strong>These responses are a clear reflection of our cognitive biases</strong> applied to corporate inertia, where the mind prefers to maintain the familiar status quo <strong>rather than face the effort of restructuring</strong>.</p>
<p>Often, the most toxic aspect of this organizational debt is not the inefficiency of the process itself, but <strong>the example set by the fact that the debt is not managed and remains exposed</strong>, in front of everyone and visible every single day.</p>
<p>When it begins to spread, <strong>debt is like a poison that gradually paralyzes action, brave decision-making, and team proactivity</strong>. The underlying message implicitly being sent to employees is: <em>“it doesn’t matter if we don’t do things well.”</em> This creates rust that slowly settles into the gears of the company, eroding motivation and turning innovation into a path full of unnecessary friction.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Action Patterns for Sustainable Management</h2>
<p>In these situations of stagnation, the question we should ask ourselves is: <strong>what can we do from our side to help solve the problem of organizational debt?</strong></p>
<p>There are no magic solutions or infallible frameworks, since every company has its own context, maturity, and idiosyncrasies. But we can <strong>apply some patterns</strong>, inspired by principles of <a href="https://en.paradigmadigital.com/organizational-transformation-rev/process-optimization-training-roadmap/" target="_blank">process optimization</a>, Lean, and software engineering, that can help us move toward truly sustainable debt management. I propose the following <strong>four pillars</strong>:</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">1 <span class="enum-header"></span> Identify Organizational Debt</h3>
<p>The first step in solving a problem is, invariably, <strong>bringing it to light</strong>.</p>
<p>Identifying and “declaring” that debt exists is, in itself, a <strong>vital statement of intent for company culture</strong>. First, because we give it a specific name and define a clear perimeter. Second, because we publicly acknowledge that there is an improvement area and that solving it matters to us.</p>
<p>This alone, which is fundamentally a matter of attitude and psychological safety, can represent a <strong>radical shift in the negative impact trend of organizational debt</strong>.</p>
<p>Ideally, there should be some kind of <strong>register or backlog</strong> (ideally public, transparent, and collaborative) for organizational debt, similar to how we manage user stories. Through this backlog, we can assign an owner, track progress, and measure impact. This can be done <strong>at the large department level, at the technical team level, or even at a personal level</strong> for day-to-day work management.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">2 <span class="enum-header"></span> Define Priority, a Preliminary Effort Estimate, and Expected Benefit</h3>
<p><strong>Not all debt has the same impact, nor does all of it need to be repaid with the same urgency</strong>. It is important to be able to size the volume of debt we have on the table in order to measure and identify the topics with the greatest direct impact on the business (the ROI of solving them) and on people’s well-being. Without this quantification, we risk wasting energy on organizational refactorings that do not generate real value.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">3 <span class="enum-header"></span> Establish an Action Plan with Realistic Time Boundaries</h3>
<p>Once prioritized, it is time to <strong>define the steps to follow</strong>.</p>
<p>When <strong>establishing this action plan</strong>, we must be extremely pragmatic and realistic, clearly identifying the pain points. How many times have we tried to solve a problem by reinventing the approach from scratch, without first analyzing what the real failure was, only to end up building a completely different new process that suffers from the same problems as the previous one?</p>
<p>The reasonable approach is to <strong>apply a progressive approximation</strong>, just as a wound heals little by little. Sometimes we may not be able to fully solve the systemic problem on the first attempt. And that is okay. What matters is that <strong>the plan we define can be executed, is viable, and helps us take tangible steps in the right direction</strong>. If we do not completely eliminate the debt but manage to mitigate it or reduce its daily impact, we have made progress and learned valuable lessons. In the next iteration, we will be able to take the next step with much more context.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">4 <span class="enum-header"></span> Reserve Organic Capacity to Manage Debt</h3>
<p>Finally, and perhaps most importantly for leadership: managing organizational debt should not be understood as an exceptional crisis situation, a one-off “audit,” or an exhaustive radical transformation process. <strong>It should be conceived as a continuous improvement activity embedded in our organizational DNA.</strong></p>
<p>Just as development and engineering teams proactively allocate a percentage of their capacity to managing technical debt in order to keep platforms sustainable, organizations must do exactly the same for organizational debt, <strong>in an orderly, systematic way and sponsored from the top</strong>.</p>
<p>For this to work, <strong>leadership must be involved</strong>. A CEO, just as they evaluate the profitability of a business line or the adoption of new innovations, should naturally ask in the quarterly Board meeting: <em>what organizational debt have we managed and resolved this quarter?</em></p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusion</h2>
<p>Dealing with entropy is part of growth, but <strong>ignoring it is a risk that no innovative organization can afford in the long term</strong>.</p>
<p>What do you think of these recommendations? Do you see them as viable in your company? Tell us what measures you have tried and which ones have truly worked.</p>
<p>If you are not managing that debt yet, the best time to start is today. Identify it, estimate its cost, and define that first step to reduce it. And remember: if the challenge exceeds your team’s current capacity, seeking external support is a brave and strategic decision.</p>
<p>Leave us your thoughts in the comments!</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Raúl Martínez ]]>
        </dc:creator>
        <title>Save Time and Avoid Misunderstandings: How to Create an Efficient Backlog with AI</title>
        <link>https://en.paradigmadigital.com/organizational-transformation-rev/save-time-avoid-misunderstandings-create-efficient-backlog-ai/</link>
        <pubDate>Thu, 28 May 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/organizational-transformation-rev/save-time-avoid-misunderstandings-create-efficient-backlog-ai/</guid>
        <description>No more misunderstandings caused by unclear requirements in projects. AI can transcribe customer meetings and help generate an accurate product backlog, saving time, reducing costs, and avoiding endless discussions. In this post, we’ll show you how to put it into practice.
</description>
        <content:encoded>
            <![CDATA[
                <p>Over the last few days, I’ve been wondering <strong>how AI can help throughout the entire product creation process, from requirements gathering to delivery</strong>.</p>
<p>In this post, I wanted to focus on something that always creates problems and drives up costs: customer requirements and building a product backlog with real substance.</p>
<p>I always remember one project where we received some initial guidelines and a few technical definitions, but without any real clarity about the intended outcome.</p>
<p>The goal was to build a website with a “modern” frontend and an API underneath to manage a certain type of order. Time passed, and once the client finally had a clear idea of what they wanted, they said: <em>“I want this in 3 weeks.”</em></p>
<p>Obviously, it wasn’t possible in 3 weeks. We had to do much more refinement work because, although they knew what they wanted, there were undefined use cases and the actual effort required was closer to 3 months (with all the extra pressure that created both for development and for managing the situation).</p>
<p>This also impacted project billing, leading to several misunderstandings based on <em>“you told me”</em>, <em>“I told you”</em>.</p>
<p>As we learn from everything, that experience completely changed the way I approach these kinds of situations and, reflecting on it now, I see AI as a huge opportunity.</p>
<h2 class="block block-header h--h30-15-400 left  ">What do teams really need? How can AI help them?</h2>
<p>To avoid situations like this, we need clear requirements and the inputs received by the team must be well defined. If that’s not possible (for whatever reason), there should at least be traceability so they can be refined later.</p>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/objetivos_equipos_e651f8039d.jpg"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/objetivos_equipos_e651f8039d.jpg 1920w,https://www.paradigmadigital.com/assets/img/resize/big/objetivos_equipos_e651f8039d.jpg 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/objetivos_equipos_e651f8039d.jpg 910w,https://www.paradigmadigital.com/assets/img/resize/small/objetivos_equipos_e651f8039d.jpg 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="The importance of setting clear objectives for work teams." title="undefined"/></article>
<p>So the question I ask myself (and I already suspected the answer was yes, but let’s see how far we can take it) is: <strong>Can AI generate a backlog from customer meetings? How?</strong></p>
<p>Yes. If you have AI attending customer meetings, listening and transcribing requirements, it can help generate a product backlog with:</p>
<ul>
<li><strong>Requirements identification</strong>. From transcripts, it can detect customer needs, expected functionalities, and technical or business constraints.</li>
<li><strong>User story generation</strong>. Transform detected requirements into user stories using the standard format:
<ul>
<li>As a [user type],</li>
<li>I want [functionality],</li>
<li>so that [benefit or goal].</li>
</ul>
</li>
<li><strong>Suggested prioritization</strong>. Propose an initial development order based on what the customer emphasizes, technical dependencies, or expected impact.</li>
<li><strong>Acceptance criteria inclusion</strong>. Include acceptance criteria or completion conditions when mentioned (or suggest them when implicit).</li>
<li><strong>Continuous updates after each meeting</strong>. As more meetings take place, it can keep the backlog updated, marking items as “ready for development,” “under review,” and so on.</li>
</ul>
<p>And the next question I ask myself is: <strong>Do we still need a Product Owner acting as an intermediary if AI generates the backlog, etc.?</strong></p>
<p><strong>The answer is YES.</strong> Even though AI can automate a lot of work, <strong>it does not replace the Product Owner (PO)</strong>, who:</p>
<ul>
<li><strong>Makes business decisions</strong>: the PO deeply understands business needs and prioritizes the backlog accordingly.</li>
<li><strong>Negotiates and communicates with stakeholders</strong>: makes decisions when priorities conflict or when ambiguities require human judgment.</li>
<li><strong>Knows the customer</strong>: interprets intentions beyond what is explicitly stated in meetings.</li>
<li><strong>Validates deliverables</strong>: accepts or rejects delivered functionality based on business value.</li>
<li><strong>Works closely with the agile team</strong>: helps clarify requirements during development and answers questions quickly.</li>
</ul>
<p>AI can process information quickly, organize requirements, draft user stories, detect inconsistencies or ambiguities in requirements, and help keep the backlog clean and organized. <strong>AI can collaborate with the PO, but it cannot replace their judgment and leadership</strong>.</p>
<p>In short: you can automate a large part of the PO’s mechanical work with AI (such as generating and updating the backlog), but <strong>you still need a human role providing leadership, judgment, and strategic vision</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Collaborative workflow between AI and the Product Owner</h2>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/flujo_trabajo_colaborativo_ia_product_owner_d95206bb0e.jpg"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/flujo_trabajo_colaborativo_ia_product_owner_d95206bb0e.jpg 1920w,https://www.paradigmadigital.com/assets/img/resize/big/flujo_trabajo_colaborativo_ia_product_owner_d95206bb0e.jpg 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/flujo_trabajo_colaborativo_ia_product_owner_d95206bb0e.jpg 910w,https://www.paradigmadigital.com/assets/img/resize/small/flujo_trabajo_colaborativo_ia_product_owner_d95206bb0e.jpg 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Collaborative workflow between AI and Product Owner" title="undefined"/></article>
<p>Here are some practical examples of how AI can work together with both the PO and the team, reducing repetitive tasks and saving time:</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Before the customer meeting</h3>
<ul>
<li><strong>AI</strong>: prepares a smart agenda based on previous topics and pending items.</li>
<li><strong>PO</strong>: reviews the agenda and adjusts it according to the product’s strategic priorities.</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">During the meeting</h3>
<p><strong>AI</strong>:</p>
<ul>
<li>Transcribes in real time.</li>
<li>Automatically detects and tags requirements, ideas, issues, dates, etc.</li>
<li>Suggests draft user stories.</li>
</ul>
<p><strong>PO</strong>:</p>
<ul>
<li>Facilitates the meeting.</li>
<li>Makes decisions when ambiguities or conflicting priorities arise.</li>
<li>Clarifies details with the customer when AI cannot infer them confidently.</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">After the meeting</h3>
<p><strong>AI</strong>:</p>
<ul>
<li>Generates an executive summary.</li>
<li>Converts requirements into user stories with acceptance criteria.</li>
<li>Creates and/or updates the product backlog.</li>
<li>Suggests priorities and technical dependencies.</li>
</ul>
<p><strong>PO</strong>:</p>
<ul>
<li>Validates and adjusts user stories.</li>
<li>Refines the backlog with the development team if needed.</li>
<li>Communicates important changes to key stakeholders.</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">During development</h3>
<p><strong>AI</strong>:</p>
<ul>
<li>Monitors backlog progress.</li>
<li>Suggests story refinement based on progress or blockers.</li>
<li>Summarizes team questions or feedback for the PO.</li>
</ul>
<p><strong>PO</strong>:</p>
<ul>
<li>Answers team questions.</li>
<li>Prioritizes tasks.</li>
<li>Accepts or rejects deliverables.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Tool integration architecture</h2>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/arquitectura_integracion_herramientas_4eaf0015d2.jpg"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/arquitectura_integracion_herramientas_4eaf0015d2.jpg 1920w,https://www.paradigmadigital.com/assets/img/resize/big/arquitectura_integracion_herramientas_4eaf0015d2.jpg 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/arquitectura_integracion_herramientas_4eaf0015d2.jpg 910w,https://www.paradigmadigital.com/assets/img/resize/small/arquitectura_integracion_herramientas_4eaf0015d2.jpg 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Tool integration architecture" title="undefined"/></article>
<p>This is an example of how we could assemble this whole setup, keeping in mind that tools may vary.</p>
<ol>
<li><strong>Meeting capture:</strong></li>
</ol>
<ul>
<li>Zoom / Meet / Teams + Otter.ai or Fireflies.ai.</li>
</ul>
<ol start="2">
<li><strong>Automatic transcription:</strong></li>
</ol>
<ul>
<li>Otter.ai, Fireflies.ai, or Whisper.</li>
<li>Output: text or JSON.</li>
</ul>
<ol start="3">
<li><strong>AI processing:</strong></li>
</ol>
<ul>
<li>AI to transform transcripts into user stories.</li>
<li>Automation using Zapier, Make, or n8n.</li>
</ul>
<ol start="4">
<li><strong>Backlog updates:</strong></li>
</ol>
<ul>
<li>Jira / Trello / Azure DevOps (REST API).</li>
</ul>
<ol start="5">
<li><strong>Team communication:</strong></li>
</ol>
<ul>
<li>Slack / Teams / Discord for automated notifications.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusion</h2>
<p><strong>AI promises to transform professional relationships between customers and providers</strong> by bringing more certainty, reducing misunderstandings, minimizing risks, and focusing efforts on what truly matters. <strong>Its ability to detect blockers and suggest priorities increases both efficiency and reliability in decision-making and collaboration</strong>.</p>
<p>Although we are still in an exploratory phase and widespread implementations are not yet common, <strong>its potential to become a turning point in this space is significant</strong>.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Javier Herrera ]]>
        </dc:creator>
        <title>Leadership and Creativity: Two Sides of the Same Coin in the Digital Age</title>
        <link>https://en.paradigmadigital.com/organizational-transformation-rev/leadership-creativity-two-sides-same-coin-digital-age/</link>
        <pubDate>Tue, 26 May 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/organizational-transformation-rev/leadership-creativity-two-sides-same-coin-digital-age/</guid>
        <description>When we think about great leaders, we usually associate them with vision, determination, or the ability to inspire. And when we think about creativity, we imagine brilliant ideas, disruptive innovations, or individual genius. But in reality, creativity and leadership have never been separate: they are two sides of the same coin.
Pixar revolutionized animated filmmaking because its leaders, such as Ed Catmull, built an environment where “anyone could tell anyone else that their idea wasn’t…</description>
        <content:encoded>
            <![CDATA[
                <p>When we think about <strong>great leaders</strong>, we usually associate them with <strong>vision, determination, or the ability to inspire</strong>. And when we think about <strong>creativity</strong>, we imagine <strong>brilliant ideas, disruptive innovations, or individual genius</strong>. But in reality, creativity and leadership have never been separate: <strong>they are two sides of the same coin</strong>.</p>
<p>Pixar revolutionized animated filmmaking because its leaders, such as Ed Catmull, built an environment where <em>“anyone could tell anyone else that their idea wasn’t working”</em> without fear of repercussions.</p>
<p>NASA turned the Apollo 13 crisis into an extraordinary achievement because the flight director reframed the challenge through catalytic questions: <em>“What’s still working?”, “What do we need to bring them home alive?”, “How can we improvise with what’s available onboard?”</em> leading to the famous instruction: <em>“Find a way to fit a square peg into a round hole”</em>, in order to build CO₂ filters using the materials available.</p>
<p>And Apple, in its iconic recruiting campaign, connected purpose and creativity by appealing to transcendence: <em>“It’s not just a job, it’s leaving a mark on the world.”</em></p>
<p>In terms of <strong>creativity with organizational impact</strong>, these examples show that creativity drives innovation, but only <strong>with the support of leadership</strong> can it generate <strong>sustainable transformation</strong>.</p>
<p><em>“Creativity is just connecting things.” — Steve Jobs</em></p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">The Enemies of Creative Leadership</h2>
<p>Creative leadership depends not only on <strong>what we do</strong>, but also on <strong>what we avoid doing</strong>. Marshall Goldsmith, in his book <em>What Got You Here Won’t Get You There</em>, explains that many successful leaders end up blocking their teams’ creativity through unconscious habits.</p>
<p>Among the most common are:</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Wanting to Add Value to Every Idea</h3>
<p>A classic. Some leaders hear a proposal and, almost automatically, add their personal touch: <em>“That’s good, but do it this other way instead.”</em> Although it may seem helpful, <strong>the real effect is demotivating</strong>: the team feels that their ideas are never enough. As a result, people stop proposing ideas because they know their work will eventually be “improved.”</p>
<p>The <strong>antidote</strong>: acknowledge ideas without adding anything else.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Always Having the Last Word</h3>
<p>Some leaders believe their authority is reinforced by expressing an opinion at the end of every conversation. The problem is that this interrupts creative flow: the implicit message is that the decision is already made.</p>
<p>The <strong>antidote</strong>: practice active listening and create space for the team to close conversations with their own conclusions or next steps.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Holding On to Past Successes</h3>
<p><em>“We’ve always done it this way”</em> is one of the <strong>greatest enemies of innovation</strong>. Leaders who rely on past achievements <strong>tend to block disruptive ideas</strong> because they threaten the way of working that once made them successful.</p>
<p>The <strong>antidote</strong>: unlearn. Recognize that what brought us here will not necessarily take us into the future.</p>
<p>Overcoming these habits does not happen overnight, but it is possible. The first step is <strong>awareness</strong>; the second is replacing them with practices that activate <strong>motivation, creativity, and shared vision</strong>.</p>
<p>This is how the <strong>creative leadership cycle</strong> emerges: a continuous process that transforms intention into action and, like continuous improvement, is not a one-time event but an <strong>iterative journey</strong> where each step reinforces and enables the next.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">The Creative Leadership Cycle</h2>
<p>Creative leadership can be understood as a <strong>four-step cycle</strong> that continuously reinforces itself:</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">1 <span class="enum-header"></span> Motivate: The Hidden Engine of Innovation</h3>
<p>What makes someone wake up eager to work? It is not only salary, but also the passion they feel for what they do.</p>
<p>Psychologist Teresa Amabile summarizes it clearly:</p>
<p><em>“Intrinsic motivation is at the heart of creativity.”</em></p>
<p>In other words, although creativity also requires knowledge, skills, and an environment that stimulates new ideas, <strong>intrinsic motivation</strong> is the force that activates them.</p>
<p>Leaders who awaken passion and help people love what they do are <strong>leading through creativity</strong>. Pixar and IDEO demonstrate that creativity flourishes in environments where experimentation is encouraged and intrinsic motivation is protected.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">2 <span class="enum-header"></span> How Defining Problems Drives Innovation</h3>
<p>Creative leaders do not limit themselves to giving quick answers. Their greatest contribution is <strong>asking powerful questions</strong>.</p>
<p>Apollo 13 illustrates this perfectly: the famous <em>“Houston, we have a problem”</em> became more than an alarm—it became a <strong>clearly framed challenge</strong> that allowed the team to focus all of its creative energy on finding the <strong>solution</strong>.</p>
<p>IDEO, a global reference in innovation, insists that <em>“a well-defined problem is half solved.”</em></p>
<p>And if someone asked what exactly makes a good problem? As IDEO explains, <em>“it is one that invites the team to think creatively and connects innovation with real human needs”</em>—which means that, in a way, it is already halfway solved once it is properly framed.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">3 <span class="enum-header"></span> The Value of Self-Awareness in Leadership</h3>
<p>Creativity flourishes when leaders operate from their strengths and align with their values.</p>
<p>As Peter Drucker wrote in <em>Managing Oneself</em>:</p>
<p><em>“Most people think they know what they are good at. They are usually wrong.”</em></p>
<p>This is where personal reflection comes in: What legacy do I want to leave? What truly motivates me?</p>
<p>Stephen Covey proposes a powerful exercise: imagine your own funeral and think about what others would say about you. It may sound extreme, but it connects with something essential: <em>leading creatively means living and acting in alignment with the impact we want to leave.</em></p>
<p>Leaders should dedicate time to understanding themselves, exploring their <em>possible identities</em> (who they could become), and aligning their role with what truly gives them meaning. That self-awareness is what conveys authenticity and gives strength to leadership.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">4 <span class="enum-header"></span> Visions That Inspire and Mobilize</h3>
<p>Creativity needs <strong>collective direction</strong>.</p>
<p>Creative leaders not only define challenges and reinvent themselves—they also <strong>articulate a vision that brings people together</strong>.</p>
<p>Examples such as Apple’s campaign <em>“It’s not just a job, it’s leaving a mark on the world”</em> or Kennedy’s speech at Rice University <em>“We choose to do these things not because they are easy, but because they are hard”</em> show how shared vision ignites motivation and innovation.</p>
<p>To communicate that vision, both content and form matter: consistency between verbal and non-verbal language, clarity of message, and storytelling.</p>
<p><strong>A vision is not imposed—it inspires.</strong></p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Self-Management: The Root of Creative Leadership</h2>
<p>Peter Drucker warned that, in the knowledge economy, success depends less on the position we hold and more on our <strong>ability to manage ourselves internally</strong>.</p>
<p>Creative leaders who do not understand or manage themselves will struggle to inspire others.</p>
<p><em>“Success comes to those who understand their strengths, their values, and how they work best.” — Peter Drucker</em></p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Strengths and Values</h3>
<p>Creative leadership flourishes when practiced from our strengths and in alignment with our values.</p>
<p>Drucker proposed questions that remain relevant today:</p>
<ul>
<li><em>What can I contribute that others cannot?</em></li>
<li><em>Under what conditions do I perform best?</em></li>
<li><em>Are my decisions aligned with my core values?</em></li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">The Mirror Test</h3>
<p>Drucker recalled the story of a German diplomat who rejected an opportunity because he did not want to see himself as someone who compromised integrity or acted without ethics every time he looked in the mirror.</p>
<p>The lesson is clear: <strong>creative leadership is not only about innovating, but about doing so with ethics and personal coherence</strong>.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">From Self-Management to Inspiration</h3>
<p>Self-management also means asking the key question:</p>
<p><em>“What can I contribute?”</em></p>
<p>In digital transformation contexts, this question allows leaders to connect their individual contribution with collective purpose.</p>
<p>Only then does creativity become organizational impact.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Vision: From Idea to Action</h3>
<p>Creativity generates ideas but, without a vision to guide them, those ideas fade.</p>
<p>Creative leaders do not simply accumulate proposals: their real role is to give them <strong>shared meaning and mobilize people toward a possible future</strong>.</p>
<p>Jobs captured this perfectly when he said:</p>
<p><em>“Innovation distinguishes between a leader and a follower.”</em></p>
<p>A vision is not merely an inspiring speech: it is a <strong>narrative that connects ideas with concrete objectives</strong> and transforms creative energy into coordinated action.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">AI as a Mirror of Creative Leadership</h2>
<p>Artificial intelligence has fully entered organizations.</p>
<p>It can generate solutions, analyze data, and automate processes. Even models like Google Gemini or OpenAI’s ChatGPT surprise us by generating text, images, or code that appears creative.</p>
<p>But what is truly at stake is not the ability to produce more content—it is the <strong>direction, purpose, and authenticity</strong> that only human leadership can provide.</p>
<p>AI opens possibilities, but only a leader can decide what is worth pursuing and with what purpose.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Final Reflection</h2>
<p><em>“Innovation distinguishes between a leader and a follower.” — Steve Jobs</em></p>
<p>In a world accelerated by technology, only <strong>creative and inspiring leadership</strong> enables organizations not merely to survive, but to <strong>set the direction</strong>.</p>
<p>To achieve this, it is essential to <em>unlearn</em> habits that inhibit creativity and begin with deep <em>self-management and purpose</em>.</p>
<p>And if you would like to explore how creative leadership connects with real transformation, I invite you to read three essential analyses by Paradigma Digital developed by Carmen Portillo, José Antonio González, and Javier Navarro.</p>
<ul>
<li><em>People management processes: key to evolving toward adaptive organizations</em></li>
<li><em>Lead through coaching and achieve maximum performance</em></li>
<li><em>The power of effective leadership in technological transformation</em></li>
</ul>
<p>Leading today is not about managing what is already known—it is about <strong>connecting people, purpose, and transformation through creativity</strong>.</p>
<p><strong>Are you ready to do it?</strong></p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Vanessa Davo Parreño ]]>
        </dc:creator>
        <title>Cursor Tracking with GSAP: Bringing Mouse Movement to Life</title>
        <link>https://en.paradigmadigital.com/dev/cursor-tracking-gsap-bringing-mouse-movement-life/</link>
        <pubDate>Thu, 21 May 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/dev/cursor-tracking-gsap-bringing-mouse-movement-life/</guid>
        <description>Cursor tracking is one of those simple interactions that can make an interface feel much more alive. In today’s post, we explain how to implement it with GSAP, creating a smooth trail that naturally follows the mouse.
</description>
        <content:encoded>
            <![CDATA[
                <p>One of the most important aspects when designing a digital product, alongside accessibility, is the <strong>user experience</strong>. It basically defines how a person interacts with what we have built.</p>
<p><strong>And there is one thing that often makes a difference: the interface reacting</strong>. Feeling that what you do has an immediate response makes everything feel more alive and polished. It is true that adding these kinds of interactions does not always make sense, but when they are used well in the right context and at the right moment, they greatly improve the final result.</p>
<p>One of the simplest and most eye-catching effects is <strong>cursor tracking</strong>. And although it may seem complex at first glance, it is actually super easy to build.</p>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img data-src="https://www.paradigmadigital.com/assets/cms/eye_cursor_tracking_2255794f3a.gif" class="lazy-img" title="Cursor tracking" alt="eyes moving as you move the mouse, following it with their gaze"></article>
<h2 class="block block-header h--h30-15-400 left  ">What Exactly Is Cursor Tracking?</h2>
<p>Cursor tracking consists of <strong>detecting the cursor position and using it to update the position of an element on the screen</strong>.</p>
<p>From a technical perspective, it can be summarized in three steps:</p>
<ol>
<li><strong>Listen</strong> to mouse movement (<code>mousemove</code>)</li>
<li><strong>Retrieve</strong> its coordinates (<code>clientX</code>, <code>clientY</code>)</li>
<li><strong>Update the DOM</strong> using those values to create the interaction.</li>
</ol>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Basic Cursor Tracking Implementation</h2>
<p>Now let’s see how we can implement a simple cursor tracking effect. In this case, we are going to build a small trail that smoothly follows the cursor using <a href="https://gsap.com/" target="_blank">GSAP</a>, since it allows us to manage animations much more easily and efficiently than with pure CSS.</p>
<p>Here is the <a href="https://codepen.io/vanessadavo/pen/XJNbyaL" target="_blank">full example on CodePen</a>:</p>
<iframe id="" class="block block-iframe -like-text-width" src="https://codepen.io/vanessadavo/embed/XJNbyaL?default-tab=html%2Cresult" style="height:300px;  width:100%;"></iframe>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">The HTML: Preparing the Trail Elements</h3>
<p>For this effect, <strong>we need several elements</strong> that will form the trail. Each of these divs will act as a “particle” that follows the cursor position with a slight delay relative to the previous one.</p>
<pre><code class="language-html">&lt;div class=&quot;trail&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;trail&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;trail&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;trail&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;trail&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;trail&quot;&gt;&lt;/div&gt;
</code></pre>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">The CSS: Positioning and Styling</h3>
<p>Next, we give them a <strong>basic style so they behave like small dots</strong>. The most important parts here are <strong><code>position: fixed</code></strong>, so they move relative to the viewport, and <strong><code>pointer-events: none</code></strong>, so the circles do not intercept clicks intended for other buttons or links on the page.</p>
<pre><code class="language-css">body {
  height: 200vh;
  background: #111111;
  overflow: hidden;
}

.trail {
  width: 20px;
  height: 20px;
  background: #d9ed92;
  border-radius: 50%;
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
}
</code></pre>
<p>Then we are going to <strong>center the particles when the page loads</strong>. If we do not do this, the effect would suddenly start from the top-left corner of the screen (0,0) the first time we move the mouse. With <strong>gsap.set</strong>, we position them directly in the center:</p>
<pre><code class="language-javascript">// Center the particles on load to avoid the default (0,0) position
const centerX = window.innerWidth / 2;
const centerY = window.innerHeight / 2;

trails.forEach((el) =&gt; {
  gsap.set(el, {
    x: centerX,
    y: centerY
  });
});
</code></pre>
<p>It is important to mention that <strong>this is not strictly necessary</strong>. There are many ways to approach it. For example, you could hide the particles with <strong>zero opacity</strong> and make them appear only when the user moves the mouse. But in our example, since there is nothing else on the screen, it makes more sense for the elements to already be positioned and ready to react from the center.</p>
<p>Finally, we add an <strong>event listener</strong> that will detect mouse movement. On every movement, we trigger a <strong>GSAP animation for each particle</strong>:</p>
<pre><code class="language-javascript">// Cursor tracking with staggered delay to create a smooth trailing effect
window.addEventListener(&quot;mousemove&quot;, (e) =&gt; {
  trails.forEach((el, index) =&gt; {
    gsap.to(el, {
      x: e.clientX,
      y: e.clientY,
      duration: 0.2 + index * 0.05, // We use the index so each particle is slightly slower than the previous one
      ease: &quot;power2.out&quot;
    });
  });
});
</code></pre>
<p>By using the <strong>array index to calculate the duration</strong>, we make the first particle almost instantaneous while the following ones move with a slight delay. The result is that <strong>organic movement feeling</strong> that makes the effect much more visually appealing.</p>
<p><strong>Important</strong>: for this example to work correctly, we need to <strong>include GSAP in our project</strong>. We can do so by adding the following script:</p>
<pre><code class="language-none">&lt;script src=&quot;https://cdn.jsdelivr.net/npm/gsap@3.15/dist/gsap.min.js&quot;&gt;&lt;/script&gt;
</code></pre>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Advanced Cursor Tracking: Creating Eyes That Follow You</h2>
<p>We have already seen how to make something follow the cursor, but <strong>cursor tracking does not always have to involve full movement across the screen</strong>. We can use the same coordinate logic to create subtler and more playful interactions, such as eyes that follow the mouse movement.</p>
<p>In this case, instead of moving the elements themselves, we are going to <strong>calculate the angle and distance</strong> so that the pupils always stay inside the eye.</p>
<p>You can <a href="https://codepen.io/vanessadavo/pen/wBoaRjb" target="_blank">see the result on CodePen</a>:</p>
<iframe id="" class="block block-iframe -like-text-width" src="https://codepen.io/vanessadavo/embed/wBoaRjb?default-tab=html%2Cresult" style="height:300px;  width:100%;"></iframe>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">The HTML: Eye Structure</h3>
<p>For this to work, we need <strong>a container for each eye and an inner element for the pupil</strong>.</p>
<pre><code class="language-html">&lt;div class=&quot;eyes-container&quot;&gt;
  &lt;div class=&quot;eye&quot;&gt;
    &lt;div class=&quot;pupil&quot;&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&quot;eye&quot;&gt;
    &lt;div class=&quot;pupil&quot;&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
</code></pre>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">The CSS: Constraining the Movement</h3>
<p>The trick here is making sure the <strong><code>.eye</code> container has <code>overflow: hidden</code></strong>. This guarantees that, even if our calculations go beyond the limits, the pupil will never leave the white area of the eye (or, if it does exceed its container, we simply will not see it).</p>
<pre><code class="language-css">body {
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100dvh;
  background-color: #f5f5f5;
  overflow: hidden;
}

.eyes-container {
  display: flex;
  gap: 20px;
}

.eye {
  width: 100px;
  height: 100px;
  background-color: white;
  border: 4px solid #1a1a1a;
  border-radius: 50%;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.pupil {
  width: 40px;
  height: 40px;
  background-color: #1a1a1a;
  border-radius: 50%;
  position: absolute;
}
</code></pre>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">The JavaScript: A Bit of Trigonometry and GSAP</h3>
<p>This is where things get interesting. To make the eyes look toward the mouse, we need to <strong>know the angle between the center of the eye and the cursor</strong>.</p>
<p>First, we <strong>select the pupils</strong>, which are the elements we are going to move:</p>
<pre><code class="language-javascript">const pupils = document.querySelectorAll(&quot;.pupil&quot;);
</code></pre>
<p>Now we calculate the movement. <strong>Math.atan2 gives us the angle</strong>, while <strong>Math.cos / Math.sin tells us how much to move the pupil on the X and Y axes</strong> so it points in that direction:</p>
<pre><code class="language-javascript">window.addEventListener(&quot;mousemove&quot;, (e) =&gt; {
  pupils.forEach((pupil) =&gt; {


    // Get the parent eye element and its center position
    const eye = pupil.parentElement;
    const rect = eye.getBoundingClientRect();
    const eyeCenterX = rect.left + rect.width / 2;
    const eyeCenterY = rect.top + rect.height / 2;

    // Calculate the angle between the mouse and the eye center
    const angle = Math.atan2(
      e.clientY - eyeCenterY,
      e.clientX - eyeCenterX
    );

    // Define the maximum movement radius for the pupil
    const maxDistance = 25;

    // Measure mouse distance from the eye center and clamp it
    const mouseDistance = Math.hypot(
      e.clientX - eyeCenterX,
      e.clientY - eyeCenterY
    );

    const distance = Math.min(mouseDistance / 10, maxDistance);

    // Calculate pupil offset based on angle and clamped distance
    const moveX = Math.cos(angle) * distance;
    const moveY = Math.sin(angle) * distance;

    // Animate the pupil for a smooth
    gsap.to(pupil, {
      x: moveX,
      y: moveY,
      duration: 0.4,
      ease: &quot;power2.out&quot;,
      overwrite: &quot;auto&quot;
    });
  });
});
</code></pre>
<p><strong>Important</strong>: just like in the previous example, for this to work correctly we need to include GSAP in our project. We can do so by adding the following script:</p>
<pre><code class="language-none">&lt;script src=&quot;https://cdn.jsdelivr.net/npm/gsap@3.15/dist/gsap.min.js&quot;&gt;&lt;/script&gt;
</code></pre>
<p>As you have seen, once you understand <strong>how to capture mouse coordinates</strong>, the possibilities are almost endless (and I say “almost” because there will always be something slightly impossible). But with this foundation, we can go from a simple trail effect to a much more advanced animation with only a few changes in the JavaScript logic.</p>
<p>And the best thing about using <strong>GSAP</strong> for these effects is that it takes away the heavy lifting of managing frames and smoothing, allowing us to focus on what really matters: <strong>making the interaction feel natural and adding value to the user experience</strong>.</p>
<p>I hope this post helped you better understand how GSAP works and inspires you to create your own animations. Time to experiment!</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Santiago López ]]>
        </dc:creator>
        <title>Green QA Metrics: Quality That Breathes</title>
        <link>https://en.paradigmadigital.com/dev/green-qa-metrics-quality-breaths/</link>
        <pubDate>Tue, 19 May 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/dev/green-qa-metrics-quality-breaths/</guid>
        <description>Sustainability in software can also be tested. From the energy consumed by a test suite to the traceability of ESG metrics or shutting down staging environments, Green QA turns quality into a tangible driver of efficiency. We close this series by explaining the metrics and KPIs you should keep in mind.
</description>
        <content:encoded>
            <![CDATA[
                <p>With this post, we conclude the series dedicated to Green Quality Assurance. In the previous articles, we explained <a href="https://en.paradigmadigital.com/dev/what-is-green-qa-quality-that-breathes/" target="_blank">what Green QA means and its impact on companies</a> as well as a <a href="https://en.paradigmadigital.com/dev/green-qa-framework-quality-breaths/" target="_blank">possible framework for its implementation</a>.</p>
<p>Now that we already understand what this methodology is and how to implement it, the only thing left is to understand <strong>how we can measure it</strong>. In this final post, we focus on the foundation of the entire process: measurement, addressing the <strong>KPIs that can be used</strong> to turn requirements into data and to track progress as accurately as possible based on objective information.</p>
<p>It is not an easy task to have all the tools and frameworks required to perform these measurements, which is why <strong>the process is progressive and requires commitment</strong> from every member of the organization.</p>
<p>In Green QA, metrics are the thermometer of our efficiency. We do not measure for bureaucracy’s sake, but to identify <strong>“energy leaks” and “digital waste.”</strong></p>
<p>When defining the <strong>KPIs and OKRs</strong> needed to evaluate the different aspects of GQA, we grouped them into the following measurement categories:</p>
<ul>
<li>Energy and software (technical efficiency)</li>
<li>Carbon and waste (planetary impact)</li>
<li>ESG data quality (trust and compliance)</li>
<li>Operational efficiency and “Digital Waste” (process improvement)</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Energy and Software KPIs (Technical Efficiency)</h3>
<p>Here, we <strong>measure the physical effort hardware performs to run our software</strong>. The KPIs used for this area are the following:</p>
<table>
<thead>
<tr>
<th style="text-align:center">KPI</th>
<th style="text-align:center">Definition</th>
<th style="text-align:center">Suggested Tool</th>
<th style="text-align:center">Technical Metric</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">QA Energy Intensity</td>
<td style="text-align:center">Energy consumed per execution of the test suite.</td>
<td style="text-align:center">Scaphandre (via Prometheus)</td>
<td style="text-align:center">kWh \Tests</td>
</tr>
<tr>
<td style="text-align:center">Green Code Quality</td>
<td style="text-align:center">Detection of inefficient code patterns (loops, API calls).</td>
<td style="text-align:center">SonarQube (Eco-Code)</td>
<td style="text-align:center"># of Green Smells</td>
</tr>
<tr>
<td style="text-align:center">Idle Energy Rate</td>
<td style="text-align:center">Energy consumed by Staging environments while not being tested.</td>
<td style="text-align:center">AWS CCFT / Azure Dashboards</td>
<td style="text-align:center">Idle kWh</td>
</tr>
<tr>
<td style="text-align:center">CPU, Memory, and Idle Cycles</td>
<td style="text-align:center">Physical resource usage during the test lifecycle.</td>
<td style="text-align:center">Prometheus / Netdata</td>
<td style="text-align:center">% CPU + % RAM) \Idle Time</td>
</tr>
<tr>
<td style="text-align:center">Frontend Efficiency</td>
<td style="text-align:center">Carbon footprint generated on the end-user device.</td>
<td style="text-align:center">GreenFrame.io / Lighthouse</td>
<td style="text-align:center">gCO2 per session</td>
</tr>
</tbody>
</table>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Carbon and Waste KPIs (Planetary Impact)</h3>
<p>We transform <strong>watts into real environmental impact</strong>. The KPIs used for this area are the following:</p>
<table>
<thead>
<tr>
<th style="text-align:center">KPI</th>
<th style="text-align:center">Definition</th>
<th style="text-align:center">Suggested Tool</th>
<th style="text-align:center">Technical Metric</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">Release Carbon Footprint</td>
<td style="text-align:center">CO2 emissions generated by deploying a new version.</td>
<td style="text-align:center">Cloud Carbon Footprint</td>
<td style="text-align:center">gCO2 per release</td>
</tr>
<tr>
<td style="text-align:center">Compute Efficiency (LCA)</td>
<td style="text-align:center">Environmental impact of QA hardware (manufacturing + usage).</td>
<td style="text-align:center">SimaPro / GaBi</td>
<td style="text-align:center">Hardware Carbon Debt</td>
</tr>
<tr>
<td style="text-align:center">Annual Reduction Rate</td>
<td style="text-align:center">Emission savings compared to the previous period.</td>
<td style="text-align:center">Watershed / Persefoni</td>
<td style="text-align:center">% Annual Reduction</td>
</tr>
<tr>
<td style="text-align:center">Hardware Circularity Index</td>
<td style="text-align:center">% of testing devices reused, repaired, or recycled.</td>
<td style="text-align:center">Internal ERP / Snipe-IT</td>
<td style="text-align:center">Refurbished Equipment\Total</td>
</tr>
<tr>
<td style="text-align:center">Compliance Deviation Rate</td>
<td style="text-align:center">Releases exceeding the established carbon budget.</td>
<td style="text-align:center">Jenkins / GitHub Actions</td>
<td style="text-align:center"># Blocked Releases</td>
</tr>
</tbody>
</table>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">ESG Data Quality KPIs (Trust and Compliance)</h3>
<p>If sustainability data is unreliable, the strategy fails. The KPIs used to measure this area are the following:</p>
<table>
<thead>
<tr>
<th style="text-align:center">KPI</th>
<th style="text-align:center">Definition</th>
<th style="text-align:center">Suggested Tool</th>
<th style="text-align:center">Technical Metric</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">ESG Data Health Index</td>
<td style="text-align:center">% of sustainability data that is auditable and real.</td>
<td style="text-align:center">Persefoni / Plan A</td>
<td style="text-align:center">Verifiable Data \Total</td>
</tr>
<tr>
<td style="text-align:center">% of Auditable ESG Data</td>
<td style="text-align:center">Proportion of QA metrics with verifiable technical evidence.</td>
<td style="text-align:center">MS Sustainability Manager</td>
<td style="text-align:center">Auditable Metrics\Total</td>
</tr>
</tbody>
</table>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Operational Efficiency and “Digital Waste” KPIs (Process Improvement)</h3>
<p>It is not enough for a test to consume little; the key is <strong>not executing what is unnecessary</strong>. Digital waste is silent pollution. The data used to measure this area includes the following:</p>
<table>
<thead>
<tr>
<th style="text-align:center">KPI</th>
<th style="text-align:center">Definition</th>
<th style="text-align:center">Suggested Tool</th>
<th style="text-align:center">Technical Metric</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center"><br>“Zombie Tests” Rate</td>
<td style="text-align:center">% of automated tests that run but provide no value (duplicated tests, tests that always pass without validating real logic, or tests for deprecated functionality).</td>
<td style="text-align:center"><br>Manual</td>
<td style="text-align:center"><br>Zombie Tests / Total</td>
</tr>
<tr>
<td style="text-align:center">Test Data Density</td>
<td style="text-align:center">Measures the size of datasets used. Do we really need a 1TB database for an integration test, or can we use smart subsetting? Less storage = less server energy consumption.</td>
<td style="text-align:center"><br>Manual</td>
<td style="text-align:center"><br>Used Data / Total</td>
</tr>
<tr>
<td style="text-align:center">Time-to-Feedback</td>
<td style="text-align:center">The longer a pipeline takes to fail, the more resources (cloud compute minutes) are wasted. Optimizing execution order to fail fast is an energy-saving strategy.</td>
<td style="text-align:center"><br>Manual</td>
<td style="text-align:center"><br>Optimized Pipelines / Total</td>
</tr>
</tbody>
</table>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Standards and Compliance</h2>
<p>It is not enough to “be green”; <strong>you must prove it</strong> to international regulators. Green QA is the final filter ensuring that a company does not incur legal risks by reporting inaccurate data.</p>
<p>In the previous post, we discussed <a href="https://en.paradigmadigital.com/dev/green-qa-framework-quality-breaths/" target="_blank">legal aspects where applying Green QA within a company is beneficial</a>. Here, we will look at <strong>how to ensure compliance through data</strong> and how to verify whether the quality process we followed <strong>has contributed to regulatory compliance</strong> using the KPIs defined above.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">CSRD (EU Directive) + ESRS</h3>
<p>The CSRD (Corporate Sustainability Reporting Directive) is the <strong>European regulation</strong> (in force since 2024) that <strong>requires large companies and publicly traded organizations to report detailed sustainability information under Environmental, Social, and Governance (ESG) criteria</strong>.</p>
<p>In Spain, the Corporate Sustainability Reporting Bill was approved on October 29, 2024, as a transposition of the CSRD. The <strong>ESRS</strong> (European Sustainability Reporting Standards) are the <strong>mandatory technical standards for complying with the CSRD</strong>.</p>
<p>From a QA perspective, we can <strong>audit sustainability data</strong>. Here, Green QA acts as the “Data Auditor.” It must <strong>ensure that ESG data</strong> (such as server consumption in Staging) is not based on rough estimates but has <strong>technical traceability</strong>. If reporting software fails, the company may face sanctions for <em>Greenwashing</em>. We can use the following checklist to verify compliance:</p>
<ul>
<li><strong>Data traceability</strong>. Is it possible to trace emission data from the original sensor/log to the final report without manual alterations?</li>
<li><strong>ESG API validation</strong>. Has the integration with Cloud providers (AWS/Azure/GCP) been tested to ensure consumption data is extracted without loss?</li>
<li><strong>Auditability</strong>. Does the QA metric include verifiable technical evidence for external audits?</li>
<li><strong>Accuracy vs. estimation</strong>. Have generic estimates been replaced with real hardware consumption data whenever possible?</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">GHG Protocol (Scope 3 - Software)</h3>
<p>The GHG Protocol (Scope 3) is the <strong>most widely used global standard for measuring and reporting indirect greenhouse gas emissions</strong> (GHG) occurring across a company’s value chain, excluding purchased energy emissions (Scope 2).</p>
<p>From a QA perspective, it is necessary to <strong>validate that third-party tools</strong> (testing SaaS platforms, CDNs, paid APIs) <strong>provide real emissions data</strong>. Quality Gates can be created to block deployments if the “carbon budget” of a microservice exceeds protocol limits. We can use the following checklist to verify compliance:</p>
<ul>
<li><strong>Footprint calculation</strong>. Have updated CO2 conversion factors been applied to the energy consumed during deployment?</li>
<li><strong>Supplier filtering</strong>. Has it been verified that partners (testing SaaS platforms, CDNs) hold ISO 14001 or Energy Star certifications?</li>
<li><strong>Carbon budget</strong>. Does the current release remain within the established emissions limit compared to the previous period?</li>
<li><strong>Formula validation</strong>. Have unit tests been performed on emissions calculation formulas to ensure mathematical accuracy?</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">ISO/IEC 21031 (Software Carbon Intensity - SCI)</h3>
<p>This is the Unit Testing of the carbon footprint. It is an <strong>international standard for calculating software carbon intensity (SCI)</strong>.</p>
<p>The role of Green QA here is to <strong>integrate carbon footprint measurement into the testing pyramid</strong>. Just as we validate response times, QA validates the energy cost per transaction. If a database change increases CPU cycles, QA acts as the gatekeeper preventing that “energy waste” from reaching production.</p>
<ul>
<li><strong>Intensity analysis</strong>. Has kWh consumption been measured for each test suite execution?</li>
<li><strong>CPU optimization</strong>. Does the code avoid unnecessary cycles or “Green Smells” (infinite loops, redundant API calls)?</li>
<li><strong>Headless testing</strong>. Have tests been run in headless mode to reduce the energy consumed by graphical rendering?</li>
<li><strong>Idle Energy validation</strong>. Has it been verified that Staging environments shut down or auto-scale to zero after execution?</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Consumer Empowerment Directive (Anti-Greenwashing)</h3>
<p>The <strong>EU is banning generic environmental claims without evidence</strong> (“100% eco-friendly software”). From a QA perspective, evidence must be certified. If marketing claims the app consumes 30% less battery, QA should have run energy regression tests (using tools such as GreenFrame or Lighthouse) that <strong>support the claim with empirical and repeatable data</strong>.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Web Accessibility (WAD / WCAG) as Sustainability</h3>
<p>There is a direct correlation: <strong>an accessible and lightweight website is also a low-consumption website</strong>. From a QA perspective, the DOM must be validated for efficiency. Fewer unnecessary elements and redundant requests mean fewer CPU cycles on the client device. Here, QA combines social impact (inclusion) with environmental impact (efficiency).</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Carbon Footprint Measurement Table</h2>
<p>At this stage, we present a table with useful data commonly used to <strong>automate carbon footprint calculations</strong>. These values evolve as technologies improve and become more efficient, so they should be considered estimates.</p>
<table>
<thead>
<tr>
<th style="text-align:center">QA / IT Activity</th>
<th style="text-align:center">Estimated Consumption / Emissions</th>
<th style="text-align:center">CO2e Equivalent</th>
<th style="text-align:center">Visual Impact</th>
<th style="text-align:center">Source</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">EC2 Instance (AWS m5.large) - 24h</td>
<td style="text-align:center">~0.105 kWh</td>
<td style="text-align:center">~2.52 kg CO2</td>
<td style="text-align:center">Charging a smartphone 300 times.</td>
<td style="text-align:center">AWS Customer Carbon Footprint Tool</td>
</tr>
<tr>
<td style="text-align:center">Azure VM (D2s v3) - 24h</td>
<td style="text-align:center">~0.088 kWh</td>
<td style="text-align:center">~2.10 kg CO2</td>
<td style="text-align:center">10 cold-water laundry cycles.</td>
<td style="text-align:center">Azure Emissions Impact Dashboard</td>
</tr>
<tr>
<td style="text-align:center">Cloud SQL / BigQuery (1h)</td>
<td style="text-align:center">~0.008 kWh</td>
<td style="text-align:center">~0.18 kg CO2</td>
<td style="text-align:center">Watching 4 hours of HD streaming.</td>
<td style="text-align:center">Google Cloud Carbon Footprint</td>
</tr>
<tr>
<td style="text-align:center">S3 Storage (1 TB/month)</td>
<td style="text-align:center">~0.05 kWh</td>
<td style="text-align:center">~0.12 kg CO2</td>
<td style="text-align:center">Driving 0.5 km in a gasoline car.</td>
<td style="text-align:center">Cloud Carbon Footprint Methodology</td>
</tr>
<tr>
<td style="text-align:center">Smartphone Usage (1h testing)</td>
<td style="text-align:center">~0.00077 kWh</td>
<td style="text-align:center">~5.8g CO2</td>
<td style="text-align:center">Keeping an LED bulb on for 45 minutes.</td>
<td style="text-align:center">ADEME / Scope3 Lifecycle Data</td>
</tr>
<tr>
<td style="text-align:center">Tablet Usage (1h testing)</td>
<td style="text-align:center">~0.003 kWh</td>
<td style="text-align:center">~2.9g CO2</td>
<td style="text-align:center">Similar to 1 hour of portable radio usage.</td>
<td style="text-align:center">ADEME “Numérique 2.0” (2025)</td>
</tr>
<tr>
<td style="text-align:center">AI Query (LLM / Gemini)</td>
<td style="text-align:center">~0.003 kWh</td>
<td style="text-align:center">~0.15g - 0.75g CO2</td>
<td style="text-align:center">50-90 times more than a search engine query.</td>
<td style="text-align:center">Joule / ITU-WBA Report 2025</td>
</tr>
<tr>
<td style="text-align:center">Smartphone Manufacturing (embedded)</td>
<td style="text-align:center">N/A</td>
<td style="text-align:center">~50 kg CO2 / year</td>
<td style="text-align:center">Emissions equivalent to producing 250 hamburgers.</td>
<td style="text-align:center">Öko-Institut (Life Cycle Study)</td>
</tr>
<tr>
<td style="text-align:center">1 Hour of Cloud Server Usage (standard)</td>
<td style="text-align:center">0.5 kWh</td>
<td style="text-align:center">~125g CO2</td>
<td style="text-align:center">Charging a smartphone 15 times.</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">Suite of 1,000 Automated Tests</td>
<td style="text-align:center">2.5 kWh</td>
<td style="text-align:center">~625g CO2</td>
<td style="text-align:center">Driving a gasoline car for 2.5 km.</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">Staging Environment Running (24h)</td>
<td style="text-align:center">12 kWh</td>
<td style="text-align:center">~3 kg CO2</td>
<td style="text-align:center">The amount of CO2 absorbed by 0.15 trees in a year.</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">Storing 1 TB of Logs/Data (1 month)</td>
<td style="text-align:center">10 kWh</td>
<td style="text-align:center">~2.5 kg CO2</td>
<td style="text-align:center">Keeping an LED bulb on for 4 months.</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusions</h2>
<p>Throughout this three-part series on Green Quality Assurance, we have explored the <strong>possibilities within the technology world</strong>, and specifically within the software industry, to take action and improve energy efficiency.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ María Mira ]]>
        </dc:creator>
        <title>Why Strategy Breaks Down When It Reaches Operations: 3 Systemic Barriers No Spreadsheet Can Detect and How to Overcome Them</title>
        <link>https://en.paradigmadigital.com/organizational-transformation-rev/why-srategy-breaks-down-when-it-reaches-operations/</link>
        <pubDate>Thu, 14 May 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://en.paradigmadigital.com/organizational-transformation-rev/why-srategy-breaks-down-when-it-reaches-operations/</guid>
        <description>Strategy rarely breaks because of a lack of vision. It breaks when it reaches day-to-day operations, where three invisible barriers appear: uncertainty, misaligned incentives, and workflow bottlenecks that no Excel sheet can reveal. Today, we’ll explain what you need to keep in mind to work in a truly productive environment.
</description>
        <content:encoded>
            <![CDATA[
                <p>When strategic plans fail, it is rarely due to a lack of vision. In fact, <strong>the data speaks for itself</strong>: while a global report by <a href="https://www.pmi.org/learning/thought-leadership/series/pmo/c-suite-failing-strategiy-lessons" target="_blank">The Economist Intelligence Unit and the Project Management Institute (PMI)</a> points out that 61% of companies admit they are unable to close the gap between strategy and real day-to-day execution, a recent publication from <a href="https://www.cio.com/article/4160977/beyond-the-25-reasons-projects-fail.html" target="_blank">CIO Magazine (April, 2026)</a>, supported by Gartner data from 2024, reveals that only 48% of corporate initiatives actually achieve their business objectives.</p>
<p>This happens mainly because of what we could call a kind of <strong>“systemic blindness.”</strong> When you look at the company from the Executive Committee table, everything seems like a perfect, clean, and organized org chart. Operational reality, however, is a <strong>complex network of human and technical interdependencies</strong>. Trying to manage deep change based only on the org chart is, essentially, managing an illusion.</p>
<p>If we truly want to connect strategy with day-to-day execution and protect the benefits of a successful transformation, we need to look at <strong>three invisible dimensions</strong> that very few people take into account. They don’t appear in financial reports, yet they are the forces that either drive or block a company’s progress:</p>
<ol>
<li><strong>Cognitive dimension</strong>: the available mental and emotional capacity of your team.</li>
<li><strong>Structural dimension</strong>: the real rules of the game (such as incentives and interactions between people and departments) beyond job titles.</li>
<li><strong>Flow dimension</strong>: the real path that value follows, regardless of hierarchy.</li>
</ol>
<p>Let’s see how these invisible barriers can block execution through real-world examples.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">1 <span class="enum-header"></span> Cognitive barrier: the hidden cost of uncertainty</h2>
<p>This dimension refers to the organization’s <strong>“mental bandwidth.”</strong> Think about it: if professionals spend their energy surviving fear or uncertainty, biologically they no longer have the resources to innovate or think long term.</p>
<p>Let’s take a typical example. Imagine a company announcing a merger or restructuring with the promise of “becoming more agile.” Months go by, and nobody knows exactly what their role is, whether their manager will remain the same, or whether their position is at risk because it overlaps with someone else’s.</p>
<p>Leadership reviews employee profiles and thinks: <em>“We have the best talent in the market, why is there so much resistance and so little proactivity?”</em></p>
<p>This is not an attitude problem—it’s pure biology. The <strong>human brain processes social uncertainty as if it were a physical threat</strong>. Different studies and research projects have addressed this issue and reached the following <strong>conclusions</strong>:</p>
<ul>
<li>High performance collapses without psychological safety (as demonstrated by Google’s famous <a href="https://www.google.com/search?q=https://rework.withgoogle.com/print/guides/5721312655835136/" target="_blank">Project Aristotle</a>).</li>
<li>Living under the stress of uncertainty can reduce functional IQ by around 13 points (according to the research of <a href="https://scholar.harvard.edu/sendhil/scarcity" target="_blank">Mullainathan and Shafir - Harvard/Princeton</a>).</li>
</ul>
<p>Let’s also add, although we won’t solve it here, the issue of <a href="https://www.paradigmadigital.com/techbiz/podcast-puede-ia-aumentar-inteligencia-humana-riesgos-limites-oportunidades/" target="_blank">how AI can help or limit human intelligence</a> and the uncertainty this is generating.</p>
<h2 class="block block-header h--h20-175-500 left  ">How can we overcome it?</h2>
<p>By understanding <strong>psychological safety</strong> as a form of <strong>risk management</strong> to protect the team’s intelligence—not as a matter of “being nice.” And yes, it can be measured by going beyond classic performance KPIs and starting to use <strong>Key Behaviour Indicators (KBIs)</strong>: indicators that measure real behaviors, such as how often teams report errors without fear (directly linked to psychological safety) or how much collaboration exists between departments. This allows us to visualize what drives success and what needs improvement.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">2 <span class="enum-header"></span> Structural barrier: the trap of local optimization</h2>
<p>This dimension is about <strong>how interactions and incentives are designed</strong> between the boxes of the org chart—not about how those boxes are drawn.</p>
<p>Imagine the classic end-of-quarter scenario. Sales leadership has a bonus tied to sales volume. Meanwhile, technology/operations leadership has its own incentives tied to stability and cost reduction. <strong>The result?</strong> Sales closes contracts by promising highly customized solutions that require massive amounts of work in order to hit quota. Meanwhile, Operations slows down deployments or limits customizations to reduce costs and meet its own targets.</p>
<p>The outcome is that both departments strictly meet their individual goals or KPIs, but customers don’t receive what they expected, the company loses money, teams waste time and effort, and everyone spends an immeasurable amount of time looking for someone to blame.</p>
<p>As <a href="https://thesystemsthinker.com/a-lifetime-of-systems-thinking/" target="_blank">Russell Ackoff</a> explained, organizations frequently fall into the trap of local optimization: <strong>when you improve the individual parts separately, you often end up destroying the performance of the whole</strong>.</p>
<h2 class="block block-header h--h20-175-500 left  ">How can we overcome it?</h2>
<p>By <strong>redesigning interactions</strong>: as long as incentives reward vertical silos, collaborative ways of working and agile methodologies will struggle to succeed. Here, the role of the C-Level must include, among other responsibilities, <strong>redesigning how different areas interact</strong> rather than evaluating each area’s performance in isolation.</p>
<p>This requires <strong>goals that directly impact the entire company</strong>, making Sales and Operations (in this case) work together to achieve them. Shared goals where people win—or lose—together.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">3 <span class="enum-header"></span> Flow barrier: what you can’t see is costing you money</h2>
<p>This dimension focuses on the <strong>difference between “busy people” and “completed work.”</strong></p>
<p>Imagine a scenario where everyone around you is constantly busy, overwhelmed with tasks: every calendar is packed and people are operating at 100% capacity. Yet a key initiative takes 12 months to reach the market. Sound familiar? And then the inevitable question arises: <em>“How can it take this long when everyone is working so hard?”</em></p>
<p>The reality is that <strong>value</strong> does not move when people work; <strong>it moves when work flows</strong>. In most companies, tasks spend a significant amount of time sitting in “invisible queues” (waiting for budget approval, waiting for validation, waiting for a testing environment, etc.).</p>
<h2 class="block block-header h--h20-175-500 left  ">How can we overcome it?</h2>
<p>By using Value Stream Management (VSM). Think of it as an “X-ray layer” that ignores hierarchy and visualizes the flow of work and information until it becomes value. As <a href="https://flowframework.org/" target="_blank">Mik Kersten explains in Project to Product</a>, by managing flow instead of isolated projects, you eliminate the waiting times that no org chart is capable of revealing.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusion: from control to architecture</h2>
<p>There is a traditional inertia in the business world: when something fails, we tend to blame people and try to “fix” them with more pressure or more training. But <a href="https://deming.org/quotes/i-should-estimate-that-in-my-experience-most-troubles-and-most-possibilities-for-improvement-add-up-to-the-proportions-something-like-this94-belongs-to-the-system-responsibility-of-management6-sp-3/" target="_blank">W. Edwards Deming</a> already demonstrated with his <strong>94/6 Rule</strong> that 94% of problems belong to the system and only 6% to the individual.</p>
<p>The organizations leading the market today focus on <strong>“architecting the environment.”</strong> Taking <a href="https://en.paradigmadigital.com/organizational-transformation-rev/importance-warm-data-change-optimization-processes/" target="_blank">warm data into account in change and optimization processes</a> can contribute to more robust organizational evolution.</p>
<h2 class="block block-header h--h20-175-500 left  ">And what does “architecting the environment” mean?</h2>
<p>It means <strong>deliberately designing a work ecosystem</strong> where “doing the right thing” becomes the easiest option. In this way:</p>
<ul>
<li>Collective intelligence is protected (Neuroscience).</li>
<li>Incentives and ways of working are aligned to encourage collaboration (Systems Thinking).</li>
<li>Obstacles are removed so work can flow (VSM).</li>
</ul>
<p>As <a href="https://teamtopologies.com/key-concepts" target="_blank">Skelton and Pais explain in Team Topologies</a>, competitive advantage no longer belongs to those who pressure their teams the most, but to <strong>those who design better systems</strong>.</p>
<p>The question that remains is: <strong>are we managing people, or are we designing the system for success?</strong></p>
<p><strong>References</strong></p>
<ul>
<li><a href="https://www.pmi.org/learning/thought-leadership/series/pmo/c-suite-failing-strategiy-lessons" target="_blank">PMI-The Economist (2013)</a>. Why good strategies fail: Lessons for the C-suite.</li>
<li><a href="https://www.cio.com/article/4160977/beyond-the-25-reasons-projects-fail.html" target="_blank">CIO Magazine</a> (April, 2026).</li>
<li><a href="https://www.google.com/search?q=https://rework.withgoogle.com/print/guides/5721312655835136/" target="_blank">Google re:Work - Project Aristotle</a>.</li>
<li><a href="https://scholar.harvard.edu/sendhil/scarcity" target="_blank">Mullainathan, S., &amp; Shafir, E. (2013)</a>. Scarcity: Why Having Too Little Means So Much.</li>
<li><a href="https://thesystemsthinker.com/a-lifetime-of-systems-thinking/" target="_blank">Ackoff, R. L. (1994)</a>. The Democratic Corporation. Oxford Univ. Press.</li>
<li><a href="https://flowframework.org/" target="_blank">Kersten, M. (2018)</a>. Project to Product. IT Revolution.</li>
<li><a href="https://en.paradigmadigital.com/organizational-transformation-rev/importance-warm-data-change-optimization-processes/" target="_blank">Deming, W. E. (1986)</a>. Out of the Crisis. MIT Press.</li>
<li><a href="https://teamtopologies.com/key-concepts" target="_blank">Skelton, M., &amp; Pais, M. (2019)</a>. Team Topologies.</li>
</ul>

            ]]>
        </content:encoded>
    </item>
</channel>
</rss>
