Project Settings operators

In scope of configuration of Task Tracking systems included a set of criteria that determine how PERF interpret data (e.g. which items are defects, what status is meaning the item is in development and etc.).

Project Settings operators allow developing Custom Metric based on these setting and keep metrics up-to-date in case of updating data source configuration.

Project Setting

Description

Place for criterias configuration

Project Setting

Description

Place for criterias configuration

is_to_do(id)

To filter data based on items with statuses meaning they are not ready for development.

Project Settings → Task Tracking System → Workflows → To Do status bucket (Jira, Rally, Azure Boards).

is_in_progress(id)

To get items with statuses meaning the item is in development.

Project Settings → Task Tracking System → Workflows → In Progress status bucket (Jira, Rally, Azure Boards).

is_done(id)

The operator filters statuses meaning the item satisfies the "Definition of Done" criterion in a project.

Project Settings → Task Tracking System → Workflows → Done status bucket (Jira, Rally, Azure Boards).

is_feature(id)

To get items which are considered as features in the project.

Project Settings → Task Tracking System → Scope Management → Definition of Work Buckets → Features (Jira, Rally, Azure Boards).

is_defect(id)

To extract those records that fulfill a specified criterion for defects tracking.

Project Settings → Task Tracking System → Scope Management → Definition of Work Buckets → Defects (Jira, Rally, Azure Boards).

is_debt(id)

To get items which are a debt in the project.

Project Settings → Task Tracking System → Scope Management → Definition of Work Buckets → Debts (Jira, Rally, Azure Boards).

depth_for_avg_velocity_sprint()

To define a time period to calculate average velocity for Sprints.

Project Settings → Task Tracking System → Scope Management → Calculation Depth for Average Team Velocity Estimation

depth_for_avg_velocity_week()

To define a time period to calculate average velocity for weeks.

Project Settings → Task Tracking System → Scope Management → Calculation Depth for Average Team Velocity Estimation

hours_estimation_required(id)

To define issue types which should be estimated in hours.

Project Settings → Task Tracking System → Scope Management → Issue Types Expected To Be Estimated in Person Hours

depth_for_avg_velocity_month()

To define a time period to calculate average velocity for months.

Project Settings → Task Tracking System → Scope Management → Calculation Depth for Average Team Velocity Estimation

sprint_starting_grace_period()

A time period needed to define a sprint scope after the sprint start.

Project Settings → Task Tracking System → Scope Management → Sprint Planning Grace Period

is_ready(id)

To select issue types and attributes specifying the item is ready for development.

Project Settings → Task Tracking System → Scope Management → Definition of Ready

is_escaped_defect(id)

To select defects found by end-user or Customer.

Project Settings → Task Tracking System → Scope Management → Definition of Work Buckets → Defects and Task Tracking System → Quality Management → Criteria for Escaped Defects

story_points_estimation_required(id)

To define issue types which should be estimated in Story Points.

Project Settings → Task Tracking System → Scope Management → Issue Types Expected To Be Estimated in Story Points

is_invalid_defect(id)

To select issues which are considered as invalid defects (i.e. defects which cannot be reproduced, duplicated ones, or those rejected due to any reason).

Project Settings → Task Tracking System → Scope Management → Definition of Work Buckets → Defects and Task Tracking System → Quality Management → Criteria for Invalid Defects

is_top_priority_defect(id)

To select issues which are considered as top-priority defects.

Project Settings → Task Tracking System → Scope Management → Definition of Work Buckets → Defects and Task Tracking System → Quality Management → Top-Priority Defects

sprint_closing_grace_period()

A time period needed to include closed tickets into the sprint after the sprint end date.

Project Settings → Task Tracking System → Scope Management → Sprint Closing Grace Period

Examples:

Case 1: We would like to know how many bugs submitted by each person in the project.

According to project configuration, defects are issues with types: bug and sub-bug.

There is 2 options of PerfQL:

select key, reported_by from Ticket where type='Bug' or type='Sub-bug'

OR

select key, reported_by from Ticket where is_defect(id)

But for the second query, if any issue’s type will be removed from the project configuration or a new crteria will be added, then custom metric is recolculated according to a new condition automatically, no any PerfQL changes are required.

Case 2: We would like to know how many issues, created by a specific person, are in progress after April 2022.

Usually, a lot of statuses are considered as in progress. A project setting operator is_in_progress(Ticket) could be used instead of to list all of them.

So PerfQL will be:

select key, created from Ticket where is_in_progress(id) and reported_by='ivan_ivanov@epam.com' and created>'2022-05-1'