The Race to the Bottom We Won't Run

There's a race in this industry to be the cheapest. After a few years of watching how it ends, we've decided not to run it.

May 14, 2019 · Jonathan · Company & Industry

A note on this archive: an earlier version of this site was lost in a migration, with no surviving backup. This piece is a good-faith recreation of our writing from this period, not a recovered original; its date reflects the period it represents. See about this archive.

There's a race in our industry to be the cheapest, and for a long time I felt the pull of it. When a prospect's first question is "what's your rate?", the easy move is to find some way to answer "lower than the other guy." After a few years of watching how that race ends — for the client, for the developer, for everyone — we decided not to run it.

I want to explain why, because it's a choice, and I'd rather be honest about it than pretend we're just the bargain that happens to also be the best.

How the race actually works

The cheapest-rate model has a logic, and the logic is grim. To win on price, you squeeze the one cost you can: the developer's pay. So you pay as little as the market will bear, you keep people only as long as they'll tolerate it, and you treat them as interchangeable — because in that model, they are.

Then the predictable thing happens. Good people leave, because good people have options. The ones who stay are too often the ones who couldn't go elsewhere. Quality slides. And the client who thought they were saving money spends it instead on turnover — on re-explaining the project to the third new face in a year, on fixing what got rushed. Cheap, it turns out, is expensive. You just pay for it later, in a different column.

What we do instead

We pay our developers well, and we treat them like people whose names we actually know — because we do know them. That isn't charity; it's the most practical decision we make. A developer who is paid fairly and treated decently does better work and stays to keep doing it. The client gets the same person in month nine that they met in month one, who now knows their codebase cold. There's no substitute for that, and no discount that makes up for losing it.

I wrote a while back that the difference between wishing and doing is discipline. This is the business version of that. It's disciplined, and sometimes uncomfortable, to hold your price when someone across the street is quoting less. But the alternative is to start down a road whose destination we've already watched other shops reach.

The honest tradeoff

So I'll say the thing most companies dance around: we are not the cheapest option, and we are at peace with that.

If the lowest number on the page is what matters most to you, we're probably not your shop — and there are no hard feelings in a mismatch. But if what you actually want is more for your money in the sense that lasts — work that holds up, a developer who's still there next year, a team you aren't rebuilding every few months — then we should talk.

We'd rather lose the people shopping purely on price than win the race that gets you there. Some races aren't worth the prize waiting at the finish line.