Skip to main content
ArticlesProjects

Why Is This Hard To Change?

A diagnostic series for Laravel codebases that are clean, modern, well tested, and still expensive to work in. Each part starts from a symptom a team actually reports, works back to the structural cause, and prices the fix honestly, including the times the answer is to leave it alone.

Series Curriculum

Part 1·8 min read

Your Test Suite Is an Architecture Report

A slow Laravel test suite gets treated as a tooling problem. It is usually a coupling measurement, and the number worth watching is not how long the suite takes.

Read
Part 2·4 min read

Every Feature Touches Ten Files

Ten files open for a one line change is either layering working correctly or one idea smeared across a codebase. The count does not tell you which, and git history does.

Read
Part 3·8 min read

Nobody Wants To Touch That Model

Every Laravel codebase has a model people route around. Counting its lines is the least useful thing you can do to it, and extracting traits is how the count gets hidden rather than fixed.

Read
Part 4·7 min read

The Job And The Controller Disagree

The same operation runs from two entry points and they have quietly drifted. In Laravel that drift has a predictable shape, because validation lives at the edge and only one edge has it.

Read
Part 5·7 min read

The Interface With One Implementation

You added it so the thing could be swapped out later. Later arrived and nothing was. Counting implementations is the wrong test, and where the interface lives tells you far more.

Read
Part 6·8 min read

It Was Fine Until We Added A Second One

Every trigger in this series has been a second something. That is not a coincidence, and it is the only signal in here reliable enough to act on.

Read
Part 7·8 min read

The Rewrite You Should Not Do

You have run the diagnostics and you have a list. Now price the three options honestly, including the one where you do nothing, which is right more often than the other two put together.

Read

Share

XLinkedIn

Related

More Series

All series →