The first ERP we ever built was for a logistics company in Eskişehir. We spent eight weeks designing what we thought was a clean, modern interface. We shipped it, watched the first day of use, and the warehouse manager pointed at a column and said: "This is wrong. This is not 'Outbound Shipments'. This is sevkiyat."
He said it the way you say a name wrong in front of someone's parent. We changed the column header. The next week, he stopped using the spreadsheet.
The hypothesis
Every functional ERP we've shipped since has carried the same hypothesis: the words on the screen are the product. Not a layer on top. Not a polish pass. The product.
When the foreman calls a stage boyama, the schema column is boyama, the UI label is "Boyama", the role-permission key is can_advance_boyama, and the analytics event is stage:boyama:advance. If you swap any of those for a friendlier-sounding English translation, you've already lost two things:
-
The shop floor's trust — because the screen now speaks a dialect they have to translate back.
-
The engineering team's clarity — because the support ticket says "boyama is broken" and your code says "painting".
"You don't translate the business. You build the software in the business's language. The translation cost is paid by every user, every day, forever. Pay it once, in the schema."
The objection (and the answer)
The most common pushback we get is: "but what if we go international?"
The answer is that internationalization is a presentation layer concern, not a schema concern. boyama stays in the database. The label flips to "Painting" or "Lackieren" through your normal i18n pipeline. The advantage is that the source of truth is the operator's word — every translation is a downstream artifact.
What this looks like in practice
Three small habits that fall out of taking this seriously:
-
Schema reviews include a domain expert. Not a translator. Not the customer success person. The actual foreman who'll click the button.
-
Column headers are sacred. No one renames a column to fit a layout. The layout fits the column.
-
The first deploy is in the operator's locale. Even if your team is foreign. Even if you can't read it. Especially then.
What it costs to ignore
We've inherited two refactor projects in the last year where the previous team had built a beautifully clean abstraction over the customer's actual workflow. Both had failed the same way: the team kept using the spreadsheet. The ERP was visited once a week, by the owner, who needed a number for a meeting.
The fix wasn't more features. The fix was renaming twenty columns.
Coda
If you take one thing from this essay, take this: the cheapest, fastest, most under-rated act of design in any ERP is asking the team what they call the thing. Then writing that down. Then never changing it.