I was just reading this question, and noticed how often I see chat applications that allow you to know if/when a message is being typed up and when it is read/seen. I know the concept has existed well before now, but it seems like recently it's become more of a norm.
I'm wondering if I should implement this feature in a project. I have a pros/cons list and I'm wondering if there's a consensus on if this feature is beneficial to user experiences(or not). I realize that real world testing with the application is the "surest" way to make a decision, but the nature of this project doesn't lend itself to that type of testing (It's a server-client pair that individuals setup to host servers that allow users play a specific card game, so we won't have very direct access to user feedback [and while yes, it's meant for games, the precedence is that the real-time chat features actually end up getting used as much, if not more, than the gaming aspect, since there's a social aspect to the game).
.1. Accountability: I mention a counter-point to this below, but for the most part these statuses add accountability to messaging. It becomes harder to claim you didn't receive a message, especially if it's important.
.2. Moderation: This is related to accountability.I've worked on similar project to this one and noticed server operators often have this problem: User breaks a rule, moderation staff immediately sends a message to the user, user continues to break rules, moderation staff takes action against user. User claims it's unfair because they never got the message. At that point it's very easy to say that the moderation staff's duty is to give a warning, not ensure that it was read, but for the type of application I'm building, and specifically the target user demographic, and the "non-serious" nature of the project's application, it's helpful to be able to confirm the message was read.
.3. Response time: I speculate that when users know that a message was marked as seen they will respond quicker, as the chat suddenly takes on a more "real-time" nature. (The analogy I use to explain this is that if one were to play chess by un-tracked mail and took a day or two to formulate a response, the variation in response times would automatically be attributed to the nature of mail. But even in a casual game of chess between two users face to face it would be unthinkable to take so long to formulate the same response)
.1. The definition of read/seen: What actually constitutes a message being read or seen? Facebook for example, defines opening a menu that shows snippets of messages on mobile as having read a message. But it's very possible to gloss over a message, causing an overly large lapse in the time between the message being marked "seen" and the message actually being seen. It does seem Facebook addresses this though,by using the terminology seen. "Seen" feels like a weaker commitment than the more common "read" status. While superficially they mean the same thing, I understand seen to imply a visual confirmation, where as read implies actual reading. Other services suffer from similar pitfalls
.2. The ability to ignore messages: This is one point I personally find important. One of the benefits I see people take advantage of with all forms of non direct communication is the ability to ignore communication.
I think most people have been on one side or another of the "my phone was off/on silent/lost in the vast wasteland that is the underside of my seat cushion" excuse. I feel as if a major part of electronic communication is the fact that when you don't want to talk, you don't have to.
The ability to read a message, process it, then answer is something that I value. But with these systems, once you read the message the "countdown" is on. We all notice the time someone takes to respond, even in face to face conversations. While you're still able to take time, the amount of time you can take and still be within a "normal" response time is vastly reduced. While this point is very subjective, and more of a "guilty convince" than anything, isn't it still important if that convince is something users take for granted? (It reminds me a lot of the reasoning behind sound masking)
.3. Privacy: It seems users may feel their privacy is being invaded if so much information is being sent about a message. I remember one time I introduced a user to Skype who found the moving pencil so "creepy" I had to disable it. That was only one user, but it's an example of how some people find the idea that every keystroke is being relayed to the recipient "weird", for lack of a more suitable term.
Some also dislike that when the make a typing mistake, or review the content of a message, the changes are conveyed. So a user that types a long message that types a long message the changes their mind will have had a typing indicator that implied an incoming long message, but send a very short one line reply. Skype and some other services go further and show that text was erased [but not what was erased], this can also start to convey more personal issues like typing speed/skill. Some people are self-conscious about their abilities, so these relays can sometimes put unneeded pressure on them (I've seen people go as far as use text editors to hold messages then cut and paste them because they didn't want their typing skills scrutinized). I have also seen aversion due to ignorance as to how this is done, in a user that feared that somehow individual keys could somehow be relayed (but I'm not sure that's a common misunderstanding).
It's also debatable whether in non-corporate environments the act of reading a message is a private action (Even in a corporate environment, while opening email, or any web-based service for that matter, is rarely treated as private action, some argue it should be).
.4. Implementation: While the statuses aren't very complex, they add some additional layer of complexity that can fail or misbehave. Do the benefits justify this?
Edit: Just to be clear, by fine-grained message status I mean aspects such as whether a user is typing, whether a message has been read, etc. Some basic statuses such as indicating a successful send are obviously beneficial.