Paul Welty, PhD AI, WORK, AND STAYING HUMAN

Dev reflection - February 07, 2026

I've been thinking about friction. Not the dramatic kind—not the system crash, not the project that fails spectacularly. I mean the quiet kind. The accumulation of small things that don't quite wor...

Duration: 6:59 | Size: 6.40 MB


Hey, it’s Paul. Saturday, February 7th, 2026.

I’ve been thinking about friction. Not the dramatic kind—not the system crash, not the project that fails spectacularly. I mean the quiet kind. The accumulation of small things that don’t quite work, that you work around, that you barely notice until one day you realize you can’t move forward without going backward first.

That’s what showed up in my work today. Three different projects, all with deadlines looming, and I spent the entire day on cleanup. Not features. Not the things that ship. Cleanup. And here’s what’s interesting: this wasn’t procrastination. This was necessity. The systems had degraded to the point where the next step required clearing the path before taking it.


First thing I noticed: there’s a specific moment when technical debt stops being background noise and becomes a wall.

In one project, I had sixteen stale issues from an abandoned roadmap polluting my task recommendations. The AI was suggesting iOS work for a backend API feature. In another, the JavaScript pipeline wasn’t properly integrated, so a feature that was technically complete couldn’t actually be tested. In a third, configuration files had sprawled across sixty-one different locations, and every small change meant fighting the infrastructure.

None of these were critical on day one. They accumulated. And the pattern isn’t just “cleanup takes time”—it’s that these systems reached a state where forward progress became impossible without first going backward.

Organizations degrade this way too. Not through dramatic failure. Through accumulated friction. The process that made sense three years ago but nobody updated. The tool that’s installed but half-configured. The documentation that’s technically accurate but describes a system that no longer exists. Each one is small. Together, they make every next step harder until someone finally stops and clears the path.

The question this raises: how do you measure the cost of friction before it becomes blocking? Those sixty-one configuration files weren’t individually expensive. But the aggregate friction made every task harder. What’s the sign that says “consolidate now” before it becomes a full-day cleanup? I don’t have a clean answer. But I’m starting to think the sign is when you notice yourself working around something more than once. The first workaround is adaptation. The second is a warning. The third is debt you’re choosing to carry.


Second thing: automation can create the appearance of structure without capturing any actual thinking.

I used a tool to generate task breakdowns for a milestone. It created five issues with titles like “Define scope and acceptance criteria” and “Implement core functionality.” They look right. They have the correct structure. But here’s the problem: I already had a comprehensive specification with detailed acceptance criteria, data model, API design, and UI flow. The automation didn’t know that. It created generic scaffolding that now needs to be reconciled with the thinking that already happened.

This is worse than creating unnecessary tasks. It’s creating tasks that look correct until you try to use them. The structure is right. The content is wrong. And now I have a choice: spend time enriching these generic issues to match the actual specification, or ignore them and work from the spec directly, which defeats the purpose of having issues at all.

This pattern shows up everywhere in knowledge work. The template that gets filled out because it exists, not because it helps. The meeting notes that capture what was said but not what was decided. The documentation that describes the system architecture but not why it’s shaped that way. Structure without substance. It looks like progress. It creates work.

The question isn’t whether to automate. It’s how to make automation capture decisions rather than just structure. A task generation tool that parses existing specifications and creates issues referencing specific sections—that would be useful. A tool that creates generic lifecycle stages regardless of context—that’s just reconciliation work disguised as productivity.


Third thing: consolidation forces clarity in ways that flexibility never does.

When I moved from sixty-one project-specific configuration files to a single global config, something interesting happened. I had to decide what actually needed to be project-specific versus what could be shared. And the answer was: almost nothing. The configuration sprawl wasn’t serving real needs. It was the residue of incremental decisions that nobody ever questioned.

The same thing happened with a JavaScript pipeline rebuild. I wasn’t choosing the best solution. I was choosing one solution and making it work properly instead of having three partially-working solutions competing for attention.

