Can we hire more engineers to ship it faster?

I often heard this question when leading an engineering team.

And often, the answer was: no.

In most cases, it was simply not feasible for several reasons.

Either some dependencies made it impossible to parallelise development.

Or, by the time we onboard a new engineer, we would already have the capacity to deliver.

In some cases, the risk of introducing bugs into the core product was unacceptable.

For a long time, I thought this was just the way things are.

And if you do scale engineering, it must be done for the long haul.

Ironically, that’s the definition of the unscalable.

But recently, I realised that this stems from a problem within our control.

Software maintainability.

Tightly coupled software modules make it hard to parallelise development.

Lack of documentation makes it take a long time to ramp up new engineers.

Complex software design increases the risk of introducing bugs.

Not because that’s “just how engineering works.”

But because of how we build software.

And that’s something we can change.

Software maintainability impacts engineering scalability.

A loosely coupled architecture allows more engineers to work in parallel.

Up-to-date documentation reduces ramp-up time for new engineers.

Clean software architecture makes it safer to change software.

By investing in software maintainability, you can also improve engineering scalability.

And you can scale engineering based on actual demand, not your past decisions.