Comment identifiez-vous les futurs meilleurs contributeurs ?
Il est assez facile de dresser une liste de comptes et de la fréquence à laquelle ils contribuent pour en déduire une liste des meilleurs contributeurs, mais existe-t-il un moyen d’identifier les comptes qui tendent à devenir un meilleur contributeur ?
J’aimerais mieux « nourrir » ces comptes - par exemple, des actions simples comme reconnaître leurs contributions avec des réactions/répondre avec un « J’adore cette réponse », etc.
Je pense que vous pouvez extraire beaucoup d’informations à l’aide de l’explorateur de données. Cela dépendrait des critères que vous utilisez pour classer un contributeur principal, mais vous pouvez utiliser des requêtes comme celle-ci pour voir qui est sur le point de devenir un TL3, par exemple Find the users which are more likely to become TL3 - #19 by ganncamp
Pour information, vous pouvez utiliser Claude (j’utilise 3.5 Sonnet) pour créer des requêtes assez complexes. J’ai créé une requête qui attribue un score aux utilisateurs en fonction de critères très spécifiques que je lui ai donnés. Il a fallu beaucoup d’allers-retours pour arriver là où je voulais, mais au final, je suis ravi des résultats. Le plus difficile est de déterminer les critères à utiliser.
J’ai également essayé OpenAI et Gemini pour cela, et Claude a été le vainqueur incontesté.
Notre première tentative a été le classement, mais il semble qu’il privilégie le volume pur (pensez à « Est-ce que c’est réparé ? Est-ce que c’est réparé ? Est-ce que c’est réparé ? Bonjour ? ») par rapport à la qualité. D’accord, oui, la « qualité » est difficile à algorithmer, bien qu’il y ait quelques ajustements évidents à faire.
Ce que nous avons commencé à faire pour identifier les utilisateurs vraiment utiles est de
rechercher des fils où un autre utilisateur est le premier à répondre
-- Objectif : Trouver des sujets où la première réponse non-OP est un non-SonarSourcer
WITH
SonarSourcers AS (
SELECT u.id AS user_id
FROM groups g
INNER JOIN group_users gu ON g.id=gu.group_id
INNER JOIN users u ON u.id = gu.user_id
WHERE g.name='sonarsourcers'
),
tagged_topics AS (
SELECT tt.topic_id
FROM topic_tags tt
JOIN tags t on t.id=tt.tag_id
WHERE name = 'me-too'
),
-- trouver des sujets 'réguliers' créés par des utilisateurs normaux
topic_user AS (
SELECT id as topic_id, user_id, created_at
FROM topics
LEFT JOIN SonarSourcers ss USING(user_id)
LEFT JOIN tagged_topics tt on topics.id = tt.topic_id
WHERE ss.user_id IS NULL -- omettre les sujets commencés par SonarSourcers
AND tt.topic_id IS NULL -- omettre les sujets tagués avec me-too
AND user_id > 0 -- omettre les fils de discussion/tutoriels de bienvenue de DiscoBot
AND visible = TRUE
AND archived = FALSE
AND archetype='regular'
AND created_at::DATE > '2023-07-01'
),
-- trouver la première réponse non-OP aux sujets des utilisateurs
min_response AS (
SELECT p.topic_id, tu.created_at, MIN(post_number) as post_number
FROM posts p
JOIN topic_user tu USING(topic_id)
WHERE p.post_type = 1
AND p.user_id != tu.user_id
AND p.post_number > 1
AND p.hidden = false
AND p.deleted_at IS NULL
GROUP BY topic_id, tu.created_at
)
SELECT p.topic_id, p.user_id, mr.created_at::DATE as thread_date
FROM posts p
JOIN min_response mr ON p.topic_id = mr.topic_id AND p.post_number=mr.post_number
LEFT JOIN SonarSourcers ss ON p.user_id=ss.user_id
LEFT JOIN user_badges ub on p.id = ub.post_id and ub.badge_id=110
WHERE ss.user_id IS NULL -- éliminer les sujets où SonarSourcer est le premier à répondre
AND ub.user_id IS NULL -- éliminer les sujets où un badge a déjà été attribué
ORDER BY mr.created_at DESC
Une fois que nous avons identifié ces fils, nous évaluons la réponse de l’utilisateur et attribuons ensuite à l’utilisateur répondant un badge « Utilisateurs aidant les utilisateurs » ou taguons le fil avec un tag « me-too » (invisible pour le personnel). (D’ailleurs, ce rapport de réponse utilisateur a l’effet secondaire heureux de repérer rapidement les incidents dans notre service cloud. )
À partir de là, il devient facile de récompenser davantage les utilisateurs utiles et de les identifier pour un suivi plus approfondi.
Je suppose que le plus difficile est de définir ce qu’est un contributeur principal et les attributs qui mesurent des données qualitatives plutôt que quantitatives.
Par exemple, un membre qui répond 50 fois et dont 90 % des réponses sont marquées comme solutions est-il davantage un contributeur principal qu’un membre qui contribue 100 fois mais dont seulement 10 % des réponses sont marquées comme solutions ?
Pour le moment, les principaux contributeurs sont assez faciles à identifier, car ce sont ceux que l’on voit le plus dans la communauté. Mais je suppose que nous avons besoin de critères plus concrets que nous pouvons utiliser pour identifier ceux qui sont proches, ou sur la voie.
Oui. Le classement est un excellent moyen de voir les utilisateurs les plus actifs. Par exemple, la plupart des forums ont leurs meilleurs contributeurs occupant les 10 premières places. Ces places sont principalement occupées par des “Regulars” et des “Leaders”, en raison de leur forte activité qui leur permet de grimper et d’être promus.
Je pense que vous touchez le point sensible ici. C’est surtout une question qualitative plutôt que quantitative.
J’ai eu des contributeurs vraiment utiles avec quelques publications par mois et j’ai eu des contributeurs inutiles avec quelques douzaines par semaine. Le classement est un excellent point de départ pour séparer le bon grain de l’ivraie, mais en fin de compte, ce sera votre jugement en tant que gestionnaire de communauté