<?xml version="1.0"?><feed xmlns:media="http://search.yahoo.com/mrss/" xmlns:gr="http://www.google.com/schemas/reader/atom/" xmlns:idx="urn:atom-extension:indexing" xmlns="http://www.w3.org/2005/Atom" idx:index="no" gr:dir="ltr"><!--
Content-type: Preventing XSRF in IE.

--><generator uri="https://bazqux.com">BazQux Reader</generator><id>tag:google.com,2005:reader/feed/http://007unlicensedtotest.blogspot.com/feeds/posts/default</id><title>blogs</title><subtitle type="html">blogs</subtitle><link rel="self" href="https://bazqux.com/feed/d45a6ead98c5f8f9f99f?no_branding"></link><gr:continuation>4823248274629</gr:continuation><updated>2026-06-24T13:05:59Z</updated><entry gr:crawl-timestamp-msec="1782291684000"><id gr:original-id="https://qualityeng.substack.com/p/the-notes-behind-if-ai-helps-teams-build-faster">tag:google.com,2005:reader/item/00000b1e0000007b</id><title type="html">The notes behind &amp;quot;If AI helps teams build faster, who helps them build better?&amp;quot;</title><published>2026-06-24T09:01:24Z</published><updated>2026-06-24T09:01:24Z</updated><link rel="alternate" href="https://qualityeng.substack.com/p/the-notes-behind-if-ai-helps-teams-build-faster" type="text/html"></link><summary type="html">&lt;div&gt;&lt;figure&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://substackcdn.com/image/fetch/$s_!RInT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png&quot; data-component-name=&quot;Image2ToDOM&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://substackcdn.com/image/fetch/$s_!RInT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png 424w, https://substackcdn.com/image/fetch/$s_!RInT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png 848w, https://substackcdn.com/image/fetch/$s_!RInT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png 1272w, https://substackcdn.com/image/fetch/$s_!RInT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png 1456w&quot; sizes=&quot;100vw&quot;&gt;&lt;img width=&quot;1456&quot; height=&quot;814&quot; data-attrs=&quot;{&amp;quot;src&amp;quot;:&amp;quot;https://substack-post-media.s3.amazonaws.com/public/images/be1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png&amp;quot;,&amp;quot;srcNoWatermark&amp;quot;:null,&amp;quot;fullscreen&amp;quot;:null,&amp;quot;imageSize&amp;quot;:null,&amp;quot;height&amp;quot;:814,&amp;quot;width&amp;quot;:1456,&amp;quot;resizeWidth&amp;quot;:null,&amp;quot;bytes&amp;quot;:385111,&amp;quot;alt&amp;quot;:null,&amp;quot;title&amp;quot;:null,&amp;quot;type&amp;quot;:&amp;quot;image/png&amp;quot;,&amp;quot;href&amp;quot;:null,&amp;quot;belowTheFold&amp;quot;:false,&amp;quot;topImage&amp;quot;:true,&amp;quot;internalRedirect&amp;quot;:&amp;quot;https://qualityeng.substack.com/i/202936409?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png&amp;quot;,&amp;quot;isProcessing&amp;quot;:false,&amp;quot;align&amp;quot;:null,&amp;quot;offset&amp;quot;:false}&quot; alt data-orig-srcset=&quot;https://substackcdn.com/image/fetch/$s_!RInT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png 424w, https://substackcdn.com/image/fetch/$s_!RInT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png 848w, https://substackcdn.com/image/fetch/$s_!RInT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png 1272w, https://substackcdn.com/image/fetch/$s_!RInT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png 1456w&quot; src=&quot;https://substackcdn.com/image/fetch/$s_!RInT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1d692a-1c95-4955-890d-2f989dc88228_2538x1419.png&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;&lt;div&gt;&lt;div&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg role=&quot;img&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 20 20&quot; fill=&quot;none&quot; stroke-width=&quot;1.5&quot; stroke=&quot;var(--color-fg-primary)&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;g&gt;&lt;title&gt;&lt;/title&gt;&lt;path d=&quot;M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;polyline points=&quot;15 3 21 3 21 9&quot;&gt;&lt;/polyline&gt;&lt;polyline points=&quot;9 21 3 21 3 15&quot;&gt;&lt;/polyline&gt;&lt;line x1=&quot;21&quot; x2=&quot;14&quot; y1=&quot;3&quot; y2=&quot;10&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;3&quot; x2=&quot;10&quot; y1=&quot;21&quot; y2=&quot;14&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;When I wrote my &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://qualityeng.substack.com/p/if-ai-helps-teams-build-faster-who-helps-them-build-better&quot;&gt;LeadDev reflection&lt;/a&gt;, I had far more notes than I could sensibly include.&lt;/p&gt;&lt;p&gt;Rather than squeeze everything into the public post, I thought it might be useful to share the notes behind the argument for paid subscribers.&lt;/p&gt;&lt;p&gt;These are the talks that helped me connect quality engineering, AI, leadership, principles, culture, incidents and how teams perform under pressure.&lt;/p&gt;&lt;p&gt;They are not transcripts but my notes, interpretations and follow-up reflections.&lt;/p&gt;&lt;p&gt;This is the work behind my main post, &lt;strong&gt;“&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://qualityeng.substack.com/p/if-ai-helps-teams-build-faster-who-helps-them-build-better&quot;&gt;If AI helps teams build faster, who helps them build better?&lt;/a&gt;”&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I’ve made the first section, based on Scott Carey’s talk on engineering leadership in 2026, free to read so you can get a feel for the format, tone and level of detail before deciding whether to continue.&lt;/p&gt;&lt;h2&gt;How to use these notes&lt;/h2&gt;&lt;p&gt;This is a long post, so I do not expect most people to read it from start to finish.&lt;/p&gt;&lt;p&gt;Think of it more like an open notebook from LeadDev. You can read it straight through, skim the sections that interest you, or jump to the part that connects most closely to a problem you are facing in your team.&lt;/p&gt;&lt;p&gt;The thread running through these notes is this:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;If AI helps teams produce more output, what helps them produce better outcomes?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Across the five talks, I kept coming back to the same idea.&lt;/p&gt;&lt;p&gt;Better engineering outcomes rarely come from pushing individuals harder. They come from improving the conditions around the work.&lt;/p&gt;&lt;p&gt;That includes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;how leaders support teams&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how principles turn into behaviour&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how culture responds under pressure&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how organisations learn from incidents&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how teams perform when leaders are not in the room&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Here are a few ways in:&lt;/em&gt;&lt;/p&gt;&lt;h2&gt;If you are thinking about AI, leadership pressure and the future of management&lt;/h2&gt;&lt;p&gt;Start with:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Scott Carey: Engineering leadership in 2026&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Scott’s talk helped me think about how engineering leadership roles are changing as AI adoption, economic pressure and productivity expectations increase.&lt;/p&gt;&lt;p&gt;The part that stood out to me was the growing idea of the &lt;strong&gt;player-manager&lt;/strong&gt;: engineering managers who are expected to lead people while also spending a large amount of their time contributing to the codebase.&lt;/p&gt;&lt;p&gt;This section is useful if you are thinking about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;what happens when managers are expected to be more hands-on&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;where the people work goes when management layers are squeezed&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how AI might increase output while also increasing leadership pressure&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;what role quality engineering might play if teams need more coaching, mentoring and support around quality&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The main QE question is:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;If managers have less space for the human side of leadership, who helps teams build the habits, feedback loops and thinking needed for quality?&lt;/strong&gt;&lt;/p&gt;&lt;h2&gt;If you are thinking about principles, behaviour and pressure&lt;/h2&gt;&lt;p&gt;Start with:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Manogna Machiraju: The shadow culture: Why engineering principles fail under load&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Manogna’s talk helped me think about why engineering principles often fail to influence behaviour.&lt;/p&gt;&lt;p&gt;Most organisations have principles like “Quality first”, “Sustainable pace” or “Radical ownership”.&lt;/p&gt;&lt;p&gt;The problem is not that people disagree with them. The problem is that when pressure increases, the system often rewards something else.&lt;/p&gt;&lt;p&gt;This section is useful if your team or organisation has principles that people agree with, but struggle to live by in practice.&lt;/p&gt;&lt;p&gt;It is especially useful if you are thinking about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;why “quality first” is easy to say but hard to follow&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how pressure reveals the real culture&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how to translate principles into practical behaviours&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how to identify what makes better behaviour difficult&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how to avoid blaming people when the system makes the shortcut easier&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The main QE question is:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What makes quality-focused behaviour easy, realistic and safe to follow when the pressure increases?&lt;/strong&gt;&lt;/p&gt;&lt;h2&gt;If you are thinking about productivity, transformation and organisational culture&lt;/h2&gt;&lt;p&gt;Start with:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Randy Shoup: We doubled engineering productivity at eBay, but couldn’t change culture&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Randy’s talk helped me separate two things that are often treated as the same:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;improving engineering productivity&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;changing organisational culture&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The eBay velocity initiative improved deployment frequency, lead time, change failure rate and time to recover. It helped teams move faster and improved local engineering performance.&lt;/p&gt;&lt;p&gt;But the wider organisation did not really change.&lt;/p&gt;&lt;p&gt;This section is useful if you are thinking about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;why better delivery metrics do not automatically mean better business outcomes&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;why local engineering improvement can still be blocked by wider culture&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how planning, strategy and incentives shape quality&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;why delivery improvement needs support from above, below and across&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how organisations can use modern engineering practices while still operating through old cultural patterns&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The main QE question is:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What kind of organisation are teams delivering inside, and does that organisation help or hinder quality?&lt;/strong&gt;&lt;/p&gt;&lt;h2&gt;If you are thinking about incidents, learning and psychological safety&lt;/h2&gt;&lt;p&gt;Start with:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Lyndsay Prewer - Beyond timelines: Learning from incidents&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Lyndsay’s talk introduced the Social Psychology of Risk, or SPoR, as a way to learn more deeply from incidents.&lt;/p&gt;&lt;p&gt;The part that stood out to me was the focus on more than the visible timeline.&lt;/p&gt;&lt;p&gt;SPoR looks at:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;the &lt;strong&gt;workspace&lt;/strong&gt;: what happened in the environment&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the &lt;strong&gt;headspace&lt;/strong&gt;: what people were thinking, feeling, noticing or worrying about&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the &lt;strong&gt;group space&lt;/strong&gt;: what the wider group understood, assumed or shared&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This section is useful if you are thinking about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;how to make post-incident reviews more useful&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;why timelines alone rarely tell the full story&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how to create safer conversations after incidents&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how to understand the conditions that made failure more likely&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how to learn from the human, social and cultural parts of incidents&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The main QE question is:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What are we missing if we only look at what happened, and not how people experienced the work at the time?&lt;/strong&gt;&lt;/p&gt;&lt;h2&gt;If you are thinking about team performance, coaching and how teams behave under pressure&lt;/h2&gt;&lt;p&gt;Start with:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Cathy Pank: Reading the game: Mental skills for high-performing engineering teams&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Cathy’s talk used ideas from sport to think about engineering team performance.&lt;/p&gt;&lt;p&gt;The idea that stood out to me was the role of the football coach during a match.&lt;/p&gt;&lt;p&gt;Once the game starts, the coach can only influence so much. Most of the work is in the hands of the players. The real impact happens before the match, through training, preparation, shared understanding, habits and trust.&lt;/p&gt;&lt;p&gt;This section is useful if you are thinking about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;how leaders observe team dynamics, not just delivery&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;why teams need to prepare before high-pressure moments&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how confidence, clarity and trust affect performance&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how teams behave when leaders are not in the room&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;why good teams need to adapt to each other, not just perform individually&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The main QE question is:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How do we help teams make better decisions when nobody is standing over their shoulder?&lt;/strong&gt;&lt;/p&gt;&lt;h2&gt;If you are thinking about Quality Engineering as a broader leadership practice&lt;/h2&gt;&lt;p&gt;Read the whole thing, but pay particular attention to the reflection sections after each talk.&lt;/p&gt;&lt;p&gt;The thread running through all of this is that quality is not only created in code, tests, tools or delivery practices.&lt;/p&gt;&lt;p&gt;It is also influenced by:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;the questions teams ask&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the behaviours they practise&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the risks they surface&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the pressure they are under&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the culture they work inside&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the feedback loops they use&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the decisions they make&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the way they learn from failure&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the way people interact when the work gets difficult&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;That is why I came away from LDX thinking about Quality Engineering as something broader than testing or delivery improvement.&lt;/p&gt;&lt;p&gt;For me, these talks pointed towards Quality Engineering as the work of helping teams create better conditions for better decisions.&lt;/p&gt;&lt;p&gt;Especially as AI increases the amount of software teams can produce.&lt;/p&gt;&lt;div&gt;&lt;hr&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;This post is best viewed online or through the Substack app due to its length.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;div&gt;&lt;hr&gt;&lt;/div&gt;&lt;h1&gt;Scott Carey: Engineering leadership in 2026&lt;/h1&gt;&lt;p&gt;Watch the talk here: &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://leaddev.com/leadership/engineering-leadership-in-2026&quot;&gt;https://leaddev.com/leadership/engineering-leadership-in-2026&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;What QE problem this helps with&lt;/h2&gt;&lt;p&gt;This section is useful if you are thinking about how AI, economic pressure and changing expectations of managers might affect software quality.&lt;/p&gt;&lt;p&gt;The main QE question is:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;If teams are expected to move faster, managers are squeezed, and AI increases output, who helps teams think about quality?&lt;/strong&gt;&lt;/p&gt;&lt;h2&gt;Why this talk influenced the post&lt;/h2&gt;&lt;p&gt;Scott Carey’s talk helped me think about the future of engineering leadership.&lt;/p&gt;&lt;p&gt;One theme I noticed was the growing idea of the &lt;strong&gt;player-manager&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;This is the idea that engineering managers do not only lead people, but also actively contribute to the codebase.&lt;/p&gt;&lt;p&gt;That sounds useful in some contexts. If a team is senior, stable and able to manage itself, maybe a hands-on manager can work well.&lt;/p&gt;&lt;p&gt;But it also creates a real tension.&lt;/p&gt;&lt;p&gt;Leadership is not just about delivery, planning and technical decision-making. It is also about supporting people, handling difficult conversations, creating clarity, managing tension and helping teams operate well.&lt;/p&gt;&lt;p&gt;If managers are expected to stay mostly hands-on, that people work has to go somewhere.&lt;/p&gt;&lt;p&gt;This is where the quality engineering connection became interesting for me.&lt;/p&gt;&lt;p&gt;As AI helps teams produce more output, QE may become even more important in helping teams slow down in the right places, ask better questions, reduce uncertainty earlier and build systems that make good quality more likely.&lt;/p&gt;&lt;h2&gt;My notes&lt;/h2&gt;&lt;p&gt;One theme I noticed at LeadDev was the growing idea of the &lt;strong&gt;player-manager&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;This is the idea that engineering managers do not only lead people, but also actively contribute to the codebase.&lt;/p&gt;&lt;p&gt;One example shared was an organisation looking for a manager who would spend &lt;strong&gt;75% of their time doing hands-on development&lt;/strong&gt; and &lt;strong&gt;25% of their time leading the team&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;I can see how this might work if the team is senior, stable and able to manage itself. But the moment people issues appear, especially personal issues that affect someone’s work, that balance changes quickly.&lt;/p&gt;&lt;p&gt;Those situations can absorb a lot of a manager’s time. If the manager is expected to stay mostly hands-on, that support has to be offloaded somewhere.&lt;/p&gt;&lt;p&gt;It feels like the industry is slowly squeezing the middle manager role and shifting it towards a more hands-on leadership model. AI will probably accelerate that trend.&lt;/p&gt;&lt;h2&gt;What the research suggested&lt;/h2&gt;&lt;p&gt;LeadDev asked &lt;strong&gt;600+ engineering leaders&lt;/strong&gt; how their roles are changing in response to the current economic and technology landscape.&lt;/p&gt;&lt;p&gt;Some of the points shared included:&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://substackcdn.com/image/fetch/$s_!ymHe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png&quot; data-component-name=&quot;Image2ToDOM&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://substackcdn.com/image/fetch/$s_!ymHe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png 424w, https://substackcdn.com/image/fetch/$s_!ymHe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png 848w, https://substackcdn.com/image/fetch/$s_!ymHe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png 1272w, https://substackcdn.com/image/fetch/$s_!ymHe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png 1456w&quot; sizes=&quot;100vw&quot;&gt;&lt;img width=&quot;1456&quot; height=&quot;1092&quot; data-attrs=&quot;{&amp;quot;src&amp;quot;:&amp;quot;https://substack-post-media.s3.amazonaws.com/public/images/be1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png&amp;quot;,&amp;quot;srcNoWatermark&amp;quot;:null,&amp;quot;fullscreen&amp;quot;:null,&amp;quot;imageSize&amp;quot;:null,&amp;quot;height&amp;quot;:1092,&amp;quot;width&amp;quot;:1456,&amp;quot;resizeWidth&amp;quot;:null,&amp;quot;bytes&amp;quot;:10621424,&amp;quot;alt&amp;quot;:null,&amp;quot;title&amp;quot;:null,&amp;quot;type&amp;quot;:&amp;quot;image/png&amp;quot;,&amp;quot;href&amp;quot;:null,&amp;quot;belowTheFold&amp;quot;:true,&amp;quot;topImage&amp;quot;:false,&amp;quot;internalRedirect&amp;quot;:&amp;quot;https://qualityeng.substack.com/i/202936409?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png&amp;quot;,&amp;quot;isProcessing&amp;quot;:false,&amp;quot;align&amp;quot;:null,&amp;quot;offset&amp;quot;:false}&quot; alt data-orig-srcset=&quot;https://substackcdn.com/image/fetch/$s_!ymHe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png 424w, https://substackcdn.com/image/fetch/$s_!ymHe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png 848w, https://substackcdn.com/image/fetch/$s_!ymHe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png 1272w, https://substackcdn.com/image/fetch/$s_!ymHe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png 1456w&quot; src=&quot;https://substackcdn.com/image/fetch/$s_!ymHe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1b8cac-7244-4d4d-b08f-d0ab000c9b03_4032x3024.png&quot;&gt;&lt;/picture&gt;&lt;div&gt;&lt;div&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg role=&quot;img&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 20 20&quot; fill=&quot;none&quot; stroke-width=&quot;1.5&quot; stroke=&quot;var(--color-fg-primary)&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;g&gt;&lt;title&gt;&lt;/title&gt;&lt;path d=&quot;M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;polyline points=&quot;15 3 21 3 21 9&quot;&gt;&lt;/polyline&gt;&lt;polyline points=&quot;9 21 3 21 3 15&quot;&gt;&lt;/polyline&gt;&lt;line x1=&quot;21&quot; x2=&quot;14&quot; y1=&quot;3&quot; y2=&quot;10&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;3&quot; x2=&quot;10&quot; y1=&quot;21&quot; y2=&quot;14&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Money that previously funded headcount is now being redirected towards GPUs and AI infrastructure.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;VP and EM roles are being squeezed closer to lead roles.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;figure&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://substackcdn.com/image/fetch/$s_!9feH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png&quot; data-component-name=&quot;Image2ToDOM&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://substackcdn.com/image/fetch/$s_!9feH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png 424w, https://substackcdn.com/image/fetch/$s_!9feH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png 848w, https://substackcdn.com/image/fetch/$s_!9feH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png 1272w, https://substackcdn.com/image/fetch/$s_!9feH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png 1456w&quot; sizes=&quot;100vw&quot;&gt;&lt;img width=&quot;1456&quot; height=&quot;1092&quot; data-attrs=&quot;{&amp;quot;src&amp;quot;:&amp;quot;https://substack-post-media.s3.amazonaws.com/public/images/968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png&amp;quot;,&amp;quot;srcNoWatermark&amp;quot;:null,&amp;quot;fullscreen&amp;quot;:null,&amp;quot;imageSize&amp;quot;:null,&amp;quot;height&amp;quot;:1092,&amp;quot;width&amp;quot;:1456,&amp;quot;resizeWidth&amp;quot;:null,&amp;quot;bytes&amp;quot;:9425328,&amp;quot;alt&amp;quot;:null,&amp;quot;title&amp;quot;:null,&amp;quot;type&amp;quot;:&amp;quot;image/png&amp;quot;,&amp;quot;href&amp;quot;:null,&amp;quot;belowTheFold&amp;quot;:true,&amp;quot;topImage&amp;quot;:false,&amp;quot;internalRedirect&amp;quot;:&amp;quot;https://qualityeng.substack.com/i/202936409?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png&amp;quot;,&amp;quot;isProcessing&amp;quot;:false,&amp;quot;align&amp;quot;:null,&amp;quot;offset&amp;quot;:false}&quot; alt data-orig-srcset=&quot;https://substackcdn.com/image/fetch/$s_!9feH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png 424w, https://substackcdn.com/image/fetch/$s_!9feH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png 848w, https://substackcdn.com/image/fetch/$s_!9feH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png 1272w, https://substackcdn.com/image/fetch/$s_!9feH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png 1456w&quot; src=&quot;https://substackcdn.com/image/fetch/$s_!9feH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968ded74-b356-4ac4-a8b7-6a93be220312_4032x3024.png&quot;&gt;&lt;/picture&gt;&lt;div&gt;&lt;div&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg role=&quot;img&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 20 20&quot; fill=&quot;none&quot; stroke-width=&quot;1.5&quot; stroke=&quot;var(--color-fg-primary)&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;g&gt;&lt;title&gt;&lt;/title&gt;&lt;path d=&quot;M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;polyline points=&quot;15 3 21 3 21 9&quot;&gt;&lt;/polyline&gt;&lt;polyline points=&quot;9 21 3 21 3 15&quot;&gt;&lt;/polyline&gt;&lt;line x1=&quot;21&quot; x2=&quot;14&quot; y1=&quot;3&quot; y2=&quot;10&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;3&quot; x2=&quot;10&quot; y1=&quot;21&quot; y2=&quot;14&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;There is increasing interest in IC support agents and AI-enabled ways of scaling individual contributors.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Middle management appears to be one of the areas under the most pressure.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;figure&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://substackcdn.com/image/fetch/$s_!n2I3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png&quot; data-component-name=&quot;Image2ToDOM&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://substackcdn.com/image/fetch/$s_!n2I3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png 424w, https://substackcdn.com/image/fetch/$s_!n2I3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png 848w, https://substackcdn.com/image/fetch/$s_!n2I3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png 1272w, https://substackcdn.com/image/fetch/$s_!n2I3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png 1456w&quot; sizes=&quot;100vw&quot;&gt;&lt;img width=&quot;1456&quot; height=&quot;1092&quot; data-attrs=&quot;{&amp;quot;src&amp;quot;:&amp;quot;https://substack-post-media.s3.amazonaws.com/public/images/35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png&amp;quot;,&amp;quot;srcNoWatermark&amp;quot;:null,&amp;quot;fullscreen&amp;quot;:null,&amp;quot;imageSize&amp;quot;:null,&amp;quot;height&amp;quot;:1092,&amp;quot;width&amp;quot;:1456,&amp;quot;resizeWidth&amp;quot;:null,&amp;quot;bytes&amp;quot;:9876933,&amp;quot;alt&amp;quot;:null,&amp;quot;title&amp;quot;:null,&amp;quot;type&amp;quot;:&amp;quot;image/png&amp;quot;,&amp;quot;href&amp;quot;:null,&amp;quot;belowTheFold&amp;quot;:true,&amp;quot;topImage&amp;quot;:false,&amp;quot;internalRedirect&amp;quot;:&amp;quot;https://qualityeng.substack.com/i/202936409?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png&amp;quot;,&amp;quot;isProcessing&amp;quot;:false,&amp;quot;align&amp;quot;:null,&amp;quot;offset&amp;quot;:false}&quot; alt data-orig-srcset=&quot;https://substackcdn.com/image/fetch/$s_!n2I3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png 424w, https://substackcdn.com/image/fetch/$s_!n2I3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png 848w, https://substackcdn.com/image/fetch/$s_!n2I3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png 1272w, https://substackcdn.com/image/fetch/$s_!n2I3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png 1456w&quot; src=&quot;https://substackcdn.com/image/fetch/$s_!n2I3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35868a99-9df2-46be-82cd-b24954f763b7_4032x3024.png&quot;&gt;&lt;/picture&gt;&lt;div&gt;&lt;div&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg role=&quot;img&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 20 20&quot; fill=&quot;none&quot; stroke-width=&quot;1.5&quot; stroke=&quot;var(--color-fg-primary)&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;g&gt;&lt;title&gt;&lt;/title&gt;&lt;path d=&quot;M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;polyline points=&quot;15 3 21 3 21 9&quot;&gt;&lt;/polyline&gt;&lt;polyline points=&quot;9 21 3 21 3 15&quot;&gt;&lt;/polyline&gt;&lt;line x1=&quot;21&quot; x2=&quot;14&quot; y1=&quot;3&quot; y2=&quot;10&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;3&quot; x2=&quot;10&quot; y1=&quot;21&quot; y2=&quot;14&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Some CEOs are publicly linking headcount reductions to AI.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Managers who remain in role often have more scope, more responsibility and more people to support.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;The player-manager&lt;/h2&gt;&lt;p&gt;The player-manager model expects engineering managers to both:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;manage and support people&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;actively contribute to technical work&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This creates a real tension.&lt;/p&gt;&lt;p&gt;Managers are being asked to do more, while also staying closer to the codebase. One point shared was that &lt;strong&gt;one in three engineering managers are looking to move back into IC roles&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;There are also job descriptions asking people to “lead through code”, with examples where managers are expected to spend around &lt;strong&gt;75% of their time hands-on&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;That might sound efficient on paper. But it raises a bigger question:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What happens to the people work?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Because leadership is not just about delivery, planning and technical decision-making. It is also about supporting people, handling difficult conversations, creating clarity, managing tension and helping teams operate well.&lt;/p&gt;&lt;p&gt;If managers are expected to stay mostly hands-on, that support has to come from somewhere else.&lt;/p&gt;&lt;h2&gt;What might this mean for quality engineering?&lt;/h2&gt;&lt;p&gt;This raises an interesting question for quality engineering.&lt;/p&gt;&lt;p&gt;If managers are squeezed, teams are expected to move faster, and AI increases the amount of code being produced, then who helps teams think about quality?&lt;/p&gt;&lt;p&gt;One possibility is that a QE supports multiple teams more like a:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;consultant&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;coach&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;mentor&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;teacher&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Someone who helps teams think about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;how they build quality into their products&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how they use AI agents safely&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how they reduce uncertainty earlier in the work&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how they create useful feedback loops&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;how they spot risks before they become expensive problems&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In that model, the QE role becomes less about correcting quality issues after they appear, and more about helping teams build the mindset, practices and tools that make better quality more likely.&lt;/p&gt;&lt;p&gt;Another possibility is that we build more of the quality engineering mindset into the tools themselves, so teams are nudged towards better questions, better checks and better ways of working as they use them.&lt;/p&gt;&lt;h2&gt;My takeaway&lt;/h2&gt;&lt;p&gt;The player-manager model may help organisations reduce management layers and keep leaders closer to the work.&lt;/p&gt;&lt;p&gt;But there is a risk.&lt;/p&gt;&lt;p&gt;If we remove or squeeze the people support role too far, the work does not disappear. It gets pushed somewhere else, ignored, or picked up informally by people who may not have the time, skills or support to do it well.&lt;/p&gt;&lt;p&gt;For quality engineering, this could be an important shift.&lt;/p&gt;&lt;p&gt;As AI helps teams produce more output, QE may become even more important in helping teams slow down in the right places, ask better questions, and build systems that make good quality more likely.&lt;/p&gt;&lt;p&gt;Further reading: &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://bit.ly/eng-leadership-26&quot;&gt;The Engineering Leadership Report 2026 Pre-register - LeadDev&lt;/a&gt;&lt;/p&gt;&lt;div&gt;&lt;hr&gt;&lt;/div&gt;&lt;h2&gt;Found this useful?&lt;/h2&gt;&lt;p&gt;If this kind of reflection is useful, the rest of the post continues for paid subscribers.&lt;/p&gt;&lt;p&gt;In the paid section, I go deeper into:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Manogna Machiraju’s talk on why engineering principles fail under load&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Randy Shoup’s story of improving engineering productivity at eBay without changing the wider culture&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Lyndsay Prewer’s introduction to the Social Psychology of Risk and how it can improve incident learning&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Cathy Pank’s lessons from football coaching and what they tell us about team performance under pressure&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The thread running through all of it is the same:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;If AI helps teams build faster, who helps them build better?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;For me, these talks helped connect quality engineering, leadership pressure, principles, culture, incidents and the way teams behave when the work gets difficult.&lt;/p&gt;&lt;p&gt;And these are the notes, questions and connections that helped me get there.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Paid subscriptions help me keep making time for these longer, more reflective write-ups, alongside the free posts, Linky editions and shorter reflections I share publicly.&lt;/em&gt;&lt;/p&gt;
      &lt;p&gt;
          &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://qualityeng.substack.com/p/the-notes-behind-if-ai-helps-teams-build-faster&quot;&gt;
              Read more
          &lt;/a&gt;&lt;/p&gt;</summary><author><name>Jit Gosai</name></author><source gr:stream-id="feed/https://qualityeng.substack.com/feed"><id>tag:google.com,2005:reader/feed/https://qualityeng.substack.com/feed</id><title type="html">Quality Engineering Newsletter</title><link rel="alternate" href="https://qualityeng.substack.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782291217000"><id gr:original-id="https://medium.com/p/bff891083516">tag:google.com,2005:reader/item/0000091b0000007e</id><category term="life"></category><category term="humor"></category><category term="short-story"></category><category term="writing"></category><category term="nonfiction"></category><title type="html">The Ice-Cream Seller</title><published>2026-06-24T08:53:37Z</published><updated>2026-06-24T08:53:37Z</updated><link rel="alternate" href="https://medium.com/illumination/the-ice-cream-seller-bff891083516?source=rss-d56167afca7d------2" type="text/html"></link><summary type="html">&lt;div&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://medium.com/illumination/the-ice-cream-seller-bff891083516?source=rss-d56167afca7d------2&quot;&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://cdn-images-1.medium.com/max/2600/0*v9u3B5RAljGxgTQU&quot; width=&quot;4592&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;A nostalgic story about childhood, family bonds, Sunday traditions, and the ice-cream seller who made every day special.&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://medium.com/illumination/the-ice-cream-seller-bff891083516?source=rss-d56167afca7d------2&quot;&gt;Continue reading on ILLUMINATION »&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary><author><name>Mohammad Faisal Khatri</name></author><source gr:stream-id="feed/https://medium.com/@iamfaisalkhatri/feed"><id>tag:google.com,2005:reader/feed/https://medium.com/@iamfaisalkhatri/feed</id><title type="html">Stories by Mohammad Faisal Khatri on Medium</title><link rel="alternate" href="https://medium.com/@iamfaisalkhatri?source=rss-d56167afca7d------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782291217000"><id gr:original-id="https://medium.com/p/bff891083516">tag:google.com,2005:reader/item/00000a830000007d</id><category term="life"></category><category term="humor"></category><category term="short-story"></category><category term="writing"></category><category term="nonfiction"></category><title type="html">The Ice-Cream Seller</title><published>2026-06-24T08:53:37Z</published><updated>2026-06-24T08:53:37Z</updated><link rel="alternate" href="https://medium.com/illumination/the-ice-cream-seller-bff891083516?source=rss-d56167afca7d------2" type="text/html"></link><summary type="html">&lt;div&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://medium.com/illumination/the-ice-cream-seller-bff891083516?source=rss-d56167afca7d------2&quot;&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://cdn-images-1.medium.com/max/2600/0*v9u3B5RAljGxgTQU&quot; width=&quot;4592&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;A nostalgic story about childhood, family bonds, Sunday traditions, and the ice-cream seller who made every day special.&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://medium.com/illumination/the-ice-cream-seller-bff891083516?source=rss-d56167afca7d------2&quot;&gt;Continue reading on ILLUMINATION »&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary><author><name>Mohammad Faisal Khatri</name></author><source gr:stream-id="feed/https://medium.com/feed/@iamfaisalkhatri"><id>tag:google.com,2005:reader/feed/https://medium.com/feed/@iamfaisalkhatri</id><title type="html">Stories by Mohammad Faisal Khatri on Medium</title><link rel="alternate" href="https://medium.com/@iamfaisalkhatri?source=rss-d56167afca7d------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782288600000"><id gr:original-id="https://testing.pejgan.se/?p=1097">tag:google.com,2005:reader/item/0000059e00000047</id><category term="Testing"></category><title type="html">Too close to see the canvas – Part 5</title><published>2026-06-24T08:10:00Z</published><updated>2026-06-24T08:10:00Z</updated><link rel="alternate" href="https://testing.pejgan.se/too-close-to-see-the-canvas-part-5/" type="text/html"></link><summary type="html">&lt;h3&gt;The Pattern beyond the pixels – Fit for purpose&lt;/h3&gt;



