Jira api import data
Remaining или Burned time:
- хочется видеть график по каждому человеку о том, как он сжигает бизнес-время (строится только по факту закрытия задач)
- данный график может быть построен на списании времени, но списание не отражает сожженное бизнес-время (поэтому только по факту закрытия задачи)
- сожженное время можно было бы рассчитывать так "Текущее значение Remaining" - "Новое значение Remaining", но см. следующие пункты.
- Remaining снижается только до 0, значит в какой-то момент человек просто списывает время не сжигая бизнес-время (это проблема), значит если Logged больше чем Estimated, то задача была недооценена (это проблема)
- если Remaining увеличился, значит человек не сжег бизнес-время, а столкнулся с трудностями и увеличил время (это проблема)
- Remaining может увеличиваться (если человек списывая время увеличивает значение Remaining), таким образом ни списание, ни Remaining не говорит о сжигании времени)
- если задача закрыта, а Remaining остался, считаем, что человек сжег весь Estimated + задача была переоценена (это проблема)
- итого сожженное время считаем только по закрытым задачам и только так: Estimated - Logged (внимание, значение может быть отрицательным, значит задача была недооценена)
Как понять, разработчик или тестировщик:
- недооценил - кто списал больше, чем запланировал, тот и недооценил (оценки каждого в задаче отдельные)
- переоценил - кто списал меньше, чем запланировал, тот и переоценил (списание каждого в задаче отдельные - основаны на worklog)
- сжег бизнес-время - анализируем количество списания времени разработчиком и тестировщиком по закрытым задачам
Tasks without changes
WITH statuses_yesterday AS (
SELECT
DISTINCT ON (th.tracker_issue_id) tracker_issue_id,
th.field_value AS status_yesterday
FROM tracker_issue_history th
WHERE th.field_name = 'status' AND th.created_at BETWEEN '${__from:date:YYYY-MM-DD}T10:00:00.242Z' AND '${__to:date:YYYY-MM-DD}T10:00:00.242Z'
)
SELECT
ti.key_id,
COALESCE(sy.status_yesterday, 'Not changed') AS status_yesterday,
ti.status_name AS status_today,
tud.display_name AS developer,
tut.display_name AS tester,
ti.summary
FROM tracker_issue ti
LEFT JOIN statuses_yesterday sy on sy.tracker_issue_id = ti.id
INNER JOIN public.tracker_user tud on tud.id = ti.developer_id
INNER JOIN public.tracker_user tut on tut.id = ti.tester_id
WHERE ti.status_name NOT IN ('Ready for Development', 'Closed') AND ti.is_open_sprint_issue=true AND sy.status_yesterday IS NULL;
Что еще?
11.07.2016 12:29
Комментарии