April 13th, 2020 by Adam Sandman
Several of our users have mentioned that in Spira we have different options for duplicating items, including Copy, Clone and for some artifacts Split. In this article we shed some light on the different options and how you can use them.
Background
In older versions of Spira we used to use the labels Copy and Clone somewhat interchangeably, but since v5.0 we have made sure to be consistent in how they work and behave so that users can have confidence how they will work regardless of the page they are on, or the artifact they are working with. We also introduced the concept of the Split operation specifically for tasks and requirements where you have work that is too large for a single requirement or task, and you want to complete one part and separate out the remaining work.
In the next sections, we'll discuss how each of these work in turn.... first up attack of the clones....
Clone
The clone command is the simplest option we have in Spira for making a copy of something. When you click the Clone button on the toolbar (on both the list or detailed pages) it will make an immediate copy of the selected item. If you are working with a hierarchical artifact such as a requirement, you usually only get the Clone button on the details page:
Clicking the Clone button will make an immediate copy of the current item (with the name suffixed by "- Copy") right next to the current item. Usually it will be in the same requirement branch/sub-tree, located just above the current item.
If you are working with an artifact that uses folders (e.g. test cases) rather than being hierarchical, it works the same way - the Clone button will be only on the details page:
When you click the Clone button, the system will make an immediate copy, apply the suffix "- Copy" to the copied item, and put the copy in the same folder as the original item:
Since the copied item has the same name as the orginal, with a suffix added, it will be typically appear right after the original assuming that you are sorting by name ascending.If you are sorting by another field, then it will appear wherever the new name would naturally appear according to the current sort.
Note: If you clone a folder or clone a parent requirement (that contains children), we only add the "- Copy" suffix to the top-level item. We found that this is much better, as otherwise you might have to rename hundreds of items in the current folder.
Copy...Paste
That's great, but what happens if you are on the list page of an artifact that is either hierarchical (requirements, releases) or has folders (test cases, test sets, tasks, and documents)? Well you often want to make a copy and put it in a specific folder or locate the copy under a specific existing item. That's where the Copy...Paste option comes in.
When you select items in the list page and choose Copy, nothing much actually happens. If you were expected a copy to be made, you would be disappointed!
What actually happens is that Spira simply stores your current selection on the internal clipboard. The magic happens next...
Now what you can do, is locate the place where you want the copied items to appear and click Paste:
For items that are hierarchical, the copied items will appear inside the selected branch, just before the selected item. I.e. in this example, the copied items will appear in between "Edition Management" and "Ability to create different editions". For items that are folder based, they will be pasted into the current folder. Now that leads to another question...
What about Items that Are Neither Hierarchical or Folder-based?
Well for those artifacts that are neither hierarchical, nor have folders (incidents and test runs we're looking at you!), there is no place you can actually paste the items, so in fact there is no Copy and Paste option, just the simple Clone option that we would see on the details pages:
So that makes sense...
Split
Now we need to discuss the new kid on the block.... Split ... this is a more specialized type of copy. It is usually used when you have:
- A requirement or task that you started work on in one release or sprint and you now realize that you need to move part of the work to another one
- A requirement or task that you started work on, and now you want to give some of the work to someone else to instead
In this case, you want to copy the item, but automatically apportion some of the effort (story points for requirements, hours for tasks) to the new item, and leave some of the effort associated with the existing one.
To do this, simply click on the item in question (in our example we are considering a requirement) and click on the Split option in the Tools menu:
This will bring up the dialog box that lets you decide how you want to split the work:
- You normally want to give the copy a slightly different name, for example named to describe the part of the work being split off from the original.
- You can either leave the split off work assigned to the same person as the original (e.g. I will be doing this work in the next sprint) or to someone else (e.g. I'm asking Bill to take over some of my current task)
- You decide how much of the current work to offload to the new requirement/task. In this example, I am splitting off 0.5 a story point from the original 2.0 points.
- You can add a comment to the split. This will be added to the association created between the two split items.
Once you confirm the split, the system will make a copy of the original item, with the new name:
The Owner (assignee) will be the same or different, depending on which option you chose, the item will appear right below the original in the list, and the estimate of the new item and old item will be apportioned based on how much effort you allocated to the new item. The total of the new and old items will match the total estimate of the original.
Finally, the system will add an association link between the original and split off item so that you won't forget about why you did the split in the future:
So now you know about copying, cloning and splitting....let us know if there are other parts of the system that we could write an article on....