Tuesday, October 11, 2011

Notifications: the good, the bad and the ugly...

Notifications have been part of life since for ever, mom reminding you to take out the trash, alarm clocks, postcards in the mail from your dentist.

They are such an important part of life that it was inevitable that they would become a part of software, just like discovery and word processing... The problem as usual is that there is no best way of doing it, everyone does his notifications differently, and wants to be notified in certain ways about different things... So to do it in a way that would please everyone is a pretty tough job. So tough, in fact, that Apple didn't even tackle it until the fifth major version of its iOS (that has just been released, and many people claim that it was copied from Android).

Though it seems today as if Google invented notifications in Android, they have been "invented" long before that in software... All desktop OS's have had it for years, many enterprise applications have notification mechanisms, etc. etc... 

If you look around (you know - Google it) the number implementations is pretty mind boggling. it appears that everyone tried to invent the wheel here, even when the OS (Windows, Linux you name it) provides an implementation and API, many developers ignore this (for many reasons) and go on to create for better or worse their own way of doing it.

There are many aspects to notifications, and my interest was raised following a post in Google+ (link, may not be accessible if not logged into Google) which asked if anyone knew a solution to a problem the user was having with his notifications to which I responded and realized I misunderstood the request - this was because notifications are so important and universal but everyone wants something else (and therefore almost always thinks that other people want the same - just like in politics). This caused my mind to start processing in hyper-drive, suddenly thinking about the complexity of the issue, and what can be done.

Some of the issues that raced through my head, what to notify about, how to give the user control without overloading him, push vs. pull (obviously push), privacy concerns (what data to attach to a notification, who to notify of what, does the user want someone else to be notified of his action, etc..), do we group notifications? are some notifications better in digest form?, different notification types (actionable, info) and lots more...

As you can understand by now, this is an enormous problem! and there is no easy or simple solution.

Too many notifications can cause the messages to be ignored (developers know the problem of servers sending messages that are not actionable - causing the developer to start deleting messages without even reading them - making the messages a nuisance instead of a helpful feature), worst case users can abandon your product deciding the notifications are just too annoying (in Google+ this is a major problem, since the notification indicator is so prominent).

Too little notifications can cause the user not to get messages he considers important, this can also be a deal breaker.

What is too much, what is too few, what is the ideal notification length? how to "compress" the message to that size? do we send a notification about a +1? do we allow the user to control this? who/what can send users a notification? 

When we talk about user control, how to let users control the notifications - Google decided in Google+ to allow users to choose who they allow to send them messages. This might be a temporary solution until Google decides to implement an automated SPAM filter, or the two might be combined. A SPAM filter risks the user not getting a notification he might care about due to problematic content, or might let through a spammy message... 

When is a notification legitimate and in what point does it turn into SPAM? 

All these questions come (or should come) before actually implementing such a feature. In the iOS case, I believe Apple felt that the smartest thing to do is to sit it out until a workable solution was completed by Google - just to avoid the questions and trouble of coming out with a half-baked solution that might annoy their users - they may have been right :-)

This post is just scratching the surface of the notification concept and surrounding issues I'd love to hear from you - my readers, what you think about this subject. Do you know of any research done in this area? Please send me your thoughts and comments.