We love templates, they’re a huge time saver, and we use them heavily, especially for our customer on-boarding and initial project setup.
Our main pain is to keep them in sync with the template itself when changes arise. There is no easy way to achieve that.
For instance, in a template which is a workflow about how to setup a project, containing the different steps of our internal tasks (config, tests, etc.) and customer-care related tasks, we often update the template as we learn how to do things better and get customer feedbacks.
So, we usually update the template directly (not the project) and change our workflow, move tasks around, change assignments, add new tasks, etc.
But then, we have no way of applying those changes to projects created from this template.
Also, doing it manually is a real pain, because we can’t copy/paste tasks in bulk (description nor subtasks are copied, only the tasks name).
Also, copying the description doesn’t work if there are links, because the links will not be related to the project, but to the template. (it’s one of the magical things when creating a project from a template, all links in tasks descriptions are updated to be relative to the project instead of the template)
Not everybody may want to sync templates and projects created from those templates. But it can be very handy/necessary for other people. Currently, there is no good way of doing it. I can see how complicated it can be and I don’t have a works-for-all solution.
Here are a few ideas I’ve got that aim at helping templates managers:
Manual sync between a template task and tasks issued from it
This feature would help template managers to apply changes from a template to all the projects that have been created from it.
When creating new tasks, or update existing ones, it’d make it much easier to apply those changes in bulk into existing projects.
In the template, in the “task’s view”, proposing a new action to “sync” that task with all projects issued from the template, which would allow to:
- check/uncheck projects where to apply that change (basically decide for which project to sync that task).
- check/uncheck the information to sync, such as: Task name, description, assignee, due date (sub-tasks too ? could be complicated to handle, unsure, alternative solution would be to do it repeatedly for each sub-task)
Keeping in sync pristine copies
I believe we could also have a concept of “pristine” copies. Similarly to what developers use with forms in order to know whether the form/input has been “touched” by the user.
Here, let’s say I create a project from template, by default the copy (and all its tasks) would be “pristine”, because I haven’t touched any of those yet. Meaning, it’s a perfect untouched template copy, and could be kept in sync with the template itself automatically because it wouldn’t override any information, since it’s still pristine.
The same concept applies at the task level.
This could be very useful, because when creating a copy we don’t necessarily touch at all the tasks right then, many of them are still untouched, which makes it very easy to keep those tasks in sync because we wouldn’t lose any information by doing so.
Keeping pristine tasks in sync automatically (or manually, like syncing a whole project for all pristine tasks) could be a huge gain of time.
I’m basically “thinking out loud” here, I believe the “pristine” concept fits very well with the current design, and could be a strong base to perform bulk actions or automated actions that are a huge time saver. I wonder what the community thinks about that, and what other features could be useful to help keeping in sync templates, when needed.