{"id":2186,"date":"2026-02-23T08:08:53","date_gmt":"2026-02-23T08:08:53","guid":{"rendered":"https:\/\/janbosch.com\/blog\/?p=2186"},"modified":"2026-02-23T08:08:54","modified_gmt":"2026-02-23T08:08:54","slug":"user-feedback-as-code-virtual-users-in-ai-driven-value-loops","status":"publish","type":"post","link":"https:\/\/janbosch.com\/blog\/index.php\/2026\/02\/23\/user-feedback-as-code-virtual-users-in-ai-driven-value-loops\/","title":{"rendered":"User feedback as code: virtual users in AI-driven value loops"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"320\" src=\"https:\/\/janbosch.com\/blog\/wp-content\/uploads\/2019\/03\/hand-1571851-1024x320.jpg\" alt=\"\" class=\"wp-image-849\" srcset=\"https:\/\/janbosch.com\/blog\/wp-content\/uploads\/2019\/03\/hand-1571851-1024x320.jpg 1024w, https:\/\/janbosch.com\/blog\/wp-content\/uploads\/2019\/03\/hand-1571851-300x94.jpg 300w, https:\/\/janbosch.com\/blog\/wp-content\/uploads\/2019\/03\/hand-1571851-768x240.jpg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Photo by geralt on Pixabay<\/figcaption><\/figure>\n\n\n\n<p>One of the defining shifts in modern software development has been the gradual automation of feedback. We no longer wait for quarterly reviews to understand performance; we instrument systems, collect telemetry, run experiments and close loops continuously. Yet, one feedback loop has remained stubbornly manual: user feedback.<\/p>\n\n\n\n<p>From a <a href=\"https:\/\/janbosch.com\/blog\/index.php\/2024\/04\/15\/from-agile-to-radical\/\">Radical<\/a> and continuous value delivery perspective, this is a glaring inconsistency. If value is defined by user outcomes, but insight into user behavior arrives late, sparsely and expensively, then user feedback becomes the slowest, and often weakest, signal in the system.<\/p>\n\n\n\n<p>Generative AI may finally change that. Not by \u2018simulating users\u2019 in a superficial sense, but by turning user feedback into something that increasingly resembles code: executable, versioned, composable and continuously evaluated.<\/p>\n\n\n\n<p>Most software-intensive organizations already operate several AI-enabled feedback loops. There are operational feedback loops, including telemetry, logs, traces and anomaly detection, that provide continuous feedback for use in reliability and performance decisions. Also, the business has its feedback loops, such as conversion metrics, funnel analysis, pricing experiments and revenue signals, that guide prioritization. And, of course, we have feedback loops for the behavior of the product, such as feature usage, clickstreams and A\/B testing, to inform incremental optimization.<\/p>\n\n\n\n<p>What\u2019s missing is a user intent and experience loop that\u2019s equally fast, scalable and automated. Traditional user testing simply doesn\u2019t fit the cadence of modern development. This is the gap GenAI-based virtual users aim to fill.<\/p>\n\n\n\n<p>Classic personas are static representations of intended users. In Radical terms, they\u2019re hypotheses, but passive ones. They influence design discussions but don\u2019t actively test value. The technical shift enabled by GenAI is the transformation of personas into executable specifications.<\/p>\n\n\n\n<p>Platforms like <a href=\"https:\/\/inamo.ai\">Inamo<\/a> and <a href=\"https:\/\/www.speqs.io\">Speqs.io<\/a> are building systems where a persona is no longer a document, but a configuration for an autonomous agent. This configuration contains attributes that define who the user is, behavioral models that define how the user acts, memory that defines what the user believes they\u2019ve learned and, finally, test scenarios that define what the user is trying to achieve.<\/p>\n\n\n\n<p>When instantiated, these agents interact with a product much like real users do, such as navigating flows, making mistakes, forming expectations and reacting to friction. In effect, personas become runnable artifacts. This is the moment where user feedback starts to look like code.<\/p>\n\n\n\n<p>Framing this as \u201cuser feedback as code\u201d is useful because it highlights several important properties. First, it becomes executable as feedback is generated by running agents, not by scheduling studies. Second, it\u2019s sufficiently deterministic to be automated. While not perfectly predictable, results are consistent enough to be used as signals in development workflows. Third, it\u2019s composable, allowing personas, behaviors and scenarios to be combined, reused and extended. Finally, it can be continuously evaluated as feedback can be generated on every design iteration, every release or even every commit. In Radical terms, this turns user feedback from an event into a loop. And loops, not artifacts, are what drive continuous value delivery.<\/p>\n\n\n\n<p>A natural question is whether virtual users are \u2018as good as\u2019 real users. That question is understandable and slightly misguided. Inamo\u2019s background as a human-based user testing platform allows it to benchmark AI-generated results against real-world data. Its stated ambition is to reach parity within roughly 0.5\u20132 percent for certain classes of tests. That\u2019s impressive, but also beside the deeper point. Modern product development doesn\u2019t require perfect signals; it requires fast and directionally correct ones. If virtual users consistently surface the same usability breakdowns, the same confusing flows or the same mismatches between intent and implementation, then they become extremely valuable, even if they occasionally miss nuance. Low-latency feedback beats high-fidelity feedback that arrives too late to matter.<\/p>\n\n\n\n<p>Seen in this light, GenAI-based user testing isn\u2019t about replacing humans; it\u2019s about changing where humans add the most value. Virtual users excel at continuous validation of assumptions, broad coverage across personas and edge cases and early detection of UX regressions. Humans remain essential for emotional resonance and trust, social and cultural interpretation and discovering entirely new behaviors and needs. The result is a layered feedback system: AI handles breadth and speed; humans handle depth and surprise.<\/p>\n\n\n\n<p>Radical organizations are defined by their ability to learn faster than their competitors. That learning speed is constrained by the slowest feedback loop. By turning user feedback into something executable and continuous, what we call \u201cuser feedback as code,\u201d GenAI closes one of the last major gaps in continuous value delivery. User intent, experience and friction stop being qualitative anecdotes and start becoming structured, repeatable signals. And once user feedback participates in the same automation culture as testing, deployment and monitoring, it fundamentally reshapes how products evolve. Not because AI understands users better than humans, but because it lets organizations listen continuously. To end with Arie de Geus: \u201cLearning faster than your competitors is the only sustainable competitive advantage.\u201d<\/p>\n\n\n\n<p><em>Want to read more like this? Sign up for my newsletter at\u00a0<a href=\"https:\/\/mailto:jan@janbosch.com\/\">jan@janbosch.com<\/a>\u00a0or follow me on\u00a0<a href=\"https:\/\/janbosch.com\/blog\">janbosch.com\/blog<\/a>, LinkedIn (<a href=\"https:\/\/www.linkedin.com\/in\/janbosch\/\">linkedin.com\/in\/janbosch<\/a>) or X (<a href=\"https:\/\/twitter.com\/JanBosch\">@JanBosch<\/a>).<\/em><a href=\"https:\/\/janbosch.com\/blog\/index.php\/category\/data\/\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the defining shifts in modern software development has been the gradual automation of feedback. We no longer wait for quarterly reviews to understand performance; we instrument systems, collect telemetry, run experiments and close loops continuously. Yet, one feedback loop has remained stubbornly manual: user feedback. From a Radical and continuous value delivery perspective, &#8230; <a title=\"User feedback as code: virtual users in AI-driven value loops\" class=\"read-more\" href=\"https:\/\/janbosch.com\/blog\/index.php\/2026\/02\/23\/user-feedback-as-code-virtual-users-in-ai-driven-value-loops\/\" aria-label=\"Read more about User feedback as code: virtual users in AI-driven value loops\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"generate_page_header":"","footnotes":""},"categories":[4,3,10],"tags":[],"_links":{"self":[{"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/2186"}],"collection":[{"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=2186"}],"version-history":[{"count":1,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/2186\/revisions"}],"predecessor-version":[{"id":2187,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/2186\/revisions\/2187"}],"wp:attachment":[{"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=2186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=2186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/janbosch.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=2186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}