Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Opinions: Why Most Social Software Fail and how to Avoid it

Opinions: Why Most Social Software Fail and how to Avoid it

This item in japanese

Why some social sites have great success while others fail to reach out to the users? In his interview to Buzzwatch, Clay Shirky draws the attention to the fact that in most cases, “the software that launches with the fewest features is the stuff that takes off”. Going along the same lines as several authors advocating for simplicity on the web, he argues that the key to success for social software is “a brutally simple mental model [...] that’s shared by all users”.

Referring to it as Shirky’s law, Michael Nielsen analyzes on his blog why programmers often fail to obey it. His arguments as well as the discussion that has followed provide interesting insights into pitfalls that need to be avoided for building successful social software.

Foremost, Nielsen believes that programmers fail to create software that matches a shared user model, because the implicit mental model they are building their decisions on is often flawed. Their day-to-day experience with software is a two parts system based on the interaction between the software and the user in which providing more capabilities improves user experience. This leaves aside, however, an important issue of interactions between the user and other users and how this may influence interactions between the user and the software:

A real user’s mental model is quite different. It’s them, the software, and the entire network of other users. How they use the software is strongly conditioned on their mental model of how other users use it. If they lack confidence in that mental model, they have less incentive to use the software themselves, [...]. The more social the software, the stronger this effect.


It’s easy to get sucked into doing things that would make a single user’s experience better, but makes the experience of a network of users worse.

Simplicity is another keyword of Shirky’s law. To be shared by a large number of users, the underlying user model needs indeed to be simple. According to Michael Nielsen, there are two reasons why this often isn’t the case. First of all, programmers tend to do technically impressive things whereas the most successful social software rather “starts out doing one task supremely well”. Finding such a task, however, is extremely difficult. It should be a useful, original and simple task, a task that “can’t be reduced or explained in terms of existing tasks". Discovering this task is much more of a social challenge rather than a technical one, which explains why many successful applications were created by people who do not come from a purely technical background or else invented "by accident”. Blogger, for instance, was a part of a project management system, Flickr came out of the project of an online game where players can share photos, and the first wiki was created because Ward Cunningham got “tired of responding to user’s requests to update a website he ran”.

Michael Nielsen emphasizes that simple mental model does not necessarily mean technically simplistic software. Some social software use very complex algorithms, e.g. those used for ranking the importance of submitted items on Gigg or FriendFeed, but this technical complexity should be hidden from users.

Some of commentators argue, however, that targeting simplicity at the user model level can also be a limitation. Chris Granade and Pedro Beltrao, for instance, warn about oversimplification that may result from trying to apply Shirky’s law. In Chris Granade’s opinion, this can result in “lacking subtlety that would disturb that shared understanding”. He points out, for instance, that “marking people as “friends” is often grossly inaccurate” and may result in confusing and contradictory metadata in friend-networks. Pedo Beltrao, in his turn, mentions another possible source of confusion. In the real life people often have different facets that they share with different persons whereas on friend-networks such as FriendFeed, it is impossible to choose one facet of a person. Hence, all the facets are shared by very different people and “this might increase the noise with time”.

In Michael Nielsen’s opinion, it is possible to introduce more complexity at the mental model level provided that users are already well familiar with the application and are “confident in their shared understanding”. Hence, it can only be done at later stages of the software existence, in the way Facebook did it, progressively adding complexity after it has already reached a certain weight.

Even though it requires a rather nuanced approach, simplicity seems to be a crucial success factor for social applications. Nevetherless, in response to one of the comments, Nielsen stresses that having a simple idea that obeys Shirky’s law is necessary but not enough for building successful software. One can have a great idea but still fail to execute. Besides considering a number of purely technical and business issues, one should constantly make sure that the match between the software and the user model is maintained all along the development process in spite of probable flaws in developers’ perception of the user model. This is why Michael Nielsen asserts the importance of building early enough a base of beta users and releasing early and often.

Rate this Article