Nothing Shared, Everything Gained: The Problem

First published at Wednesday, 22 April 2026

Nothing Shared, Everything Gained: The Problem

A development team hadn't shipped anything in six months.

When we arrived, we found controllers with NPath complexity so high that static analysis tools reported integer overflows. Single methods spanning two thousand lines. Massive arrays stored in the session, passed between controllers that each expected slightly different structures.

The team wasn't the problem. The developers were skilled. They'd simply inherited a codebase where every change risked breaking something unexpected, where testing was effectively impossible, and where the only safe move was to add more code on top instead of improving what existed.

It took twenty-five days of careful work — writing end-to-end tests first, then continuously extracting methods, renaming concepts, and separating concerns. The team started shipping within weeks.

This pattern repeated across more than a hundred teams over seven years. Different companies, different industries, different frameworks. Same fundamental problems. Same path to fixing them.

The common thread was always side effects. Code that modified global state. Code that reached out to databases in unexpected places. Code where calling a method twice might produce different results — not because of different inputs, but because something somewhere had changed.

I wrote a book about what we learned. It's called "Nothing Shared, Everything Gained." You can grab it at codethatships.com.

Subscribe to updates

There are multiple ways to stay updated with new posts on my blog: