Skip to main content
Version: v0.17

Requirement Count

What is this metric?

The number of delivered requirements or features.

Why is it important?

  1. Based on historical data, establish a baseline of the delivery capacity of a single iteration to improve the organization and planning of R&D resources.
  2. Evaluate whether the delivery capacity matches the business phase and demand scale. Identify key bottlenecks and reasonably allocate resources.

Which dashboard(s) does it exist in

How is it calculated?

This metric is calculated by counting the number of delivered issues in type "REQUIREMENT" in the given data range.

Data Sources Required

This metric relies on the issues collected from Jira, GitHub, or TAPD.

Data Transformation Required

This metric relies on the 'type-requirement' configuration in Jira, GitHub or TAPD's transformation rules while adding/editing a blueprint. This configuration tells DevLake what issues are requirements.

SQL Queries

The following SQL shows how to find the total count of requirements in specific boards, eg. 'board-1' and 'board-2'.

select 
count(*) as "Requirement Count"
from issues i
join board_issues bi on i.id = bi.issue_id
where
i.type = 'REQUIREMENT'
and i.status = 'DONE'
-- please replace the board ids with your own, or create a '$board_id' variable in Grafana
and bi.board_id in ('board-1','board-2')
and $__timeFilter(i.created_date)

If you want to see the monthly trend of requirement count in the screenshot below, please run the following SQL

SELECT
DATE_ADD(date(i.created_date), INTERVAL -DAYOFMONTH(date(i.created_date))+1 DAY) as time,
count(distinct case when status != 'DONE' then i.id else null end) as "Number of Open Requirements",
count(distinct case when status = 'DONE' then i.id else null end) as "Number of Delivered Requirements"
FROM issues i
join board_issues bi on i.id = bi.issue_id
join boards b on bi.board_id = b.id
where
i.type = 'REQUIREMENT'
and $__timeFilter(i.created_date)
-- please replace the board ids with your own, or create a '$board_id' variable in Grafana
and bi.board_id in ($board_id)
group by 1

How to improve?

  1. Analyze the number of requirements and delivery rate of different time cycles to find the stability and trend of the development process.
  2. Analyze and compare the number of requirements delivered and delivery rate of each project/team, and compare the scale of requirements of different projects.
  3. Based on historical data, establish a baseline of the delivery capacity of a single iteration (optimistic, probable and pessimistic values) to provide a reference for iteration estimation.
  4. Drill down to analyze the number and percentage of requirements in different phases of SDLC. Analyze rationality and identify the requirements stuck in the backlog.