This is counterintuitive. We tend to think flexibility is good—keep your options open, allow for variation, don’t constrain too early. But flexibility without intention becomes sprawl. And sprawl becomes friction. Sometimes the most productive thing you can do is eliminate options. Force a decision. Pick one approach and commit to it fully rather than hedging across three approaches that each work seventy percent of the time.

Organizations resist this. Consolidation feels like losing capability. But often what you’re losing is the illusion of capability—the tool that’s installed but never configured, the process that’s documented but never followed, the option that’s technically available but practically never used. Eliminating those isn’t reduction. It’s clarity.


Fourth thing: there’s a specific relationship between deadline pressure and the kind of work that gets done.

Both projects with hard deadlines—fourteen days out—spent today on cleanup rather than feature work. The project without a hard deadline made the most actual progress. That seems backward, but I think I understand it now.

When a deadline is far enough away to feel safe but close enough to create pressure, there’s a tendency to clear technical debt rather than start risky feature work. The reasoning is sound: “I have time, let me get the foundation right first.” But the risk isn’t that the deadline will be missed. The risk is that “focused work” requires continuous multi-day blocks, and if you’re spending your runway on scattered cleanup sessions, you might have the time budget but not the attention budget.

One spec estimates thirty-one hours of implementation—about four days of focused work. The deadline is fourteen days away. Looks like plenty of margin. But “focused implementation sessions” is doing a lot of work in that estimate. If those four days happen in two-hour blocks scattered across two weeks, interrupted by other priorities and context switches, thirty-one hours becomes something much longer.

This is the planning fallacy applied to attention, not time. We estimate how long work takes assuming we can do it. We don’t estimate how long it takes to get into the state where we can do it.


So here’s what I’m sitting with: systems degrade through accumulated friction, not dramatic failure. Automation can create structure without substance. Consolidation forces clarity that flexibility obscures. And deadline pressure shapes what kind of work gets done in ways that aren’t always obvious.

The question I keep coming back to: what would it look like to measure friction before it becomes blocking? Not after the day spent on cleanup, but before—when there’s still time to address it incrementally rather than all at once?

I don’t know yet. But I think the answer has something to do with noticing workarounds. Every workaround is a signal. The question is whether you’re paying attention.


Featured writing

Why customer tools are organized wrong

This article reveals a fundamental flaw in how customer support tools are designed—organizing by interaction type instead of by customer—and explains why this fragmentation wastes time and obscures the full picture you need to help users effectively.

Infrastructure shapes thought

The tools you build determine what kinds of thinking become possible. On infrastructure, friction, and building deliberately for thought rather than just throughput.

Server-Side Dashboard Architecture: Why Moving Data Fetching Off the Browser Changes Everything

How choosing server-side rendering solved security, CORS, and credential management problems I didn't know I had.

Books

The Work of Being (in progress)

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

The Practice of Work (in progress)

Practical essays on how work actually gets done.

Recent writing

Dev reflection - February 06, 2026

I want to talk about the difference between a system that works and a system that's ready. These aren't the same thing. The gap between them is where most projects stall out—not from failure, but f...

Dev reflection - February 05, 2026

I want to talk about something I keep running into: the moment when you realize the outside of something no longer matches the inside. And what that actually costs.

Dev reflection - February 04, 2026

I've been thinking about the gap between 'it works' and 'you can use it.' These aren't the same thing, and the distance between them is where most organizational dysfunction lives.

Notes and related thinking

Dev reflection - February 06, 2026

I want to talk about the difference between a system that works and a system that's ready. These aren't the same thing. The gap between them is where most projects stall out—not from failure, but f...

Dev reflection - February 05, 2026

I want to talk about something I keep running into: the moment when you realize the outside of something no longer matches the inside. And what that actually costs.

Dev reflection - February 04, 2026

I've been thinking about the gap between 'it works' and 'you can use it.' These aren't the same thing, and the distance between them is where most organizational dysfunction lives.