You can’t really write upgrade-safe modifications for zammad. The update-cycle is too high and there are also heavy changes incoming in the future, like a complete re-write of the desktop app in Vue.js, typescript + GraphQL which you can already see in the mobile view.
I wrote some short infos about monkey patching here: Monkey Patching of Tutorials