The newcomer homepage provides a mentor to any mentee based on a specially formatted page on wiki. Meanwhile, many wikis already do some kind of automated mentor-like outreach to newcomers based on existing lists of mentors. For instance, Arabic Wikipedia automatically posts a welcome message on every new account's talk page, signed by a random name from a list. Right now, these two lists are not unified -- a newcomer may receive a welcome message from one user, and then their mentor on their homepage may be a different user. (NB: through an experiment being done by CAT Lab, we will learn how valuable automated welcome messages are for newcomer activation and retention.)
Current state
The Growth team features automatically assign a mentor to everyone, and stores it in newbie's user preferences. That means the assignment is private by default. The only exception to that is when the mentee is claimed via Special:ClaimMentee, which publishes both the new and the previous mentor (see logs at ar.wikipedia as an example). That means that we are already publishing the mentee-mentor relationship in some corner cases, and thus, this can implicate it's less of an issue to make it public for everyone.
Possible use cases
On some wikis, this interaction between mentor and mentee can or could go further than only on the homepage:
- display the mentor's name on a message left to the mentee's user talk page, like a welcome message (Hello, I'm [[user:Mentor|Mentor]] and I welcome you) or some guidance (please ask [[user:Mentor|your mentor]])
- display the mentor's name on a sandbox template (sub-page of mentee's user page) to have a reminder about who they should contact
- create user boxes: "My mentor is Mentor".
One open question is whether users who sign up to be welcome message signers will also want to be mentors and vice versa. Perhaps the unified sign-up page should allow users to indicate which of the mentorship programs they want to participate in. On the other hand, maybe we should not allow users to only participate partially -- because we think that there should be a connection between the homepage mentor and welcome message signer.
Magic word approach
The easiest way I can see to implement this would be to have a magic word/parser function, something like {{#mentor:Newbie}}, which would return Newbie's mentor. That can be used by communities to feed welcoming bots as well.
@Tgr mentions in T233250#5957602 that the magic words are evaluated real time, which is correct. This could cause change of mentor's username almost in real time in cases when it is wanted, but sadly also in cases where the name is meant to stay stable, such as in signatures. That can be workarounded via substituting the parser function: something like {{subst:#mentor:Newbie}}. This can be even used in templates, something like {{su<includeonly />bst:#mentor:Newbie}} should work fine in a template.
This approach:
- Enables a bot to easily place a template on wiki with the Growth mentor's name.
This approach does not:
- Enable he situation where the bot constructs the text itself, instead of a through a template, because it can't run a magic word itself -- it has to be pasted somewhere.
- Enable mentors to be assigned by topic.
- Enable mentors to opt-out of either being the homepage mentor or the talk page mentor. In other words, this is not an abstracted mentor list that can be used for arbitrary purposes -- it is more that this approach allows other functionality to draw on the Growt mentor.
- Change how mentorship is stored in the database.
For the thing that this approach does not enable, future ideas include storing mentors in their own table in the database, along with other mentor metadata (like topics of interest), and allowing mentorship signup to happen on a more structured Special page.
How will this work?
The magic word will be used like this (wikitext):
Martin Urbanec's mentor is {{#mentor:Martin Urbanec}}
This will print something like:
Martin Urbanec's mentor is (username of whoever is my mentor)
That way, communities will be able to update their welcome messages to simply use {{#mentor:<newbie's username>}} to display the mentor's name.
In case there is no assigned mentor, the function will simply output nothing (in other words, it will not automatically assign a mentor, just return the current state of mentee/mentor relationship). For newcomers, this shouldn't be an issue โ and it is possible to wrap it in an #if statement, signing it with a default account as a fallback.