Big-bang rewrite
Freeze the money-making system, rebuild in the hot stack, switch over on a weekend — a schedule written by optimism, paid for by reality.
The big-bang rewrite is the oldest recurring tax in software, rebranded every decade. COBOL to Java, Java to microservices, monolith to Rust, legacy to "AI-translated." The pitch is always symmetry: the old code is ugly, the new code will be clean, and we will pause the mess while we build paradise.
What the pitch hides is that the ugly system is a compressed history of edge cases — promotional pricing, regulatory exceptions, the one customer who pays half your rent. That knowledge lives in conditionals, not Confluence. A rewrite discovers it again, expensively, while competitors ship on top of the "embarrassing" codebase that actually works.
Joel Spolsky said it in 2000; companies still try it because greenfield feels virtuous. Strangler fig migrations exist and work, but they require humility: you are not replacing a system, you are teaching a new system every trick the old one learned the hard way.
The pattern fails when leadership confuses morale ("we deserve modern tools") with strategy. Modern tools do not reduce scope. If anything they increase it — new frameworks, new failure modes, new hiring profiles — while revenue waits on feature parity that was "phase two."
Exhibits
Practice · 1995–now
Big-bang rewrite
Replace the working system instead of strangling it. A perennial money pit with new branding each decade.
$ "We'll freeze features and rewrite in the hot language." Multi-year projects shipped late, incomplete, or not at all — while competitors iterated on the ugly system that made money.
Practice · 2023–now
AI will rewrite the codebase
Big-bang rewrite, now with a chatbot. Same failure mode; prettier slides.
$ Exec decks promised autonomous migrations "by next quarter." Teams that skipped tests, ownership, and incremental strangler patterns bought expensive demos and fragile diffs.
Architecture · 2012–now
Microservices Everywhere
Independent deployability as religion. Correct for some; ruinous cargo-cult for most.
$ Teams split 4-person products into 40 services, then hired SREs to babysit the mesh. Many later consolidated — after years of distributed tracing invoices and on-call trauma. See case studies on premature microservices and big-bang cutovers for named failure modes.
Framework · 2004–now
Ruby on Rails
Convention over configuration. Taught a decade of frameworks how to ship MVPs — and how to hit scaling walls.
Framework · 2010–2021
AngularJS (1.x)
Two-way binding magic that became a migration tax. Angular 2+ was a rewrite; the 1.x apps lingered for years.
Practice · 2009–2019
NoSQL for Everything
Schema-optional databases sold as a lifestyle. Right tool for some jobs; default for none.
$ Startups ditched Postgres for document stores "because scale," then rebuilt relational integrity in application code — and paid twice when joins came back as a product requirement.
Practice · 2014–now
SPA for Every Page
Client-side apps as the only architecture. Great for apps; absurd for brochures.
$ Marketing sites and docs portals shipped multi-megabyte JS bundles for content that wanted HTML. SEO and performance teams spent years unwinding "modern" defaults.
Architecture · 1970–now
Modular monolith
One deployable with clear boundaries. The unfashionable default that keeps shipping while microservices argue about ownership.