&lt;p&gt;So far, in what is quickly becoming a full blown small book, we have looked at the&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://testing.pejgan.se/too-close-to-see-the-canvas-part-1/&quot;&gt; project and the problem&lt;/a&gt;, the danger of focusing too much on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://testing.pejgan.se/too-close-to-see-the-canvas-part-2/&quot;&gt;reactive work&lt;/a&gt;, &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://testing.pejgan.se/too-close-to-see-the-canvas-part-3&quot;&gt;changing the seemingly unchangeable&lt;/a&gt; and &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;http://link-to-part-4&quot;&gt;metrics and the dangers of measuring the wrong thing&lt;/a&gt;. This post is about a closely related problem that took me a long time to fully understand: what happens when you try to use one test suite to serve everyone — and why it almost inevitably serves nobody particularly well.&lt;/p&gt;



&lt;figure&gt;&lt;img width=&quot;1024&quot; height=&quot;619&quot; fetchpriority=&quot;high&quot; decoding=&quot;async&quot; alt data-orig-srcset=&quot;https://testing.pejgan.se/wp-content/uploads/2026/06/image-6-1024x619.png 1024w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-6-300x181.png 300w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-6-768x464.png 768w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-6-1536x928.png 1536w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-6.png 1752w&quot; src=&quot;https://testing.pejgan.se/wp-content/uploads/2026/06/image-6.png&quot;&gt;&lt;/figure&gt;



&lt;h3&gt;Everyone wanted something different&lt;/h3&gt;



&lt;p&gt;Once I started having proper conversations with the different people involved — developers, testers, product owners, managers — something became clear quite quickly. They all had completely legitimate needs from the automation. And those needs were not just different. In some cases they were actively in conflict with each other.&lt;/p&gt;



&lt;p&gt;Developers wanted ultrafast feedback. The ability to make changes with confidence. For a developer applying a test-first approach, a red test is &lt;em&gt;expected&lt;/em&gt; — even wanted. It means the feature isn’t done yet. A failing test is not a crisis; it’s the system working. For them, a report full of failures from ongoing work is mostly noise.&lt;/p&gt;



&lt;p&gt;Testers wanted something completely different: feedback on the stability of a release candidate, and confidence that nothing previously working had broken. They needed to be able to test different release candidates in parallel, with different sets of data. For them, a failing test means a problem found that needs immediate attention. A bad report is not noise — it’s a blocker.&lt;/p&gt;



&lt;p&gt;Product owners and scrum masters had a single question: is this safe to ship? A failing test means either we don’t release, or we have to make a difficult judgement call about severity. They needed a clear, trustworthy signal — not a noisy report they had to interpret.&lt;/p&gt;



&lt;p&gt;Managers wanted strategic information. Are we spending money in the right places? What are the trends over time? Where are the root causes when things go wrong? They needed a different cadence and a different level of aggregation entirely.&lt;/p&gt;



&lt;figure&gt;&lt;img width=&quot;1024&quot; height=&quot;606&quot; decoding=&quot;async&quot; alt data-orig-srcset=&quot;https://testing.pejgan.se/wp-content/uploads/2026/06/image-7-1024x606.png 1024w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-7-300x178.png 300w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-7-768x454.png 768w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-7.png 1080w&quot; src=&quot;https://testing.pejgan.se/wp-content/uploads/2026/06/image-7.png&quot;&gt;&lt;/figure&gt;



&lt;p&gt;All of these are completely reasonable things to want from a test setup. And we were trying to meet all of them with the same suite, running on the same schedule, producing the same report. Which meant it wasn’t really serving any of them particularly well — and sometimes the needs were pulling in directly opposite directions. Which of these people are you? Which ones are you trying to serve? (And yes, the answer can be more than one. Or all of them. Or maybe different ones.)&lt;/p&gt;



&lt;h3&gt;Tests (should) have layers&lt;/h3&gt;



&lt;figure&gt;&lt;img width=&quot;1024&quot; height=&quot;591&quot; decoding=&quot;async&quot; alt data-orig-srcset=&quot;https://testing.pejgan.se/wp-content/uploads/2026/06/image-8-1024x591.png 1024w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-8-300x173.png 300w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-8-768x443.png 768w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-8-1536x886.png 1536w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-8-2048x1182.png 2048w&quot; src=&quot;https://testing.pejgan.se/wp-content/uploads/2026/06/image-8-2048x1182.png&quot;&gt;&lt;/figure&gt;



&lt;p&gt;You don’t &lt;em&gt;have&lt;/em&gt; to use one tool and one set of tests for everything. In fact, you shouldn’t.&lt;/p&gt;



&lt;p&gt;Tests have layers — and different layers serve different purposes. Unit tests give developers fast, granular feedback at the component level. Integration tests check that pieces work together. End-to-end tests verify that whole user flows work as expected. On top of those you might have smoke tests for quick sanity checks, contract tests to catch breaking changes between services, performance tests, security tests, regulatory tests, chaos testing. The layers vary by organisation and product. (And anyone who tells you there is one right answer to how many layers you need is probably selling something.) The point is that each type answers different questions, runs at a different cadence, and costs different things to build and maintain.&lt;/p&gt;



&lt;p&gt;What we had was primarily end-to-end, GUI-level functional tests run nightly. That tells you something specific and valuable — whether certain flows work from a user’s perspective at a given point in time. It does not tell you whether individual components are well-built, whether performance is acceptable, whether a change in one service is quietly breaking a contract with another, or whether a developer’s branch is in a shippable state right now.&lt;/p&gt;



&lt;p&gt;Treating that one layer as the measure of overall quality is like trying to use a single instrument to play an entire orchestra. You get &lt;em&gt;a&lt;/em&gt; sound. You don’t get &lt;em&gt;the&lt;/em&gt; music.&lt;/p&gt;



