External properties

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 are managed per instance. If you create an external property, it will be available for all spaces of your instance.

Instance Administrators and RY Champions can create and delete external properties in the Champion Center.

  • Please note that we create “Default” external properties for you (estimate, estimate (max), status and comment)

  • Regular users with page edit permissions can still add or modify external properties values 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.

Requirement Yogi - Champion Center External Properties.png

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

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

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.