apache / incubator-devlake

Apache DevLake is an open-source dev data platform to ingest, analyze, and visualize the fragmented data from DevOps tools, extracting insights for engineering excellence, developer experience, and community growth.
https://devlake.apache.org/
Apache License 2.0
2.55k stars 508 forks source link

[Feature][domain layer models/webhook plugin] Team health check and voting #5564

Closed rusinikita closed 6 months ago

rusinikita commented 1 year ago

Search before asking

Use case

Description

Motivation

The goal of DevLake is to extract insights for engineering excellence and developer experience.

Developer experience and quality should not be judged solely on technical data. Teams may want to track their maturity and success in different aspects of their work.

Team health check is a good example of how to do that.

There are good quality tools that allow you to do this (teamretro, teamhealthcheck). But, there are no good open-source and own-your-data tools available (only forbidden 1, 2).

DevLake can easily provide this functionality.

Metric page documentation draft

Metric name - health check.

What is this metric

Historic changes of team opinion/voting about different aspects of work.

image1 image2

Why is it important?

  1. Analyze team mood trends on different topics, identify areas "to save" and "to improve", and reduce staff turnover.
  2. Focus on team values and goals to ensure everyone is on the same page
  3. Combine objective and subjective data for better understanding of team problems.

Many subjective factors can influence developer efficiency and staff turnover. There is a technique for easily tracking and visualizing these factors: the Spotify Squad Health Check 1 part, 2 part

Which dashboard does it exist in

How to collect data?

  1. Organize regular voting sessions to collect the current state of different development aspects. This can be added to a retrospective meeting or a new ritual can be created. Voting can be anonymous or not.
  2. Save votes in DevEx and track the trend of different aspects over time.
  3. Discuss problems and write action items to address them.

Any software can be used for voting and data can be saved through a webhook.

How is it visualised?

Individual team

  1. Votes are filtered by team and grouped by date and topic, and then visualized in a heatmap where the date - column and the topic - row. image3
  2. Votes are filtered by team and grouped by date and topic, and then changes trend is calculated and visualized as a red/yellow/green gauge with improvement speed. image4

Multi team

image5

How to not improve

How to improve

Solution design

  1. A votes table for storing voting results.
  2. A new POST method in the webhook plugin for notifying votes.

Solution pros

Solution cons

Related issues

No response

Are you willing to submit a PR?

Code of Conduct

Startrekzky commented 1 year ago

@rusinikita This looks interesting. Have you tried teamretro or teamhealthcheck before? What do they look like? I'm busy recently. I'll try them out later.

rusinikita commented 1 year ago

@Startrekzky Every sprint, I use TeamRetro for retrospectives. It has a useful Trello-like interface and good voting customization. But only enterprise version has data export, and i don't like it.

I have not tried TeamHealthCheck; it's just a voting tool without customization. However, it shows that health check has a community

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity for 30 days. It will be closed in next 7 days if no further activity occurs.

github-actions[bot] commented 1 year ago

This issue has been closed because it has been inactive for a long time. You can reopen it if you encounter the similar problem in the future.

Startrekzky commented 1 year ago

@rusinikita Thanks for your feedback, I'll look at it later.

github-actions[bot] commented 10 months ago

This issue has been automatically marked as stale because it has been inactive for 60 days. It will be closed in next 7 days if no further activity occurs.

github-actions[bot] commented 8 months ago

This issue has been automatically marked as stale because it has been inactive for 60 days. It will be closed in next 7 days if no further activity occurs.

github-actions[bot] commented 8 months ago

This issue has been closed because it has been inactive for a long time. You can reopen it if you encounter the similar problem in the future.

github-actions[bot] commented 6 months ago

This issue has been automatically marked as stale because it has been inactive for 60 days. It will be closed in next 7 days if no further activity occurs.

rusinikita commented 6 months ago

Have no time on PR