&lt;p&gt;The question to ask is: &lt;strong&gt;what do we actually need to know, and when?&lt;/strong&gt; Then work backwards from that to figure out which layers to invest in. Layers of depth. Layers of cadence. Layers of focus.&lt;br&gt;&lt;br&gt;Which bring me to the first glimpse of my last epiphany: This story was never about automation. It was about learning about human motivation, change management and having an impact. Because whatever it might look like – It’s always a people problem.&lt;/p&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;”The 2nd Law of Consulting: No matter how it looks at first, it’s always a people problem”&lt;br&gt;– Gerald Weinberg, The secrets of consulting, 1985&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;



&lt;h3&gt;The sunk cost trap&lt;/h3&gt;



&lt;figure&gt;&lt;img width=&quot;1024&quot; height=&quot;543&quot; decoding=&quot;async&quot; alt data-orig-srcset=&quot;https://testing.pejgan.se/wp-content/uploads/2026/06/image-10-1024x543.png 1024w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-10-300x159.png 300w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-10-768x408.png 768w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-10-1536x815.png 1536w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-10.png 1920w&quot; src=&quot;https://testing.pejgan.se/wp-content/uploads/2026/06/image-10.png&quot;&gt;&lt;/figure&gt;



&lt;p&gt;One thing I found that I genuinely thought would be straightforward to fix turned out to be much harder than I anticipated. Not technically. Emotionally.&lt;/p&gt;



&lt;p&gt;I’m talking about deleting tests. Retiring approaches that had stopped making sense. Letting go of things that had been built with real effort and real pride.&lt;/p&gt;



&lt;p&gt;People &lt;em&gt;hate&lt;/em&gt; getting rid of things. At the individual level: ”it might find something next time.” At the organisational level: ”we invested a lot into this.” The emotional barrier to removing something that people have built and are proud of — and that the organisation has spent real money on — is enormous. And completely understandable. But it causes real damage if it goes unchallenged.&lt;/p&gt;



&lt;p&gt;Because every test run is a cost. And with automation – that cost is not as visible as when it is connected to a human pay slip. But in my opinion – A test should only be run if it has a value greater than its cost. &lt;br&gt;&lt;br&gt;Cost can be visible, in the form of  maintenance cost (the human resources needed), licenses, hardware, energy and other computing costs. Or it could be less obvious, in the form of complexity, execution time, slowing down time to market instead of speeding it up, context switching and mental energy needed, trust and confidence (in the software or your team),speed of feedback . That cost is ongoing, every single run, whether or not the test is still earning its place.&lt;/p&gt;



&lt;figure&gt;&lt;img width=&quot;1000&quot; height=&quot;396&quot; decoding=&quot;async&quot; alt data-orig-srcset=&quot;https://testing.pejgan.se/wp-content/uploads/2026/06/image-5.png 1000w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-5-300x119.png 300w, https://testing.pejgan.se/wp-content/uploads/2026/06/image-5-768x304.png 768w&quot; src=&quot;https://testing.pejgan.se/wp-content/uploads/2026/06/image-5.png&quot;&gt;&lt;/figure&gt;



&lt;p&gt;The question to ask is not ”has this test been valuable in the past.” That investment is gone regardless. The question is: &lt;strong&gt;does it make sense to keep running this from today forward?&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;The answer is sometimes yes. Sometimes no. Sometimes ”yes, but we should rebuild it differently.” The only way to know is to actually look at it honestly — which means tracking what things cost as well as what they return, and being willing to have the uncomfortable conversation when the maths stops mathing. &lt;/p&gt;



&lt;p&gt;Of course there’s no simple threshold for when something starts costing too much — it depends entirely on your context. But measuring total run time and total maintenance time over time, and noticing when those start rising without a corresponding increase in value, is a simple place to start. The most valuable I’ve always found to be hard to measure – how confident and happy are your people? Do they feel joy working with it? Not a metric upper management will love, but one that builds trust and confidence in different ways. &lt;/p&gt;



