Yes, I know that the request for PM functionality between users within the Stack Exchange Network (henceforth SEN) has been made many times before. Rest assured, I have read these questions through thoroughly. I also suspect that the points/suggestions I'm about to make have been said before, and considered. However, I've been looking through the various PM proposals on meta, and I haven't come across a particularly good rebuttal to these points/suggestions, so I'm creating a question here to voice these things in one place and give an opportunity for those in the know to respond to them in one place. Please read this whole proposal through, and don't just knock it on the head instinctively. :-)
If you haven't the patience to do that, please refrain from commenting or voting on this question at all. Pre-emptive strike: If this is closed as a dupe, I believe it will have been closed incorrectly, because I am raising points and giving suggestions which I highly doubt any other question you point to will have addressed completely.
What I propose
A private messaging system that could be used across all SEN sites. One centralized inbox, accessible via a user's network profile page, would store all received PMs. A user would be notified about new PMs via a similar mechanism to the one by which they're notified about new comments etc. directed at them; a red circle to the left of the StackExchange logo at the top-left of the page. A user could send PMs from this page via a 'send PM' link. The first time they tried to send a PM, they would be given a list of the terms and conditions of PM usage and asked to agree to them. On the send page itself, these terms and conditions would always be displayed, prominently, in brief, to remind the user what they may and may not use the system for. The terms and conditions would be (ones in italic may not be needed):
- No flaming / trolling / insults / spamming / continued messaging on a topic the receiver has explicitly told you to stop messaging them about.
- No unsolicited job offers (use http://careers.stackoverflow.com/).
- No technical questions or answers (use the relevant SEN site to ask or answer the question).
- No asking a user to look at / respond to your question
Any messages that were sent in contravention to these rules should be flagged for a moderator to review, and if found to have been violating the rules, the disciplinary procedure would be applied. This could be tweaked until the best procedure is determined, but I'd recommend starting out by the sending user being warned and losing reputation; on a second offence, the sending user having their PM functionality suspended, and losing a lot of reputation.
Users would set a 'reputation threshold' - the minimum level of reputation required to be allowed to send a message (which isn't in response to a message) to that user. This threshold would be customizable, although its default (and minimum level) would be 500, to help avoid PM spam.
A user could choose three mechanisms by which to avoid nuisance PMs. Blacklisting users they want to block, whitelisting users they will accept PMs from, and turning PM functionality off altogether.
The rules for offsite notification (e-mail, generally) of PMs to a user would be the same as those for notifications about new comments etc. directed at them.
I believe this system would be an extremely useful, justified addition to SEN, and would not detract from what SEN is at the moment in any way.
Criticisms
There have been some fundamental criticisms of the introduction of such a system, so I'll address them now.
SEN is not supposed to be a 'social networking' website.
Define 'social networking'. It certainly isn't the same thing as 'community', and indeed the idea that SEN is based on communities of people interacting is actively celebrated and fostered; it's considered the life force of SEN sites. In the history of human communities, you'd be hard-pressed to find one where there hasn't been at least some legitimate room for private communication between members of the community. With chat.stack*, SEN has gone even further down the road of acknowledging that fostering the social aspect of the site(s) is an important thing. I therefore submit that the introduction of PMs alone would not turn SEN into a social networking site, and that a social networking site requires many more elements - not least an emphasis on gossip, subjective discussions, trivia, and the like.
It would be used by job recruiters to send unsolicited job requests.
First, it would be made abundantly clear from the terms and conditions that this was not allowed. If a user ignored the terms and conditions, any user who received such a message could flag it. A moderator could review it and the disciplinary procedure would be applied if appropriate. The minimum 500 rep requirement should also make this much less likely because users who've built up that much rep are more likely to have some respect for the rules.
It would be used to harass / spam other users.
A user receiving such a PM should flag it, and a moderator would review it and the disciplinary procedure would be applied if appropriate. The minimum 500 rep requirement would make spamming much less likely.
New users would use it to bug established experts into looking at their questions.
The minimum 500 rep requirement would make it impossible for 'new users' to send unsolicited PMs with the system. If experienced users continued to get such requests from 'moderately new' users, they could raise the minimum rep threshold to stop even these users from sending them PMs, or even flag the message if they felt it had reached the level of harassment. Though I'm not sure about it (because I think there may be experienced users who'd be happy to have their attention drawn to questions they may be interested in), rule #4 above could be added, which would just flat-out ban this behaviour. Whether rule #4 was necessary could be determined during a several-month beta of the system, and an examination of whether it really was becoming a problem.
It's not missing/wanted.
A quick search gives me 20 meta.SO questions on this feature. Many in the community want it, and many have presented (in these questions) a valid use-case scenario where PM functionality would be a genuinely useful addition. It is both missing and wanted.
It would hide useful information from the community.
I accept that this is a potential problem, and is the toughest of the criticisms to deal with. For a start, usage of the PM system to ask a question which should be asked on a main site would be banned (#3 in the terms and conditions above). If someone received a message they thought should be asked on a main site, they could either respond and tell the sender that it should be asked on a main site, or they could flag the message and get a moderator to tell the user. The question could then be moved by the moderator to the appropriate main SEN site. Repeated violation of rule #3 would result in the disciplinary procedure being applied. Occasional inspection of PMs by moderators could also help to address this issue; if it was found that users were exchanging information that should be on a public SEN site, both users would be warned and their PMs kept under long-term surveillance to make sure they didn't do it again. I don't believe this to be an insurmountable problem.
Alternatives
There have also been suggestions by others for alternatives to a PM system, which would render a PM system unnecessary. I don't think any render a PM system unnecessary/unhelpful, and I'll address them here.
Use chat to send messages to users, outside the context of a site question.
Only a tiny proportion of users have ever logged into chat. If you try to start typing their username, it's somewhat unlikely to popup for autocomplete (only if they've logged into chat recently), and so is not useful for messaging the vast majority of users on SEN sites. Speaking of which, what is their username? If you see a user within a SEN site question, you can click on them and get to their profile, then go to their network profile, in which you would see a 'send PM' option, under my proposal. With chat, you have to go into the chat site for the SEN site in question and try to figure out their username, which is based on one of the SEN sites linked to their chat account. This can be changed, and their chat username might be different from their SEN site 'name'. If their username doesn't popup for autocomplete, how do you know what to write? @BestGuess
at what their nick would be, and hope for the best? If it isn't perfect, the user will never be notified of the message. Even if the user has recently logged into chat, just figuring out their username could be a difficult endeavour. Yet, just because they haven't logged into chat - recently or ever - doesn't necessarily mean they aren't OK with receiving PMs.
Have a public wall for sending messages to people.
This proposal seems very similar to just creating a chatroom simply for this purpose, and so the criticisms are much the same as those for chat, above. How does one determine the username of the user you want to send the message to? Is it different for every SEN site? It wouldn't be a private message (and, by the way, neither is sending the message through chat).
Users should post contact info in their profile if they wish to allow others to contact them.
There are several problems with this suggestion. For one, the profile almost never gets used to give one's offsite contact information. I, and a small handful of other users I have come across, are the only users I've seen use their profile to give offsite contact information. However, I don't think that's because most users don't want to be privately contactable; it's more likely they forgot to put it there, didn't realize that this was the place they needed to put offsite contact information, or that they simply don't want to give IM or email details out to the world, but yet would be fine with a PM mechanism internal to SEN. I know I'd prefer it. Maybe 1% of users provide PM contact information in their profiles. Are we really to believe that 99% of SEN users don't want to be contacted privately, or is it more likely that their contact info isn't there for one of the reasons I've mentioned above? Additionally, if the user provides offsite contact info other than an e-mail address (which isn't a great idea if you wish to avoid spam), it relies on your having the necessary means to use that contact information. Yahoo IM address? You need Yahoo IM. MSN address? You need MSN. Skype name? You need Skype. A PM system internal to SEN would avoid this problem.
Users should leave a comment on another one of a user's questions/answers to contact them.
This is surely undesirable. It would break up the flow of the question's discussion with comments probably unrelated to the question/answer the comment was attached to, polluting the thing. It would make it more difficult for the community to utilize because there would be a bunch of offtopic comments in the question, its having been hijacked to be used as a de facto PM conversation between two users. This happens to a degree already, and it's not pretty.
In conclusion
I don't see any good arguments against introducing a PM system for users on SEN sites, and I think there are very good reasons for introducing it. Even if it's not made a priority, I think the proposal should at least be put on the 'to do' list rather than rejected.