Writing specifications can include making cost estimations or approving test results. Adding data about requirements on the original page can make the page really heavy and hard to read. Constantly editing those data can also disrupt the viewers. That's why we have created external properties.
Requirement Yogi allows you to add, edit and track requirement data without disturbing the viewers or the author of the original page. External properties are not visible on the original page but you can see them in the traceability matrix or when you click on the requirement popup. External properties are also exportable to Excel with the traceability matrix.
External Properties have types:
Text
Decimal (eg: 54.4)
Integer (eg: 5)
Boolean: True/False
Dropdown (You create a list of allowed values)
Decimal and Integer types allow the creation of aggregations in the traceability matrix: sum, min, max, count, and average.
Examples of use cases:
Estimate the total man hours of a parent requirement.
Create an integer or decimal external property in your space (eg: "Man hours", or "Story points")
Use the traceability matrix to estimate the time investment for each requirement (Filter your traceabilty matrix with the search query: "to = '<ParentRequirementKey>' " to estimate cost of a parent requirement)
Use the edit toggle to quickly assign a cost to each requirement
Use the SUM aggregator to calculate the total time cost.
Track the approval state of a requirement
Create a dropdown external property (eg: "Approval State")
Create the values relevant to your process
Use the COUNT aggregator to count the requirements: COUNT(ext@<PropertyName>, criteria). (Eg: COUNT(ext@Approval\ State, ext@Approval\ State = 'Ready for review") )
Managing External Properties
The external properties administration can be found in the Requirement Yogi configuration panel for space admins.
The creation of a new external property is restricted to Confluence admins.
Regular users with page edit permissions can still add or modify external properties on requirements, but cannot create a new type of external property.
Users without page edit permissions can see the external properties on requirements, but cannot modify them.
Adding external properties to a requirement
In the traceability matrix
If you can edit Confluence pages and you add an external property to the traceabilty matrix
You will be able to see the "Edit Values" toggle.
Clicking on the toggle allows you to quickly modify external properties on multiple requirements.
Entering the wrong type of value for an external property will still save the value, but it won't be taken in account when doing aggregations.
In the requirement details page
The external properties are displayed, and you can add a property by clicking the add button, or modify properties on a requirement by clicking on the value field.
The available external properties may not all be displayed, but you can simply search them by name.
Overview of the Requirement Details page | Modifying an external property | Adding an external property |
---|---|---|
Using aggregations
For "String" and "Boolean" external properties
Only the COUNT is available. It counts the number of external properties with a value.
For "Decimal" and "Integer" external properties
More operators are available: SUM, AVG, MIN and MAX. The properties with no values or invalid values are not taken in account in the calculation.
You will need to manually refresh the aggregator to redo the calculation if you update the values of the external properties.
Changing the operator
Click on the cog in the aggregator cell to change the calculation type.
You can also hide the totals if the default aggregation is not relevant. Spaces in property names must be escaped with a \ character (Eg: ext@Approval\ State)
Calculation examples:
Property type | Query | Result |
---|---|---|
Integer or Decimal | COUNT(ext@Cost) | Counts the requirements with a Cost external property |
COUNT(ext@Cost > 2) or COUNT(ext@Cost, ext@Cost > 2) | Counts the requirements with a Cost external property greater than 2 | |
AVG(ext@Cost, ext@Cost > 2 AND jira = 'JIR-1') | Counts the requirements with a Cost external property greater than 2 associated to the Jira ticket 'JIR-1' | |
SUM(ext@Cost > 2) | Calculates the sum of Cost external properties | |
MIN(ext@Cost) | Calculates the minimal Cost of requirements with a Cost external property. | |
MAX(ext@Cost, to = 'REQ-001') | Calculates the maximal Cost of requirements with a Cost external property that are children dependencies of 'REQ-001' | |
String | COUNT(ext@Approval\ State, ext@Cost is not null) | Counts the requirements with an "Approval State" external property, and a Cost external property |
SUM, AVG, Min, and MAX not available | ||
Boolean | COUNT(ext@Test\ Result) | Counts the requirements where the external property "Test Result" is true |
Search requirements with specific external properties
You can execute search queries on external properties. See our Search Syntax for more details.
In the requirements details, you can also search for requirements with the same values by clicking the "link" icon, and the search query will be constructed for you.
Note on variants & modification matrix
If you don’t know how variants work, check out this page first: Variants
We do not manage differences on external properties between variants:
When you create an external property on a requirement, then duplicate the page and assign it to another variant, we will not copy the external properties as well. (Example: Your REQ-001 in Variant (current) has an estimate with the value 5. If you copy this requirement in Variant (v2), its external property will not be copied.) In the modification matrix, if you compare the external properties between variants, you’ll see that they have disappeared as well. If you want to see modifications on external properties, you first need to make sure you manually copy each one of them to every variant.