&lt;p&gt;In part six — the final post — we’ll look at the thing that underpins all of this and why none of the technical work above actually lands without understanding the human side of it. Change management and humans.&lt;/p&gt;</summary><author><name>Lena Pejgan Nyström</name></author><source gr:stream-id="feed/https://testing.pejgan.se/feed/"><id>tag:google.com,2005:reader/feed/https://testing.pejgan.se/feed/</id><title type="html">Testing.pejgan.se</title><link rel="alternate" href="https://testing.pejgan.se" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782273968279"><id gr:original-id="tag:blogger.com,1999:blog-5408914917304971972.post-8327921190974472665">tag:google.com,2005:reader/item/0000052600000129</id><title type="html">Faking plans is easier than fighting plans</title><published>2026-06-24T04:06:08Z</published><updated>2026-06-24T04:06:08Z</updated><link rel="alternate" href="https://visible-quality.blogspot.com/2026/06/faking-plans-is-easier-than-fighting.html" type="text/html"></link><summary type="html">&lt;p&gt;Ever entered a project as tester early on into a project? At that time when you still hold the illusion that plans are about to be set and you are on time? And then, only to find out that the only early enough is in the time the project manager gets trained on their ideas. &lt;/p&gt;
&lt;p&gt;Well, it&amp;apos;s a pretty deflating experience, and unfortunately all too common. It appears there is no early enough without a lot of friction to include testing. &lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; width=&quot;320&quot; alt=&quot;The pretty plan vs. the testing overlay&quot; src=&quot;https://drive.google.com/thumbnail?id=1baUi3cxJmRSELoledJURWDNzSqTE6bb6&amp;amp;sz=w1000&quot;&gt;&lt;/p&gt;
&lt;p&gt;The source of friction is in the mental model. Having Plan - Implement - Test - Release is such a simple illustration. But when you actually overlay testing, it&amp;apos;s the other side of everything, and if you wanted real tasks and control over it rather than long-running categories in which you report hours into, you would actually need a more finegrained breakdown of the testing tasks. &lt;/p&gt;
&lt;h2&gt;Context for an inspiration&lt;/h2&gt;
&lt;p&gt;I worked on a fixed-price project, where the fixed-price was 50% of real price. These are typical in consulting world, and what they effectively mean is that the project environment is born passively hostile with a continuous fight on showing there is a change request lurking somewhere in the communication of two or more parties. &lt;/p&gt;
&lt;p&gt;The fixed price estimation included no &lt;em&gt;test planning&lt;/em&gt;, because why would anyone plan from testing perspective separate from project. And the whole plan of testing was described in usual abstract terms of &lt;em&gt;unit, integration, end to end -testing and UAT&lt;/em&gt;. &lt;/p&gt;
&lt;p&gt;I got to plan testing before the project plan, so I outlined the testing tasks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Identifying testing not promised within 8 hours effort allocation, when promise was &lt;em&gt;unit, integration, e2e, UAT&lt;/em&gt;  and what of it was &lt;em&gt;change to promised scope&lt;/em&gt;. &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deciding on quality practices: reviews, pipelines, timing of implement &amp;amp; test in mutually supportive ways&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reviews of requirements spec, solution spec&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Testing while implementing, collaboratively, &lt;em&gt;unit and integration testing&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Testing after implementing while integrated with a 3rd party system, minimalized, &lt;em&gt;e2e testing&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Testing while integrated with a 3rd party system, necessary scope, but could be &lt;em&gt;e2e&lt;/em&gt; or &lt;em&gt;UAT&lt;/em&gt; and thus done from two different budgets&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Staying updated on learnings in the project&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While planning for testing and reviewing the documents, I found a bug worth 25 000 € / annually, and facilitated a confirming conversation with the client, and patted myself on the back for &lt;strong&gt;planning testing early on to avoid expensive problems down the road&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;If it only was that simple. Weeks later, I take a look at the project plan and none of the things I planned for testing got integrated. While appearance of a plan is not the plan underneath the surface, I find it both sad and funny that this is how we still insist on doing project planning. Not with a twist: they would not plan for things with people, or read the things from people, they would have AI in between all of that. &lt;/p&gt;
&lt;p&gt;There is a special sense of middle finger that comes with &amp;quot;I did not bother reading the idea of key milestones you were communicating with an image, I rather sent your image to AI and here&amp;apos;s a wall of text it had to say about it that made me completely miss the point, with a twist of false claims I have no capability of detecting&amp;quot;. &lt;/p&gt;
&lt;p&gt;I took my wins of finding the bug, and decided appearance of plan and the plan that will be executed can coexist, because faking it is easier than fighting it. &lt;/p&gt;
&lt;h2&gt;Lessons from the inspiration&lt;/h2&gt;
&lt;p&gt;As always, doing the work teaches you a lot. &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Changing other persons mental model was more possible at time before AI. AI allows for not making an effort in building own mental model. &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Actual collaboration would win over co-creating and handing off artifacts. Two hours together on a plan wins two hours separately on the very same plan. That removes also the AI workslop in between that is worse than before.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Change management politics on fixed price projects remain an antipattern caused by competition tactics. &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Feeling detached from appearance of plans is necessary for survival. You know, that sphere of influence, the cost of applying influence for change greatly outweighs the cost of faking it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The things that matter like &lt;em&gt;access to version control tool to collaborate on in implementation&lt;/em&gt; or &lt;em&gt;pipeline so that tests are not in head of someone&lt;/em&gt; don&amp;apos;t need to make it into plan to make it into action. &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use of AI splits us to two: developers and knowledge workers, and I find myself increasingly frustrated with the hurdles the latter crowd creates in the handoff. &lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;</summary><author><name>Maaret Pyhäjärvi</name></author><source gr:stream-id="feed/https://visible-quality.blogspot.com/feeds/posts/default"><id>tag:google.com,2005:reader/feed/https://visible-quality.blogspot.com/feeds/posts/default</id><title type="html">A Seasoned Tester&apos;s Crystal Ball</title><link rel="alternate" href="https://visible-quality.blogspot.com/" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782252000000"><id gr:original-id="https://scrolltest.com/?p=7382">tag:google.com,2005:reader/item/000004440000024e</id><category term="Playwright tutorial Java"></category><category term="Selenium"></category><category term="Testing"></category><title type="html">Selenium to Playwright Migration Part 2: Setup and Configuration</title><published>2026-06-23T22:00:00Z</published><updated>2026-06-23T22:00:00Z</updated><link rel="alternate" href="https://scrolltest.com/selenium-to-playwright-migration-part-2-setup-configuration/" type="text/html"></link><summary type="html">&lt;p&gt;Convert pom.xml to package.json, TestNG XML to playwright.config.ts, Java properties to .env, and Maven CI to GitHub Actions with 4-shard parallelization.&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com/selenium-to-playwright-migration-part-2-setup-configuration/&quot;&gt;Selenium to Playwright Migration Part 2: Setup and Configuration&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com&quot;&gt;Software Testing &amp;amp; Automation&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Pramod Dutta</name></author><source gr:stream-id="feed/https://scrolltest.com/feed/"><id>tag:google.com,2005:reader/feed/https://scrolltest.com/feed/</id><title type="html">Software Testing &amp; Automation</title><link rel="alternate" href="https://scrolltest.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782249255000"><id gr:original-id="https://medium.com/p/5e5e2327869f">tag:google.com,2005:reader/item/000003470000006f</id><category term="ai"></category><category term="test-automation"></category><category term="selenium"></category><title type="html">Transform Selenium into AI-First Automation</title><published>2026-06-23T21:14:15Z</published><updated>2026-06-23T21:14:15Z</updated><link rel="alternate" href="https://jarbon.medium.com/transform-selenium-into-ai-first-automation-5e5e2327869f?source=rss-1ee8fdc3bacb------2" type="text/html"></link><summary type="html">&lt;p&gt;Transform Selenium into AI-First Automation&lt;/p&gt;&lt;figure&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; alt src=&quot;https://cdn-images-1.medium.com/max/1024/1*45vmpEqlGGz13PvXuX6Abg.png&quot;&gt;&lt;/figure&gt;&lt;h3&gt;Executive Summary&lt;/h3&gt;&lt;p&gt;Software engineering is entering a period of unprecedented acceleration.&lt;/p&gt;&lt;p&gt;AI-assisted development tools are dramatically increasing the amount of software organizations can create. As code generation becomes faster, cheaper, and increasingly autonomous, the bottleneck in software delivery is shifting.&lt;/p&gt;&lt;p&gt;The challenge is no longer generating software.&lt;/p&gt;&lt;p&gt;The challenge is generating confidence.&lt;/p&gt;&lt;p&gt;Most enterprises have already invested heavily in testing infrastructure. Years of Selenium development, thousands of automated tests, custom frameworks, CI/CD integrations, reporting systems, and organizational expertise represent significant corporate assets.&lt;/p&gt;&lt;p&gt;Many engineering leaders now face a difficult question:&lt;/p&gt;&lt;p&gt;How can organizations become AI-first without discarding years of automation investment?&lt;/p&gt;&lt;p&gt;The answer is AI-transformation.&lt;/p&gt;&lt;p&gt;Rather than replacing existing automation, organizations can use AI to analyze existing Selenium suites, recover embedded business intent, identify hidden assumptions, generate AI-first test definitions, and execute them using modern Computer Use Agents (CUAs).&lt;/p&gt;&lt;p&gt;The result is not merely new automation.&lt;/p&gt;&lt;p&gt;The result is a testing organization that is better aligned with an AI-first future.&lt;/p&gt;&lt;h3&gt;The New Testing Challenge&lt;/h3&gt;&lt;p&gt;For more than two decades, software testing has focused on automating user interactions.The dominant model has been procedural automation:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Click this button&lt;/li&gt;&lt;li&gt;Wait for this selector&lt;/li&gt;&lt;li&gt;Enter this value&lt;/li&gt;&lt;li&gt;Verify this exact string&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Frameworks such as Selenium, Playwright, Cypress, and Appium have been enormously successful because they allow organizations to automate repetitive activities at scale.&lt;/p&gt;&lt;p&gt;However, these frameworks share a common characteristic.&lt;/p&gt;&lt;p&gt;They encode implementation details.&lt;/p&gt;&lt;p&gt;When interfaces change, workflows evolve, selectors move, or systems behave differently than expected, automation requires maintenance.&lt;/p&gt;&lt;p&gt;Historically, this tradeoff was acceptable because application change rates were relatively manageable.&lt;/p&gt;&lt;p&gt;That assumption is changing.&lt;/p&gt;&lt;p&gt;AI-generated software is increasing both the volume and velocity of change.&lt;/p&gt;&lt;p&gt;Organizations are beginning to discover that the limiting factor is not code generation.&lt;/p&gt;&lt;p&gt;It is maintaining confidence in rapidly changing systems.&lt;/p&gt;&lt;p&gt;This creates an opportunity to rethink how automation itself is represented.&lt;/p&gt;&lt;h3&gt;Why Existing Selenium Assets Matter&lt;/h3&gt;&lt;p&gt;A common mistake during modernization initiatives is treating existing automation as technical debt.&lt;/p&gt;&lt;p&gt;In reality, most mature Selenium suites represent a significant corporate asset.&lt;/p&gt;&lt;p&gt;Large organizations often have hundreds, thousands, or even tens of thousands of automated tests. Those suites frequently represent years of engineering effort and, in many cases, millions of dollars of cumulative investment.&lt;/p&gt;&lt;p&gt;That investment is not just the code itself.&lt;/p&gt;&lt;p&gt;It includes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Business workflows&lt;/li&gt;&lt;li&gt;Customer journeys&lt;/li&gt;&lt;li&gt;Domain expertise&lt;/li&gt;&lt;li&gt;Risk models&lt;/li&gt;&lt;li&gt;Compliance requirements&lt;/li&gt;&lt;li&gt;Historical defect knowledge&lt;/li&gt;&lt;li&gt;Integration logic&lt;/li&gt;&lt;li&gt;Validation rules&lt;/li&gt;&lt;li&gt;Operational experience&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The scripts themselves are not the asset.&lt;/p&gt;&lt;p&gt;The knowledge trapped inside them is.&lt;/p&gt;&lt;p&gt;Viewed through this lens, Selenium becomes less of a testing framework and more of a repository of institutional knowledge.&lt;/p&gt;&lt;p&gt;Every automated test represents a decision someone made about what matters to the business.&lt;/p&gt;&lt;p&gt;Every validation captures a requirement.&lt;/p&gt;&lt;p&gt;Every workflow encodes understanding about how customers, employees, partners, or systems are expected to behave.&lt;/p&gt;&lt;p&gt;The challenge is not replacing that investment.&lt;/p&gt;&lt;p&gt;The challenge is extracting, preserving, and modernizing it.&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;For many enterprises, the automation portfolio represents millions of dollars of accumulated testing investment. The objective is not replacement. The objective is preservation and transformation.&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;Organizations that approach AI-first testing as a wholesale replacement effort often underestimate the value already embedded in their automation portfolio.&lt;/p&gt;&lt;p&gt;Organizations that approach it as a transformation effort can preserve years of accumulated knowledge while gaining the benefits of AI-native execution.&lt;/p&gt;&lt;p&gt;This is why the goal is not to throw away Selenium.&lt;/p&gt;&lt;p&gt;The goal is to transform it.&lt;/p&gt;&lt;h3&gt;A Four-Step Transformation Framework&lt;/h3&gt;&lt;p&gt;The transformation process consists of four major phases:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Analyze Code for AI Readiness&lt;/li&gt;&lt;li&gt;Q&amp;amp;A with AI&lt;/li&gt;&lt;li&gt;Generate AI-First Test Definitions&lt;/li&gt;&lt;li&gt;Run and Validate Loop&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;See content credentials&lt;/p&gt;&lt;figure&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; alt src=&quot;https://cdn-images-1.medium.com/max/1024/0*88Xgzk106hLklNsf&quot;&gt;&lt;/figure&gt;&lt;p&gt;AI Transformation Process&lt;/p&gt;&lt;p&gt;Each phase incrementally converts procedural automation into AI-first automation.&lt;/p&gt;&lt;h3&gt;Step 1: Analyze Code for AI Readiness&lt;/h3&gt;&lt;p&gt;Before transformation can begin, AI must understand not only what tests do but also what they depend on.&lt;/p&gt;&lt;p&gt;AI reviews:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Selenium scripts&lt;/li&gt;&lt;li&gt;Page Objects&lt;/li&gt;&lt;li&gt;Helper libraries&lt;/li&gt;&lt;li&gt;Setup scripts&lt;/li&gt;&lt;li&gt;Teardown logic&lt;/li&gt;&lt;li&gt;Fixtures&lt;/li&gt;&lt;li&gt;Configuration files&lt;/li&gt;&lt;li&gt;Utility code&lt;/li&gt;&lt;li&gt;Supporting source code&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The objective is not merely to understand what the tests do.&lt;/p&gt;&lt;p&gt;The objective is to understand everything they depend on.&lt;/p&gt;&lt;h3&gt;Hidden Assumptions&lt;/h3&gt;&lt;p&gt;Many automation suites rely on assumptions that are never explicitly documented.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Environment variables&lt;/li&gt;&lt;li&gt;Pre-seeded databases&lt;/li&gt;&lt;li&gt;Shared state&lt;/li&gt;&lt;li&gt;Generated accounts&lt;/li&gt;&lt;li&gt;Feature flags&lt;/li&gt;&lt;li&gt;Deployment configuration&lt;/li&gt;&lt;li&gt;Scheduled jobs&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;AI is remarkably effective at identifying assumptions that appear to exist but are not visible in the current code.&lt;/p&gt;&lt;h3&gt;External Dependencies&lt;/h3&gt;&lt;p&gt;Most automation suites interact with:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;APIs&lt;/li&gt;&lt;li&gt;Databases&lt;/li&gt;&lt;li&gt;Queues&lt;/li&gt;&lt;li&gt;Authentication systems&lt;/li&gt;&lt;li&gt;Internal platforms&lt;/li&gt;&lt;li&gt;Third-party services&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;AI evaluates whether these dependencies can be externalized through APIs, MCP endpoints, services, or reusable execution utilities.&lt;/p&gt;&lt;h3&gt;Dynamic Runtime Data&lt;/h3&gt;&lt;p&gt;Many tests generate:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;User accounts&lt;/li&gt;&lt;li&gt;Tokens&lt;/li&gt;&lt;li&gt;Temporary records&lt;/li&gt;&lt;li&gt;Unique identifiers&lt;/li&gt;&lt;li&gt;Transaction references&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;These flows must be identified and transformed into reusable runtime services.&lt;/p&gt;&lt;h3&gt;Test Dependencies&lt;/h3&gt;&lt;p&gt;Large Selenium portfolios frequently contain hidden sequencing requirements.&lt;/p&gt;&lt;p&gt;For example:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Test B assumes Test A executed.&lt;/li&gt;&lt;li&gt;Test C depends on Test B’s output.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;AI identifies these relationships and recommends opportunities for decoupling.&lt;/p&gt;&lt;h3&gt;Validation Logic&lt;/h3&gt;&lt;p&gt;Assertions may exist in:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;UI elements&lt;/li&gt;&lt;li&gt;APIs&lt;/li&gt;&lt;li&gt;Databases&lt;/li&gt;&lt;li&gt;Logs&lt;/li&gt;&lt;li&gt;Reporting systems&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Understanding these validations is critical because they ultimately define what success means.&lt;/p&gt;&lt;p&gt;The output of this phase is an AI Readiness assessment and a roadmap for transformation.&lt;/p&gt;&lt;p&gt;The scripts themselves are not the asset.&lt;/p&gt;&lt;p&gt;The knowledge trapped inside them is.&lt;/p&gt;&lt;h3&gt;Step 2: Q&amp;amp;A with AI&lt;/h3&gt;&lt;p&gt;One of the biggest surprises during transformation projects is how much knowledge exists outside the code.&lt;/p&gt;&lt;p&gt;Even after analyzing every Selenium file, helper library, page object, setup script, and supporting framework, there are usually important assumptions that remain undocumented.&lt;/p&gt;&lt;p&gt;Questions such as:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Why is this workflow executed in this order?&lt;/li&gt;&lt;li&gt;What business rule is this validation actually checking?&lt;/li&gt;&lt;li&gt;Why is this value generated dynamically?&lt;/li&gt;&lt;li&gt;What assumptions are being made about acceptable outcomes?&lt;/li&gt;&lt;li&gt;What conditions would make this workflow fail?&lt;/li&gt;&lt;li&gt;What edge cases were the original test authors worried about?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Historically, recovering this information required tracking down the original automation engineer, developer, tester, or product owner.&lt;/p&gt;&lt;p&gt;AI changes that process.&lt;/p&gt;&lt;p&gt;After analyzing the automation suite, AI generates a focused list of questions designed to recover missing intent.&lt;/p&gt;&lt;p&gt;The AI is effectively asking:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;“What would I need to know to confidently transform this test?”&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;This is an important shift.&lt;/p&gt;&lt;p&gt;Instead of humans manually reverse-engineering years of automation, AI performs the analysis and identifies the specific knowledge gaps.&lt;/p&gt;&lt;p&gt;In practice, most tests require surprisingly little clarification.&lt;/p&gt;&lt;p&gt;Many require no clarification at all.&lt;/p&gt;&lt;p&gt;Most require only one or two answers.&lt;/p&gt;&lt;p&gt;A small percentage contain complex business logic, hidden dependencies, or operational assumptions that require deeper discussion.&lt;/p&gt;&lt;p&gt;The answers are then fed back into the transformation process.&lt;/p&gt;&lt;p&gt;At this point, the automation is no longer just code.&lt;/p&gt;&lt;p&gt;It has become a combination of code, business intent, operational knowledge, and organizational expertise.&lt;/p&gt;&lt;p&gt;That knowledge becomes the foundation for AI-first execution.&lt;/p&gt;&lt;h3&gt;Step 3: Generate AI-First Test Definitions&lt;/h3&gt;&lt;p&gt;Once assumptions, dependencies, and intent have been captured, transformation can begin.&lt;/p&gt;&lt;p&gt;Large Selenium portfolios often contain hundreds or thousands of tests.&lt;/p&gt;&lt;p&gt;Rather than attempting to transform everything simultaneously, AI first ranks tests according to transformation complexity.&lt;/p&gt;&lt;p&gt;Simple tests are transformed first.&lt;/p&gt;&lt;p&gt;Complex tests are flagged for review.&lt;/p&gt;&lt;p&gt;This approach delivers value quickly while reducing transformation risk.&lt;/p&gt;&lt;h3&gt;From Procedures to Intent&lt;/h3&gt;&lt;p&gt;Traditional Selenium automation focuses on implementation details.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Click this button.&lt;/li&gt;&lt;li&gt;Wait for this selector.&lt;/li&gt;&lt;li&gt;Enter this value.&lt;/li&gt;&lt;li&gt;Verify this exact string.&lt;/li&gt;&lt;li&gt;Check this specific DOM element.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;AI-first automation focuses on outcomes.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Create a new customer account.&lt;/li&gt;&lt;li&gt;Complete checkout successfully.&lt;/li&gt;&lt;li&gt;Verify the customer receives a confirmation.&lt;/li&gt;&lt;li&gt;Ensure the order total appears reasonable.&lt;/li&gt;&lt;li&gt;Confirm the workflow behaves as expected.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This distinction is critical.&lt;/p&gt;&lt;p&gt;The goal is not to describe every action.&lt;/p&gt;&lt;p&gt;The goal is to describe what success looks like.&lt;/p&gt;&lt;p&gt;This allows execution systems to adapt when applications evolve.&lt;/p&gt;&lt;p&gt;In many cases, providing less implementation detail produces more resilient automation.&lt;/p&gt;&lt;p&gt;Overly procedural instructions frequently create brittle tests.&lt;/p&gt;&lt;p&gt;Intent-driven definitions create flexibility.&lt;/p&gt;&lt;p&gt;The challenge is finding the right balance between precision and adaptability.&lt;/p&gt;&lt;h3&gt;The New Test Artifact&lt;/h3&gt;&lt;p&gt;The output of the transformation process is not traditional test code.&lt;/p&gt;&lt;p&gt;Instead, the system generates structured AI-first test definitions.&lt;/p&gt;&lt;p&gt;These definitions capture:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Business intent&lt;/li&gt;&lt;li&gt;Expected outcomes&lt;/li&gt;&lt;li&gt;Validation rules&lt;/li&gt;&lt;li&gt;Runtime parameters&lt;/li&gt;&lt;li&gt;Execution hints&lt;/li&gt;&lt;li&gt;Contextual information&lt;/li&gt;&lt;li&gt;Operational assumptions&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;http://opentest.ai/&quot;&gt;OpenTest.AI&lt;/a&gt; formats are great for storing AI-First test definitions in a structured schema optimized for AI-driven execution&lt;/p&gt;&lt;p&gt;The schema becomes the modern, AI-first equivalent of the original Selenium script.&lt;/p&gt;&lt;p&gt;Instead of telling the browser exactly what to click, it tells the execution engine what the test is trying to prove.&lt;/p&gt;&lt;h3&gt;Example AI-First Test Definition&lt;/h3&gt;&lt;p&gt;See content credentials&lt;/p&gt;&lt;figure&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; alt src=&quot;https://cdn-images-1.medium.com/max/1024/0*GsL_HQFaDY49ahE-&quot;&gt;&lt;/figure&gt;&lt;p&gt;OpenTest.AI Test Schema&lt;/p&gt;&lt;p&gt;The structure intentionally separates:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Title&lt;/li&gt;&lt;li&gt;Goal&lt;/li&gt;&lt;li&gt;Description&lt;/li&gt;&lt;li&gt;Thinking&lt;/li&gt;&lt;li&gt;Action&lt;/li&gt;&lt;li&gt;Target&lt;/li&gt;&lt;li&gt;Value&lt;/li&gt;&lt;li&gt;Expected Outcome&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The inclusion of the thinking field is particularly important.&lt;/p&gt;&lt;p&gt;Traditional automation captures actions.&lt;/p&gt;&lt;p&gt;AI-first automation captures reasoning.&lt;/p&gt;&lt;p&gt;By preserving the reasoning behind a step, execution systems can make better decisions when interfaces change, workflows evolve, or unexpected conditions appear.&lt;/p&gt;&lt;p&gt;This structure is intentionally simple.&lt;/p&gt;&lt;p&gt;It is easy for humans to read.&lt;/p&gt;&lt;p&gt;It is easy for AI systems to generate.&lt;/p&gt;&lt;p&gt;It is easy for Computer Use Agents to execute.&lt;/p&gt;&lt;p&gt;The result is an artifact that serves both humans and machines.&lt;/p&gt;&lt;h3&gt;Computer Use Agents (CUAs)&lt;/h3&gt;&lt;p&gt;Once AI-first definitions have been created, they must be executed.&lt;/p&gt;&lt;p&gt;This is where Computer Use Agents enter the picture.&lt;/p&gt;&lt;p&gt;A Computer Use Agent (CUA) is an AI system capable of interacting with software applications similarly to a human tester.&lt;/p&gt;&lt;p&gt;A CUA can:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Observe interfaces&lt;/li&gt;&lt;li&gt;Interpret context&lt;/li&gt;&lt;li&gt;Make decisions&lt;/li&gt;&lt;li&gt;Interact with controls&lt;/li&gt;&lt;li&gt;Recover from disruptions&lt;/li&gt;&lt;li&gt;Continue pursuing an intended outcome&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Unlike traditional automation frameworks, Computer Use Agents make many decisions at runtime.&lt;/p&gt;&lt;p&gt;Traditional Selenium determines how to interact with an application before execution.&lt;/p&gt;&lt;p&gt;A Computer Use Agent determines how to interact with the application during execution.&lt;/p&gt;&lt;p&gt;This distinction fundamentally changes how automation behaves.&lt;/p&gt;&lt;p&gt;Selenium decides the path ahead of time.&lt;/p&gt;&lt;p&gt;A Computer Use Agent discovers the path at runtime.&lt;/p&gt;&lt;p&gt;When selectors change, dialogs appear, layouts move, or workflows evolve, a Computer Use Agent can often adapt and continue without requiring maintenance.&lt;/p&gt;&lt;p&gt;This makes the execution model substantially more resilient than traditional procedural automation.&lt;/p&gt;&lt;h3&gt;CUA Landscape Is Moving Fast&lt;/h3&gt;&lt;p&gt;Computer Use Agents are evolving rapidly.&lt;/p&gt;&lt;p&gt;Organizations evaluating AI-first testing should understand the strengths and weaknesses of current platforms, and consider their internal systems and AI-decisions.&lt;/p&gt;&lt;p&gt;For an up-to-date comparison of:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;OpenAI Operator&lt;/li&gt;&lt;li&gt;Anthropic Computer Use&lt;/li&gt;&lt;li&gt;Google Mariner&lt;/li&gt;&lt;li&gt;Browser Use&lt;/li&gt;&lt;li&gt;Manus&lt;/li&gt;&lt;li&gt;Open-source alternatives&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://chatgpt.com/?q=What+are+the+latest+AI+CUA+agents%3F+Compare+OpenAI+Operator%2C+Anthropic+Computer+Use%2C+Google+Mariner%2C+Browser+Use%2C+Manus%2C+and+other+notable+computer-using+agents.+Include+strengths%2C+weaknesses%2C+benchmarks%2C+open-source+alternatives%2C+and+implications+for+AI-first+software+testing.&amp;amp;utm_source=chatgpt.com&quot;&gt;ChatGPT CUA Comparison&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The landscape is changing quickly enough that any static comparison will become outdated.&lt;/p&gt;&lt;p&gt;The important takeaway is not which CUA wins today.&lt;/p&gt;&lt;p&gt;The important takeaway is that the execution model itself is changing.&lt;/p&gt;&lt;h3&gt;Step 4: Run and Validate Loop&lt;/h3&gt;&lt;p&gt;Transformation is not complete when definitions are generated.&lt;/p&gt;&lt;p&gt;They must be executed, validated, and refined.&lt;/p&gt;&lt;p&gt;The execution loop performs the following activities:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Load AI-first test definitions.&lt;/li&gt;&lt;li&gt;Prepare runtime data.&lt;/li&gt;&lt;li&gt;Execute workflows through a Computer Use Agent.&lt;/li&gt;&lt;li&gt;Capture evidence.&lt;/li&gt;&lt;li&gt;Validate outcomes.&lt;/li&gt;&lt;li&gt;Review failures.&lt;/li&gt;&lt;li&gt;Refine definitions.&lt;/li&gt;&lt;li&gt;Execute again.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Runtime Data Preparation&lt;/h3&gt;&lt;p&gt;Many workflows require information before execution begins.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Creating test accounts&lt;/li&gt;&lt;li&gt;Generating credentials&lt;/li&gt;&lt;li&gt;Requesting tokens&lt;/li&gt;&lt;li&gt;Calling APIs&lt;/li&gt;&lt;li&gt;Seeding databases&lt;/li&gt;&lt;li&gt;Retrieving environment information&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Historically, these activities were embedded within helper code and setup scripts.&lt;/p&gt;&lt;p&gt;In AI-first architectures, they can often be externalized into reusable services, APIs, MCP endpoints, or utility functions.&lt;/p&gt;&lt;p&gt;The resulting data is then provided to the Computer Use Agent at runtime.&lt;/p&gt;&lt;p&gt;This keeps test definitions focused on intent while still supporting complex execution requirements.&lt;/p&gt;&lt;h3&gt;Validation Becomes Richer&lt;/h3&gt;&lt;p&gt;One of the most important benefits of AI-first execution is richer validation.&lt;/p&gt;&lt;p&gt;Traditional automation typically validates exact conditions.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Exact text matches&lt;/li&gt;&lt;li&gt;Exact values&lt;/li&gt;&lt;li&gt;Specific selectors&lt;/li&gt;&lt;li&gt;Exact DOM structures&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;AI-first automation can still perform precise validations when necessary.&lt;/p&gt;&lt;p&gt;However, it can also evaluate broader outcomes.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Does the workflow appear successful?&lt;/li&gt;&lt;li&gt;Does the page appear visually broken?&lt;/li&gt;&lt;li&gt;Does the content make sense?&lt;/li&gt;&lt;li&gt;Does the user experience appear confusing?&lt;/li&gt;&lt;li&gt;Does the page align with brand guidelines?&lt;/li&gt;&lt;li&gt;Does the result match business expectations?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This allows organizations to validate aspects of quality that were previously difficult or expensive to automate.&lt;/p&gt;&lt;h3&gt;The Transformation Loop&lt;/h3&gt;&lt;p&gt;The first execution pass is rarely perfect.&lt;/p&gt;&lt;p&gt;Some tests transform successfully immediately.&lt;/p&gt;&lt;p&gt;Others reveal hidden assumptions, missing data, environmental dependencies, or workflow ambiguities.&lt;/p&gt;&lt;p&gt;Instead of manually rewriting every failure, AI reviews the evidence and asks:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;What information was missing?&lt;/li&gt;&lt;li&gt;What assumption was incorrect?&lt;/li&gt;&lt;li&gt;What additional context would help?&lt;/li&gt;&lt;li&gt;What should be clarified by a human?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The answers are incorporated into the definitions.&lt;/p&gt;&lt;p&gt;The tests are executed again.&lt;/p&gt;&lt;p&gt;Each cycle increases transformation quality.&lt;/p&gt;&lt;p&gt;The loop does not simply test the application.&lt;/p&gt;&lt;p&gt;It tests the transformation itself.&lt;/p&gt;&lt;h3&gt;Why Transform Selenium into AI-First Automation?&lt;/h3&gt;&lt;p&gt;Most organizations begin this journey because they want to reduce maintenance.&lt;/p&gt;&lt;p&gt;That is understandable.&lt;/p&gt;&lt;p&gt;Selector maintenance, brittle automation, false failures, and ongoing script updates consume significant engineering time.&lt;/p&gt;&lt;p&gt;However, maintenance reduction is only one benefit.&lt;/p&gt;&lt;p&gt;The larger opportunity is strategic.&lt;/p&gt;&lt;p&gt;Organizations are increasingly adopting AI-first engineering strategies.&lt;/p&gt;&lt;p&gt;Executives want AI-first development.&lt;/p&gt;&lt;p&gt;They want AI-first operations.&lt;/p&gt;&lt;p&gt;Increasingly, they want AI-first testing.&lt;/p&gt;&lt;p&gt;Transforming Selenium into AI-first automation provides a practical bridge between existing investments and future architectures.&lt;/p&gt;&lt;p&gt;Rather than discarding years of work, organizations can preserve existing knowledge while modernizing execution.&lt;/p&gt;&lt;p&gt;This allows testing to evolve alongside software development.&lt;/p&gt;&lt;h3&gt;ROI Matters More Than Token Counts&lt;/h3&gt;&lt;p&gt;One of the most common questions about AI-first testing involves token consumption.&lt;/p&gt;&lt;p&gt;In practice, token consumption is usually not the most important metric.&lt;/p&gt;&lt;p&gt;The more useful questions are:&lt;/p&gt;&lt;p&gt;How much engineering effort has been eliminated? How much faster is my team?&lt;/p&gt;&lt;p&gt;Every hour spent:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Updating selectors&lt;/li&gt;&lt;li&gt;Debugging automation failures&lt;/li&gt;&lt;li&gt;Investigating false negatives&lt;/li&gt;&lt;li&gt;Maintaining brittle scripts&lt;/li&gt;&lt;li&gt;Repairing workflows after UI changes&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;has a real cost.&lt;/p&gt;&lt;p&gt;Organizations should evaluate:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Reduced maintenance&lt;/li&gt;&lt;li&gt;Faster adaptation to change&lt;/li&gt;&lt;li&gt;Improved reliability&lt;/li&gt;&lt;li&gt;Increased engineering productivity&lt;/li&gt;&lt;li&gt;Faster releases&lt;/li&gt;&lt;li&gt;Future-proof architecture&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Many teams discover that maintenance savings alone justify transformation.&lt;/p&gt;&lt;p&gt;The strategic value extends far beyond execution costs.&lt;/p&gt;&lt;h3&gt;From Theory to Practice&lt;/h3&gt;&lt;figure&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; alt src=&quot;https://cdn-images-1.medium.com/max/1024/0*DSpiappecTiNLdX8&quot;&gt;&lt;/figure&gt;&lt;p&gt;IcebergQA’s Experts leverage Automated Transformation Workflows&lt;/p&gt;&lt;p&gt;Organizations can ad-hoc perform transformation with ChatBots and LLMs, and larger organizations can internally automate some of the transformation with integrations of traditional software and LLMs.&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;http://testers.ai/&quot;&gt;IcebergQA&lt;/a&gt; has implemented an automated implementation of the tranformation process and supported by IcebergQA transformation services. It is also possible to run this system on your own private cloud infrastructure.&lt;/p&gt;&lt;p&gt;The platform can import:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Selenium&lt;/li&gt;&lt;li&gt;Playwright&lt;/li&gt;&lt;li&gt;Cypress&lt;/li&gt;&lt;li&gt;Custom automation frameworks&lt;/li&gt;&lt;li&gt;Manual test cases&lt;/li&gt;&lt;li&gt;Requirements and user stories&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;It automates:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;AI Readiness analysis&lt;/li&gt;&lt;li&gt;Question generation&lt;/li&gt;&lt;li&gt;Transformation&lt;/li&gt;&lt;li&gt;CUA execution&lt;/li&gt;&lt;li&gt;Validation&lt;/li&gt;&lt;li&gt;Iterative improvement&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The goal is not merely to automate execution.&lt;/p&gt;&lt;p&gt;The goal is to accelerate organizational transformation, and IcebergQA provides 30-day AI QA sprints to help your team transform as quickly and confidencly as possible.&lt;/p&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;&lt;p&gt;Organizations do not need to choose between preserving their existing automation investments and becoming AI-first. They can do both. The path forward is transformation: preserving the knowledge already embedded within Selenium suites, recovering the business intent behind those tests, modernizing the execution model, and building a testing architecture capable of scaling alongside AI-generated software.&lt;/p&gt;&lt;p&gt;As AI accelerates software development, the challenge is no longer generating code — it is generating confidence. Organizations that successfully transform their existing automation assets into AI-first testing systems will be better positioned to move faster, maintain quality, reduce maintenance costs, and adapt to the next generation of software engineering. Don’t throw away your Selenium investment. Transform it.&lt;/p&gt;&lt;p&gt;— Jason Arbon, CEO &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;http://testers.ai/&quot;&gt;Testers.ai&lt;/a&gt;, Principal &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;http://icebergqa.com/&quot;&gt;IcebergQA.com&lt;/a&gt;&lt;/p&gt;</summary><author><name>jason arbon</name></author><source gr:stream-id="feed/https://medium.com/feed/@jarbon"><id>tag:google.com,2005:reader/feed/https://medium.com/feed/@jarbon</id><title type="html">Stories by jason arbon on Medium</title><link rel="alternate" href="https://medium.com/@jarbon?source=rss-1ee8fdc3bacb------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782249255000"><id gr:original-id="https://medium.com/p/5e5e2327869f">tag:google.com,2005:reader/item/000009ff0000002f</id><category term="ai"></category><category term="test-automation"></category><category term="selenium"></category><title type="html">Transform Selenium into AI-First Automation</title><published>2026-06-23T21:14:15Z</published><updated>2026-06-23T21:14:15Z</updated><link rel="alternate" href="https://jarbon.medium.com/transform-selenium-into-ai-first-automation-5e5e2327869f?source=rss-1ee8fdc3bacb------2" type="text/html"></link><summary type="html">&lt;p&gt;Transform Selenium into AI-First Automation&lt;/p&gt;&lt;figure&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; alt src=&quot;https://cdn-images-1.medium.com/max/1024/1*45vmpEqlGGz13PvXuX6Abg.png&quot;&gt;&lt;/figure&gt;&lt;h3&gt;Executive Summary&lt;/h3&gt;&lt;p&gt;Software engineering is entering a period of unprecedented acceleration.&lt;/p&gt;&lt;p&gt;AI-assisted development tools are dramatically increasing the amount of software organizations can create. As code generation becomes faster, cheaper, and increasingly autonomous, the bottleneck in software delivery is shifting.&lt;/p&gt;&lt;p&gt;The challenge is no longer generating software.&lt;/p&gt;&lt;p&gt;The challenge is generating confidence.&lt;/p&gt;&lt;p&gt;Most enterprises have already invested heavily in testing infrastructure. Years of Selenium development, thousands of automated tests, custom frameworks, CI/CD integrations, reporting systems, and organizational expertise represent significant corporate assets.&lt;/p&gt;&lt;p&gt;Many engineering leaders now face a difficult question:&lt;/p&gt;&lt;p&gt;How can organizations become AI-first without discarding years of automation investment?&lt;/p&gt;&lt;p&gt;The answer is AI-transformation.&lt;/p&gt;&lt;p&gt;Rather than replacing existing automation, organizations can use AI to analyze existing Selenium suites, recover embedded business intent, identify hidden assumptions, generate AI-first test definitions, and execute them using modern Computer Use Agents (CUAs).&lt;/p&gt;&lt;p&gt;The result is not merely new automation.&lt;/p&gt;&lt;p&gt;The result is a testing organization that is better aligned with an AI-first future.&lt;/p&gt;&lt;h3&gt;The New Testing Challenge&lt;/h3&gt;&lt;p&gt;For more than two decades, software testing has focused on automating user interactions.The dominant model has been procedural automation:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Click this button&lt;/li&gt;&lt;li&gt;Wait for this selector&lt;/li&gt;&lt;li&gt;Enter this value&lt;/li&gt;&lt;li&gt;Verify this exact string&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Frameworks such as Selenium, Playwright, Cypress, and Appium have been enormously successful because they allow organizations to automate repetitive activities at scale.&lt;/p&gt;&lt;p&gt;However, these frameworks share a common characteristic.&lt;/p&gt;&lt;p&gt;They encode implementation details.&lt;/p&gt;&lt;p&gt;When interfaces change, workflows evolve, selectors move, or systems behave differently than expected, automation requires maintenance.&lt;/p&gt;&lt;p&gt;Historically, this tradeoff was acceptable because application change rates were relatively manageable.&lt;/p&gt;&lt;p&gt;That assumption is changing.&lt;/p&gt;&lt;p&gt;AI-generated software is increasing both the volume and velocity of change.&lt;/p&gt;&lt;p&gt;Organizations are beginning to discover that the limiting factor is not code generation.&lt;/p&gt;&lt;p&gt;It is maintaining confidence in rapidly changing systems.&lt;/p&gt;&lt;p&gt;This creates an opportunity to rethink how automation itself is represented.&lt;/p&gt;&lt;h3&gt;Why Existing Selenium Assets Matter&lt;/h3&gt;&lt;p&gt;A common mistake during modernization initiatives is treating existing automation as technical debt.&lt;/p&gt;&lt;p&gt;In reality, most mature Selenium suites represent a significant corporate asset.&lt;/p&gt;&lt;p&gt;Large organizations often have hundreds, thousands, or even tens of thousands of automated tests. Those suites frequently represent years of engineering effort and, in many cases, millions of dollars of cumulative investment.&lt;/p&gt;&lt;p&gt;That investment is not just the code itself.&lt;/p&gt;&lt;p&gt;It includes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Business workflows&lt;/li&gt;&lt;li&gt;Customer journeys&lt;/li&gt;&lt;li&gt;Domain expertise&lt;/li&gt;&lt;li&gt;Risk models&lt;/li&gt;&lt;li&gt;Compliance requirements&lt;/li&gt;&lt;li&gt;Historical defect knowledge&lt;/li&gt;&lt;li&gt;Integration logic&lt;/li&gt;&lt;li&gt;Validation rules&lt;/li&gt;&lt;li&gt;Operational experience&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The scripts themselves are not the asset.&lt;/p&gt;&lt;p&gt;The knowledge trapped inside them is.&lt;/p&gt;&lt;p&gt;Viewed through this lens, Selenium becomes less of a testing framework and more of a repository of institutional knowledge.&lt;/p&gt;&lt;p&gt;Every automated test represents a decision someone made about what matters to the business.&lt;/p&gt;&lt;p&gt;Every validation captures a requirement.&lt;/p&gt;&lt;p&gt;Every workflow encodes understanding about how customers, employees, partners, or systems are expected to behave.&lt;/p&gt;&lt;p&gt;The challenge is not replacing that investment.&lt;/p&gt;&lt;p&gt;The challenge is extracting, preserving, and modernizing it.&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;For many enterprises, the automation portfolio represents millions of dollars of accumulated testing investment. The objective is not replacement. The objective is preservation and transformation.&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;Organizations that approach AI-first testing as a wholesale replacement effort often underestimate the value already embedded in their automation portfolio.&lt;/p&gt;&lt;p&gt;Organizations that approach it as a transformation effort can preserve years of accumulated knowledge while gaining the benefits of AI-native execution.&lt;/p&gt;&lt;p&gt;This is why the goal is not to throw away Selenium.&lt;/p&gt;&lt;p&gt;The goal is to transform it.&lt;/p&gt;&lt;h3&gt;A Four-Step Transformation Framework&lt;/h3&gt;&lt;p&gt;The transformation process consists of four major phases:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Analyze Code for AI Readiness&lt;/li&gt;&lt;li&gt;Q&amp;amp;A with AI&lt;/li&gt;&lt;li&gt;Generate AI-First Test Definitions&lt;/li&gt;&lt;li&gt;Run and Validate Loop&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;See content credentials&lt;/p&gt;&lt;figure&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; alt src=&quot;https://cdn-images-1.medium.com/max/1024/0*88Xgzk106hLklNsf&quot;&gt;&lt;/figure&gt;&lt;p&gt;AI Transformation Process&lt;/p&gt;&lt;p&gt;Each phase incrementally converts procedural automation into AI-first automation.&lt;/p&gt;&lt;h3&gt;Step 1: Analyze Code for AI Readiness&lt;/h3&gt;&lt;p&gt;Before transformation can begin, AI must understand not only what tests do but also what they depend on.&lt;/p&gt;&lt;p&gt;AI reviews:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Selenium scripts&lt;/li&gt;&lt;li&gt;Page Objects&lt;/li&gt;&lt;li&gt;Helper libraries&lt;/li&gt;&lt;li&gt;Setup scripts&lt;/li&gt;&lt;li&gt;Teardown logic&lt;/li&gt;&lt;li&gt;Fixtures&lt;/li&gt;&lt;li&gt;Configuration files&lt;/li&gt;&lt;li&gt;Utility code&lt;/li&gt;&lt;li&gt;Supporting source code&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The objective is not merely to understand what the tests do.&lt;/p&gt;&lt;p&gt;The objective is to understand everything they depend on.&lt;/p&gt;&lt;h3&gt;Hidden Assumptions&lt;/h3&gt;&lt;p&gt;Many automation suites rely on assumptions that are never explicitly documented.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Environment variables&lt;/li&gt;&lt;li&gt;Pre-seeded databases&lt;/li&gt;&lt;li&gt;Shared state&lt;/li&gt;&lt;li&gt;Generated accounts&lt;/li&gt;&lt;li&gt;Feature flags&lt;/li&gt;&lt;li&gt;Deployment configuration&lt;/li&gt;&lt;li&gt;Scheduled jobs&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;AI is remarkably effective at identifying assumptions that appear to exist but are not visible in the current code.&lt;/p&gt;&lt;h3&gt;External Dependencies&lt;/h3&gt;&lt;p&gt;Most automation suites interact with:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;APIs&lt;/li&gt;&lt;li&gt;Databases&lt;/li&gt;&lt;li&gt;Queues&lt;/li&gt;&lt;li&gt;Authentication systems&lt;/li&gt;&lt;li&gt;Internal platforms&lt;/li&gt;&lt;li&gt;Third-party services&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;AI evaluates whether these dependencies can be externalized through APIs, MCP endpoints, services, or reusable execution utilities.&lt;/p&gt;&lt;h3&gt;Dynamic Runtime Data&lt;/h3&gt;&lt;p&gt;Many tests generate:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;User accounts&lt;/li&gt;&lt;li&gt;Tokens&lt;/li&gt;&lt;li&gt;Temporary records&lt;/li&gt;&lt;li&gt;Unique identifiers&lt;/li&gt;&lt;li&gt;Transaction references&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;These flows must be identified and transformed into reusable runtime services.&lt;/p&gt;&lt;h3&gt;Test Dependencies&lt;/h3&gt;&lt;p&gt;Large Selenium portfolios frequently contain hidden sequencing requirements.&lt;/p&gt;&lt;p&gt;For example:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Test B assumes Test A executed.&lt;/li&gt;&lt;li&gt;Test C depends on Test B’s output.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;AI identifies these relationships and recommends opportunities for decoupling.&lt;/p&gt;&lt;h3&gt;Validation Logic&lt;/h3&gt;&lt;p&gt;Assertions may exist in:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;UI elements&lt;/li&gt;&lt;li&gt;APIs&lt;/li&gt;&lt;li&gt;Databases&lt;/li&gt;&lt;li&gt;Logs&lt;/li&gt;&lt;li&gt;Reporting systems&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Understanding these validations is critical because they ultimately define what success means.&lt;/p&gt;&lt;p&gt;The output of this phase is an AI Readiness assessment and a roadmap for transformation.&lt;/p&gt;&lt;p&gt;The scripts themselves are not the asset.&lt;/p&gt;&lt;p&gt;The knowledge trapped inside them is.&lt;/p&gt;&lt;h3&gt;Step 2: Q&amp;amp;A with AI&lt;/h3&gt;&lt;p&gt;One of the biggest surprises during transformation projects is how much knowledge exists outside the code.&lt;/p&gt;&lt;p&gt;Even after analyzing every Selenium file, helper library, page object, setup script, and supporting framework, there are usually important assumptions that remain undocumented.&lt;/p&gt;&lt;p&gt;Questions such as:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Why is this workflow executed in this order?&lt;/li&gt;&lt;li&gt;What business rule is this validation actually checking?&lt;/li&gt;&lt;li&gt;Why is this value generated dynamically?&lt;/li&gt;&lt;li&gt;What assumptions are being made about acceptable outcomes?&lt;/li&gt;&lt;li&gt;What conditions would make this workflow fail?&lt;/li&gt;&lt;li&gt;What edge cases were the original test authors worried about?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Historically, recovering this information required tracking down the original automation engineer, developer, tester, or product owner.&lt;/p&gt;&lt;p&gt;AI changes that process.&lt;/p&gt;&lt;p&gt;After analyzing the automation suite, AI generates a focused list of questions designed to recover missing intent.&lt;/p&gt;&lt;p&gt;The AI is effectively asking:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;“What would I need to know to confidently transform this test?”&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;This is an important shift.&lt;/p&gt;&lt;p&gt;Instead of humans manually reverse-engineering years of automation, AI performs the analysis and identifies the specific knowledge gaps.&lt;/p&gt;&lt;p&gt;In practice, most tests require surprisingly little clarification.&lt;/p&gt;&lt;p&gt;Many require no clarification at all.&lt;/p&gt;&lt;p&gt;Most require only one or two answers.&lt;/p&gt;&lt;p&gt;A small percentage contain complex business logic, hidden dependencies, or operational assumptions that require deeper discussion.&lt;/p&gt;&lt;p&gt;The answers are then fed back into the transformation process.&lt;/p&gt;&lt;p&gt;At this point, the automation is no longer just code.&lt;/p&gt;&lt;p&gt;It has become a combination of code, business intent, operational knowledge, and organizational expertise.&lt;/p&gt;&lt;p&gt;That knowledge becomes the foundation for AI-first execution.&lt;/p&gt;&lt;h3&gt;Step 3: Generate AI-First Test Definitions&lt;/h3&gt;&lt;p&gt;Once assumptions, dependencies, and intent have been captured, transformation can begin.&lt;/p&gt;&lt;p&gt;Large Selenium portfolios often contain hundreds or thousands of tests.&lt;/p&gt;&lt;p&gt;Rather than attempting to transform everything simultaneously, AI first ranks tests according to transformation complexity.&lt;/p&gt;&lt;p&gt;Simple tests are transformed first.&lt;/p&gt;&lt;p&gt;Complex tests are flagged for review.&lt;/p&gt;&lt;p&gt;This approach delivers value quickly while reducing transformation risk.&lt;/p&gt;&lt;h3&gt;From Procedures to Intent&lt;/h3&gt;&lt;p&gt;Traditional Selenium automation focuses on implementation details.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Click this button.&lt;/li&gt;&lt;li&gt;Wait for this selector.&lt;/li&gt;&lt;li&gt;Enter this value.&lt;/li&gt;&lt;li&gt;Verify this exact string.&lt;/li&gt;&lt;li&gt;Check this specific DOM element.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;AI-first automation focuses on outcomes.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Create a new customer account.&lt;/li&gt;&lt;li&gt;Complete checkout successfully.&lt;/li&gt;&lt;li&gt;Verify the customer receives a confirmation.&lt;/li&gt;&lt;li&gt;Ensure the order total appears reasonable.&lt;/li&gt;&lt;li&gt;Confirm the workflow behaves as expected.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This distinction is critical.&lt;/p&gt;&lt;p&gt;The goal is not to describe every action.&lt;/p&gt;&lt;p&gt;The goal is to describe what success looks like.&lt;/p&gt;&lt;p&gt;This allows execution systems to adapt when applications evolve.&lt;/p&gt;&lt;p&gt;In many cases, providing less implementation detail produces more resilient automation.&lt;/p&gt;&lt;p&gt;Overly procedural instructions frequently create brittle tests.&lt;/p&gt;&lt;p&gt;Intent-driven definitions create flexibility.&lt;/p&gt;&lt;p&gt;The challenge is finding the right balance between precision and adaptability.&lt;/p&gt;&lt;h3&gt;The New Test Artifact&lt;/h3&gt;&lt;p&gt;The output of the transformation process is not traditional test code.&lt;/p&gt;&lt;p&gt;Instead, the system generates structured AI-first test definitions.&lt;/p&gt;&lt;p&gt;These definitions capture:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Business intent&lt;/li&gt;&lt;li&gt;Expected outcomes&lt;/li&gt;&lt;li&gt;Validation rules&lt;/li&gt;&lt;li&gt;Runtime parameters&lt;/li&gt;&lt;li&gt;Execution hints&lt;/li&gt;&lt;li&gt;Contextual information&lt;/li&gt;&lt;li&gt;Operational assumptions&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;http://opentest.ai/&quot;&gt;OpenTest.AI&lt;/a&gt; formats are great for storing AI-First test definitions in a structured schema optimized for AI-driven execution&lt;/p&gt;&lt;p&gt;The schema becomes the modern, AI-first equivalent of the original Selenium script.&lt;/p&gt;&lt;p&gt;Instead of telling the browser exactly what to click, it tells the execution engine what the test is trying to prove.&lt;/p&gt;&lt;h3&gt;Example AI-First Test Definition&lt;/h3&gt;&lt;p&gt;See content credentials&lt;/p&gt;&lt;figure&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; alt src=&quot;https://cdn-images-1.medium.com/max/1024/0*GsL_HQFaDY49ahE-&quot;&gt;&lt;/figure&gt;&lt;p&gt;OpenTest.AI Test Schema&lt;/p&gt;&lt;p&gt;The structure intentionally separates:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Title&lt;/li&gt;&lt;li&gt;Goal&lt;/li&gt;&lt;li&gt;Description&lt;/li&gt;&lt;li&gt;Thinking&lt;/li&gt;&lt;li&gt;Action&lt;/li&gt;&lt;li&gt;Target&lt;/li&gt;&lt;li&gt;Value&lt;/li&gt;&lt;li&gt;Expected Outcome&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The inclusion of the thinking field is particularly important.&lt;/p&gt;&lt;p&gt;Traditional automation captures actions.&lt;/p&gt;&lt;p&gt;AI-first automation captures reasoning.&lt;/p&gt;&lt;p&gt;By preserving the reasoning behind a step, execution systems can make better decisions when interfaces change, workflows evolve, or unexpected conditions appear.&lt;/p&gt;&lt;p&gt;This structure is intentionally simple.&lt;/p&gt;&lt;p&gt;It is easy for humans to read.&lt;/p&gt;&lt;p&gt;It is easy for AI systems to generate.&lt;/p&gt;&lt;p&gt;It is easy for Computer Use Agents to execute.&lt;/p&gt;&lt;p&gt;The result is an artifact that serves both humans and machines.&lt;/p&gt;&lt;h3&gt;Computer Use Agents (CUAs)&lt;/h3&gt;&lt;p&gt;Once AI-first definitions have been created, they must be executed.&lt;/p&gt;&lt;p&gt;This is where Computer Use Agents enter the picture.&lt;/p&gt;&lt;p&gt;A Computer Use Agent (CUA) is an AI system capable of interacting with software applications similarly to a human tester.&lt;/p&gt;&lt;p&gt;A CUA can:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Observe interfaces&lt;/li&gt;&lt;li&gt;Interpret context&lt;/li&gt;&lt;li&gt;Make decisions&lt;/li&gt;&lt;li&gt;Interact with controls&lt;/li&gt;&lt;li&gt;Recover from disruptions&lt;/li&gt;&lt;li&gt;Continue pursuing an intended outcome&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Unlike traditional automation frameworks, Computer Use Agents make many decisions at runtime.&lt;/p&gt;&lt;p&gt;Traditional Selenium determines how to interact with an application before execution.&lt;/p&gt;&lt;p&gt;A Computer Use Agent determines how to interact with the application during execution.&lt;/p&gt;&lt;p&gt;This distinction fundamentally changes how automation behaves.&lt;/p&gt;&lt;p&gt;Selenium decides the path ahead of time.&lt;/p&gt;&lt;p&gt;A Computer Use Agent discovers the path at runtime.&lt;/p&gt;&lt;p&gt;When selectors change, dialogs appear, layouts move, or workflows evolve, a Computer Use Agent can often adapt and continue without requiring maintenance.&lt;/p&gt;&lt;p&gt;This makes the execution model substantially more resilient than traditional procedural automation.&lt;/p&gt;&lt;h3&gt;CUA Landscape Is Moving Fast&lt;/h3&gt;&lt;p&gt;Computer Use Agents are evolving rapidly.&lt;/p&gt;&lt;p&gt;Organizations evaluating AI-first testing should understand the strengths and weaknesses of current platforms, and consider their internal systems and AI-decisions.&lt;/p&gt;&lt;p&gt;For an up-to-date comparison of:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;OpenAI Operator&lt;/li&gt;&lt;li&gt;Anthropic Computer Use&lt;/li&gt;&lt;li&gt;Google Mariner&lt;/li&gt;&lt;li&gt;Browser Use&lt;/li&gt;&lt;li&gt;Manus&lt;/li&gt;&lt;li&gt;Open-source alternatives&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://chatgpt.com/?q=What+are+the+latest+AI+CUA+agents%3F+Compare+OpenAI+Operator%2C+Anthropic+Computer+Use%2C+Google+Mariner%2C+Browser+Use%2C+Manus%2C+and+other+notable+computer-using+agents.+Include+strengths%2C+weaknesses%2C+benchmarks%2C+open-source+alternatives%2C+and+implications+for+AI-first+software+testing.&amp;amp;utm_source=chatgpt.com&quot;&gt;ChatGPT CUA Comparison&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The landscape is changing quickly enough that any static comparison will become outdated.&lt;/p&gt;&lt;p&gt;The important takeaway is not which CUA wins today.&lt;/p&gt;&lt;p&gt;The important takeaway is that the execution model itself is changing.&lt;/p&gt;&lt;h3&gt;Step 4: Run and Validate Loop&lt;/h3&gt;&lt;p&gt;Transformation is not complete when definitions are generated.&lt;/p&gt;&lt;p&gt;They must be executed, validated, and refined.&lt;/p&gt;&lt;p&gt;The execution loop performs the following activities:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Load AI-first test definitions.&lt;/li&gt;&lt;li&gt;Prepare runtime data.&lt;/li&gt;&lt;li&gt;Execute workflows through a Computer Use Agent.&lt;/li&gt;&lt;li&gt;Capture evidence.&lt;/li&gt;&lt;li&gt;Validate outcomes.&lt;/li&gt;&lt;li&gt;Review failures.&lt;/li&gt;&lt;li&gt;Refine definitions.&lt;/li&gt;&lt;li&gt;Execute again.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Runtime Data Preparation&lt;/h3&gt;&lt;p&gt;Many workflows require information before execution begins.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Creating test accounts&lt;/li&gt;&lt;li&gt;Generating credentials&lt;/li&gt;&lt;li&gt;Requesting tokens&lt;/li&gt;&lt;li&gt;Calling APIs&lt;/li&gt;&lt;li&gt;Seeding databases&lt;/li&gt;&lt;li&gt;Retrieving environment information&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Historically, these activities were embedded within helper code and setup scripts.&lt;/p&gt;&lt;p&gt;In AI-first architectures, they can often be externalized into reusable services, APIs, MCP endpoints, or utility functions.&lt;/p&gt;&lt;p&gt;The resulting data is then provided to the Computer Use Agent at runtime.&lt;/p&gt;&lt;p&gt;This keeps test definitions focused on intent while still supporting complex execution requirements.&lt;/p&gt;&lt;h3&gt;Validation Becomes Richer&lt;/h3&gt;&lt;p&gt;One of the most important benefits of AI-first execution is richer validation.&lt;/p&gt;&lt;p&gt;Traditional automation typically validates exact conditions.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Exact text matches&lt;/li&gt;&lt;li&gt;Exact values&lt;/li&gt;&lt;li&gt;Specific selectors&lt;/li&gt;&lt;li&gt;Exact DOM structures&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;AI-first automation can still perform precise validations when necessary.&lt;/p&gt;&lt;p&gt;However, it can also evaluate broader outcomes.&lt;/p&gt;&lt;p&gt;Examples include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Does the workflow appear successful?&lt;/li&gt;&lt;li&gt;Does the page appear visually broken?&lt;/li&gt;&lt;li&gt;Does the content make sense?&lt;/li&gt;&lt;li&gt;Does the user experience appear confusing?&lt;/li&gt;&lt;li&gt;Does the page align with brand guidelines?&lt;/li&gt;&lt;li&gt;Does the result match business expectations?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This allows organizations to validate aspects of quality that were previously difficult or expensive to automate.&lt;/p&gt;&lt;h3&gt;The Transformation Loop&lt;/h3&gt;&lt;p&gt;The first execution pass is rarely perfect.&lt;/p&gt;&lt;p&gt;Some tests transform successfully immediately.&lt;/p&gt;&lt;p&gt;Others reveal hidden assumptions, missing data, environmental dependencies, or workflow ambiguities.&lt;/p&gt;&lt;p&gt;Instead of manually rewriting every failure, AI reviews the evidence and asks:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;What information was missing?&lt;/li&gt;&lt;li&gt;What assumption was incorrect?&lt;/li&gt;&lt;li&gt;What additional context would help?&lt;/li&gt;&lt;li&gt;What should be clarified by a human?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The answers are incorporated into the definitions.&lt;/p&gt;&lt;p&gt;The tests are executed again.&lt;/p&gt;&lt;p&gt;Each cycle increases transformation quality.&lt;/p&gt;&lt;p&gt;The loop does not simply test the application.&lt;/p&gt;&lt;p&gt;It tests the transformation itself.&lt;/p&gt;&lt;h3&gt;Why Transform Selenium into AI-First Automation?&lt;/h3&gt;&lt;p&gt;Most organizations begin this journey because they want to reduce maintenance.&lt;/p&gt;&lt;p&gt;That is understandable.&lt;/p&gt;&lt;p&gt;Selector maintenance, brittle automation, false failures, and ongoing script updates consume significant engineering time.&lt;/p&gt;&lt;p&gt;However, maintenance reduction is only one benefit.&lt;/p&gt;&lt;p&gt;The larger opportunity is strategic.&lt;/p&gt;&lt;p&gt;Organizations are increasingly adopting AI-first engineering strategies.&lt;/p&gt;&lt;p&gt;Executives want AI-first development.&lt;/p&gt;&lt;p&gt;They want AI-first operations.&lt;/p&gt;&lt;p&gt;Increasingly, they want AI-first testing.&lt;/p&gt;&lt;p&gt;Transforming Selenium into AI-first automation provides a practical bridge between existing investments and future architectures.&lt;/p&gt;&lt;p&gt;Rather than discarding years of work, organizations can preserve existing knowledge while modernizing execution.&lt;/p&gt;&lt;p&gt;This allows testing to evolve alongside software development.&lt;/p&gt;&lt;h3&gt;ROI Matters More Than Token Counts&lt;/h3&gt;&lt;p&gt;One of the most common questions about AI-first testing involves token consumption.&lt;/p&gt;&lt;p&gt;In practice, token consumption is usually not the most important metric.&lt;/p&gt;&lt;p&gt;The more useful questions are:&lt;/p&gt;&lt;p&gt;How much engineering effort has been eliminated? How much faster is my team?&lt;/p&gt;&lt;p&gt;Every hour spent:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Updating selectors&lt;/li&gt;&lt;li&gt;Debugging automation failures&lt;/li&gt;&lt;li&gt;Investigating false negatives&lt;/li&gt;&lt;li&gt;Maintaining brittle scripts&lt;/li&gt;&lt;li&gt;Repairing workflows after UI changes&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;has a real cost.&lt;/p&gt;&lt;p&gt;Organizations should evaluate:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Reduced maintenance&lt;/li&gt;&lt;li&gt;Faster adaptation to change&lt;/li&gt;&lt;li&gt;Improved reliability&lt;/li&gt;&lt;li&gt;Increased engineering productivity&lt;/li&gt;&lt;li&gt;Faster releases&lt;/li&gt;&lt;li&gt;Future-proof architecture&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Many teams discover that maintenance savings alone justify transformation.&lt;/p&gt;&lt;p&gt;The strategic value extends far beyond execution costs.&lt;/p&gt;&lt;h3&gt;From Theory to Practice&lt;/h3&gt;&lt;figure&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; alt src=&quot;https://cdn-images-1.medium.com/max/1024/0*DSpiappecTiNLdX8&quot;&gt;&lt;/figure&gt;&lt;p&gt;IcebergQA’s Experts leverage Automated Transformation Workflows&lt;/p&gt;&lt;p&gt;Organizations can ad-hoc perform transformation with ChatBots and LLMs, and larger organizations can internally automate some of the transformation with integrations of traditional software and LLMs.&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;http://testers.ai/&quot;&gt;IcebergQA&lt;/a&gt; has implemented an automated implementation of the tranformation process and supported by IcebergQA transformation services. It is also possible to run this system on your own private cloud infrastructure.&lt;/p&gt;&lt;p&gt;The platform can import:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Selenium&lt;/li&gt;&lt;li&gt;Playwright&lt;/li&gt;&lt;li&gt;Cypress&lt;/li&gt;&lt;li&gt;Custom automation frameworks&lt;/li&gt;&lt;li&gt;Manual test cases&lt;/li&gt;&lt;li&gt;Requirements and user stories&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;It automates:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;AI Readiness analysis&lt;/li&gt;&lt;li&gt;Question generation&lt;/li&gt;&lt;li&gt;Transformation&lt;/li&gt;&lt;li&gt;CUA execution&lt;/li&gt;&lt;li&gt;Validation&lt;/li&gt;&lt;li&gt;Iterative improvement&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The goal is not merely to automate execution.&lt;/p&gt;&lt;p&gt;The goal is to accelerate organizational transformation, and IcebergQA provides 30-day AI QA sprints to help your team transform as quickly and confidencly as possible.&lt;/p&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;&lt;p&gt;Organizations do not need to choose between preserving their existing automation investments and becoming AI-first. They can do both. The path forward is transformation: preserving the knowledge already embedded within Selenium suites, recovering the business intent behind those tests, modernizing the execution model, and building a testing architecture capable of scaling alongside AI-generated software.&lt;/p&gt;&lt;p&gt;As AI accelerates software development, the challenge is no longer generating code — it is generating confidence. Organizations that successfully transform their existing automation assets into AI-first testing systems will be better positioned to move faster, maintain quality, reduce maintenance costs, and adapt to the next generation of software engineering. Don’t throw away your Selenium investment. Transform it.&lt;/p&gt;&lt;p&gt;— Jason Arbon, CEO &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;http://testers.ai/&quot;&gt;Testers.ai&lt;/a&gt;, Principal &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;http://icebergqa.com/&quot;&gt;IcebergQA.com&lt;/a&gt;&lt;/p&gt;</summary><author><name>jason arbon</name></author><source gr:stream-id="feed/https://jarbon.medium.com/feed"><id>tag:google.com,2005:reader/feed/https://jarbon.medium.com/feed</id><title type="html">Stories by jason arbon on Medium</title><link rel="alternate" href="https://medium.com/@jarbon?source=rss-1ee8fdc3bacb------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782234000000"><id gr:original-id="https://www.bartvanherck.com/posts/2026/20260623/">tag:google.com,2005:reader/item/00000d9a00000013</id><title type="html">Fixing Cypress alias warnings with template literals</title><published>2026-06-23T17:00:00Z</published><updated>2026-06-23T17:00:00Z</updated><link rel="alternate" href="https://www.bartvanherck.com/posts/2026/20260623/" type="text/html"></link><summary type="html">&lt;p&gt;After upgrading to the latest Cypress (15.17.0), a pile of TypeScript warnings suddenly showed up across our test suite.&lt;/p&gt;
&lt;div&gt;&lt;pre tabindex=&quot;-1&quot; style=&quot;color: #f8f8f2; background-color: #272822; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4&quot;&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;&lt;span&gt;&lt;span&gt;Argument of type &amp;apos;string&amp;apos; is not assignable to parameter of type `@${string}`.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&quot;article-ujfI7ZMSBn65S_J-TvOwoGBr2UE-the-warning-youll-start-seeing&quot;&gt;The warning you’ll start seeing&lt;/h2&gt;
&lt;p&gt;You probably know the following pattern. You create an alias with a unique uuid in it. We do that to keep aliases apart across parallel or repeated calls. Later in the code, your read it out with a string concatenation. Something like this:&lt;/p&gt;
&lt;div&gt;&lt;pre tabindex=&quot;-1&quot; style=&quot;color: #f8f8f2; background-color: #272822; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4&quot;&gt;&lt;code class=&quot;language-ts&quot; data-lang=&quot;ts&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;cy&lt;/span&gt;.&lt;span style=&quot;color: #66d9ef&quot;&gt;get&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #f92672&quot;&gt;Cat&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #e6db74&quot;&gt;&amp;apos;@createCat&amp;apos;&lt;/span&gt; &lt;span style=&quot;color: #f92672&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;uuid&lt;/span&gt;).&lt;span style=&quot;color: #a6e22e&quot;&gt;then&lt;/span&gt;((&lt;span style=&quot;color: #a6e22e&quot;&gt;cat&lt;/span&gt;: &lt;span style=&quot;color: #66d9ef&quot;&gt;Cat&lt;/span&gt;) &lt;span style=&quot;color: #f92672&quot;&gt;=&amp;gt;&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;cy&lt;/span&gt;.&lt;span style=&quot;color: #a6e22e&quot;&gt;wrap&lt;/span&gt;(&lt;span style=&quot;color: #a6e22e&quot;&gt;cat&lt;/span&gt;).&lt;span style=&quot;color: #66d9ef&quot;&gt;as&lt;/span&gt;(&lt;span style=&quot;color: #a6e22e&quot;&gt;wrappedAs&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Until recently that compiled without complaint. Since the latest upgrade of Cypress, TypeScript flags it with something like:&lt;/p&gt;
&lt;pre tabindex=&quot;-1&quot;&gt;&lt;code&gt;Argument of type &amp;apos;string&amp;apos; is not assignable to parameter of type `@${string}`.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A warning like this is a future problem in disguise. It doesn’t break the test today, but it signals that your code no longer matches what the library expects. If you leave it, it tends to pile up and hide real issues in the noise. A later upgrade may turn the warning into a hard error. So we fix them now, while the change is small and well understood.&lt;/p&gt;
&lt;h2 id=&quot;article-ujfI7ZMSBn65S_J-TvOwoGBr2UE-what-is-a-backtick-string&quot;&gt;What is a backtick string?&lt;/h2&gt;
&lt;p&gt;To understand the fix, you need to know about strings in JavaScript and TypeScript. Besides single quotes (’…’) and double quotes (&amp;quot;…&amp;quot;), there is also the template literal. A template literal is a string written with backticks (&lt;code&gt;`...`&lt;/code&gt;) instead of quotes, and inside it you can embed any value with the ${ … } syntax. Here is the difference:&lt;/p&gt;
&lt;div&gt;&lt;pre tabindex=&quot;-1&quot; style=&quot;color: #f8f8f2; background-color: #272822; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4&quot;&gt;&lt;code class=&quot;language-ts&quot; data-lang=&quot;ts&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #66d9ef&quot;&gt;const&lt;/span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;name&lt;/span&gt; &lt;span style=&quot;color: #f92672&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e6db74&quot;&gt;&amp;apos;Whiskers&amp;apos;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #66d9ef&quot;&gt;const&lt;/span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;a&lt;/span&gt; &lt;span style=&quot;color: #f92672&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e6db74&quot;&gt;&amp;apos;Hello &amp;apos;&lt;/span&gt; &lt;span style=&quot;color: #f92672&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;name&lt;/span&gt;; &lt;span style=&quot;color: #75715e&quot;&gt;// concatenation with +
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef&quot;&gt;const&lt;/span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;b&lt;/span&gt; &lt;span style=&quot;color: #f92672&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e6db74&quot;&gt;`Hello &lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;${&lt;/span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;`&lt;/span&gt;; &lt;span style=&quot;color: #75715e&quot;&gt;// template literal with ${...}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;// a and b are both &amp;quot;Hello Whiskers&amp;quot;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Inside a backtick string you can drop in any expression with ${ … }, and its value gets inserted into the string. It’s the modern, readable way to build a string out of fixed text and variables, without gluing pieces together with the plus sign.&lt;/p&gt;
&lt;p&gt;TypeScript takes this one step further with &lt;strong&gt;template literal types&lt;/strong&gt;. A type can be written the same way to describe the shape of a string. For example:&lt;/p&gt;
&lt;div&gt;&lt;pre tabindex=&quot;-1&quot; style=&quot;color: #f8f8f2; background-color: #272822; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4&quot;&gt;&lt;code class=&quot;language-ts&quot; data-lang=&quot;ts&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #66d9ef&quot;&gt;type&lt;/span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;Alias&lt;/span&gt; &lt;span style=&quot;color: #f92672&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e6db74&quot;&gt;`@&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;${&lt;/span&gt;&lt;span style=&quot;color: #66d9ef&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;`&lt;/span&gt;; &lt;span style=&quot;color: #75715e&quot;&gt;// any string that starts with &amp;quot;@&amp;quot;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;@${string} is not a value. It’s a type that says “a string beginning with the @-sign, followed by anything”. Keep that in mind, because it’s exactly the type Cypress now expects for an alias name.&lt;/p&gt;
&lt;h2 id=&quot;article-ujfI7ZMSBn65S_J-TvOwoGBr2UE-why-cypress-changed-this&quot;&gt;Why Cypress changed this&lt;/h2&gt;
&lt;p&gt;This isn’t a mistake on our side, and it isn’t Cypress being picky for no reason. It’s a deliberate improvement. The
&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://docs.cypress.io/app/references/changelog&quot;&gt;Cypress 15.17.0 changelog&lt;/a&gt; describes it like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Improved TypeScript types for cy.get(’@alias’)
and cy.wait(’@alias’) so
that @-prefixed strings correctly resolve
to &lt;code&gt;Chainable&amp;lt;S&amp;gt;&lt;/code&gt; instead of
&lt;code&gt;Chainable&amp;lt;JQuery&amp;lt;HTMLElement&amp;gt;&amp;gt;&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Previously, &lt;code&gt;cy.get(&amp;apos;@createCat&amp;apos; + uuid)&lt;/code&gt; gave you back a generic &lt;code&gt;Chainable&amp;lt;JQuery&amp;lt;HTMLElement&amp;gt;&amp;gt;&lt;/code&gt;, as if you were selecting a DOM element, even though the alias actually holds a Cat type. You then had to cast it yourself. Now that is done automatically.&lt;/p&gt;
&lt;p&gt;To return the correct type, Cypress first has to recognise that an argument is an alias and not a CSS selector. It does that by tightening the expected argument type to the template literal type &lt;code&gt;`@${string}`&lt;/code&gt;: a string that
starts with the @-sign. When Cypress sees that, it knows to resolve the aliased type (&lt;code&gt;Chainable&amp;lt;S&amp;gt;&lt;/code&gt;) instead of a DOM element.&lt;/p&gt;
&lt;p&gt;And that’s where our warning comes from. The result of &lt;code&gt;&amp;apos;@createCat&amp;apos; + uuid&lt;/code&gt; is, as far as TypeScript is concerned, just a plain string. The compiler cannot prove it starts with @-sign, so it does not fit &lt;code&gt;`@${string}`&lt;/code&gt;. Hence the warning.&lt;/p&gt;
&lt;h2 id=&quot;article-ujfI7ZMSBn65S_J-TvOwoGBr2UE-the-fix-template-literals&quot;&gt;The fix: template literals&lt;/h2&gt;
&lt;p&gt;The fix is small and reads better than the original. Swap the concatenation for a template literal:&lt;/p&gt;
&lt;div&gt;&lt;pre tabindex=&quot;-1&quot; style=&quot;color: #f8f8f2; background-color: #272822; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4&quot;&gt;&lt;code class=&quot;language-ts&quot; data-lang=&quot;ts&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;// Before
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;cy&lt;/span&gt;.&lt;span style=&quot;color: #66d9ef&quot;&gt;get&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #f92672&quot;&gt;Cat&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #e6db74&quot;&gt;&amp;apos;@createCat&amp;apos;&lt;/span&gt; &lt;span style=&quot;color: #f92672&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;uuid&lt;/span&gt;).&lt;span style=&quot;color: #a6e22e&quot;&gt;then&lt;/span&gt;((&lt;span style=&quot;color: #a6e22e&quot;&gt;cat&lt;/span&gt;: &lt;span style=&quot;color: #66d9ef&quot;&gt;Cat&lt;/span&gt;) &lt;span style=&quot;color: #f92672&quot;&gt;=&amp;gt;&lt;/span&gt; { ... });
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;// After
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;cy&lt;/span&gt;.&lt;span style=&quot;color: #66d9ef&quot;&gt;get&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #f92672&quot;&gt;Cat&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #e6db74&quot;&gt;`@createCat&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;${&lt;/span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;uuid&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;`&lt;/span&gt;).&lt;span style=&quot;color: #a6e22e&quot;&gt;then&lt;/span&gt;((&lt;span style=&quot;color: #a6e22e&quot;&gt;cat&lt;/span&gt;: &lt;span style=&quot;color: #66d9ef&quot;&gt;Cat&lt;/span&gt;) &lt;span style=&quot;color: #f92672&quot;&gt;=&amp;gt;&lt;/span&gt; { ... });
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Because the template literal literally starts with &lt;code&gt;@&lt;/code&gt;, TypeScript can see that it satisfies &lt;code&gt;`@${string}`&lt;/code&gt;. The warning disappears, and as a bonus you now get the correct type back out of the chain.&lt;/p&gt;
&lt;p&gt;The same applies to cy.wait:&lt;/p&gt;
&lt;div&gt;&lt;pre tabindex=&quot;-1&quot; style=&quot;color: #f8f8f2; background-color: #272822; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4&quot;&gt;&lt;code class=&quot;language-ts&quot; data-lang=&quot;ts&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;// Before
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;cy&lt;/span&gt;.&lt;span style=&quot;color: #a6e22e&quot;&gt;wait&lt;/span&gt;(&lt;span style=&quot;color: #e6db74&quot;&gt;&amp;apos;@loadDogs&amp;apos;&lt;/span&gt; &lt;span style=&quot;color: #f92672&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;uuid&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;// After
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;cy&lt;/span&gt;.&lt;span style=&quot;color: #a6e22e&quot;&gt;wait&lt;/span&gt;(&lt;span style=&quot;color: #e6db74&quot;&gt;`@loadDogs&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;${&lt;/span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;uuid&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;`&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And when several variables are involved, you just fold them into the same literal:&lt;/p&gt;
&lt;div&gt;&lt;pre tabindex=&quot;-1&quot; style=&quot;color: #f8f8f2; background-color: #272822; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4&quot;&gt;&lt;code class=&quot;language-ts&quot; data-lang=&quot;ts&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;// Before
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;cy&lt;/span&gt;.&lt;span style=&quot;color: #66d9ef&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: #e6db74&quot;&gt;&amp;apos;@adoptDog&amp;apos;&lt;/span&gt; &lt;span style=&quot;color: #f92672&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;index&lt;/span&gt; &lt;span style=&quot;color: #f92672&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;uuid&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;// After
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #75715e&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;cy&lt;/span&gt;.&lt;span style=&quot;color: #66d9ef&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: #e6db74&quot;&gt;`@adoptDog&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;${&lt;/span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;index&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;}${&lt;/span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;uuid&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #e6db74&quot;&gt;`&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&quot;article-ujfI7ZMSBn65S_J-TvOwoGBr2UE-dont-touch-as&quot;&gt;Don’t touch &lt;code&gt;.as()&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;A common misconception: only reading an alias got stricter. Creating one with &lt;code&gt;.as()&lt;/code&gt; still expects a plain string, &lt;strong&gt;without&lt;/strong&gt; the &lt;code&gt;@&lt;/code&gt;. You can change it, but you do not have to change it now.&lt;/p&gt;
&lt;div&gt;&lt;pre tabindex=&quot;-1&quot; style=&quot;color: #f8f8f2; background-color: #272822; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4&quot;&gt;&lt;code class=&quot;language-ts&quot; data-lang=&quot;ts&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #a6e22e&quot;&gt;cy&lt;/span&gt;.&lt;span style=&quot;color: #a6e22e&quot;&gt;wrap&lt;/span&gt;(&lt;span style=&quot;color: #a6e22e&quot;&gt;cat&lt;/span&gt;).&lt;span style=&quot;color: #66d9ef&quot;&gt;as&lt;/span&gt;(&lt;span style=&quot;color: #e6db74&quot;&gt;&amp;apos;createCat&amp;apos;&lt;/span&gt; &lt;span style=&quot;color: #f92672&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #a6e22e&quot;&gt;uuid&lt;/span&gt;); &lt;span style=&quot;color: #75715e&quot;&gt;// fine: no @, no template needed
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&quot;article-ujfI7ZMSBn65S_J-TvOwoGBr2UE-sources&quot;&gt;Sources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://docs.cypress.io/app/references/changelog&quot;&gt;Cypress changelog&lt;/a&gt; (version 15.17.0)&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://docs.cypress.io/app/core-concepts/variables-and-aliases&quot;&gt;Variables and Aliases | Cypress Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html&quot;&gt;Template literal types | TypeScript&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</summary><author><name></name></author><source gr:stream-id="feed/https://feeds.feedburner.com/bartvanherck"><id>tag:google.com,2005:reader/feed/https://feeds.feedburner.com/bartvanherck</id><title type="html">The Testing Pirate</title><link rel="alternate" href="https://www.bartvanherck.com/" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782189365000"><id gr:original-id="https://scrolltest.com/deepeval-vs-promptfoo-sdet-teams/">tag:google.com,2005:reader/item/000004440000024d</id><category term="AI Testing"></category><category term="Test Automation"></category><category term="Testing"></category><category term="AI SDET"></category><category term="AI testing"></category><category term="deepeval"></category><category term="LLM evaluation"></category><category term="promptfoo"></category><title type="html">DeepEval vs PromptFoo for SDET Teams</title><published>2026-06-23T04:36:05Z</published><updated>2026-06-23T04:36:05Z</updated><link rel="alternate" href="https://scrolltest.com/deepeval-vs-promptfoo-sdet-teams/" type="text/html"></link><summary type="html">&lt;p&gt;DeepEval vs PromptFoo for SDET teams: compare eval workflows, code examples, CI strategy, and career value for QA engineers.&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com/deepeval-vs-promptfoo-sdet-teams/&quot;&gt;DeepEval vs PromptFoo for SDET Teams&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com&quot;&gt;Software Testing &amp;amp; Automation&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Promode</name></author><source gr:stream-id="feed/https://scrolltest.com/feed/"><id>tag:google.com,2005:reader/feed/https://scrolltest.com/feed/</id><title type="html">Software Testing &amp; Automation</title><link rel="alternate" href="https://scrolltest.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782186661000"><id gr:original-id="https://medium.com/p/72c950e08102">tag:google.com,2005:reader/item/00000a87000000bf</id><category term="test-automation"></category><category term="software-engineering"></category><category term="quality-assurance"></category><category term="software-testing"></category><category term="ai"></category><title type="html">AI Made Engineers Faster. It Also Made Systems More Fragile.</title><published>2026-06-23T03:51:01Z</published><updated>2026-06-23T03:51:01Z</updated><link rel="alternate" href="https://manishsaini74.medium.com/ai-made-engineers-faster-it-also-made-systems-more-fragile-72c950e08102?source=rss-2afcb904d789------2" type="text/html"></link><summary type="html">&lt;div&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://manishsaini74.medium.com/ai-made-engineers-faster-it-also-made-systems-more-fragile-72c950e08102?source=rss-2afcb904d789------2&quot;&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://cdn-images-1.medium.com/max/1536/1*HaKa9ySTihfjn0CLr24VNg.png&quot; width=&quot;1536&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;A few months ago, a developer told me something that perfectly captures the current state of software engineering:&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://manishsaini74.medium.com/ai-made-engineers-faster-it-also-made-systems-more-fragile-72c950e08102?source=rss-2afcb904d789------2&quot;&gt;Continue reading on Medium »&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary><author><name>Manish Saini</name></author><source gr:stream-id="feed/https://manishsaini74.medium.com/feed"><id>tag:google.com,2005:reader/feed/https://manishsaini74.medium.com/feed</id><title type="html">Stories by Manish Saini on Medium</title><link rel="alternate" href="https://medium.com/@manishsaini74?source=rss-2afcb904d789------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782185708000"><id gr:original-id="https://scrolltest.com/playwright-mcp-for-qa-engineers/">tag:google.com,2005:reader/item/000004440000024c</id><category term="AI Testing"></category><category term="Test Automation"></category><category term="Testing"></category><category term="AI SDET"></category><category term="AI testing"></category><category term="API Testing with Playwright"></category><category term="mcp"></category><category term="Playwright MCP"></category><title type="html">Playwright MCP for QA Engineers: Practical Guide</title><published>2026-06-23T03:35:08Z</published><updated>2026-06-23T03:35:08Z</updated><link rel="alternate" href="https://scrolltest.com/playwright-mcp-for-qa-engineers/" type="text/html"></link><summary type="html">&lt;p&gt;Playwright MCP for QA engineers helps turn AI browser exploration into repeatable Playwright checks with evidence, evals, and safe workflows.&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com/playwright-mcp-for-qa-engineers/&quot;&gt;Playwright MCP for QA Engineers: Practical Guide&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com&quot;&gt;Software Testing &amp;amp; Automation&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Promode</name></author><source gr:stream-id="feed/https://scrolltest.com/feed/"><id>tag:google.com,2005:reader/feed/https://scrolltest.com/feed/</id><title type="html">Software Testing &amp; Automation</title><link rel="alternate" href="https://scrolltest.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782185679000"><id gr:original-id="https://scrolltest.com/playwright-sharding-day-15/">tag:google.com,2005:reader/item/000004440000024b</id><category term="Javascript"></category><category term="Test Automation"></category><category term="Testing"></category><category term="agile test automation"></category><category term="API Testing with Playwright"></category><category term="CI/CD"></category><category term="GitHub Actions"></category><category term="typescript"></category><title type="html">Playwright Sharding: Day 15 Parallel CI Tutorial</title><published>2026-06-23T03:34:39Z</published><updated>2026-06-23T03:34:39Z</updated><link rel="alternate" href="https://scrolltest.com/playwright-sharding-day-15/" type="text/html"></link><summary type="html">&lt;p&gt;Playwright sharding splits slow TypeScript test suites across CI runners. Learn workers, GitHub Actions matrix jobs, report merging, and isolation.&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com/playwright-sharding-day-15/&quot;&gt;Playwright Sharding: Day 15 Parallel CI Tutorial&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com&quot;&gt;Software Testing &amp;amp; Automation&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Promode</name></author><source gr:stream-id="feed/https://scrolltest.com/feed/"><id>tag:google.com,2005:reader/feed/https://scrolltest.com/feed/</id><title type="html">Software Testing &amp; Automation</title><link rel="alternate" href="https://scrolltest.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782172800000"><id gr:original-id="https://testengineeringnotes.com/posts/2026-06-23-testing-with-gen-ai-review/">tag:google.com,2005:reader/item/0000105d000000a3</id><category term="book"></category><category term="testing"></category><category term="Reviews"></category><title type="html">Book Review: Software Testing with Generative AI</title><published>2026-06-23T00:00:00Z</published><updated>2026-06-23T00:00:00Z</updated><link rel="alternate" href="https://testengineeringnotes.com/posts/2026-06-23-testing-with-gen-ai-review/" type="text/html"></link><summary type="html">My insights from &amp;quot;Software Testing with Generative AI&amp;quot; book by Mark Winteringham</summary><author><name></name></author><source gr:stream-id="feed/https://testengineeringnotes.com/rss.xml"><id>tag:google.com,2005:reader/feed/https://testengineeringnotes.com/rss.xml</id><title type="html">Test Engineering Notes</title><link rel="alternate" href="https://testengineeringnotes.com/" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782165600000"><id gr:original-id="https://scrolltest.com/?p=7381">tag:google.com,2005:reader/item/000004440000024a</id><category term="Playwright tutorial Java"></category><category term="Selenium"></category><category term="Testing"></category><title type="html">Selenium to Playwright Migration Part 1: Why Migrate and How to Plan It</title><published>2026-06-22T22:00:00Z</published><updated>2026-06-22T22:00:00Z</updated><link rel="alternate" href="https://scrolltest.com/selenium-to-playwright-migration-part-1-why-migrate-planning/" type="text/html"></link><summary type="html">&lt;p&gt;Selenium vs Playwright feature matrix, architecture comparison, TypeScript quick reference for Java developers, and the 4-step bottom-up migration strategy.&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com/selenium-to-playwright-migration-part-1-why-migrate-planning/&quot;&gt;Selenium to Playwright Migration Part 1: Why Migrate and How to Plan It&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com&quot;&gt;Software Testing &amp;amp; Automation&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Pramod Dutta</name></author><source gr:stream-id="feed/https://scrolltest.com/feed/"><id>tag:google.com,2005:reader/feed/https://scrolltest.com/feed/</id><title type="html">Software Testing &amp; Automation</title><link rel="alternate" href="https://scrolltest.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782163765000"><id gr:original-id="https://angiejones.tech/?p=7125">tag:google.com,2005:reader/item/0000057e00000045</id><category term="AI"></category><category term="agent memory"></category><category term="ai"></category><category term="AI Agents"></category><title type="html">Karpathy’s LLM Wiki as Agent Memory</title><published>2026-06-22T21:29:25Z</published><updated>2026-06-22T21:29:25Z</updated><link rel="alternate" href="https://angiejones.tech/karpathys-llm-wiki-as-agent-memory/" type="text/html"></link><summary type="html">&lt;p&gt;A practical look at how Karpathy’s LLM Wiki pattern can serve as long term agent memory, turning raw sources, markdown pages, and schema instructions into a living knowledge system for semantic, entity, episodic, summary, and procedural memory.&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://angiejones.tech/karpathys-llm-wiki-as-agent-memory/&quot;&gt;Karpathy’s LLM Wiki as Agent Memory&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://angiejones.tech&quot;&gt;Angie Jones&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Angie Jones</name></author><source gr:stream-id="feed/https://angiejones.tech/feed"><id>tag:google.com,2005:reader/feed/https://angiejones.tech/feed</id><title type="html">Angie Jones</title><link rel="alternate" href="https://angiejones.tech/" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782140698000"><id gr:original-id="https://angryweasel.substack.com/p/one-second">tag:google.com,2005:reader/item/00000ad700000068</id><title type="html">One Second</title><published>2026-06-22T15:04:58Z</published><updated>2026-06-22T15:04:58Z</updated><link rel="alternate" href="https://angryweasel.substack.com/p/one-second" type="text/html"></link><summary type="html">&lt;p&gt;Many years ago I presented a project timeline to a room of about a dozen people. A junior engineer, maybe eighteen months into her career, raised her hand. “I don’t think we’ve accounted for the migration work. I think that’s another two weeks.”&lt;/p&gt;&lt;p&gt;She was right. I knew it about four words in.&lt;/p&gt;&lt;p&gt;I don’t remember deciding to get defensive. I remember feeling it in my shoulders, something close to embarrassment, and then hearing myself say the migration was “already factored into the buffer.” It wasn’t. She didn’t push back a second time.&lt;/p&gt;&lt;p&gt;Six months later, that same engineer had a much bigger concern about a launch. She mentioned it to a peer instead of to me, and I understood exactly why.&lt;/p&gt;&lt;h3&gt;The Thorn&lt;/h3&gt;&lt;p&gt;That feeling, right before I opened my mouth is what’s on my mind today.&lt;/p&gt;&lt;p&gt;I recently read Michael Singer’s &lt;em&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://untetheredsoul.com/untethered-soul&quot;&gt;The Untethered Soul&lt;/a&gt;&lt;/em&gt;, and there’s an idea in it that I I find easy to apply to leadership. Singer calls it &lt;em&gt;the thorn&lt;/em&gt;. Someone says something, or something doesn’t go your way, and it pokes you. A little spike of discomfort. Most people spend their whole lives doing one of two things with that spike. They build a wall around it so it can’t get poked again, or they react outward and try to make the discomfort someone else’s problem.&lt;/p&gt;&lt;p&gt;Neither one deals with the thorn. Both just move it around.&lt;/p&gt;&lt;p&gt;I wrote about this from a different angle a while back in &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://angryweasel.substack.com/p/being-wrong-at-the-right-level&quot;&gt;Being Wrong at the Right Level&lt;/a&gt;. That post was about what happens after the reaction, the slow erosion of trust when a leader can’t admit a bad call. This is about the half second before that. The moment where the reflex fires and you still, &lt;em&gt;technically&lt;/em&gt;, have a choice.&lt;/p&gt;&lt;h3&gt;The Wall and the Spike&lt;/h3&gt;&lt;p&gt;Singer’s framing is that most of us run one of two patterns when we get poked.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The wall.&lt;/strong&gt; You get criticized once, it stings, and some part of you quietly decides not to let that happen again. You get a little more guarded. A little less open to feedback from that direction. Do this enough times over a career and you end up running a leadership style built entirely out of old wounds you never actually dealt with. You’re not protecting the team. You’re protecting the thorn.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The spike.&lt;/strong&gt; This is the pattern Larry was showing in the newsletter linked above. Someone questions you, the discomfort shows up, and instead of sitting with it you push it back out. You get defensive, or you double down, or you find a reason the other person is wrong so you don’t have to feel the poke. It’s faster than building a wall, and it does more damage, because everyone with you watches it happen in real time.&lt;/p&gt;&lt;p&gt;This took me a long time to figure out. The discomfort isn’t the problem. You’re allowed to feel discomfort. The problem is what you do in the half second after you feel it, on autopilot, without ever deciding to.&lt;/p&gt;&lt;h3&gt;Watching&lt;/h3&gt;&lt;p&gt;Singer’s suggestion is almost annoyingly simple. When the spike happens, don’t immediately become the spike. Notice it. &lt;/p&gt;&lt;p&gt;In a leadership context this looks like a specific and learnable pause. Someone challenges your decision. You feel the pressure in your shoulders. Instead of letting that pressure push the next sentence out of your mouth, you let it be there for one extra second. You ask yourself what’s actually true, not what would make the discomfort go away fastest.&lt;/p&gt;&lt;p&gt;That one second is the whole skill. It’s not suppressing it, and you’re not pretending you didn’t feel it. Just refuse to let the feeling drive for an extra beat.&lt;/p&gt;&lt;h3&gt;Trust over Feelings&lt;/h3&gt;&lt;p&gt;I write about &lt;strong&gt;trust&lt;/strong&gt; a lot, probably because it’s the actual currency of leadership. You can read &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://angryweasel.substack.com/p/they-did-what-you-said&quot;&gt;They Did What You Said&lt;/a&gt; for the other half of this, what happens when your team complies without trusting you. This is upstream of that. Every time you react out of the spike instead of watching it, your team logs the data point. They learn what topics are safe to raise and which ones aren’t. They learn it faster than you’ll ever notice you taught it.&lt;/p&gt;&lt;p&gt;The wall does the same damage slower. A leader who’s quietly armored against a certain kind of feedback doesn’t look defensive in the moment. They just stop hearing that feedback at all. Nobody around them clocks it as a problem until something important doesn’t reach them in time.&lt;/p&gt;&lt;p&gt;Both patterns come from the same place. An old, automatic refusal to just feel the thorn and let it pass. The spike doesn’t care whether you’re in a conference room or a conversation with a good friend. The wall doesn’t care either.&lt;/p&gt;&lt;h3&gt;The Practice&lt;/h3&gt;&lt;p&gt;You don’t fix this by deciding to be calmer. That’s the wall and the spike both, in disguise, a new layer of management instead of actually dealing with the thing underneath.&lt;/p&gt;&lt;p&gt;What works is smaller and weirder than that. Next time you feel that spike in a meeting, the pressure in the shoulders, the urge to defend or shut down, try just naming it to yourself. Not out loud. Just internally: there’s the spike. You don’t have to do anything else yet. Just notice it’s there before you let it drive.&lt;/p&gt;&lt;p&gt;Do that enough times and the pause stops feeling like work. It’s just the half second you take before you let the truth land.&lt;/p&gt;&lt;div&gt;&lt;hr&gt;&lt;/div&gt;&lt;p&gt;If you want to talk through what this looks like in your specific team, I’d like to chat with you (&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://tidycal.com/19xqg4y/introductory-call-free&quot;&gt;schedule time here&lt;/a&gt;).&lt;/p&gt;&lt;p style=&quot;clear: both&quot;&gt;&lt;/p&gt;&lt;p data-bqr-info=&quot;attachment&quot;&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://substack-post-media.s3.amazonaws.com/public/images/68173395-ade0-4556-9e2c-5b428b884328_1254x1254.png&quot;&gt;&lt;/p&gt;</summary><author><name>Alan Page</name></author><source gr:stream-id="feed/https://angryweasel.substack.com/feed"><id>tag:google.com,2005:reader/feed/https://angryweasel.substack.com/feed</id><title type="html">The Weasel Speaks</title><link rel="alternate" href="https://angryweasel.substack.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782138190000"><id gr:original-id="6a39431017ff760001c9fa30">tag:google.com,2005:reader/item/0000071a000000ec</id><title type="html">Workroom PlayTime 060: Sitegeist as an Exploratory Interface</title><published>2026-06-22T14:23:10Z</published><updated>2026-06-22T14:23:10Z</updated><link rel="alternate" href="https://www.workroom-productions.com/workroom-playtime-060-sitegeist-as-an-exploratory-interface/" type="text/html"></link><summary type="html">&lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://storage.ghost.io/c/7e/30/7e30843b-2abb-494a-ab80-0e931d8ae9a9/content/images/2026/06/photo-1742160224390-4092483b3ba7.jpg&quot; alt=&quot;Workroom PlayTime 060: Sitegeist as an Exploratory Interface&quot;&gt;&lt;p&gt;This week&amp;apos;s &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.workroom-productions.com/workroom-playtime/&quot; rel=&quot;noreferrer&quot;&gt;Workroom PlayTime&lt;/a&gt; is &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://this-ti.me/?uts=1783004400&amp;amp;tz=Europe%2FLondon&amp;amp;name=Workroom+PlayTime+060&quot; rel=&quot;noreferrer&quot;&gt;Thursday 2 July at 4:00pm London time&lt;/a&gt;. Please &lt;strong&gt;note the change of time&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;We&amp;apos;ll play with (abandonware) tool &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.workroom-productions.com/sitegeist-as-an-exploratory-interface/&quot; rel=&quot;noreferrer&quot;&gt;Sitegeist as an Exploratory Interface&lt;/a&gt;. It needs setup – and I need you to come with it already set up. If you&amp;apos;re not already set it up, you won&amp;apos;t be able to play.&lt;/p&gt;&lt;p&gt;Setup is easy, and you can do it yourself, but I&amp;apos;m happy to help if that helps you come along. &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://savvycal.com/workroomprds/chat&quot;&gt;Pop something in my diary&lt;/a&gt; to come and say hello, or drop in for the last 10 minutes of the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.workroom-productions.com/workroom-playtime-059-play-with-tenfold/&quot; rel=&quot;noreferrer&quot;&gt;session on 25 June&lt;/a&gt;. You&amp;apos;ll need a machine that has the right permissions to let you install browser extensions, and you&amp;apos;ll need a &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://en.wikipedia.org/wiki/Chromium_(web_browser)&quot;&gt;chromium browser&lt;/a&gt; (Chrome, Brave, Edge, Opera, Vivaldi and others). &lt;/p&gt;&lt;p&gt;We&amp;apos;ll gather on Zoom. These exercises are for everyone, for free. &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.workroom-productions.com/#/portal/signup&quot; rel=&quot;noreferrer&quot;&gt;All subscribers&lt;/a&gt; get to play together most weeks, paid subscribers get a guaranteed slot or  rerun if we&amp;apos;re full. If you get this in an email or can see the &lt;strong&gt;joining info&lt;/strong&gt; section below, then you&amp;apos;re a subscriber and have access to the Zoom etc. for the workshop. If you&amp;apos;d like to bring a friend, you can do that. I&amp;apos;ll say yes until I&amp;apos;ve got too many.&lt;/p&gt;&lt;p&gt;Use this Savvycal link to &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://savvycal.com/workroomprds/workroom-playtime-060&quot; rel=&quot;noreferrer&quot;&gt;book your spot&lt;/a&gt; and get reminders. &lt;em&gt;Note to regulars: I hope that I&amp;apos;ve got it working so that not only is there a link to the zoom in this email, but in the &amp;quot;usual zoom&amp;quot; text in the reminder emails that savvycal sends.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;↓&lt;em&gt;  signed-in subscribers will see joining info and links below &lt;/em&gt;↓&lt;/p&gt;</summary><author><name>James Lyndsay</name></author><source gr:stream-id="feed/https://www.workroom-productions.com/rss/"><id>tag:google.com,2005:reader/feed/https://www.workroom-productions.com/rss/</id><title type="html">Workroom Productions</title><link rel="alternate" href="https://www.workroom-productions.com/" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782137443000"><id gr:original-id="6a3938f917ff760001c9f86f">tag:google.com,2005:reader/item/0000071a000000eb</id><title type="html">Workroom PlayTime 059: Play with Tenfold</title><published>2026-06-22T14:10:43Z</published><updated>2026-06-22T14:10:43Z</updated><link rel="alternate" href="https://www.workroom-productions.com/workroom-playtime-059-play-with-tenfold/" type="text/html"></link><summary type="html">&lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://storage.ghost.io/c/7e/30/7e30843b-2abb-494a-ab80-0e931d8ae9a9/content/images/2026/06/038445cc-2599-474f-b8cc-af45fe5ef5dd-1.webp&quot; alt=&quot;Workroom PlayTime 059: Play with Tenfold&quot;&gt;&lt;p&gt;This week&amp;apos;s &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.workroom-productions.com/workroom-playtime/&quot; rel=&quot;noreferrer&quot;&gt;Workroom PlayTime&lt;/a&gt; is &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://this-ti.me/?uts=1782394200&amp;amp;tz=Europe%2FLondon&amp;amp;name=Workroom+PlayTime+059&quot; rel=&quot;noreferrer&quot;&gt;Thursday 25 June at 2:30pm London time&lt;/a&gt;. Please &lt;strong&gt;note the time&lt;/strong&gt;, which is back to usual.&lt;/p&gt;&lt;p&gt;We&amp;apos;ll &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.workroom-productions.com/play-with-tenfold-by-ink-and-switch/&quot; rel=&quot;noreferrer&quot;&gt;Play with Tenfold&lt;/a&gt; – where we&amp;apos;ll explore a toy made by &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.inkandswitch.com/&quot;&gt;Ink and Switch&lt;/a&gt;. This will be a play-focussed session to see what we can find: their toy is both wide and deep, but doesn&amp;apos;t particularly lend itself to exploration by iteratikon nor to the judgement that is fundamental to testing work.&lt;/p&gt;&lt;p&gt;Next time, for &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.workroom-productions.com/workroom-playtime/#WorkroomPlayTime060&quot; rel=&quot;noreferrer&quot;&gt;Workroom PlayTime 060&lt;/a&gt;, we&amp;apos;ll finally get to &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.workroom-productions.com/sitegeist-as-an-exploratory-interface/&quot; rel=&quot;noreferrer&quot;&gt;Sitegeist as an Exploratory Interface&lt;/a&gt;. It needs setup –  to help you get set up, come to a short session immediately after  Thursday&amp;apos;s thing, or &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://savvycal.com/workroomprds/chat&quot;&gt;pop something in my diary&lt;/a&gt; to come and say hello. You&amp;apos;ll need a machine that has the right permissions to let you install browser extensions, and you&amp;apos;ll need a &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://en.wikipedia.org/wiki/Chromium_(web_browser)&quot;&gt;chromium browser&lt;/a&gt; (Chrome, Brave, Edge, Opera, Vivaldi and others). It&amp;apos;s easy, and you can do it yourself, but I&amp;apos;m happy to help if that helps you come play.&lt;/p&gt;&lt;p&gt;We&amp;apos;ll gather on Zoom. These exercises are for everyone, for free. &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.workroom-productions.com/#/portal/signup&quot; rel=&quot;noreferrer&quot;&gt;All subscribers&lt;/a&gt; get to play together most weeks, paid subscribers get a guaranteed slot or  rerun if we&amp;apos;re full. If you get this in an email or can see the &lt;strong&gt;joining info&lt;/strong&gt; section below, then you&amp;apos;re a subscriber and have access to the Zoom etc. for the workshop. If you&amp;apos;d like to bring a friend, you can do that. I&amp;apos;ll say yes until I&amp;apos;ve got too many.&lt;/p&gt;&lt;p&gt;Use this Savvycal link to &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://savvycal.com/workroomprds/workroom-playtime-059&quot; rel=&quot;noreferrer&quot;&gt;book your spot&lt;/a&gt; and get reminders. &lt;em&gt;Note to regulars: I hope that I&amp;apos;ve got it working so that not only is there a link to the zoom in this email, but in the &amp;quot;usual zoom&amp;quot; text in the reminder emails that savvycal sends.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;↓&lt;em&gt;  signed-in subscribers will see joining info and links below &lt;/em&gt;↓&lt;/p&gt;</summary><author><name>James Lyndsay</name></author><source gr:stream-id="feed/https://www.workroom-productions.com/rss/"><id>tag:google.com,2005:reader/feed/https://www.workroom-productions.com/rss/</id><title type="html">Workroom Productions</title><link rel="alternate" href="https://www.workroom-productions.com/" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1782124028000"><id gr:original-id="https://qualityremarks.com/?p=6962">tag:google.com,2005:reader/item/00000463000004c5</id><category term="Software Testing"></category><title type="html">The Great Capitulation</title><published>2026-06-22T10:27:08Z</published><updated>2026-06-22T10:27:08Z</updated><link rel="alternate" href="https://qualityremarks.com/the-great-capitulation/" type="text/html"></link><link rel="enclosure" href="https://qualityremarks.com/wp-content/uploads/2026/06/brawndo.mp4" type="video/mp4" length="460894"></link><media:content url="https://qualityremarks.com/wp-content/uploads/2026/06/brawndo.mp4" type="video/mp4" fileSize="460894"></media:content><summary type="html">&lt;p&gt;You know where this is heading, right?&lt;/p&gt;



