Sunday morning, February 16th. A developer ships a feature in two hours that would have taken two days five years ago. An AI helped write half the code, autocomplete finished the other half, and Stack Overflow filled in the gaps. The feature works. It solves the immediate problem. But six months later, nobody can maintain it, three edge cases break production, and the original developer has long since forgotten how any of it works. We celebrated the velocity. We ignored everything velocity destroys.

The Thesis

The tech industry's obsession with velocity—shipping faster, iterating quicker, moving with more speed—isn't just changing how fast we work. It's changing what kind of work is possible, what kind of thinking happens, and ultimately what gets built. High velocity work systematically favors breadth over depth, reaction over reflection, and short-term wins over long-term quality. This isn't an accident or a skill issue. It's a fundamental property of working fast: speed selects for certain types of solutions and certain types of thinkers while making other approaches structurally impossible. The result is a world where we build more things faster, but fewer things that last, and almost nothing that's genuinely novel.

The velocity narrative sounds like pure upside:

  • Ship faster, learn faster
  • Iterate quickly, improve continuously
  • Move fast and break things
  • Fail fast, succeed faster
  • Velocity is the competitive advantage

This is sold as objective progress. Better tools, better practices, better outcomes. But velocity isn't neutral. It has profound second-order effects we've mostly ignored.

What Velocity Changes

It filters for certain types of problems:

Fast work requires fast feedback loops. You need to know quickly if something works. This means you naturally gravitate toward problems where success is obvious and immediate.

Build a feature, see if users click it. Run an A/B test, check conversion rates. Deploy the change, monitor error rates. These are velocity-compatible problems—you can iterate fast because you can measure fast.

But the interesting problems rarely work like this. Novel ideas don't have existing metrics. Deep technical improvements don't show immediate results. Fundamental reconceptions of how something should work can't be validated through rapid iteration because there's nothing to iterate from.

Velocity-driven development systematically filters these out. Not because people don't want to work on them, but because the pace of work makes them impractical. When the expectation is shipping weekly or daily, you choose projects that fit that rhythm.

The two-year refactoring project, the fundamental rethinking of the architecture, the exploration of a genuinely different approach—these become impossible. Not because they're bad ideas, but because they're incompatible with the tempo.

It changes who succeeds:

Working at high velocity rewards specific cognitive styles. Pattern matching over first principles thinking. Implementation speed over design depth. Comfort with ambiguity over need for understanding.

The developer who can glance at a problem, recognize it as similar to something they've solved before, grab a library that mostly works, ship it, and move to the next thing—they're incredibly valuable in a high-velocity environment.

The developer who needs to understand why something works, who wants to consider alternative approaches, who's bothered by the impedance mismatch between the library and the problem—they're a bottleneck.

This isn't about skill. It's about fit. Some people's natural working style is compatible with high velocity. Others produce their best work slowly.

But when velocity is the primary value, we select for the former and increasingly filter out the latter. Then we wonder why everything feels same-y, why novel solutions are rare, why technical debt compounds.

It's not a mystery. We've systematically optimized for the cognitive style that ships fast and against the cognitive style that thinks differently.

It prevents certain types of thought:

Some insights require sustained attention over long periods. You need to hold a problem in your head for days or weeks, letting your subconscious work on it, noticing patterns across different contexts, slowly building understanding.

This is incompatible with high velocity work. When you're context switching between problems every few hours, when the pressure is to ship something today, you never develop the deep familiarity that makes breakthrough insights possible.

The surface-level solution comes fast. The deeply considered alternative takes time you don't have.

Fred Brooks called this "No Silver Bullet"—there's no magic technique to make conceptual work go faster. Thinking about hard problems takes time. The time can't be shortened without changing what's possible to think.

High velocity work doesn't make thinking faster. It makes depth impossible and calls the result efficiency.

It changes what's maintainable:

Code written slowly accumulates context. The person writing it has time to document why decisions were made, what alternatives were considered, what assumptions are embedded in the design.

Code written fast gets shipped with whatever made sense in the moment. The context stays in the developer's head, gets lost when they move to the next thing, and is irretrievable six months later when something breaks.

This creates a velocity trap: fast code creates maintenance burden that slows future work, which creates pressure to move even faster to hit targets, which creates more maintenance burden. The compound interest of technical debt.

But we rarely connect this to velocity. We blame the individual developer for poor practices, or we blame the codebase for being messy. We don't notice that the pace of work itself makes good practices structurally difficult.

When you're shipping multiple features a week, when are you supposed to write documentation? When are you supposed to refactor? When are you supposed to build proper abstractions instead of quick solutions?

The answer is: you don't. The velocity doesn't allow it. Then we wonder why nothing is maintainable.

The AI Acceleration

This is about to get much worse:

AI coding assistants are impressive. They make writing code faster. But they're accelerating velocity while making the problems velocity causes more severe.

