Skip to main content
Paul Welty, PhD AI, WORK, AND STAYING HUMAN

· essays

UAT is all the T

User Acceptance Testing is supposed to be users + acceptance + testing. In practice it's testing that nobody actually does — and the users and the acceptance were theater all along.

Twenty-five years of running dev teams taught me that User Acceptance Testing is a three-letter acronym where two of the letters are a polite fiction.

The users, in theory, are the ones testing. In practice the users are three weeks behind on their day job and didn’t sign up to be QA. They get handed a spreadsheet of “test scenarios” on a Friday and asked to sign off by Monday. They open it, scroll, click a few things, and send back “looks good.” Nobody is testing. Nobody is even really looking. The word “user” in UAT is a label slapped on a stakeholder who wants the project done so the invoice can be paid.

The acceptance, in theory, is the decision. In practice the acceptance was made months earlier, when the contract was signed or the roadmap was locked. Every “finding” from UAT is a political event — raise a real issue and you’re the one delaying the release. So findings get filed as “phase two” and the project ships on the date someone already committed to.

What’s left, once the users aren’t testing and the acceptance was predetermined, is the T. And the T is the part that actually requires work. Writing the use cases. Writing the test plans. Walking through each flow with a checklist. Logging what happened versus what should have happened. The T is the labor that nobody’s bonus depends on, that doesn’t show up in a demo, that senior engineers consider beneath them and junior engineers consider above them.

For every team I ran, I asked for the T. Write the use cases. Plan the UAT against those use cases. Have a real acceptance gate. And for every team, the T got skipped, deferred, partial, performed, or outsourced to someone who didn’t know the product. Never actually done. The users signed off, the acceptance happened on the preordained date, and the T quietly didn’t.

I don’t think this was a talent problem. Every engineer I worked with could have done it. The T is not hard in any intellectual sense — it’s just tedious, uncelebrated, and politically inconvenient. It looked like clerical work, so nobody of sufficient seniority wanted to own it. It demanded completeness, so nobody of insufficient seniority was trusted to own it. It fell through the crack between.

What’s different now is that the labor part of the T doesn’t need a human anymore. Catalog the use cases: a machine does it in an afternoon. Write the Playwright suite: a machine does it overnight. Run the regression against the live product: scheduled cron. File a bug when something fails: automatic. The T — the part that always got skipped — is now the cheap part.

That changes what UAT actually is. The A can still be a political event if you want it to be. The U can still be a signature on a form. But the T is no longer a negotiation. The machine does it, every week, whether anyone asked. The question stops being “did the users test?” and becomes “what did the tests find, and is anyone going to look?”

Which, I’ll admit, is a different kind of problem. But it’s the problem I wanted to have.

Nobody takes you aside anymore

Print taught a generation when to stop. What we lose when the machines absorb the constraints that used to form us.

Your AI agents need a water cooler

Coordination is a property of the room, not the org chart. What that means when your coworkers are agents.

On the death of the author and the birth of the detector

Why worrying about AI authorship is lazier, and more prejudiced, than it looks.

The work of being available now

A book on AI, judgment, and staying human at work.

The practice of work in progress

Practical essays on how work actually gets done.

Memory is (almost) solved. time is next.

AI can't tell if a memory is two minutes or two weeks old. The fix isn't making models feel time — it's cache invalidation: an as-of stamp on every fact, a clock in the context, and a freshness window for anything volatile.

Did the state change? A simple test for whether work actually happened

Either something exists now that did not exist before, or it does not. A simple test for whether work actually happened, and what changes when you build your systems so they can't record anything else.

Shopping is the last mile

Every meal planning app treats cooking as the hard problem and shopping as a logistics detail. They have it backwards. Cooking is mostly solved. Shopping is the last mile.

The agent-shaped org chart

Every real org has the same topology: principal, role-holder, specialists. Staff AI maps onto it, node for node, and the cost collapse shows up in the deliverables that were always just human-handoff overhead.

AI as staff, not software

Two frames for what AI is doing to work. The tool frame makes tools smarter. The staff frame makes roles unnecessary. Those aren't the same product, the same company, or the same industry.