&lt;p&gt;We’re being told that AI systems are too complex, too sophisticated, and too difficult to test and that it’s easier to try to conjure up a confidence index than it is to properly test them. Respected people in the software testing world are saying things like “you need to let it go and just like, trust the AI” and describing AI native test tools as a “magic trick”.&lt;/p&gt;



&lt;p&gt;These are not serious people.&lt;/p&gt;



&lt;p&gt;They would have you believe that uncertainty, context, risk, system behavior, and human judgment should be repackaged from the foundations of good quality management to a reason to lower the bar. Not openly, of course. Nobody says, “We’ve discovered testing and decided it’s too hard, so we are going to replace it with a vibes chart.” That would sound ridiculous. So instead, we get another BS test management theory.&lt;/p&gt;



&lt;p&gt;The broader business world is already preparing for the quality capitulation to our AI “friends”. Cal Newport’s &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://calnewport.com/ai-isnt-breaking-work-its-already-broken/#more-16915&quot; rel=&quot;noopener&quot; title&gt;piece&lt;/a&gt; sets out that AI is not breaking work because it was already broken. We were already drowning in shallow busy work with middle management consistently mistaking movement for action. Modern testing practices turned this into a high art.&lt;/p&gt;



&lt;p&gt;This &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://fortune.com/2026/06/16/ai-wont-transform-your-business-redesign-work-wpp-productivity/&quot; rel=&quot;noopener&quot; title&gt;article&lt;/a&gt; in Fortune lays out the idea that AI will not transform your business unless you redesign the work itself. Fair enough, but you can see the next step in this Register &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.theregister.com/security/2026/06/20/why-amazon-hates-human-in-the-loop-ai-governance/5258639&quot; rel=&quot;noopener&quot; title&gt;story&lt;/a&gt; about why Amazon isn’t in love with “human in the loop” because of how messy we are. I guess when we finally give up the desire for “&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.msn.com/en-in/money/news/amazon-founder-jeff-bezos-says-human-water-consumption-is-limiting-ai-s-potential/ar-AA262mxM&quot; rel=&quot;noopener&quot; title&gt;baseline human comfort&lt;/a&gt;” like drinking water, we can quicken the birth of our super-intelligence overlord to tells us how confident we should be in the future.&lt;/p&gt;



