New versions often mean work: tests, adjustments and training. Sometimes the update eats up the time the new features are meant to save.
We plan two releases a year, more when needed. Before you update, you can read what a release changes.
This is made possible by a structure in three layers: Core, Extension and Custom. Your customisations live in Extension and Custom, separate from the core. That way, they are preserved with every update. Many customisations are created as low-code packages. You define the data model, roles, interface and rules through configuration. What you have built keeps working after the release.
Your team sees what is coming and plans tests and training accordingly. That turns an update into a plannable step, not a risk.