action #122074
closedcoordination #121867: [epic] Provide relevant metrics for Yam squad
[Research: 24h] Research about how to configure metric for Work in Progress tickets in Yam squad
Description
Motivation¶
As a Project Owner of Yam squad I would like to have a metric for tickets in Progress with state 'In Progress' for Yam squad project (QA / openQA Project / openQA Tests / qe-yam) and be able to visualize it Grafana.
The motivation is that this metrics will help us to understand what is the degree of collaboration between squad members. Our Scrum team is composed of 10 squad members, a Development Team of 9 squad member and 1 Scrum Master (excluding Project owner of the metric). In other words, the ideal number of task in progress at the same time is 10.
Currently we are working in parallel around 20-25 tasks and we have some spikes of 30. In order to have a good measure about our result with this saga #121981 we can display how is the fluctuation over time of this. In an ideal situation squad member do not need to pick more than one task and can be guided by other colleague to not be blocked, because most of our blockers are internal not external. Therefore this can be useful for the squad to take decision and see improvement.
This ticket is for the initial investigation about what we need to do.
We will need to discuss further with the developer of the project to process this metrics.
Initially we will need to provide a query for this metrics and then figure out next steps.
Apparently the part of grafana is not done yet, so we might try to use the python library to get this result (exclude from the time estimated of 24h, the time to setup your environment with python).
Acceptance criteria¶
AC1: Create query in progress that represent the metrics
AC2: Research code/documentation in redmine_statistics github project
AC3: Contact @ilausuch to figure out next steps
Additional information¶
This is the project (still in progress): https://github.com/ilausuch/redmine_statistics
Updated by JRivrain almost 2 years ago
- Status changed from Workable to In Progress
- Assignee set to JRivrain
Updated by JRivrain almost 2 years ago
I created a fork of redmine_statistics so we can play around without bothering @ilausuch every time we want to tweak those scripts, though we could still propose our changes or improvements if any. issues_aging.py can be tweaked to extract some data.
However for now don't really understand how to interpret the data, some values like "in progress"/"count" are easy to understand, others like "sum", "avg", "std", not so much. Example with qe-yast group:
{'new': {'count': 25, 'sum': 260.1258333333334, 'avg': 10.405033333333336, 'med': 9.133333333333333, 'std': 43.16763345113168}, 'workable': {'count': 3, 'sum': 28.50638888888889, 'avg': 9.50212962962963, 'med': 4.663333333333333, 'std': 143.6203372170782}, 'in progress': {'count': 14, 'sum': 174.49277777777777, 'avg': 12.46376984126984, 'med': 11.788333333333334, 'std': 74.04113140686475}, 'blocked': {'count': 1, 'sum': 4.005, 'avg': 4.005, 'med': 4.005, 'std': 0}, 'resolved': {'count': 4, 'sum': 46.47388888888889, 'avg': 11.618472222222222, 'med': 8.990277777777777, 'std': 48.72124302983542}, 'feedback': {'count': 2, 'sum': 27.480833333333333, 'avg': 13.740416666666667, 'med': 23.960833333333333, 'std': 208.91383368055557}, 'closed': {'count': 0, 'sum': 0, 'avg': 0, 'values': []}, 'rejected': {'count': 0, 'sum': 0, 'avg': 0, 'values': []}}
So I can either ask, or try better to understand what the python code does (first option is probably simpler as I don't know python...).
But really, the most important question is what do we want to outline with this data and how to interpret it, more than how to extract it.
Updated by JRivrain almost 2 years ago
So I'm blocked, I've spent some time trying to understand what the script issues_aging.py does. I think (??) it calculates how many days tickets stayed in a certain state, eg if there are 10 issues that are 2 days in a state, "sum" will be 20, and so on, "std" being "standard deviation" it seems, I guess this could be useful for generating graphs.
However I don't understand what are the inputs and outputs: what does it compare with what, I could not understand it by reading the code with my complete ignorance of Python. I have no idea how to use it.
I tried different things but never managed to correlate the result with what I see in progress's webui.
Maybe someone with solid knowledge in Python should take over.
Updated by JRivrain almost 2 years ago
I talked with @ilausuch, it seems like it's too early at that point to use the tool. I'm afraid I'm not competent to contribute to this project, since I don't know Python.
Updated by JRivrain almost 2 years ago
- Status changed from In Progress to Resolved
So, In the end, it works. There were two problems, one that was the default limit in Progress's results is 10, @ilausuch updated the script to handle this. The other is my misunderstanding of the filter "filter_date" (which actually still confuses me). He added this script that we can already use for our job group (thanks !), and he proposed to explain soon how to integrate it with Grafana.