There are lots of definitions of social software out there, ranging from the clinical ("software that enables people to connect through computer-mediated communication") to the pragmatic ("stuff that gets spammed").
While doing research for a recent workshop, I came across a useful list of seven social software elements. These seven building blocks--identity, presence, relationships, conversations, groups, reputation and sharing--provide a good functional definition for social software. They're also a solid foundation for thinking about how social software works.
- Identity - a way of uniquely identifying people in the system
- Presence - a way of knowing who is online, available or otherwise nearby
- Relationships - a way of describing how two users in the system are related (e.g. in Flickr, people can be contacts, friends of family)
- Conversations - a way of talking to other people through the system
- Groups - a way of forming communities of interest
- Reputation - a way of knowing the status of other people in the system (who's a good citizen? who can be trusted?)
- Sharing - a way of sharing things that are meaningful to participants (like photos or videos)
Not every social software system has all of these, but most of them have three or more. And the most popular social websites implement many of these building blocks, but focus on just one or two. For example,
- Flickr is for sharing photos
- Slideshare lets you share Powerpoint presentations
- Twitter aims at presence
- Instant messaging applications like AIM and MSN are about conversation
- LinkedIn tracks relationships
For the workshop, I borrowed an idea from Peter Morville's user experience honeycomb and created a social software honeycomb. I put identity--the most basic requirement of any social software system--at the center with the other elements grouped around the outside.
Underneath the main honeycomb are examples of three social websites and how they use the building blocks. The dark green hexagon is the focus of the system; the light green hexagons are the supporting elements.
Once you dig into Digg, Flickr, Slideshare or Twitter you'll find that the actual implementation of each piece will be different. And not just different, but nuanced in a way that helps establish the overall ambience of that system. For instance, it's interesting to observe how the ease of interaction in Digg drives the swarming behaviour of its users.
The challenging thing about designing for group interaction is that people bend the tools for their own social purposes. I've found these building blocks to be a good conceptual framework for understanding social software. With these in hand we can start to look at how people use these systems to satisfy their personal and social goals.More reading