Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Description

  1. This metric is based on Task Tracking System's (Jira, Azure Boards, or Rally) data.

  2. A developer is a user who transitions a ticket to a particular state (Code Review status in this example).

  3. Metric takes all stories moved to Code Review within the last 13 weeks (1 quarter) and counts how many defects were linked to that story (any types of ingoing and outgoing links).

  4. Defect density = sum of story points in stories / number of defects linked to them.

Configuration

  • Only stories are taken by default (type='Story') - you can adjust/add more issue types if needed.

  • Defect types also can be adjusted - type='Bug' by default.

  • Time interval also can be updated (interval '13 week' by default).

  • The status for identifying a developer can be changed from Code Review to more appropriate in your case (status='Code Review').

  • Link type (link_type) between stories & defects can be set specifically.

Code

with links as
(
  select key, count(bug) as count from
  (
  select a.key, b.key as bug from (
  select key, jsonb_array_elements(outgoing_workitem_links) ->> 'name' AS link_type,
jsonb_array_elements(outgoing_workitem_links) ->> 'issueKey' AS link
from Ticket) AS a
join ticket b on a.link=b.key
 where a.type='Story' and b.type='Bug'
union
    select a.key, b.key as bug from (
  select key, jsonb_array_elements(ingoing_workitem_links) ->> 'name' AS link_type,
jsonb_array_elements(ingoing_workitem_links) ->> 'issueKey' AS link
from Ticket) AS a
join ticket b on a.link=b.key
 where a.type='Story' and b.type='Bug'
 ) as temp
  group by key
),
 
temp as
(
select distinct a.key, a.summary, a.story_points, b.author, c.count
from Ticket a
join tickethistory b on a.id=b.workitem_id
left join links c on a.key=c.key
where b.field=0 and b.status='Code Review' and b.start>=now()-interval '13 week' and a.type in ('Story')
order by a.key desc
)
 
select   author,
         coalesce(sum(count)/sum(story_points),0) as "Defect Density"
from temp
group by author
order by coalesce(sum(count)/sum(story_points),0) asc

Drill-down

Drill-down query to show details for a clicked developer:

select key, summary, story_points, count as "# of defects per story"
from
(select key, summary, story_points, count, author from temp) as x
where author=clicked_x_value
order by count asc

Copyright © 2024 EPAM Systems, Inc.

All Rights Reserved. All information contained herein is, and remains the property of EPAM Systems, Inc. and/or its suppliers and is protected by international intellectual property law. Dissemination of this information or reproduction of this material is strictly forbidden, unless prior written permission is obtained from EPAM Systems, Inc.

  • No labels