&lt;p&gt;As all these converging factors start to come into focus, the software testing industrial complex does their usual complete and utter abdication of their role as the conscience in technology to just make sure everyone likes them.&lt;/p&gt;



&lt;p&gt;Instead of saying, “We need better accountability, better evidence, better models of risk, and better use of human expertise,” the AI Confidence Bros take their 30 pieces of silver for trying to quietly downgrade everyone’s ambitions.&lt;/p&gt;



&lt;p&gt;The great irony of it all is that the exact same people who created, sold, and grifted the buyers of testing services through vanity metrics for the last 20 years, are now the exact same people trying to wash their hands of it all. The lack of self-awareness in creating another manifesto full of shallow binary choices in the style of the one that got us into this mess in the first place is breathtaking.&lt;/p&gt;



&lt;p&gt;Shilling confidence is the final form of the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://en.wikipedia.org/wiki/Enshittification&quot; rel=&quot;noopener&quot; title&gt;enshittification&lt;/a&gt; of software testing. First, tools help testers. Then tools reshape testing around what vendors can automate. Finally, testing itself degrades into whatever the platform can measure, summarize, and sell back as “confidence.” The product gets worse, the language gets better, and everyone gets to pretend test has transformed.&lt;/p&gt;



&lt;p&gt;But hey, want to feel confident? Just lean back and let it do it’s thing…I mean, it’s got electrolytes!&lt;/p&gt;



