Dev reflection - February 04, 2026
Duration: 5:42 | Size: 5.23 MB
Hey, it’s Paul. Tuesday, February 4th, 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.
Three different things broke this week. A CI pipeline that ran successfully but failed infrastructure checks. A collaboration feature that was fully built but hidden behind a paywall nobody could see. A podcast system that generated scripts but silently reverted to the wrong specifications. In each case, the code was doing exactly what it was designed to do.
That was the problem.
First thing I noticed: constraints don’t just block features—they reveal what systems want to be.
I hit a wall with a game mod I’m building when I discovered the underlying API only supports percentage modifiers, not absolute ones. Sounds technical, but here’s what it means: percentage modifiers scale with how big your empire gets. If I designed the mod to rotate content in and out—like a magazine subscription where old issues disappear—I’d be removing bonuses that players had built entire strategies around. The constraint eliminated that path entirely.
So the product became something else. An accumulative library instead of a rotating magazine. Each release permanently adds to what came before.
This happens in organizations constantly. You think you’re making a strategic choice, but actually an infrastructure limitation made the choice for you. The question is whether you recognize it. Most teams fight constraints instead of listening to them. They spend months trying to work around limitations that are actually telling them something about what the system wants to be.
The interesting move is to treat constraints as information rather than obstacles. What is this limitation revealing about the actual shape of what we’re building? Sometimes the answer is “nothing, it’s just a bug to fix.” But sometimes the constraint is smarter than your original plan.
Second thing: automation can work perfectly while implementing the wrong specification. This is the dangerous kind of failure.
Here’s what happened. I updated podcast prompts to target eight-minute scripts—about twelve hundred words with substantial ideas. The next day, an automated workflow ran a git restore command to ensure clean commits. Standard practice. Except it silently reverted my prompt file to an earlier version. The system generated a script at half the target length. Nobody noticed for twenty-four hours because the automation worked exactly as designed.
The podcast generator produced output. The git workflow cleaned up files. Every system functioned correctly while creating the wrong outcome.
This is the delegation problem every manager faces, just wearing different clothes. When you hand off work—to a person, to a team, to an automated system—you’re trusting that the specification is correct and will stay correct. But specifications drift. Context changes. And the more reliable your delegate, the less likely you are to check their work.
A flaky system that fails visibly is safer than a reliable system that fails invisibly. At least the flaky one forces you to pay attention.
The question for anyone managing autonomous processes—whether those processes are software or people—is: what would it look like if this succeeded at the wrong thing? How would I know? Most monitoring watches for failures. Almost nobody monitors for plausible-but-wrong successes.
Third thing: there’s a gap between how you naturally think and how you’ve structured your work. That gap is expensive.
I realized this week that my workspace is optimized for sitting. But my best thinking happens standing at a whiteboard. When I taught at Emory, I’d explain complex systems over an hour with colored markers, building diagrams as ideas emerged. Former students still remember those sessions years later. One made a t-shirt from a diagram I drew.
The whiteboard isn’t for making illustrations. It’s for thinking. The illustrations are artifacts of working the way I naturally work.
How many of us have structured our environments around assumptions about how work should happen rather than how we actually think? You inherit a desk setup, a meeting format, a documentation style. You adapt to it. And somewhere along the way, you forget that you used to have a different way of processing ideas that might have been more effective.
This connects to something I’ve been writing about—the machine-self that workplaces create. The version of you that’s been filtered and compressed to fit institutional interfaces. Part of reclaiming your full capacity is noticing where the structure itself is suppressing how you naturally operate.
I’m not saying everyone should buy a whiteboard. I’m saying: what’s the equivalent for you? What’s the thinking mode you’ve abandoned because it didn’t fit the environment you inherited?
Last thing: if something is built but hidden, is it done?
I had a team collaboration feature that was fully functional. Complete code. Tested. Working. But it was wrapped in a subscription check that only showed it for paying users. The feature existed; users just couldn’t see it.
Removing six lines from a sidebar conditional didn’t add functionality. It revealed functionality that already existed.
This is a question about what “done” means. In pure engineering terms, the feature was complete. In product terms, it didn’t exist yet. No users could access it, which meant no feedback, no learning, no validation of whether it was actually valuable.
Organizations do this constantly with capabilities they’ve built but gated behind approvals, permissions, or organizational boundaries. The capability exists. The access doesn’t. And then leadership wonders why adoption is slow.
Sometimes gates are necessary. But every gate has a cost: you can’t learn whether something is valuable until people can use it. The longer you hide capability behind access controls, the longer you’re operating on assumptions instead of evidence.
So here’s what I’m sitting with: the gap between “it works” and “you can use it” isn’t a bug to fix. It’s a permanent tension to manage. Systems that work correctly can still produce wrong outcomes. Constraints that feel like obstacles might be revealing what you should actually build. And the way you’ve structured your work might be suppressing exactly the capabilities you need most.
The question isn’t how to close these gaps permanently. It’s how to notice them faster.
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
We always panic about new tools (and we're always wrong)
Every time a new tool emerges for making or manipulating symbols, we panic. The pattern is so consistent it's almost embarrassing. Here's what happened each time.
Dev reflection - February 03, 2026
I've been thinking about constraints today. Not the kind that block you—the kind that clarify. There's a difference, and most people miss it.
When execution becomes cheap, ideas become expensive
This article reveals a fundamental shift in how organizations operate: as AI makes execution nearly instantaneous, the bottleneck has moved from implementation to decision-making. Understanding this transition is critical for anyone leading teams or making strategic choices in an AI-enabled world.
Notes and related thinking
Dev reflection - February 03, 2026
I've been thinking about constraints today. Not the kind that block you—the kind that clarify. There's a difference, and most people miss it.
Dev reflection - February 02, 2026
I've been thinking about what happens when your tools get good enough to tell you the truth. Not good enough to do the work—good enough to show you what you've been avoiding.
Dev reflection - January 31, 2026
I've been thinking about what happens when your tools start asking better questions than you do.