1. How to manage algebraic relationship rules?

An item of type C must be derived either from an item of type A or form an item of type B. Most of the times, a C-item will have only one upstream item, either of type A or B.

If we enforce coverage on A -> C then all C items having just one B-type parent will be incorrectly flagged orphan.If we enforce coverage on B -> C then all C items having just one A-type parent will be incorrectly flagged orphan.

However, if we enforce neither A -> C nor B -> C, then any C item which is actually, and really orphan, will never be flagged as such.

The ideal behaviour would be that we enforce coverage on at least either one upstream A item or one upstream B item, or both, but not zero. This way A -> C and B -> C will be happy, but {void} -> C will be correctly flagged as orphan.

I haven't found the way to deal with this in Jama. Is there such a possibility?

Kind Regards,

Jivan

-- NORMAL --

2. RE: How to manage algebraic relationship rules?

This is not directly supported in Jama, but we typically create a filter and associated dashboard widget to keep track of this type of situation. We typically are going in the other direction, but the principle is the same: Items of Type A must have a downstream relationship to items of Type B or items of Type C.

An item of type C must be derived either from an item of type A or form an item of type B. Most of the times, a C-item will have only one upstream item, either of type A or B.

If we enforce coverage on A -> C then all C items having just one B-type parent will be incorrectly flagged orphan.If we enforce coverage on B -> C then all C items having just one A-type parent will be incorrectly flagged orphan.

However, if we enforce neither A -> C nor B -> C, then any C item which is actually, and really orphan, will never be flagged as such.

The ideal behaviour would be that we enforce coverage on at least either one upstream A item or one upstream B item, or both, but not zero. This way A -> C and B -> C will be happy, but {void} -> C will be correctly flagged as orphan.

I haven't found the way to deal with this in Jama. Is there such a possibility?

This is not directly supported in Jama, but we typically create a filter and associated dashboard widget to keep track of this type of situation. We typically are going in the other direction, but the principle is the same: Items of Type A must have a downstream relationship to items of Type B or items of Type C.

An item of type C must be derived either from an item of type A or form an item of type B. Most of the times, a C-item will have only one upstream item, either of type A or B.

If we enforce coverage on A -> C then all C items having just one B-type parent will be incorrectly flagged orphan.If we enforce coverage on B -> C then all C items having just one A-type parent will be incorrectly flagged orphan.

However, if we enforce neither A -> C nor B -> C, then any C item which is actually, and really orphan, will never be flagged as such.

The ideal behaviour would be that we enforce coverage on at least either one upstream A item or one upstream B item, or both, but not zero. This way A -> C and B -> C will be happy, but {void} -> C will be correctly flagged as orphan.

I haven't found the way to deal with this in Jama. Is there such a possibility?

Kind Regards,

Jivan

-- NORMAL --

4. RE: How to manage algebraic relationship rules?

I would invite you to look at this thread where I outlined this process with another Community member. There are a couple of little tweaks you will have to configure with your Relationship Diagram and such to make this workaround work. Let me know if you have any questions.

For your other question, I have not seen that this is something on our roadmap. From what I understand, this has been a common question and this workaround has been used frequently amongst our users.

This is not directly supported in Jama, but we typically create a filter and associated dashboard widget to keep track of this type of situation. We typically are going in the other direction, but the principle is the same: Items of Type A must have a downstream relationship to items of Type B or items of Type C.

An item of type C must be derived either from an item of type A or form an item of type B. Most of the times, a C-item will have only one upstream item, either of type A or B.

If we enforce coverage on A -> C then all C items having just one B-type parent will be incorrectly flagged orphan.If we enforce coverage on B -> C then all C items having just one A-type parent will be incorrectly flagged orphan.

However, if we enforce neither A -> C nor B -> C, then any C item which is actually, and really orphan, will never be flagged as such.

The ideal behaviour would be that we enforce coverage on at least either one upstream A item or one upstream B item, or both, but not zero. This way A -> C and B -> C will be happy, but {void} -> C will be correctly flagged as orphan.

I haven't found the way to deal with this in Jama. Is there such a possibility?

Kind Regards,

Jivan

-- NORMAL --

5. RE: How to manage algebraic relationship rules?

Technically, yes it works. Is it ideal? Well, not really, because the whole point of having enforceable rules is that they integrate seamlessly into Jama's workflow. What about is a colleague of yours opens the project with his account and doesn't have the filter, for instance? You'll tell me, maybe you can make this filter project-wide, but then again...

If Jama offers the possibility for relationships to be strongly typed, then it has to be done all the way down, otherwise if such a breach is left then in a complex system the whole thing falls apart. For instance, what if someone who's new into the project wants to look at the relationship rules diagram to get a mental picture of how the system work? The chart diagram has just become completely useless, if not misleading.

Overall it seems to be quite a cumbersome workaround to a use case that a lot of people seem to be encountering. I'm a bit surprised that, since the original thread you pointed to dates from Feb 2018, this aspect is still not properly covered.

I would invite you to look at this thread where I outlined this process with another Community member. There are a couple of little tweaks you will have to configure with your Relationship Diagram and such to make this workaround work. Let me know if you have any questions.

For your other question, I have not seen that this is something on our roadmap. From what I understand, this has been a common question and this workaround has been used frequently amongst our users.

