Hi!
This depends a lot on the size of the company, and or the complexity of their customizations.
We’re probably in the middle of the pack as far as size and complexity goes, but I have a local Acumatica install that has the same version, data, and customization as our production instance where I do all development on. Then once everything it working and tested there, I export the package and manually publish it to the production instance.
After publishing I test a few key screens just to make sure there were no major regressions, but that’s hardly necessary because I don’t know if I’ve ever really found anything since the dev site is pretty much a clone of production.
I know larger companies will have anything up to full automated pipelines to push to production, rather than uploading and publishing manually.
to your question of whether to publish directly to production, the answer is yes. Different tenants on the same instance share the same database schema and backend code, so you generally shouldn’t publish to a test tenant if you’re not ready to also publish to production.
Whether you have developed your own customization, or are using some developed by a third party, it is always advisable to publish those to a non-production clone of your production instance for testing to make sure nothing breaks.