Regarding the question: "Is it advisable to use native language in the code, e.g. for class names": It feels strange at first, but it is advisable unless you manage to change the commonly spoken language, which is rather unlikely to happen. The whole Ubiquituous Language idea comes down to not being forced to "translate" between the language (or mental model) actively used by domain experts and the language used by development team. And there are rare cases of unambiguous translation alternatives. Once you translate the actively used language to English, you will encounter wrong translations, different terms for the same thing, and confusion in discussions. I would therefore recommend using the native language. Give it at least a try.