Why "Clean Architecture" Is Killing Your Velocity

CodeOpinion (Derek Comartin)
CodeOpinion (Derek Comartin)Apr 8, 2026

Why It Matters

By cutting superfluous layers, teams ship features faster and reduce technical debt, directly impacting product timelines and cost efficiency.

Key Takeaways

  • Interfaces add unnecessary abstraction when only one implementation exists.
  • Over‑layered clean architecture slows delivery and inflates codebase.
  • Manage coupling, don't eliminate it; use slices for isolation.
  • Testing can be achieved without extra interfaces or fakes.
  • Pragmatic architecture tailors layers to actual business complexity.

Summary

The video challenges the prevailing mantra that clean‑code principles—especially heavy abstraction and layered architectures—are essential for sustainable development. It argues that the dogma of “always isolate via interfaces” often creates an "interface tax" that slows delivery without delivering real value.

Using a Stripe payment‑service example, the presenter shows that a single implementation and a single consumer gain no practical benefit from an interface. He extends the argument to repository patterns, demonstrating that when a use‑case merely updates a database field, injecting generic repositories and mappers adds needless indirection. The core insight is that coupling itself isn’t evil; unmanaged coupling is. By treating each functional slice as a bounded context, teams can localize change without proliferating layers.

Key quotes underscore the point: “If you have a single usage of something, you don’t have uncontrolled coupling,” and “Testing isn’t a reason to immediately jump to interfaces.” The speaker also notes that many third‑party SDKs already provide test doubles, and that pragmatic architecture should match the complexity of the problem, not a one‑size‑fits‑all pattern.

The implication for software organizations is clear: reevaluate blanket adoption of clean‑architecture scaffolding, strip away unnecessary abstractions, and focus on isolation where it truly reduces blast radius. Doing so can restore development velocity, lower maintenance overhead, and keep engineering effort aligned with business value.

Original Description

Pragmatic architecture isn’t about adding layers, interfaces, and abstractions everywhere. It’s about keeping options open without slowing yourself down. In this video, I cover the “interface tax,” vertical slices over layers, strategic coupling, and how to ship without turning your codebase into a mess.
🔗 Kurrent (formely EventStoreDB)
💥 Join this channel to get access to a private Discord Server and any source code in my videos.
🔥 Join via Patreon
✔️ Join via YouTube
0:00 Intro
1:40 Dependency
3:29 Layers
5:47 Slice

Comments

Want to join the conversation?

Loading comments...