We distribute our application and code changes to multiple customers with various topologies via standard . NTF templates.
For scheduled agents in particular the behavior of Design Refresh creates a challenge since server names, enabled/disabled ,frequency and schedule properties vary per site. Current behavior of Design Refresh is an "All or Nothing" proposition. Under default settings each night, when designer runs, the agent is aligned completely with the Template definition which will reset schedules and other runtime settings (in addition to the code changes).
The other option is to set the Design Property "Prohibit design refresh or replace to modify". Since this option shuts off all updates, it become impossible to transmit code changes to a customer without manual intervention at each site.
While in practice, to minimize the impact of this situation, we attempt to keep the agent design as simple as possible , typically a single simple call into a script library ... it is inevitable a change will be needed at some point in time. Distribution of even a small code change to a schedule agent creates a lot of manual intervention at customer sites that should be unnecessary.
We either need designer task behavior to change when dealing with Agents or add a design property option to disable design refresh of Only the agent's runtime properties (server, schedule, enable/disabled). This would allow updates to the underlying program code as needed as part of the automated Designer task