&lt;figure&gt;&lt;video width=&quot;1280&quot; height=&quot;720&quot; controls preload=&quot;none&quot; playsinline=&quot;true&quot; webkit-playsinline=&quot;true&quot; tabindex=&quot;-1&quot; src=&quot;https://qualityremarks.com/wp-content/uploads/2026/06/brawndo.mp4&quot;&gt;&lt;/video&gt;&lt;/figure&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://qualityremarks.com/the-great-capitulation/&quot;&gt;The Great Capitulation&lt;/a&gt; first appeared on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://qualityremarks.com&quot;&gt;Quality Remarks&lt;/a&gt;.&lt;p style=&quot;clear: both&quot;&gt;&lt;/p&gt;&lt;p data-bqr-info=&quot;attachment&quot;&gt;&lt;video width=&quot;560&quot; height=&quot;315&quot; style=&quot;border: none&quot; controls preload=&quot;none&quot; playsinline=&quot;true&quot; webkit-playsinline=&quot;true&quot; tabindex=&quot;-1&quot;&gt;&lt;source src=&quot;https://qualityremarks.com/wp-content/uploads/2026/06/brawndo.mp4&quot; type=&quot;video/mp4&quot;&gt;&lt;/video&gt;&lt;span class=&quot;downloadLink&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://qualityremarks.com/wp-content/uploads/2026/06/brawndo.mp4&quot; title=&quot;https://qualityremarks.com/wp-content/uploads/2026/06/brawndo.mp4&quot;&gt;brawndo.mp4&lt;/a&gt; (450kB)&lt;/span&gt;&lt;/p&gt;</summary><author><name>keithklain</name></author><source gr:stream-id="feed/http://qualityremarks.com/feed/"><id>tag:google.com,2005:reader/feed/http://qualityremarks.com/feed/</id><title type="html">Quality Remarks</title><link rel="alternate" href="https://qualityremarks.com" type="text/html"></link></source></entry></feed>