An AI can generate working code for a problem faster than a human can fully understand the problem. This is powerful. It's also dangerous.

The limiting factor in software development was never typing speed. It was thinking speed. Understanding the problem, considering the implications, designing something that handles edge cases and fits with existing systems—that's what takes time.

AI removes the typing bottleneck. The thinking bottleneck remains. But now there's massive pressure to skip the thinking because the implementation is so fast.

You can ship in an hour what used to take a day. But that doesn't mean you should. The day wasn't wasted—it gave time for understanding to develop, problems to be noticed, designs to be refined.

The hour gives you working code. It doesn't give you code that should have been written.

The junior developer problem:

This hits junior developers especially hard. Learning to program used to involve writing lots of code slowly. This built intuition for how code works, what patterns are useful, why certain approaches cause problems.

AI makes it possible to ship production code before developing that intuition. You can be productive much faster. But "productive" now means "able to generate working code," not "able to generate good code" or "able to understand what makes code good."

We're creating a generation of developers who can ship fast but never learned to think slow. They're optimized for the high-velocity environment, which seems good until you need someone who can solve a novel problem or understand a complex system deeply.

The skill of thinking carefully about code, of building mental models of how systems work, of developing intuition for what will cause problems later—these skills were partially built through the slow process of writing code.

When the code-writing isn't slow anymore, when does the skill development happen?

What Actually Works

Protect low-velocity time:

Not everything needs to be fast. Some work legitimately benefits from slowness.

Create explicit space for slow work. Architecture design. Deep refactoring. Exploration of new approaches. Thinking through hard problems without pressure to ship.

This needs to be structurally protected, not just encouraged. Because the default pressure is always toward more velocity. Without deliberate protection, slow work disappears.

That means saying: "This month, this person is exploring this problem space. They're not shipping features. They're building understanding." And meaning it. And not changing course when velocity pressure builds.

Match pace to problem type:

Different problems have natural rhythms. Respect them.

Bug fixes often benefit from velocity—ship the fix fast, validate it works, move on.

New features need moderate pace—fast enough to get feedback, slow enough to consider edge cases.

Architecture decisions need slowness—rushing these creates years of regret.

The mistake is using the same pace for everything. When velocity is the universal value, we try to rush architecture decisions and wonder why the foundation is shaky.

Value depth over speed for critical paths:

For the 20% of code that 80% of the system depends on, optimize for quality, not velocity.

That core infrastructure should be written slowly, reviewed carefully, documented thoroughly, tested extensively. It needs to be right more than it needs to be fast.

The velocity can happen at the edges, on features that are independent and easily changed. The core needs to be slow.

This requires identifying what's actually core, which itself takes slow thinking. But it's the difference between a system that gets faster to work on over time versus one that gets progressively slower as velocity-created technical debt compounds.

Develop velocity-independent thinking:

The skill isn't to think faster. It's to maintain thinking depth regardless of execution speed.

When tools make implementation fast, use the time saved for deeper design. When AI writes code in minutes, spend the saved hour considering if it's the right code.

The velocity tools are useful. But they're useful for creating time for thought, not for eliminating thought.

This is a discipline. The pressure is always to ship the fast solution and move to the next thing. Resisting that pressure, using the saved time to think instead of to ship more, requires active choice.

The Uncomfortable Truth

Velocity has become a value system, not just a metric:

We don't just want to move fast. We've decided that moving fast is inherently good, that faster is better, that velocity itself is the goal.

This is wrong.

Velocity is useful for some things. It's actively harmful for others. Treating it as a universal good systematically devalues the work that doesn't fit that rhythm.

The result is a tech industry that's incredibly good at shipping lots of things quickly and increasingly poor at building things that last or things that are genuinely novel.

We've optimized for throughput at the expense of almost everything else. And we're confused about why everything feels shallow.

Takeaways

Protect slow work explicitly. Create structural space for work that needs sustained attention. Don't just encourage it—make it part of how work is allocated and evaluated.

Match pace to problem. Stop trying to apply high velocity to everything. Some problems need speed, some need moderate pace, some need slowness. Respect the natural rhythm.

Use speed savings for depth. When tools make implementation faster, don't just ship more. Use the time for deeper consideration of what should be built.

Distinguish productivity from velocity. Building the right thing slowly is more productive than building the wrong thing fast. Velocity measures speed, not value.

Develop depth as a skill. In a world optimized for velocity, the ability to think deeply becomes a competitive advantage. Cultivate it deliberately.

Recognize velocity's costs. Every optimization has tradeoffs. High velocity systematically trades depth for speed, lasting quality for quick wins, novel thinking for pattern matching. Know what you're giving up.

The goal isn't to move slowly. It's to move at the right speed for what you're building. Sometimes that's fast. Often it's not.

Stop optimizing for velocity. Start optimizing for building things that matter.

Today's Sketch

February 16, 2026