This is not directly supported in Jama, but we typically create a filter and associated dashboard widget to keep track of this type of situation. We typically are going in the other direction, but the principle is the same: Items of Type A must have a downstream relationship to items of Type B or items of Type C.

An item of type C must be derived either from an item of type A or form an item of type B. Most of the times, a C-item will have only one upstream item, either of type A or B.

If we enforce coverage on A -> C then all C items having just one B-type parent will be incorrectly flagged orphan.If we enforce coverage on B -> C then all C items having just one A-type parent will be incorrectly flagged orphan.

However, if we enforce neither A -> C nor B -> C, then any C item which is actually, and really orphan, will never be flagged as such.

The ideal behaviour would be that we enforce coverage on at least either one upstream A item or one upstream B item, or both, but not zero. This way A -> C and B -> C will be happy, but {void} -> C will be correctly flagged as orphan.

I haven't found the way to deal with this in Jama. Is there such a possibility?

Kind Regards,

Jivan

-- NORMAL --

6. RE: How to manage algebraic relationship rules?

Thank you for your comments, yes, you will want to make this project wide for the reasons you have outlined. So, that is why there is the extra step of taking that Advanced Filter and applying it to the project Dashboard for all to see! You will see this outlined in the thread I linked you to earlier.

Technically, yes it works. Is it ideal? Well, not really, because the whole point of having enforceable rules is that they integrate seamlessly into Jama's workflow. What about is a colleague of yours opens the project with his account and doesn't have the filter, for instance? You'll tell me, maybe you can make this filter project-wide, but then again...

If Jama offers the possibility for relationships to be strongly typed, then it has to be done all the way down, otherwise if such a breach is left then in a complex system the whole thing falls apart. For instance, what if someone who's new into the project wants to look at the relationship rules diagram to get a mental picture of how the system work? The chart diagram has just become completely useless, if not misleading.

Overall it seems to be quite a cumbersome workaround to a use case that a lot of people seem to be encountering. I'm a bit surprised that, since the original thread you pointed to dates from Feb 2018, this aspect is still not properly covered.

I would invite you to look at this thread where I outlined this process with another Community member. There are a couple of little tweaks you will have to configure with your Relationship Diagram and such to make this workaround work. Let me know if you have any questions.

For your other question, I have not seen that this is something on our roadmap. From what I understand, this has been a common question and this workaround has been used frequently amongst our users.

This is not directly supported in Jama, but we typically create a filter and associated dashboard widget to keep track of this type of situation. We typically are going in the other direction, but the principle is the same: Items of Type A must have a downstream relationship to items of Type B or items of Type C.

An item of type C must be derived either from an item of type A or form an item of type B. Most of the times, a C-item will have only one upstream item, either of type A or B.

If we enforce coverage on A -> C then all C items having just one B-type parent will be incorrectly flagged orphan.If we enforce coverage on B -> C then all C items having just one A-type parent will be incorrectly flagged orphan.

However, if we enforce neither A -> C nor B -> C, then any C item which is actually, and really orphan, will never be flagged as such.

The ideal behaviour would be that we enforce coverage on at least either one upstream A item or one upstream B item, or both, but not zero. This way A -> C and B -> C will be happy, but {void} -> C will be correctly flagged as orphan.

I haven't found the way to deal with this in Jama. Is there such a possibility?

An item of type C must be derived either from an item of type A or form an item of type B. Most of the times, a C-item will have only one upstream item, either of type A or B.

If we enforce coverage on A -> C then all C items having just one B-type parent will be incorrectly flagged orphan.If we enforce coverage on B -> C then all C items having just one A-type parent will be incorrectly flagged orphan.

However, if we enforce neither A -> C nor B -> C, then any C item which is actually, and really orphan, will never be flagged as such.

The ideal behaviour would be that we enforce coverage on at least either one upstream A item or one upstream B item, or both, but not zero. This way A -> C and B -> C will be happy, but {void} -> C will be correctly flagged as orphan.

I haven't found the way to deal with this in Jama. Is there such a possibility?

An item of type C must be derived either from an item of type A or form an item of type B. Most of the times, a C-item will have only one upstream item, either of type A or B.

If we enforce coverage on A -> C then all C items having just one B-type parent will be incorrectly flagged orphan.If we enforce coverage on B -> C then all C items having just one A-type parent will be incorrectly flagged orphan.

However, if we enforce neither A -> C nor B -> C, then any C item which is actually, and really orphan, will never be flagged as such.

The ideal behaviour would be that we enforce coverage on at least either one upstream A item or one upstream B item, or both, but not zero. This way A -> C and B -> C will be happy, but {void} -> C will be correctly flagged as orphan.

I haven't found the way to deal with this in Jama. Is there such a possibility?

An item of type C must be derived either from an item of type A or form an item of type B. Most of the times, a C-item will have only one upstream item, either of type A or B.

If we enforce coverage on A -> C then all C items having just one B-type parent will be incorrectly flagged orphan.If we enforce coverage on B -> C then all C items having just one A-type parent will be incorrectly flagged orphan.

However, if we enforce neither A -> C nor B -> C, then any C item which is actually, and really orphan, will never be flagged as such.

The ideal behaviour would be that we enforce coverage on at least either one upstream A item or one upstream B item, or both, but not zero. This way A -> C and B -> C will be happy, but {void} -> C will be correctly flagged as orphan.

I haven't found the way to deal with this in Jama. Is there such a possibility?