<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Thoughtworks on Medium]]></title>
        <description><![CDATA[Stories by Thoughtworks on Medium]]></description>
        <link>https://medium.com/@thoughtworks?source=rss-8075bdd73dd9------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*-W-ozblVdCGo11Rdmx4Ugg.jpeg</url>
            <title>Stories by Thoughtworks on Medium</title>
            <link>https://medium.com/@thoughtworks?source=rss-8075bdd73dd9------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 19 Jun 2026 00:19:09 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@thoughtworks/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Key themes in Technology Radar Vol.34]]></title>
            <link>https://thoughtworks.medium.com/key-themes-in-technology-radar-vol-34-44e5661f53a1?source=rss-8075bdd73dd9------2</link>
            <guid isPermaLink="false">https://medium.com/p/44e5661f53a1</guid>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[generative-ai-consulting]]></category>
            <category><![CDATA[ai-that-works]]></category>
            <category><![CDATA[technology-radar]]></category>
            <category><![CDATA[cognitive-debt]]></category>
            <dc:creator><![CDATA[Thoughtworks]]></dc:creator>
            <pubDate>Mon, 20 Apr 2026 07:42:28 GMT</pubDate>
            <atom:updated>2026-04-20T07:42:28.127Z</atom:updated>
            <content:encoded><![CDATA[<p>Podcast host <strong>Ken Mugrage</strong> | Podcast guest <strong>Alessio Ferri</strong> <strong>and Jim Gumbley</strong></p><h3>Listen to the podcast on the Thoughtworks Technology Podcast episode.</h3><p>In April 2026 we published a new edition of the Thoughtworks Technology Radar — volume 34. Like many recent volumes, this one was dominated by AI. However, while editions over the last couple of years have illustrated the dizzying proliferation of AI-related technologies, vol.34 indicates a degree of evolution in the field, demonstrated by a focus on consistency, reliability and mitigating the collaborative and individual challenges of working with AI. This is reflected in the four themes identified for this Radar: the challenge of evaluating technology in an agentic world; retaining principles, relinquishing patterns; securing permission-hungry agents; putting coding agents on a leash.</p><p>On this special Technology Radar episode of the Technology Podcast, host Ken Mugrage is joined by Alessio Ferri and Jim Gumbley to discuss the key themes in Technology Radar Vol.34. Diving into topics ranging from cognitive debt, harness engineering and the lethal trifecta, listen to gain a deeper understanding not just of the latest Radar but, more importantly, what AI-assisted and agentic software engineering really looks like today.</p><p><strong>Read the latest volume of the </strong><a href="https://www.thoughtworks.com/radar"><strong>Thoughtworks Technology Radar</strong></a><strong>.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=44e5661f53a1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Macro trends in the tech industry | April 2026]]></title>
            <link>https://thoughtworks.medium.com/macro-trends-in-the-tech-industry-april-2026-b45422a943df?source=rss-8075bdd73dd9------2</link>
            <guid isPermaLink="false">https://medium.com/p/b45422a943df</guid>
            <category><![CDATA[llm-applications]]></category>
            <category><![CDATA[software-industry-trends]]></category>
            <category><![CDATA[technology-radar]]></category>
            <category><![CDATA[generative-ai-consulting]]></category>
            <category><![CDATA[cognitive-debt]]></category>
            <dc:creator><![CDATA[Thoughtworks]]></dc:creator>
            <pubDate>Thu, 16 Apr 2026 12:35:38 GMT</pubDate>
            <atom:updated>2026-04-16T12:35:38.031Z</atom:updated>
            <content:encoded><![CDATA[<p>By <a href="https://www.thoughtworks.com/profiles/r/richard-gall"><strong>Richard Gall</strong></a></p><p>The last few editions of the <a href="https://www.thoughtworks.com/radar">Technology Radar</a> have captured relentless AI-accelerated change in the industry. However, while recent volumes have reflected the astounding energy of the field, from the proliferation of new tools to the almost monthly emergence of new terms and concepts, volume 34 is different: it highlights a level of maturity, a moving away from endless experimentation to a desire for repeatability and stability and something cognitively manageable.</p><p>However, this isn’t to say things are stabilizing: the macro trends in the tech industry reflected in volume 34 all speak to unresolved tensions — reliability and AI’s unpredictability, AI-acceleration and developer experience and past and future practices.</p><h3>Searching for consistency and reliability</h3><p>Consistency and reliability have always been significant concerns in AI. However, in the early part of 2026 they appear to have shifted from one of many issues to one of the most critical. Perhaps driven by increasing adoption and the step change in capabilities we witnessed at the end of 2025, the best evidence of this is the emergence of the term ‘harness engineering’ in recent months.</p><h3>Harness engineering</h3><p>Broadly speaking, <a href="https://martinfowler.com/articles/exploring-gen-ai/harness-engineering-memo.html">harness engineering</a> refers to the infrastructure, constraints and feedback loops that wrap around AI agents to improve their reliability. Part of this is an extension or evolution of spec-driven development (SDD); one of the ways in which we can harness agents is by using SDD frameworks such as <a href="http://www.thoughtworks.com/radar/tools/openspec">OpenSpec</a> and <a href="http://www.thoughtworks.com/radar/languages-and-frameworks/github-spec-kit">GitHub SpecKit</a> to provide guardrails and structured workflows.</p><p>However, it also goes beyond this to consider the ways in which agents ‘learn’ and self-correct. In this edition we featured something called the ‘<a href="http://www.thoughtworks.com/radar/techniques/feedback-flywheel">feedback flywheel</a>’, which essentially adds a further step to the spec → plan → implement flow typical in SDD aimed at iteratively improving the coding agent. It’s worth flagging a number of techniques here including <a href="http://www.thoughtworks.com/radar/techniques/feedback-sensors-for-coding-agents">feedback sensors for coding agents</a> to reduce the manual review burden and provide agentic systems with the capacity to improve themselves.</p><h3>Sandboxing</h3><p>This apparent desire for increased reliability arguably suggests a growing awareness of the many risks associated with AI and agent assistants in software engineering. However, while we welcome the expansion of risk-aware practices like <a href="http://www.thoughtworks.com/radar/techniques/sandboxed-execution-for-coding-agents">sandboxing coding agents</a>, demonstrated in blips on this Radar including <a href="http://www.thoughtworks.com/radar/tools/dev-containers">Dev Containers</a> and <a href="http://www.thoughtworks.com/radar/platforms/sprites">Sprites</a>, it would be wrong to think there’s been an industry about-face. There’s certainly lots of high-risk experimentation happening, including <a href="http://www.thoughtworks.com/radar/techniques/coding-agent-swarms">agent coding swarm</a> projects like Steve Yegge’s Gastown. While these are intriguing and may offer insight for the future of software engineering, as we note in this volume, these need to be approached with caution.</p><p>It’s also worth noting the importance of agent durability in the context of reliability. We’ve noticed that <a href="http://www.thoughtworks.com/radar/techniques/ignoring-durability-in-agent-workflows">ignoring agent durability</a> is a bit of an antipattern, with teams successfully developing agent workflows only to find they fail when deployed to production in complex distributed systems. Bringing durable computing approaches and tools such as Golem and Temporal to bear on these use cases can help minimize the risks of execution failures.</p><h3>Rethinking developer experience and productivity</h3><p>Many of the practices that grapple with AI reliability are closely related to the question of the role of the developer in the software development process: where should the humans have control? What needs to be reviewed? What needs to be iterated manually and what can be automated?</p><p>One of the things that’s becoming clear is that ‘agentic’ coding poses challenges for developer experience. This is something we’ve been thinking about a lot at Thoughtworks; indeed, even before we began putting this volume of the Radar together, the potential for AI workflows to degrade developer experiences, leading to a divergence between productivity and personal flow and satisfaction, was a significant topic of discussion at Martin Fowler’s <a href="https://www.thoughtworks.com/about-us/events/the-future-of-software-development">Future of Software Development Retreat</a>.</p><h3>Measuring the right things</h3><p>Undoubtedly some of the challenges are cultural, informed by misunderstandings of what AI can and cannot do. For instance, despite long-running discussion on this topic, we thought it was still important to caution against using <a href="http://www.thoughtworks.com/radar/techniques/coding-throughput-as-a-measure-of-productivity">coding throughput as a measure of productivity</a>. As an alternative we suggest <a href="http://www.thoughtworks.com/radar/techniques/measuring-collaboration-quality-with-coding-agents">measuring collaboration quality with coding agents</a> using metrics such as iteration cycles per task, post-merge rework and failed builds. This shifts the focus in a way that ensures developers are focusing on the right things and should ultimately lead to higher quality software being delivered.</p><h3>MCP scepticism and the return to the command line</h3><p>One of the major shifts in the experience of developing with AI is the shift away from MCP. While it was hailed as a game-changer 12 months ago, in many instances it isn’t necessary, which is why we’ve cautioned against <a href="http://www.thoughtworks.com/radar/techniques/mcp-by-default">MCP by default</a>. This isn’t to say it shouldn’t ever be used but instead that there are often more appropriate approaches that avoid what Justin Poehnelt calls ‘<a href="https://justin.poehnelt.com/posts/mcp-abstraction-tax/">the abstraction tax</a>’.</p><p>Interestingly, it appears reservations around MCP have led to a return to the command line. One of the reasons for this is <a href="http://www.thoughtworks.com/radar/techniques/agent-skills">Agent Skills</a>, an open standard that packages instructions, executable scripts and other associated resources to modularize and progressively disclose context to coding agents. This means that rather than interfacing with an MCP server, a given skill can be called in the command line. In addition to Agent Skills is the <a href="http://www.thoughtworks.com/radar/tools/claude-code-plugin-marketplace">Claude Code plugin marketplace</a> which we’ve found is significantly improving the developer experience and collaboration; workflows and other resources can be easily synced with the CLI.</p><h3>The importance of older and established practices</h3><p>The return to the command line points to another trend we noticed during Radar discussions: persistence or re-emergence of older and established technologies and practices.</p><p>To a certain extent this is a corrective to the period of novelty and experimentation we’ve been living through; when things are constantly changing, ensuring there are robust and even familiar foundations takes on even greater importance. Measuring the right things is something we’ve already discussed; we wanted to emphasize how critical this is by placing the <a href="http://www.thoughtworks.com/radar/techniques/dora-metrics">DORA metrics</a> on this edition of the Radar. Yes, they’re almost as old as the Technology Radar itself (introduced more than a decade ago), but they have a vital role to play in helping teams ensure they’re focusing on what’s most critical even when practices and technology shapes are continually evolving. We even noted in the write up for that particular blip that using the DORA metrics effectively doesn’t require sophisticated and complex tracking and dashboards; if anything these can be a distraction, and, as we write, “simple mechanisms, such as check-ins during retrospectives” can be much more powerful.</p><p>Another established technique that we’ve featured in this volume of the Radar is zero trust architecture. First appearing on the Radar in May 2020 and moved to Adopt in October 2021, we wanted to bring attention to it half a decade later. “Principles such as ‘never trust, always verify,’ along with identity-based security and least-privilege access, should be treated as foundational for any agent deployment,” we write.</p><p>We also talked a lot about testing too, this time discussing <a href="http://www.thoughtworks.com/radar/techniques/mutation-testing">mutation testing</a> and building on last edition’s mention of <a href="http://www.thoughtworks.com/radar/techniques/fuzz-testing">fuzz testing</a> by featuring <a href="http://www.thoughtworks.com/radar/tools/wuppiefuzz">WuppieFuzz</a>. These techniques certainly aren’t new, but recent developments in AI are both lowering the barrier to entry and making it more important to test for a wider range of unpredictable behaviors.</p><h3>Cognitive debt</h3><p>What ties this all together is the issue of cognitive debt. Yes, AI can accelerate many parts of the software development process — far beyond just writing code — but in doing so it does two things: first, it creates greater distance between developers and the software they’re responsible for and, second it increases the range of tasks and problems they may be working on.</p><p>We caution against <a href="http://www.thoughtworks.com/radar/techniques/codebase-cognitive-debt">codebase cognitive debt</a> on this edition of the Radar, but it’s also important to think beyond day-to-day work to recognize how we may individually incur cognitive debt as professionals. If you offload everything to a coding assistant, what are you avoiding learning? And what might the impact be in the future? Of course, this is always a question of trade-offs; an important part of a developer’s skillset is knowing what to pay attention to. However, given the speed of AI-accelerated change, consistent self-reflection is important as a reminder of our agency.</p><p>For all the novelty in the industry at the moment, much of the most interesting work in this area is exploring exactly how we can manage cognitive debt, whether that’s at an individual, project or organization level. We’re excited to continue monitoring this work in future volumes and contributing to ideas and practices that help technologists everywhere.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b45422a943df" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The cognitive demands of AI novelty]]></title>
            <link>https://thoughtworks.medium.com/the-cognitive-demands-of-ai-novelty-4f15c57c8e95?source=rss-8075bdd73dd9------2</link>
            <guid isPermaLink="false">https://medium.com/p/4f15c57c8e95</guid>
            <category><![CDATA[llm-agent]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[technology-strategy]]></category>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[generative-ai-consulting]]></category>
            <dc:creator><![CDATA[Thoughtworks]]></dc:creator>
            <pubDate>Thu, 16 Apr 2026 12:32:41 GMT</pubDate>
            <atom:updated>2026-04-16T12:32:41.219Z</atom:updated>
            <content:encoded><![CDATA[<p><strong>Too young to blip?</strong></p><p>By <a href="https://www.thoughtworks.com/profiles/a/alessio-ferri"><strong>Alessio Ferri</strong></a></p><p>The <a href="https://www.thoughtworks.com/radar">Technology Radar</a> is an opinionated snapshot in time of technologies and techniques we’ve used with our clients. It offers insights across many dimensions, but one that’s particularly interesting is that it surfaces new technologies people find useful. No one can know or experience everything happening in software development, but, thanks to the Radar, we get to explore some of the most exciting or important things our colleagues are working with.</p><p>However, when putting this edition together we encountered a particularly extreme level of newness in ways we haven’t before. Forget ‘emerging technologies’; some of the things we discussed were barely a few weeks old. This presented a dilemma: yes they were interesting, but they were typically far too new for us to really be able to say much confidently about them in a publication like the Technology Radar.</p><p>While the radar has always brought us face to face with the novel, there was something unique about what we found in this edition. Yes, we’ve had periods like the JavaScript framework boom in the 2010s, but this is different. What’s more, it also speaks to the nature of the AI-accelerated moment we’re working in right now.</p><h3>AI-driven volume and velocity</h3><p>Out of more than 300 proposed technologies and techniques put forward by Thoughtworkers, a significant proportion had a) only been around for a few weeks and b) very few GitHub contributors. Often, one of the contributors was a coding agent.</p><p>It’s hard not to see this as anything other than evidence of AI-accelerated proliferation. The fact we had more proposals for this edition than we’d received from colleagues since 2023 indicates we’re entering an era distinct from the one we were in 12 months ago, one in which the barrier to creating software has reduced drastically thanks to the improvements in AI since the end of 2025.</p><p>A solo developer with an idea and a few free hours can now produce something quickly of seemingly high quality to open source standards and including well-documented readmes, SBOMs, clean implementations, licensing, contribution models, documentation, CI badges, stars and a history of multiple releases.</p><h3>Semantic diffusion</h3><p>Parallel to the proliferation of software is the proliferation — and diffusion — of language. When new things are developed they require concepts and descriptions to communicate what the software does and why. Given the ease with which such content can now be created, we are faced not only with lots of similar kinds of software, but new words for subtly different things. Far from elucidating things, this often has the opposite effect: it adds to confusion.</p><p>To compound the complexity of the present moment, a lack of shared understanding means underlying practices are not only evolving quickly, but also in different ways that aren’t easily articulated. Indeed, even if we are building in good faith, without a language that has stabilised, it’s also challenging for practices to stabilize and mature too.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*5_Vfbo5pINWX3Hy8.jpg" /></figure><blockquote><strong><em>Waiting for the ecosystem to settle is itself a choice, and an increasingly expensive one. What’s needed isn’t a higher tolerance for ambiguity, but sharper judgment when operating inside it.</em></strong></blockquote><p><strong>Alessio Ferri</strong></p><h3>Four implications for software developers</h3><p>The implications for software developers are multifaceted, but there are a few key things to keep in mind.</p><h3>Intensifying the challenge of evaluating software</h3><p>The different ways language is used to name and describe technologies and practices makes evaluating those technologies more challenging. Without a clear shared understanding of what’s being discussed, how can we assess what’s in front of us?</p><p>This is something we encountered when putting the Radar together — to be able to judge and evaluate we spent considerable time discussing and trying to clarify what was being referred to. There’s an obvious cognitive demand here that’s additional to the challenges of day-to-day software development.</p><h3>Increasing cognitive debt</h3><p>The second implication is cognitive debt. The rapid pace of change and endless novelty means developers may lack understanding and appropriate mental models of not only the things they’re using but also what their colleagues are actually doing. In short, there’s a risk of a kind of organizational atomization.</p><h3>Distinguishing between disposable and durable code</h3><p>This cognitive burden is related to a third issue, which is about the importance of distinguishing between disposable and durable code. As Charity Majors explained <a href="https://www.honeycomb.io/blog/disposable-code-is-here-to-stay">in an article written last year</a>, disposable code is that which is created for prototypes, scripts and experiments, while durable code is that on which long-running systems are built upon. The former tolerates a shallow understanding of the code and requires relatively little governance and maintenance because its lifecycle is very short; the latter, though, demands developer understanding, appropriate documentation and, of course, evolving and maintenance.</p><p>This isn’t to say we need to avoid using AI. It’s more that we need to recognize which mode we’re working in and be intentional about what kind of software we’re creating and consequently how far in the loop we as developers feel comfortable with.</p><p>Developers who understand this distinction and are able to intentionally move between these two modes will undoubtedly have an edge. Those who don’t will accumulate cognitive debt for the durable software they build, and, as Majors notes, costs will be much higher.</p><p>As with technical debt, cognitive debt isn’t inherently bad; we may well reasonably choose to do something with low cognitive burden with the knowledge we’ll need to address the debt in the future. It’s really a question of awareness and intention.</p><h3>Securing and governing software</h3><p>Cognitive debt will inevitably weaken security posture. This is because developers lack the internal understanding or landscape knowledge to respond to incidents or perform effective threat modeling.</p><p>One threat in particular exacerbated by AI-accelerated cognitive debt is the software supply chain and the risk of malicious prompt injection. When we call on AI to develop software, it’s extremely easy to lose sight of the dependencies of our systems. There might well be vulnerabilities we’re unaware of — a vulnerability <a href="https://futuresearch.ai/blog/litellm-pypi-supply-chain-attack/">discovered at the end of March 2026</a> in AI gateway LiteLLM was found to steal credentials, compromising users’ applications.</p><p>At the heart of this is what Simon Willison calls the <a href="https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/">lethal trifecta</a> — the ability for agents to access private data, exposure to untrusted content and the ability to communicate with external data and systems. In the context of coding agents, the risks for are exacerbated when developers are managing significant cognitive load.</p><h3>Ambiguity requires sharper judgment</h3><p>It’s not clear whether this is the new normal; however, the current cognitive demand isn’t sustainable and will arguably undermine the possible gains AI can deliver. Consequently, we may see an explosion of new tools, evaluation frameworks and trust signals to help us assess a much larger volume of these technologies.</p><p>Uncertainty won’t resolve before teams need to make decisions; waiting for the ecosystem to settle is itself a choice, and an increasingly expensive one. What’s needed isn’t a higher tolerance for ambiguity, but a sharper judgment for operating inside it. Knowing what signals matter, distinguishing “too early to assess” from too early to adopt, and being willing to revisit previous decisions quickly.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4f15c57c8e95" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Navigating the AI imperative: A strategic framework for AI enterprise adoption and risk management]]></title>
            <link>https://thoughtworks.medium.com/navigating-the-ai-imperative-a-strategic-framework-for-ai-enterprise-adoption-and-risk-management-51673f4ca3d8?source=rss-8075bdd73dd9------2</link>
            <guid isPermaLink="false">https://medium.com/p/51673f4ca3d8</guid>
            <category><![CDATA[digital-transformation]]></category>
            <category><![CDATA[legacy-modernization]]></category>
            <category><![CDATA[generative-ai-consulting]]></category>
            <category><![CDATA[ai-for-enterprise]]></category>
            <category><![CDATA[enterprise-ai-strategy]]></category>
            <dc:creator><![CDATA[Thoughtworks]]></dc:creator>
            <pubDate>Fri, 03 Apr 2026 09:19:04 GMT</pubDate>
            <atom:updated>2026-04-03T09:19:04.513Z</atom:updated>
            <content:encoded><![CDATA[<p>By <a href="https://www.thoughtworks.com/profiles/s/sunit-parekh"><strong>Sunit Parekh</strong></a></p><p>Artificial Intelligence is no longer just a buzzword or a futuristic concept; it has become a de facto mandate for just about every organization. Boardrooms and executive teams across the globe are asking not if they should adopt AI, but how fast they can. However, the rush to deploy AI often overshadows a critical reality: that the true challenge lies not in the technology itself, but in how gracefully an enterprise can integrate it.</p><p>Successful AI adoption requires defining clear principles, robust guidelines and uncompromising guardrails. A one-size-fits-all approach to AI deployment is a recipe for operational friction and unmanaged risk. To navigate this landscape safely and effectively, organizations must first categorize their AI use cases into three distinct tiers, applying a tailored strategy and risk profile to each.</p><p>In the first of a series, I propose a practical framework for categorizing AI use — and managing the associated enterprise risks.</p><h3>Category 1: Frontline AI — Revenue-generating and direct-to-customer</h3><p>This category encompasses AI applications that sit squarely on the critical path to the customer and directly impact the top line. Examples include dynamically calculating insurance policy premiums, automated risk assessment and underwriting in lending, and customer-facing service chatbots handling live queries.</p><h3>The strategy and risk profile</h3><p><strong>Risk level: Critical</strong></p><p>Because these systems directly interface with customers and govern financial transactions, the stakes are exceptionally high. Errors here can lead to direct revenue loss, severe brand damage, regulatory penalties and increased susceptibility to fraud.</p><p><strong>The right approach:</strong></p><p>For AI use cases in this category, organizations cannot afford to cut corners. You need highly sophisticated, enterprise-grade AI solutions. This means the strategy must prioritize:</p><ul><li><strong>Strong risk controls</strong>: Rigorous testing for bias, accuracy and fairness before deployment.</li><li><strong>Multi-model validation</strong>: Deploying and cross-referencing output from two or more distinct AI models (e.g., one proprietary, one open-source) to reduce reliance on a single point of failure and to verify results before customer interaction.</li><li><strong>Explainability</strong>: In regulated industries like finance and insurance, the AI’s decision-making process must be transparent and auditable.</li><li><strong>Continuous monitoring</strong>: Real-time dashboards to track model drift and performance degradation, ensuring the AI behaves exactly as intended under shifting market conditions.</li></ul><h3>Category 2: Productivity AI — Business and operational assistant</h3><p>The second category revolves around internal empowerment. Here, AI acts as a co-pilot for your workforce, augmenting their capabilities rather than acting autonomously on behalf of the company. Examples here include running complex analyses on massive internal datasets, synthesizing reports or deploying an internal chatbot to serve as a conversational employee knowledge hub.</p><h3>The strategy and risk profile</h3><p><strong>Risk level: Moderate</strong></p><p>While this use case is less risky than customer-facing AI, the danger here lies in hallucinations leading to poor internal decision-making.</p><p><strong>The right approach:</strong></p><p>The strategy for this tier should lean heavily on <strong>embedded solutions</strong> — such as Microsoft Copilot integrated into existing office suites or enterprise search tools.</p><ul><li><strong>Human-in-the-Loop (HITL)</strong>: The golden rule for this category is that a human must always review the AI’s output before it is acted upon or published.</li><li><strong>Safe adoption</strong>: Because the final decision rests with a human employee, organizations can adopt these tools relatively quickly provided they invest in basic AI literacy and training for their workforce on how to verify AI-generated insights.</li></ul><h3>Category 3: Supporting AI — Non-customer and non-business</h3><p>This final category includes AI used for specialized, deeply internal or highly technical workflows that don’t directly touch the end customer or general business operations. Examples here include AI-assisted software development (e.g., GitHub Copilot / Claude Code generating code snippets, automating test scripts), IT infrastructure optimization and back-end data processing.</p><h3>The strategy and risk profile</h3><p><strong>Risk level: Low to moderate</strong></p><p>While generating bad code or optimizing a server poorly carries operational risk, these environments are already built to catch errors before they reach production.</p><p><strong>The right approach:</strong></p><p>This is where organizations should be <strong>highly experimental.</strong> You can afford to push the boundaries of AI capabilities here because of the inherent structure of modern engineering and IT workflows.</p><ul><li><strong>Multi-layered checkpoints</strong>: Similar to Category 2, there’s a human-in-the-loop (the developer reviewing the code).</li><li><strong>Automated guardrails</strong>: Beyond human review, this tier benefits from rigorous automated safety nets. For instance, if an AI generates code, it must pass through automated code-scanning agents that check for security vulnerabilities, syntax errors and compliance with coding standards before it’s merged into the main product.</li></ul><h3>Conclusion</h3><p>The AI mandate is clear, but reckless adoption is not the answer. By categorizing AI initiatives into direct-to-customer, business assistant, and back-office operational tiers, enterprises can deploy their resources smartly.</p><p>Treat high-risk revenue drivers with the utmost caution and enterprise-grade scrutiny. Empower your general workforce with embedded, human-supervised AI assistants. Finally, unleash your technical teams to experiment rapidly within the safety of automated, heavily fortified guardrails. This tiered strategy ensures that your enterprise not only adopts AI gracefully but leverages it as a sustainable, secure competitive advantage.</p><p><em>Originally published at </em><a href="https://www.thoughtworks.com/insights/blog/generative-ai/navigating-ai-imperative-strategic-framework-for-ai-enterprise-adoption"><em>https://www.thoughtworks.com</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=51673f4ca3d8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to perform a structured evaluation of AI conversational solutions]]></title>
            <link>https://thoughtworks.medium.com/how-to-perform-a-structured-evaluation-of-ai-conversational-solutions-bb2a3ffa0d0f?source=rss-8075bdd73dd9------2</link>
            <guid isPermaLink="false">https://medium.com/p/bb2a3ffa0d0f</guid>
            <category><![CDATA[amazon-kendra]]></category>
            <category><![CDATA[generative-ai-use-cases]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[weights-and-biases]]></category>
            <category><![CDATA[ai-conversational-agents]]></category>
            <dc:creator><![CDATA[Thoughtworks]]></dc:creator>
            <pubDate>Fri, 03 Apr 2026 06:54:43 GMT</pubDate>
            <atom:updated>2026-04-03T06:54:43.121Z</atom:updated>
            <content:encoded><![CDATA[<p>By <a href="https://www.thoughtworks.com/profiles/a/Ashwin-Mattur"><strong>Ashwin Mattur</strong></a> , <a href="https://www.thoughtworks.com/profiles/r/rajgokul-r-m"><strong>Rajgokul R M</strong></a> , <a href="https://www.thoughtworks.com/profiles/s/sharanya-s"><strong>Sharanya S</strong></a> , <a href="https://www.thoughtworks.com/profiles/z/zichuan-xiong"><strong>Zichuan Xiong</strong></a> and <a href="https://www.thoughtworks.com/profiles/a/anushrav-vatsa"><strong>Anushrav Vatsa</strong></a></p><p>Knowledge-driven conversational solutions are essential in modern digital workflows. They allow large language models to interact with curated knowledge bases for a diverse range of tasks including customer support, search and analytics. However, evaluating them poses some challenges — they’re typically composed of multiple interdependent components, continuously evolving sources of data and feature opaque, black box mechanisms.</p><p>In this post, we detail how we evaluated an enterprise AI conversational system powered by AWS Bedrock Agents and Amazon Kendra, using Weights &amp; Biases (W&amp;B) Weave.</p><p>Before this, our evaluation relied on ad hoc manual testing. Team members submitted queries to the system, manually inspected the generated responses, and subjectively judged quality. This approach was inconsistent across evaluators, couldn’t scale as the knowledge base grew, lacked reproducibility and provided no way to isolate whether failures originated from retrieval, prompting, or generation.</p><p>By replacing this fragmented process with a structured, metrics-driven evaluation framework, we achieved significant improvements in system performance, accuracy and stakeholder alignment.</p><h3>The challenges of evaluating AI systems</h3><p>Although traditional metrics like accuracy or F1 score are applicable to algorithmically-generated text data, they’re insufficient for assessing a complex conversational system. This isn’t because we can’t calculate precision/recall for text, but because binary classifications miss the multiple dimensions of retrieval systems. Our evaluation identified several critical challenges:</p><ul><li><strong>Black-box evaluation limitations</strong>. Bedrock Agents concealed retrieval mechanisms, which made it difficult to directly calculate retrieval metrics.</li><li><strong>Inconsistent source attribution</strong>. Generated responses were often missing citations linked to knowledge base documents.</li><li><strong>An evolving knowledge base</strong>. As the knowledge base expanded from object storage to enterprise search, the evaluation criteria needed to evolve.</li><li><strong>Multi-stakeholder alignment</strong>. Business users, technical teams and compliance officers all required different evaluation perspectives.</li></ul><h3>How can we define system accuracy holistically?</h3><p>In most established forms of machine learning, accuracy is typically a single measure of correct predictions. However, for knowledge-driven conversational solutions, accuracy is multi-dimensional; it needs to be assessed across three interdependent components:</p><ol><li><strong>A retrieval component (RAG):</strong> Did the system retrieve relevant and correct documents based on the input query?</li><li><strong>A prompt engineering component</strong>: Did the system effectively guide the LLM to use retrieved context?</li><li><strong>Language model component (the LLM)</strong>: Did the LLM generate a factually correct and coherent answer?</li></ol><p>All three need to work in harmony for accuracy. Perfect retrieval with poor prompting, for example, still produces irrelevant answers, while strong prompting with bad retrieval leads to hallucinations.</p><h3>A structured evaluation framework</h3><p>To address these challenges, we implemented Weights &amp; Biases Weave as a unified evaluation platform. The system under evaluation is a customer-facing conversational AI assistant: users submit natural language queries, Amazon Kendra retrieves relevant documents from a knowledge base and AWS Bedrock Agents generates a response using those documents as context.</p><p>Because failures can occur at any stage of this pipeline — wrong documents retrieved, poor prompt construction, or unfaithful generation — a single accuracy score isn’t sufficient. Our framework consolidated assessment across five critical dimensions: retrieval quality, answer faithfulness, answer relevance, context precision and system performance. Each dimension targets a specific stage of the pipeline, enabling us to pinpoint exactly where quality degrades.</p><p>The components of the solution included:</p><ul><li><strong>A unified evaluation project</strong>: Using W&amp;B Weave’s project structure, we centralized all test cases, metrics and production data in a single workspace — ensuring every team member worked from the same source of truth.</li><li><strong>A structured test dataset</strong>: We curated a set of representative queries, each paired with ground truth answers and expected source documents, to measure system performance consistently across iterations.</li><li><strong>Multi-dimensional scoring</strong>: More than 25 granular metrics were implemented, including precision@k, recall@k, semantic similarity and hallucination detection — each targeting a specific stage of the RAG pipeline.</li><li><strong>Traceability</strong>: Each evaluation run captured full traces of prompts, retrieved documents and generated responses. This made it possible to debug failures at any stage.</li><li><strong>Visualization</strong>: Custom dashboards provided actionable insights for both technical teams (who needed component-level diagnostics) and business stakeholders (who needed system-level quality trends).</li></ul><h3>Implementing the evaluation process</h3><p>We developed a systematic analysis and improvement workflow, which enabled consistent progress tracking and targeted enhancements.</p><p>Our initial evaluation runs provided a strong starting point across multiple dimensions:</p><ul><li>The overall RAG score was 0.8626, providing a reliable benchmark for system performance.</li><li>Answer similarity began at 0.4444, reflecting early alignment with ground truth answers.</li><li>Topic coverage was 0.6667, showing partial but consistent coverage of expected topics.</li><li>Response confidence started at 0.85, representing a solid foundation for reliable responses.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*qciWVVFbFqLucSMx.png" /></figure><p><em>Figure 1: W&amp;B dashboard showing initial baseline metrics across all evaluation dimensions.</em></p><h3>Component-level evaluation insights</h3><p>To gain a detailed understanding of system performance, we evaluated individual components — document retrieval, prompt engineering and language model generation — using targeted metrics.</p><h4>Document retrieval metrics</h4><p>The retrieval component (Amazon Kendra) is responsible for finding relevant documents from the knowledge base. If it fails, returning irrelevant or incomplete documents, the LLM cannot produce a correct answer regardless of prompt quality.</p><p>We measured:</p><ul><li><strong>Retrieval precision</strong>: The percentage of relevant documents among retrieved ones improved from 0.65 to 0.82 (+26%).</li><li><strong>Retrieval recall</strong>: Relevant documents successfully retrieved increased from 0.58 to 0.79 (+36%).</li><li><strong>Context relevance</strong>: Semantic alignment between query and retrieved documents rose from 0.72 to 0.88 (+22%).</li><li><strong>Information coverage</strong>: The completeness of retrieved information grew from 0.56 to 0.91 (+63%).</li></ul><h4>Prompt engineering metrics</h4><p>The prompt engineering component determines how effectively retrieved context is presented to the LLM. Poor prompts can cause the model to ignore relevant context or produce badly formatted responses.</p><ul><li><strong>Instruction following</strong>: Adherence to prompt instructions improved from 0.79 to 0.93 (+18%).</li><li><strong>Context utilization</strong>: Effective use of retrieved context increased from 0.61 to 0.84 (+38%).</li><li><strong>Format adherence</strong>: Consistency with requested response format improved from 0.88 to 0.97 (+10%).</li><li><strong>Prompt robustness</strong>: Stability across input variations rose from 0.70 to 0.89 (+27%).</li></ul><h4>Language model metrics</h4><p>The generation component is where the LLM produces the final response. We measured whether outputs were factually grounded in the retrieved documents and complete.</p><ul><li><strong>Factual accuracy</strong>: The correctness of generated responses increased from 0.73 to 0.88 (+21%). We used a threshold-based embedding similarity approach (responses with &gt;0.8 similarity to ground truth deemed correct) combined with rule-based factual verification against knowledge sources.</li><li><strong>Hallucination rate</strong>: Unsupported content generation decreased significantly from 0.18 to 0.04 (–78%).</li><li><strong>Answer coherence</strong>: Logical flow and readability improved from 0.85 to 0.92 (+8%).</li><li><strong>Response completeness</strong>: Coverage of all query parts rose from 0.67 to 0.91 (+36%).</li></ul><h4>Source attribution metrics</h4><p>Source attribution is critical for enterprise trust. Users need to verify where answers come from. We measured whether responses properly cited the knowledge base documents they drew from.</p><ul><li><strong>Citation presence</strong>: The percentage of claims with supporting citations increased from 45% to 87% (+93%)</li><li><strong>Citation accuracy</strong>: The correctness of source references improved from 62% to 91% (+47%)</li><li><strong>Attribution completeness</strong>: The percentage of retrieved documents correctly cited rose from 39% to 82% (+110%)</li></ul><h3>Integrated system metrics</h3><p>The component-level metrics above helped us pinpoint where in the pipeline problems occurred. For example, low retrieval recall meant the LLM never saw the right documents, while low context utilization pointed to a prompting issue. However, we also needed to measure how the system performed end-to-end from the user’s perspective, since users don’t distinguish between retrieval failures and generation failures — they simply see a bad answer.</p><p>We therefore tracked four system-wide metrics that capture overall answer quality:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*C2yKvt8NUhc7vyhWBzNEpQ.png" /></figure><h3>Key improvement highlights</h3><p>To be clear, the evaluation framework didn’t improve the system by itself; it provided the diagnostic visibility needed to identify specific weaknesses. We then followed an iterative cycle: evaluate the system using W&amp;B Weave, identify the lowest-performing metrics, implement a targeted fix and then re-evaluate to measure impact.</p><p>Below are the specific interventions we made and their results.</p><h3>Semantic alignment</h3><p>Our initial evaluation used token-based matching to measure how closely system responses matched ground truth answers. However, this penalized semantically correct responses that used different wording — creating false negatives that obscured the system’s true performance. We replaced this with embedding-based similarity, which compares meaning rather than exact words.</p><p>This was important because once our scoring accurately recognized semantically equivalent answers, we were able to trust the metrics to guide real improvements rather than chasing false negatives.</p><p>Example:</p><ul><li><em>Before</em>: The system answered “The product is available” for a query where the ground truth was “The product is in stock.” Token-based matching scored this poorly despite identical meaning.</li><li><em>After</em>: Embedding-based similarity correctly scored this as a strong match. This recalibrated our baseline and let us focus optimization on areas with genuinely low scores.</li></ul><h3>Topic coverage</h3><p>Our evaluation revealed that the system only covered 66.7% of expected topics in its responses. There were two root causes: (1) user queries used different terminology than the knowledge base documents, which caused retrieval misses, and (2) some documents weren’t properly indexed by Kendra.</p><p>We addressed the first with query expansion — automatically augmenting user queries with synonyms and related terms so that retrieval could match documents even when wording differed. For the second, we performed a knowledge base indexing audit, verifying that all relevant documents were indexed and discoverable by Kendra. Together, these interventions improved topic coverage from 0.6667 to 1.0 (+50%).</p><p>Example:</p><ul><li>Previously, a query about “return policy for defective electronics” failed to retrieve relevant documents because the knowledge base used the term “warranty claims for faulty devices.” After query expansion, the system matched the correct policy documents covering all scenarios.</li></ul><h3>Response confidence</h3><p>Improvements in source attribution and confidence scoring mechanisms increased response confidence by 12%.</p><p>Example:</p><ul><li>Now, responses include citation links to knowledge base documents along with confidence scores, such as “Product specs validated with KB Doc ID 12345, Confidence: 0.92.”</li></ul><h3>Factual accuracy</h3><p>We implemented rule-based factual verification that extracts structured claims from responses and validates them against our knowledge base.</p><p>Example:</p><ul><li>A response stating “Supports up to 16 GB RAM” was validated by matching the triple (Product X, supports, 16 GB RAM) to the knowledge base, eliminating hallucinations.</li></ul><h3>Overall system optimization</h3><p>Holistic adjustments to retrieval and generation configurations resulted in a 9% performance improvement.</p><p>Example:</p><ul><li>By fine-tuning retrieval thresholds, a query for “latest software updates” now retrieves up-to-date documents, improving relevance.</li></ul><p>These targeted interventions allowed us to systematically address bottlenecks, improving the quality and reliability of the RAG-based system without manual guesswork.</p><h3>Integrating with AWS and Weights &amp; Biases</h3><p>To streamline evaluation of the retrieval system powered by AWS Bedrock Agents and Amazon Kendra, we integrated the evaluation pipeline with Weights &amp; Biases (W&amp;B). This allowed us to automatically track evaluation configurations, test inputs, outputs, and granular metrics in a consistent, transparent, and reproducible way.</p><p>A key practical advantage is that this integration required minimal code changes to our existing AWS pipeline. By “patching” the Bedrock client, W&amp;B Weave automatically captures every LLM call — including the prompt, model parameters and response — as a traced event.</p><p>The following snippet shows the core pattern:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0M2iueJkEC67Q_51YFAhwQ.png" /></figure><p>This automatic tracing eliminated manual logging and ensured every evaluation run was fully reproducible — any team member could inspect what happened at each step of the pipeline for any past evaluation.</p><p>This integration provided several important benefits, including:</p><ul><li><strong>Faster deployment</strong> and reduced setup time.</li><li><strong>Standardized metrics</strong> which enabled consistent evaluation across test cases.</li><li><strong>Full traceability</strong> of evaluation runs for auditing.</li><li><strong>Cross-team visibility</strong>: Interactive W&amp;B dashboards offered clear insights for both technical and business stakeholders.</li></ul><h3>Conclusion</h3><p>Our approach transformed the evaluation of a complex RAG-based AI system from ad hoc, manual inspection into a systematic, metrics-driven, and reproducible process.</p><p>By analyzing retrieval, prompt engineering and language model components in a unified framework, we gained clear visibility into system performance and identified actionable improvement areas.</p><p>Integrating structured evaluation practices with W&amp;B Weave enabled faster iteration cycles, traceable decision-making, and alignment across technical and business teams. This approach ensured more reliable and complete responses, reduced need for manual review, and strengthened stakeholder confidence in deploying enterprise AI solutions.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bb2a3ffa0d0f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Reimagining API modernization with deterministic AI-assisted engineering]]></title>
            <link>https://thoughtworks.medium.com/reimagining-api-modernization-with-deterministic-ai-assisted-engineering-e94dd71586ab?source=rss-8075bdd73dd9------2</link>
            <guid isPermaLink="false">https://medium.com/p/e94dd71586ab</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[api]]></category>
            <category><![CDATA[legacy-modernization]]></category>
            <category><![CDATA[api-modernization]]></category>
            <category><![CDATA[generative-ai]]></category>
            <dc:creator><![CDATA[Thoughtworks]]></dc:creator>
            <pubDate>Fri, 27 Mar 2026 11:53:12 GMT</pubDate>
            <atom:updated>2026-03-27T11:53:12.488Z</atom:updated>
            <content:encoded><![CDATA[<p>By <a href="https://www.thoughtworks.com/profiles/a/aditya-sharma"><strong>Aditya Sharma</strong></a> and <a href="https://www.thoughtworks.com/profiles/m/mahesh-kharade"><strong>Mahesh Kharade</strong></a></p><p>APIs are the backbone of enterprise platforms, yet many continue to operate on unsupported frameworks alongside modern services. This mismatch introduces inconsistent standards, security risks and growing technical debt, slowing delivery and increasing operational friction.</p><p>In large enterprises, APIs evolve over a decade or more, accumulating undocumented behavior, implicit contracts, and hidden dependencies. As a result, modernization becomes less about rewriting code and more about rediscovering intent.</p><p>Most modernization effort is spent understanding existing behavior rather than implementing the new solution. However, AI-driven migration offers a new path forward by accelerating API uplift activities such as dependency discovery, instruction-guided controller migration, and the transformation of legacy unit tests into modern test suites.</p><h3>The challenge</h3><p>Recently, a Thoughtworks team helped a client modernize an enterprise platform. Aware of the challenges of understanding the existing system, we developed a migration framework that uses AI to orchestrate &amp; accelerate legacy API modernization</p><p>The client’s platform, which powers a B2B retail app, is supported by 25+ backend APIs across multiple domains, such as invoices, operations and payments. Each contains anything from 100 to more than 1,200 controllers and handles critical operational processes. Built more than a decade ago on .NET Framework 4, the system has evolved to meet business demands; this has resulted in increased architectural complexity and technical debt.</p><p>While the platform remains essential for day-to-day operations, its legacy foundations now create challenges for maintainability, security and modernization. Addressing these challenges requires a thoughtful approach that reduces risk while maintaining the stability of critical business workflows. The challenges include:</p><ul><li><strong>High system complexity</strong>: 25+ APIs across domains with large controller footprints (100–1200+) create tightly coupled services and difficult-to-manage codebases.</li><li><strong>Aging technology stack</strong>: The system is built on <strong>.NET Framework 4</strong>, which is now outdated and increasingly difficult to maintain or extend.</li><li><strong>Accumulated technical debt</strong>: Over 11 years of incremental development has introduced inconsistent patterns and complex dependencies.</li><li><strong>Security and compliance risks</strong>: Legacy framework vulnerabilities in .NET4 have introduced security risks and compliance issues.</li><li><strong>Operational risk</strong>: APIs support critical workflows. That means any changes could be a commercial risk without careful planning.</li><li><strong>Engineering productivity constraints</strong>: Large controllers and fragmented logic increase development effort, regression risk and time required for system analysis.</li></ul><h3>Why traditional API uplifts struggle to scale</h3><p>Traditional uplift is constrained not by coding effort, but by uncertainty about the existing system: lack of documentation and knowledge stuck only in the minds of those who worked on it (who may no longer be working at the organization) are real and familiar challenges to people who do this kind of work.</p><p>Indeed, when working with large, business-critical API ecosystems, the majority of the effort shifts from coding to understanding, validating and coordinating changes safely. In practice, this creates several systemic bottlenecks.</p><h3>The discovery tax</h3><p>Before any migration work can begin, engineers must first understand the existing API landscape — its endpoints, consumers, downstream systems and contracts. This discovery phase can be manual and time-intensive, especially in legacy systems where documentation is incomplete or outdated.</p><h3>Fear-driven development</h3><p>Each change introduces risk, especially when APIs support existing core business, financial or operational workflows. Engineers will often proceed cautiously, often replicating legacy patterns to avoid breaking anything.</p><h3>The test coverage gap</h3><p>Legacy systems often lack reliable automated validation, forcing long manual regression cycles. This can significantly extend release timelines and introduce operational friction.</p><p>The practical limits of traditional migration approaches</p><p>In practice, traditional API uplift approaches struggle to deliver modernization at the speed required by the business. Taking the environment we were working with, timelines looked something like this:</p><ul><li>The average migration velocity would be approximately two controllers per sprint per developer.</li><li>Validating regressions would be around four weeks per release cycle.</li><li>The estimated timeline for full migration of the 25+ APIs, around 10 years.</li></ul><p>Clearly, modernization is slow and time-consuming. Such timelines understandably make large-scale transformation difficult to sustain. This is because prolonged modernization cycles tie up engineering capacity, extend exposure to legacy security risks, increase operational costs, and delay the adoption of modern architectures-ultimately limiting the organization’s ability to innovate and respond quickly to evolving business needs.</p><h3>From AI as a generator to a guided agent</h3><p>To streamline API modernization, we introduced a semi-automated, instruction-driven migration framework powered by Copilot. The approach focuses on accelerating understanding of existing behavior and enabling confident transformation through structured guidance.</p><p>Instead of treating AI as a free-form generator, Copilot operates as a guided migration agent governed by defined rulebooks. This turns modernization into a consistent and repeatable engineering workflow. The breakthrough was not simply using Copilot, it was constraining it which ultimately led to transforming our approach.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5KqAYVUty8O-8hBvkTlRXw.png" /></figure><p>Traditional modernization relies on manual investigation and cautious changes due to limited system visibility. AI-assisted engineering gives clarity and confidence in how the legacy system is constructed, enabling teams to evolve APIs confidently and at scale.Instead of treating AI as a free-form code generator, we introduced a deterministic, instruction-driven migration framework.</p><h3>The deterministic AI-driven modernization framework</h3><h3>Instruction files: Defining migration rules</h3><p>To form the foundations of the modernization initiative, we created version-controlled instruction files (YAML/JSON). These captured the rules and patterns required to migrate the legacy APIs consistently.</p><p>The instruction set defined modernization rules such as:</p><ul><li>Deprecated-to-modern API mappings</li><li>Namespace and dependency replacements</li><li>Build and project configuration conventions</li><li>Test validation rules</li><li>Reusable remediation and fix patterns</li></ul><h3>The evolution of the instruction set</h3><p>Initially, controller migrations required substantial manual interpretation and experimentation. As engineers migrated controllers, recurring migration patterns began to emerge. These patterns were progressively encoded into the instruction files, allowing Copilot to apply them deterministically during future migrations.</p><ol><li>Independent controllers. These are controllers with minimal dependencies that could be migrated directly.</li><li>Dependent controllers (low complexity). Controllers with limited dependencies that require targeted adjustments.</li><li>Dependent controllers (high complexity). Controllers with multiple downstream dependencies requiring more structured transformation logic.</li><li>Supporting library migration. Any controllers that depended on shared internal libraries and utilities.</li></ol><h3>Controller-level parallelization</h3><p>To scale the modernization effort, the migration process was structured at the controller level. This meant multiple controllers could be processed independently and in parallel.</p><p>Each controller followed a standardized transformation workflow:</p><p>By isolating modernization work at the controller level, teams could progress incrementally without requiring large-scale API rewrites.</p><h3>Multi-layer quality validation</h3><p>While AI significantly reduced the mechanical effort of migration, maintaining deterministic system behavior remained a critical requirement.</p><p>To ensure modernization did not introduce regressions, a multi-layer validation strategy was implemented.</p><ol><li><strong>Just-enough unit tests</strong>. Instead of attempting to maximize test coverage, the framework focused on targeted correctness validation.</li><li><strong>API comparison tests</strong>. Automated comparison tests validated behavioral parity between legacy endpoints and migrated APIs.</li><li><strong>Consumer regression tests</strong>. Full web application regression tests were executed against the migrated backend to verify contract compatibility and ensure downstream consumers continued to function correctly.</li></ol><h3>The impact of AI-assisted migration</h3><p>The effectiveness of the AI-assisted modernization framework was evident in the accelerated migration outcomes:</p><ul><li>370 controllers successfully migrated within just 3 months of development effort.</li><li>Migration velocity increased by 300+% compared to the traditional baseline approach.</li><li>Developer productivity improved significantly, increasing from 6.7 to 27.5 controllers migrated per developer per month.</li></ul><p>These results demonstrate how AI-assisted modernization can dramatically accelerate large-scale code migrations while improving developer productivity and delivery predictability.</p><h3>Impact and business value</h3><p>The structured AI-assisted modernization approach transformed API migration from a slow, manual effort into a scalable and predictable engineering process. By combining deterministic transformation patterns, evolving instruction sets, and AI-assisted analysis, the framework enabled teams to modernize complex APIs with greater speed and confidence.</p><p>As a result, the initiative delivered several measurable benefits:</p><ul><li>Teams maintained consistent throughput during controller modernization without sacrificing quality.</li><li>Instruction-driven patterns standardized migration approaches, ensuring consistent outcomes regardless of individual experience levels.</li><li>AI-assisted analysis and fix-loop acceleration significantly reduced repetitive debugging and manual fixes.</li><li>Structured controller-level workflows enabled reliable planning and execution of migration milestones.</li><li>Increased productivity and reduced regression effort shortened overall modernization timelines.</li><li>Modernized APIs with consistent contracts enabled faster integration and more predictable evolution of the platform.</li></ul><p>Together, these outcomes demonstrate how AI-assisted engineering can turn modernization from a long-running technical burden into a structured and repeatable transformation capability.</p><h3>What we learned about AI in legacy modernization</h3><p>This work taught us a number of important things about using AI in legacy modernization:</p><ol><li>AI works best when constrained by deterministic rulebooks.</li><li>Institutional knowledge must be codified and made explicit.</li><li>The more we migrate, the more patterns we uncover — these patterns are then incorporated as instructions.</li><li>Testing maturity is a prerequisite for AI-assisted transformation.</li><li>AI reduces mechanical effort; human oversight ensures architectural integrity.</li></ol><p>This shifts modernization from a risky rewrite exercise to a scalable engineering discipline. There are, moreover, some important implications for engineering leaders:</p><ul><li>For CTOs, modernization needs to be understood as a systems problem. That means it’s vital to Invest in visibility and validation before scaling AI.</li><li>For engineering leaders, it’s essential to create version-controlled instruction libraries before expanding AI adoption.</li><li>For delivery leaders, remember to measure baseline cycle time before introducing AI to quantify impact.</li></ul><h3>Building the modernization muscle in the AI era</h3><p>AI doesn’t eliminate modernization complexity, but when structured properly, it transforms modernization from fear-driven refactoring into confident evolution.</p><p>The real innovation isn’t Copilot itself — it’s the deterministic modernization framework that governs the tool.</p><p>Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.</p><p><em>Originally published at </em><a href="https://www.thoughtworks.com/insights/blog/generative-ai/reimagining-api-modernization-with-deterministic-ai-assisted-engineering"><em>https://www.thoughtworks.com</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e94dd71586ab" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Making sense of the SaaSpocalypse]]></title>
            <link>https://thoughtworks.medium.com/making-sense-of-the-saaspocalypse-feaa5f348bde?source=rss-8075bdd73dd9------2</link>
            <guid isPermaLink="false">https://medium.com/p/feaa5f348bde</guid>
            <category><![CDATA[ai-for-marketing]]></category>
            <category><![CDATA[gtm-strategy]]></category>
            <category><![CDATA[llm-agent]]></category>
            <category><![CDATA[services-as-a-software]]></category>
            <category><![CDATA[generative-ai]]></category>
            <dc:creator><![CDATA[Thoughtworks]]></dc:creator>
            <pubDate>Mon, 23 Mar 2026 11:33:53 GMT</pubDate>
            <atom:updated>2026-03-23T11:33:53.828Z</atom:updated>
            <content:encoded><![CDATA[<p><strong>Have rumors of the death of SaaS been greatly exaggerated?</strong></p><p>By <a href="https://www.thoughtworks.com/profiles/n/natalie-drucker"><strong>Natalie Drucker</strong></a></p><p>The term ‘SaaSpocalypse’ has been circulating across technology and business worlds in recent months, supposedly marking the death of the software-as-a-service market thanks to AI.</p><p>But what’s the reality? While it’s clear the evolution of AI capabilities are transforming the way businesses think about purchasing software, from my seat leading Thoughtworks’ go-to-market (GTM) stack, this isn’t a theoretical debate. It’s showing up in practical decisions about what stays in the stack, what becomes harder to justify, and where AI is genuinely changing the economics and expectations around software. The views in this piece come from working through those questions directly, including the good, the bad, and the uncomfortable parts.</p><h3>What are the forces driving the SaaSpocalypse?</h3><p>The SaaSpocalypse is what happens when a model that made real sense in the pre-AI era starts to strain. Standardize workflows in a shared product, spread build and maintenance costs across customers and charge per seat for access to the UI.</p><p>That was rational when custom software was expensive and took longer to build. AI changes that equation, but not just because it makes software cheaper. More importantly, it raises expectations. The shift is from a one-size-fits-most organizations to systems of intelligence that understand your strategy, context, and ways of working.</p><p>That distinction matters. Much of the current industry conversation is being pulled toward cost, and the term is gaining traction because several forces have collided at once. Capital markets love a label, and “SaaSpocalypse” captures the fear that AI makes parts of SaaS vulnerable. AI-native founders and implementation consultancies benefit from framing this as a rupture, so many are doing exactly that. At the same time, enterprise leaders are increasingly frustrated with software stacks that cost millions yet still fail to deliver usable intelligence without spreadsheets, workarounds, and manual effort.</p><p>But treating cost reduction as the main prize risks driving the wrong decisions. In our own AI4GTM work in Thoughtworks marketing, cost is the third driver, not the first. The real opportunity is to create systems that embed the processes and intelligence of your best people, move faster than human teams can on their own, and only then reduce the cost to serve. Quality can’t be compromised; speed and productivity is the goal, with cost reduction downstream of any changes you implement.</p><p>So yes, there is an economic thread here, including growing pressure on SaaS pricing models built around seats rather than usage, outputs, or outcomes. But the deeper issue is not cost alone. It is that AI is changing what buyers should expect from SaaS in the first place.</p><h3>Has the death of SaaS been greatly exaggerated?</h3><p>It’s not unreasonable to question whether SaaS really is dead or dying. As with many things in this industry, the answer is ‘it depends’. What is worth bearing in mind though is something my colleague Martin Fowler <a href="https://martinfowler.com/bliki/UtilityVsStrategicDichotomy.html">said</a> 15 years ago: some software is utility and some is strategic, and you shouldn’t run them the same way.</p><p>In the pre-AI world, “buy the package” was rational for utility systems because software was expensive and slow to build. AI changes the economics by making software creation dramatically cheaper and faster, so the build vs buy boundary shifts. And there’s a second twist: systems we treated as utility, like CRM, can become strategic in the AI era because the competitive edge is no longer the system of record, it’s the customer intelligence you can extract and act on from it. That’s why startups and mid-sized companies can choose to classify their GTM systems as strategic, and go the <a href="https://www.wsj.com/cio-journal/meet-the-companies-vibe-coding-their-own-crms-263e500f?mod=djemCIO">custom route</a> without paying the traditional SaaS rent.</p><p>However, enterprises are different. With the tech available today, organizations can easily replace point solutions that have a narrow feature set. We did exactly that at Thoughtworks marketing, eliminating three SaaS platforms with a narrow feature set in 2025 and replacing them with bespoke AI workflows, which removes vendor complexity from our stack, and the lower price is also a bonus. The inflection point is when businesses choose to abandon CRM-class systems that are used by hundreds or thousands of employees, with deep feature sprawl, uneven user behavior, support expectations, plus security and privacy obligations that SaaS quietly absorbs. Our first attempt at ripping out a rock system in Thoughtworks marketing and replacing it with an AI-native solution has taught us some important lessons. If you take such a challenge, you need to shift from a traditional pre-AI era, classic agile product/IT team delivery model, otherwise it’s impossible to keep up and build the full feature set, even when using vibe coding tools like Lovable and coding assistants like Claude Code to expedite the development process.</p><h3>Making replacing SaaS viable</h3><p>We’ve all seen entrepreneurs using tools like Base44 to generate a CRM for personal use in a few hours. We know that this doesn’t hold in enterprise grounds. The issue is not whether AI can help generate software. It is whether you can deliver enterprise-grade systems fast enough, with the right quality, governance, and cost profile, to make replacement a serious option. To make “replace big SaaS” viable you need a new software development lifecycle.</p><p>That is exactly why Thoughtworks launched <a href="https://www.thoughtworks.com/ai/works">AI/works™</a> in January 2026, our agentic development platform. We are now using it internally across sales and marketing as we work to replace a core SaaS platform in our GTM stack. The goal is to reach the full feature set and workflows the business requires, while continuously regenerating application components as business requirements and regulations change, with less human intervention. In that model, humans shift from manually chasing every feature to acting as architects and overseers of an AI-native development process. With such an approach, the economics to replace SaaS in the enterprise can make sense.</p><p>But until that model matures, the more immediate trend is not mass SaaS extinction. It is how to get more value from the SaaS and the data your organization already has. This has been a major focus for us in Thoughtworks marketing. Before touching the core stack, we focused on improving value by building the intelligence layer above the SaaS. The aim was to help our GTM teams get better signals, better recommendations, and better timing than the pre-AI model allowed. To do this, we established an AI marketing applications team and introduced forward-deployed AI engineering graduates to work directly with marketers, sitting alongside them in the business. Their role is to bring together data, context, and business logic to generate more useful intelligence than any single SaaS platform could provide on its own. To act on that intelligence, we introduced GTM Engineers focused on workflow automation using low-code tooling such as n8n, helping turn insight into execution faster. We also built a close working relationship with internal IT, which provides infrastructure, guardrails, agent-building protocols, and other horizontal capabilities.</p><p>Once organisations prove they can generate better intelligence and faster action on top of the existing stack, they are in a much stronger position to challenge legacy pricing, reduce vendor sprawl, and decide more selectively which platforms still earn their place.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*PYISdgK2EyT9n0jq.jpg" /></figure><blockquote><strong><em>Stay adaptive, stay hands-on so you can test things yourself and be bold enough to change strategy when the evidence changes, not when the noise does.</em></strong></blockquote><p><strong>Natalie Drucker</strong></p><p>Director of AI &amp; Data Strategy — Global Marketing</p><h3>Can AI agents really do what SaaS vendors have been doing for years?</h3><p>AI agents are good when they have the right data foundations. If that’s in place, you can stop treating SaaS as the place work happens and start treating it as a set of data sources, not destinations.</p><p><a href="https://www.clay.com/">Clay</a> is a good example of SaaS as a data source. We’re not partnering with them for “a nicer screen;” we partner for their ability to enrich our data to enable our Go to market. We have two GTM engineers on an approximately 150 person marketing team that are responsible for Clay configurations. The broader marketing organisation consumes intel from Clay via our five super agents that cover our critical GTM capabilities and workflows, rather than having to go directly into the Clay. In a world where that data can be fetched on demand, we’re able to combine it with intelligence from other systems in a governed way.</p><p>That’s why our first move at Thoughtworks marketing was to rewire the stack for agents. In practice this involves making critical structured data queryable and governed, reorganizing unstructured data so it can be retrieved reliably, and pulling business logic out of SaaS workflows so agents can orchestrate it without being trapped in the Salesforce worldview.</p><p>In terms of the data we pull from the SaaS into our Super agents, we onboard regularly used data into BigQuery and pull opportunistic data on demand by invoking governed tools and sources, including direct SaaS API calls, and Model Context Protocol (MCP), depending on the context. This means that our teams no longer need to go to five different tools to get an answer.</p><p>Once this foundation exists, agents can do what SaaS UIs have been trying (without success) doing for years: answer questions across your entire data ecosystem in context, route work and trigger actions across systems. Without it, you just get shiny chat over messy data.</p><p>A challenge that we are facing right now is on the experience layer. Our super agents have a bespoke experience layer, and as a marketing leader, this is not something I want to worry about. However tools like Glean that want to be that single chat interface for teams that’s so compelling to users, they’re invariably expensive and offer limited control. You’re also more likely to run into hallucinations when the logic isn’t truly yours. Given we are on the Google stack and deeply invested in it, Gemini Enterprise, meanwhile, is admittedly cheaper but not as feature complete; that’s why, for now, we’re building a bespoke Super agent experience layer while actively watching the market for a well priced option that can reduce the need for us to run our own.</p><p><em>Thoughtworks’ GTM technology stack architecture</em></p><h3>Is the demise of SaaS deserved?</h3><p>If the Saaspocalypse is at all accurate then it’s deserved for those parts of the SaaS market that have been overcharging for many years. The real villain in the old model is the combination of platform rent and licence economics: you pay a platform tax when everything has to be built on, integrated through or licensed around a dominant ecosystem like Salesforce, and you then pay high per-seat fees that don’t reflect usage or value.</p><h3>Treat SaaS as data sources, not destinations</h3><p>In the AI era, as per my earlier point, when you treat your SaaS as data sources rather than destinations, and value extraction is done at our Super agent layer bringing data and capabilities of multiple systems together, which supports my point on SaaS pricing having to move toward consumption, output and outcomes.</p><p>While cost is not the main driver of the program, at Thoughtworks marketing we effectively began shifting SaaS contracts to cheaper, AI-friendly alternatives and pushing existing vendors we want to keep in our stack into aggressive price reductions because they know parts of their feature-set are increasingly replicable and because breaking away from expensive platform ecosystems (Salesforce is the obvious one) changes the math. In our case, we’re seeing 50%+ in SaaS vendor contract reductions and moving from licence-heavy seat models to consumption-based pricing that fits B2B volumes. Broadly, the industry is experimenting more with consumption and outcome-style pricing, even if seats don’t disappear overnight. We recently replaced a rock system in our stack for a modern version of that SaaS at 30% of the incumbent’s cost. Suddenly the whole GTM SaaS economics start to make sense again.</p><p>So, where SaaS is actually properly priced for the AI era and earns its keep on reliability, security, compliance and support, you should feel fine about it. That’s still a good trade.</p><h3>Could the SaaSpocalypse be a warning to the AI market?</h3><p>A warning is deserved, but it’s not “AI is fake;” it’s “personal productivity is outpacing enterprise profit.” We see significant adoption at the individual level with Microsoft’s Work Trend Index reporting <a href="https://www.microsoft.com/en-us/worklab/work-trend-index/ai-at-work-is-here-now-comes-the-hard-part">75% of global knowledge workers are using generative AI</a>, enterprise returns are still uneven. An <a href="https://www.spglobal.com/market-intelligence/en/news-insights/research/2025/10/generative-ai-shows-rapid-growth-but-yields-mixed-results">S&amp;P Global survey</a> found 46% of companies said no single enterprise objective produced a strong positive impact from genAI initiatives, and only 19% reported strong positive impact across most objectives.</p><p>The key point is that AI will not help you if you have a bad strategy. If your teams become more productive, but work on the wrong thing in the wrong way, AI and automation will not impact the bottom line. The key is to amplify what’s working, the processes of your best employees, with AI. Those are the companies that win.</p><h3>How will this play out in the months and years to come?</h3><p>In six months, a year, or three years, any prediction can be made to look silly because the pace of change is brutal. The way we handle it at Thoughtworks marketing is to treat this as a continuous sensing problem: my AI and data team in marketing monitors the market daily; we then test what’s showing up as the next big thing, and we review what it means for our strategy and roadmap. The real skill is knowing when something is a genuine milestone that changes the industry versus more hype you need to ignore.</p><h3>Ecosystem lock-in</h3><p>The other reality is ecosystem lock-in. Your path depends on the stack you’re on and the partners you’re aligned to, because it’s not easy to change a company-wide platform direction. Thoughtworks is on the Google stack, so we stay very close to their AI innovations and use that as our baseline for what’s possible; luckily it’s one of the strongest AI ecosystems out there right now.</p><p>My advice is simple: stay adaptive, stay hands-on so you can test things yourself and be bold enough to change strategy when the evidence changes, not when the noise does.</p><h3>A new class of SaaS products</h3><p>I’m beginning to see a new class of SaaS that looks very different to what’s been the norm over the last 15 years. The winning products won’t be “another UI with features,” they’ll be systems designed to be accessed by agents, built to expose data, and actions safely into an enterprise’s broader intelligence layer. In that world, SaaS is less a destination and more a set of transaction rails and governed capabilities that agents can compose, while the user experience consolidates into fewer surfaces.</p><p>We’ll also see new economics. The old seat-based licence model makes less sense when agents are doing the work and human logins become optional, so the products that win will price around consumption, output and outcomes. They’ll earn trust by reducing operational risk, not just adding features. That’s also where you’ll see differentiation: vendors that can ingest and structure unstructured data, enforce custom business logic and integrate cleanly into your data architecture will thrive.</p><p><strong>The “new SaaS” isn’t dead. It just has to be priced and engineered for the agentic, data-centric operating model.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=feaa5f348bde" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Technology Radar Vol. 34 webinar series]]></title>
            <link>https://thoughtworks.medium.com/technology-radar-vol-34-webinar-series-ee2e10e5785a?source=rss-8075bdd73dd9------2</link>
            <guid isPermaLink="false">https://medium.com/p/ee2e10e5785a</guid>
            <category><![CDATA[technology-radar]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[thoughtworks]]></category>
            <category><![CDATA[technology-strategy]]></category>
            <category><![CDATA[generative-ai-consulting]]></category>
            <dc:creator><![CDATA[Thoughtworks]]></dc:creator>
            <pubDate>Fri, 20 Mar 2026 10:37:56 GMT</pubDate>
            <atom:updated>2026-03-20T10:37:56.352Z</atom:updated>
            <content:encoded><![CDATA[<p>Be the first to explore the newest edition of the Thoughtworks Technology Radar in one of two special preview webinars.</p><p>The sessions will feature Thoughtworks technologists that helped put the Radar together. They’ll provide a unique insight into what they think is important and interesting on this volume.</p><ul><li>Explore the state of AI-assisted and agentic coding in 2026.</li><li>Find out what new techniques and technologies are defining software development.</li><li>Learn what we believe the industry needs to begin trialling and where it should exercise caution.</li></ul><p>The webinars are designed to be interactive. You’ll have the opportunity to ask us questions directly and better understand how we see the future of software.</p><p>The sessions are free to attend. There are two options — choose the one that works best for you.</p><h3><strong>Wednesday, April 8</strong></h3><h4><strong>Western session with Alessio Ferri, Cecilia Geraldo and Ken Mugrage</strong></h4><p>London 3.00 pm | San Francisco 7.00 am | Quito 9.00 am | New York 10.00 am | Frankfurt 4.00 pm | Santiago 10.00 am | Bengaluru 7.30 pm | Brasília 10.30 am</p><h3><strong>Thursday, April 9</strong></h3><h4><strong>Eastern session with May Xu, Selvakumar Natesan and Ni Wang</strong></h4><p>Bengaluru 12 pm | London 7.30 am | Bangkok 1.30 pm | Singapore 2.30 pm | Beijing 2.30 pm | Sydney 4.30 pm</p><p><strong>Don’t miss the chance to get a deeper perspective and understanding of the Thoughtworks Technology Radar.</strong></p><h4>You can register <a href="https://www.thoughtworks.com/radar/technology-radar-webinar">here</a>.</h4><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ee2e10e5785a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Beyond vibe coding: The five building blocks of AI-native engineering]]></title>
            <link>https://thoughtworks.medium.com/beyond-vibe-coding-the-five-building-blocks-of-ai-native-engineering-a1d9adcd9979?source=rss-8075bdd73dd9------2</link>
            <guid isPermaLink="false">https://medium.com/p/a1d9adcd9979</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[generative-ai-consulting]]></category>
            <category><![CDATA[ai-for-software-delivery]]></category>
            <category><![CDATA[thoughtworks-ai-works]]></category>
            <category><![CDATA[aiwork]]></category>
            <dc:creator><![CDATA[Thoughtworks]]></dc:creator>
            <pubDate>Fri, 20 Mar 2026 10:33:32 GMT</pubDate>
            <atom:updated>2026-03-20T10:33:32.083Z</atom:updated>
            <content:encoded><![CDATA[<p>By <a href="https://www.thoughtworks.com/profiles/s/sunit-parekh"><strong>Sunit Parekh</strong></a></p><p>In 2026, the software engineering landscape has moved beyond “vibe coding”. Throwing raw prompts at a chat interface and hoping for a usable result does not work in enterprise software development. To build production-grade, industrial-scale software today, developers need to adopt a structured approach that treats AI as a sophisticated engineering stack.</p><p>To build software effectively you should be <strong>orchestrating</strong>. You pick an <strong>agent</strong> to do the work, a <strong>model</strong> to ‘think’, a <strong>methodology </strong>like BMAD™ to follow, a <strong>spec</strong> to define the goal, and <strong>context </strong>to set the guidelines and guardrails.</p><p>Whether you’re modernizing a legacy mainframe or building a greenfield cloud-native application, mastering these five core building blocks is essential for the new engineering stack to achieve professional professional excellence.</p><h3><strong>1. Choose your agent: The hands</strong></h3><p>The “agent” is the autonomous execution layer. It acts as an active participant in the development workflow, significantly surpassing basic reactive assistants.</p><p>Core competencies and functionality:</p><ul><li><strong>Navigating and analyzing the file system</strong>. The agent interrogates the project’s directory, analyzes architecture and understands component interdependencies.</li><li><strong>Executing terminal commands</strong>. It executes terminal commands to install dependencies (npm, pip), run build scripts, manage source control (git), and perform diagnostics. It directly controls the environment.</li><li><strong>Automated testing and verification</strong>. It initiates test suites (unit, integration) to validate code changes and uses the resulting data as iterative feedback.</li><li><strong>Autonomous multi-file editing and refactoring</strong>. The agent implements complex changes across multiple files cohesively (e.g., refactoring class identifiers or updating API signatures) without direct human intervention.</li><li><strong>Supervised autonomy</strong>. All operations are under human supervision; the agent works autonomously (on things such as bug resolution or implementing minor features), but its actions are submitted to the developer for formal review and final authorization (e.g., via a pull request).</li></ul><p>There are a number of popular agents available for software development, including:</p><ul><li><a href="https://claude.com/product/claude-code"><strong>Claude Code</strong></a> (Most popular): Google’s heavy-hitter for enterprise integration, deeply tied into the Gemini ecosystem and cloud deployment. Works with only Claude models. (See <a href="https://www.youtube.com/playlist?list=PL4cUxeGkcC9g4YJeBqChhFJwKQ9TRiivY">Claude Code Tutorials and Guides</a> for more information)</li><li><a href="https://opencode.ai/"><strong>OpenCode</strong></a> (Open source): A privacy-first, terminal-native agent ideal for local models and sensitive codebases. OpenCode works with all the models including self hosted.</li><li><a href="https://cline.bot/"><strong>Cline</strong></a>: An open-source favorite for VS Code that offers granular control over tool-calling and file permissions.</li><li><strong>Antigravity / Cursor / Windsurf</strong>: Specialized IDEs that treat the agent as a first-class citizen rather than a plugin.</li></ul><h3>2. Choosing the model: The brain</h3><p>The foundational architecture of AI-driven systems in software development relies on a critical division of labor: the agent manages the execution of tasks and actions, while the model serves as the repository and processor of knowledge.</p><p>By 2026, the market has undergone a significant bifurcation, moving away from a ‘one-size-fits-all’ large general-purpose model. Instead, the industry is now characterized by highly specialized models, each meticulously optimized for a distinct set of cognitive tasks essential to the software development lifecycle. This specialization leads to superior performance, efficiency, and context-awareness in their respective domains.</p><p>This landscape includes, but is not limited to:</p><ul><li><strong>Code generation models</strong>, optimized for syntactical correctness, idiomatic adherence to specific programming languages, and complex logical structure generation, moving beyond mere boilerplate.</li><li><strong>Architectural reasoning models</strong>, focused on evaluating high-level design patterns, microservice communication, scalability, and security implications, serving as a ‘digital architect’ assistant.</li><li><strong>Test and quality assurance models,</strong> which specialize in generating comprehensive test cases (unit, integration, end-to-end), identifying potential edge cases, and predicting failure points based on code changes.</li><li><strong>Documentation and knowledge synthesis models</strong>, which are Excellent at ingesting existing codebases, technical specifications, and historical tickets to automatically generate up-to-date documentation, tutorials, and context-aware summaries for onboarding new developers.</li><li><strong>Security and vulnerability analysis models</strong>, trained specifically to recognise common and novel security flaws (e.g., OWASP Top 10, logic vulnerabilities) during the coding and review process, often operating as a mandatory pre-commit hook.</li></ul><p>The successful software agent of the future must, then, be adept at orchestrating these specialized models, calling upon the most appropriate model (the knowledge source) for the specific action it needs to execute.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3UZ3nrkc0j11AZ_EN45kEw.png" /></figure><h3>3. Choosing a methodology: The playbook</h3><p>To successfully integrate AI into the software development lifecycle, it is crucial to adopt a disciplined methodology that counters the inherent risks of autonomous agents. A major challenge is “agent thrashing,” a phenomenon where an AI becomes trapped in an infinite or lengthy loop of self-correction, often fixing one generated error only to introduce a new one, leading to wasted compute resources and time.</p><p>To prevent this in professional, enterprise-grade development, we must shift the paradigm from informal, open-ended generative interactions, often dubbed “chat-oriented programming” or “vibe coding.” This unsystematic approach relies too heavily on conversational prompts and lacks the rigor needed for production-ready code.</p><p>Instead, the focus must be on establishing a continuous, high-integrity flow where AI-driven development is firmly anchored in established engineering discipline and best practices. This involves:</p><ul><li><strong>Structured prompts and context (AI as the engineer)</strong>. This requires detailed, structured inputs that define the scope, expected output, architectural constraints and quality metrics, rather than vague requests. The AI is assigned the specific role of a software engineer responsible for delivering code against clear specifications.</li><li><strong>Integration with CI/CD (AI as the committer)</strong>. This involves embedding the AI within the continuous integration and continuous delivery pipeline, where its outputs are immediately subjected to automated testing, linting, security scans and code reviews, ensuring rapid feedback and adherence to standards. The AI acts as a committer; its work is instantly validated by the system.</li><li><strong>Test-driven AI (TDA) (AI as quality assurance)</strong>. Mandating AI agents generate code alongside, or even based on, comprehensive unit and integration tests, making test coverage a prerequisite for successful code generation. The AI takes on the role of a QA specialist, ensuring functional correctness before delivery.</li><li><strong>Version control and audit trails (AI as the documentarian)</strong>. Ensuring every AI-generated contribution is committed to a version control system with clear commit messages and traceability, allowing human developers to audit and roll back changes. The AI serves as the documentarian, providing clear, auditable logs of its work.</li><li><strong>Human oversight and vetting (human as the architect/reviewer)</strong>. Implementing mandatory human review gates for AI-generated code, especially for critical sections, to ensure non-functional requirements (like performance, security and maintainability) are met. Human developers take the crucial role of the lead architect and code reviewer, maintaining overall system integrity and adherence to strategic goals.</li></ul><p>By systematically applying these engineering best practices, organizations can harness AI to accelerate development while maintaining the quality, stability and control essential for enterprise applications.</p><p>One such playbook is <a href="https://docs.bmad-method.org/">BMAD Method</a>, a methodology for Agile AI-driven development that simulates a multi-role software team through role-based agent orchestration. It uses a specialized loop of “plan-analysis-design-architect-dev-test” personas to ensure code is not just generated, but validated against architectural constraints and unit tests before human review. It focuses on reducing “hallucination drift” by requiring cross-agent consensus on system design before implementation begins.</p><p>Similarly <a href="https://www.thoughtworks.com/ai/works">Thoughtworks AI/works™</a> supports legacy modernisation starting from reverse engineering, requirements enhancement, and spec-to-code generation with 3–3–3 delivery model — accelerating from concept in three days, to functional prototype in three weeks, and production-ready MVP in three months.</p><h3>4. Prompt using specs: The what</h3><p>In the rapidly evolving landscape of agentic software development, the “Spec to Code” pipeline represents the critical bridge between human intent and autonomous execution. As AI agents become increasingly capable of writing, testing, and deploying software, the bottleneck of development has shifted from raw coding to the precise articulation of requirements.</p><p>Ultimately, the effectiveness of an autonomous coding agent is directly proportional to the quality of its input specification. Therefore, mastering the “Spec to Code” translation is no longer just an efficiency hack, but the foundational skill required to successfully navigate the future of AI-driven engineering.</p><p>Examples of such toolkits include:</p><ul><li><a href="https://github.com/github/spec-kit"><strong>SpecKit</strong></a>: Developed by GitHub, SpecKit is an open-source toolkit that brings structure to AI-assisted coding through Spec-Driven Development. Using a simple CLI, it guides developers and AI agents through a rigorous five-step pipeline of writing specifications — Constitution, Specify, Plan, Tasks and Implement — turning high-level requirements into production-ready code and eliminating chaotic “vibe coding.” (See<a href="https://www.youtube.com/playlist?list=PL4cUxeGkcC9h9RbDpG8ZModUzwy45tLjb"> SpecKit: Master the Art of Spec-Driven Prompting</a>.)</li><li><a href="https://openspec.dev/"><strong>OpenSpec</strong></a><strong>:</strong> Developed by Fission-AI, OpenSpec is a lightweight, open-source toolkit that brings spec-driven discipline to AI coding without heavy bureaucracy. Using plain markdown and native slash commands, it guides AI agents through a fast three-step workflow: Proposal, Apply and Archive. It is especially powerful for safely modifying existing “brownfield” projects.</li><li><a href="https://docs.bmad-method.org/explanation/quick-flow/"><strong>BMAD Quick Flow</strong></a>: The BMAD Quick Flow is a streamlined, three-step AI development framework optimized for rapid feature delivery. It transitions from raw requirements to a technical specification (quick-spec), immediate coding (quick-dev), and optional validation (code-review). It’s perfect for fast prototyping.</li></ul><p>Read more about spec driven development <a href="https://www.infoq.com/articles/enterprise-spec-driven-development/">here</a>.</p><h3>5. Providing context: The how</h3><p>The final layer is providing the <em>how </em>through what is today being called context engineering. This is the strategic curation of institutional knowledge and design principles provided to AI assistants to enforce enterprise standards. Rather than accepting generic code, developers inject a rich context containing specific design patterns, architectural blueprints and strict security guardrails.</p><p>By embedding structural guidelines and security protocols — such as OWASP mandates, authentication requirements and specific microservice architectures — directly into the AI’s workspace, context engineering acts as a foundational constraint. It guides the AI on how to build software that is not just functional, but inherently secure, scalable and aligned with organizational architecture.</p><ul><li><strong>Rules and instructions</strong>. Using AGENTS.md or .cursorrules files to provide persistent instructions like “ <em>Always use Tailwind CSS</em>” or “ <em>Follow the Hexagonal Architecture pattern</em>.”</li><li><strong>Security guardrails</strong>. Integrating automated security policies and “never-allow” rules to prevent the introduction of common vulnerabilities (OWASP Top 10), secret leakage or insecure dependency patterns (such as security_auditor.skill).</li><li><strong>Design systems and architecture</strong>. High-level architecture guidelines to ensure the AI-generated output adheres to your brand and system design.</li><li><strong>Thoughtworks AI/works™ Context Integration</strong>. Advanced capabilities for automated context harvesting from enterprise codebases, ensuring models understand intricate system dependencies and domain-specific logic. (See the <a href="https://www.thoughtworks.com/ai/works/technical-guide">AI/works™ Technical Guide</a>)</li></ul><h3>The new engineering stack</h3><p>In essence, software development with AI shifts from mere vibe coding to thoughtful <strong>orchestration</strong>. Success lies in the deliberate combination of the right <strong>agent</strong>, the most suitable <strong>model</strong>, a proven methodology like BMAD™, a precise <strong>spec</strong>, and well-defined <strong>context</strong>. This deliberate composition is the key to building effective software in the age of AI.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*OXcKDJ8-PRwnU6Ge.png" /></figure><p><em>Originally published at </em><a href="https://www.thoughtworks.com/insights/blog/generative-ai/beyond-vibe-coding-the-five-building-blocks-of-aI-native-engineering"><em>https://www.thoughtworks.com</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a1d9adcd9979" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Last week in AI | 16 March]]></title>
            <link>https://thoughtworks.medium.com/last-week-in-ai-16-march-c61f091b53bc?source=rss-8075bdd73dd9------2</link>
            <guid isPermaLink="false">https://medium.com/p/c61f091b53bc</guid>
            <category><![CDATA[claude-code]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[generative-ai-use-cases]]></category>
            <category><![CDATA[ai-coding-agent]]></category>
            <category><![CDATA[anthropics]]></category>
            <dc:creator><![CDATA[Thoughtworks]]></dc:creator>
            <pubDate>Wed, 18 Mar 2026 09:03:09 GMT</pubDate>
            <atom:updated>2026-03-18T09:03:09.444Z</atom:updated>
            <content:encoded><![CDATA[<p>By <a href="https://www.thoughtworks.com/profiles/b/ben-o-mahony"><strong>Ben O’Mahony</strong></a> and <a href="https://www.thoughtworks.com/profiles/service-line-leads/danilo-sato"><strong>Danilo Sato</strong></a></p><p>It’s funny how even minor version updates can cause such a stir in the AI world. That was certainly the case with last week’s release of GPT-5.4, which brought significant improvements for enterprise and general knowledge work.</p><p>We discussed the implications on last week’s episode of <em>This Week in AI </em>— sorry we’re a little late this time, but we’re sure you’ll appreciate the chance to reflect on some of the key stories from the last week or so.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FBZDK_G1CBuG1vfa6OQkSg.png" /></figure><p><em>You can </em><a href="https://www.thoughtworks.com/insights/blog/generative-ai/last-week-ai-16-march"><em>watch the entire session</em></a><em> here</em></p><p>Other things we discussed include:</p><ul><li><strong>Claude Code</strong> launching <a href="https://the-decoder.com/anthropic-turns-claude-code-into-a-background-worker-with-local-scheduled-tasks/">a /loop command for scheduled tasks</a>, which allows users to run prompts automatically on a recurring schedule. An automated code review feature was also introduced, highlighting a growing need for “antagonistic agents” to stress test quality.</li><li><strong>Google</strong> rolling out more native <strong>Gemini</strong> integration across Workspace apps like Docs, Sheets and Slides.</li></ul><p>Alongside these launches and releases were also some important stories that flag continuing challenges around security and stability in an AI-assistance context:</p><ul><li>McKinsey’s internal AI platform “Lilli” was <a href="https://www.theregister.com/2026/03/09/mckinsey_ai_chatbot_hacked/">compromised in two hours by autonomous offensive agents</a>. The attack exploited a development version of the API documentation, which listed unauthenticated endpoints, granting read and write access to the entire production database, including the critical system prompts that define the agents’ behavior</li><li>High-blast radius outages at Amazon and persistent availability issues at other providers like Claude suggest that instability is a trade-off for the current speed of innovation in AI engineering (although Amazon denied the blame lies with AI coding this <a href="https://www.theregister.com/2026/03/10/amazon_ai_coding_outages/">last week</a>)</li><li>An analysis — <a href="https://x.com/KatanaLarp/status/2029928471632224486">published on X</a> — showed that LLMs often write <strong>“plausible code”</strong> instead of functionally correct or performant code. This underscores the necessity of automated performance tests and explicit instructions, as implicit knowledge kills AI effectiveness.</li></ul><p>Finally, we also discussed a shift back towards the command line. In a security context, there’s an emerging concept of a CLI vault, proposed as a way to route agent access through a secure gateway, which should prevent them from accessing environment variables and API keys. We also discussed the perils of the cognitive load of managing a swarm of agents, and agreed that what really matters is focusing on effectiveness and optimizing workflow bottlenecks. <em>We don’t need to just keep agents busy.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c61f091b53bc" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>