Chapter 9. Social Applications

Introduction

Increasingly, web applications are designed to encourage user participation and sharing. User participation is typically in the form of user-contributed content, where users add their own content to the application (ADD/UPLOAD CONTENT) and describe it using tags (TAGGING). Other ways for users to participate is by providing RATINGS and REVIEWS of content offered by the application. Many applications also involve users in promoting items by letting them vote for their usefulness and relevance (VOTE TO PROMOTE).
To ensure that user participation leads to a trusted online community, users have to establish an account with the application and create a USER PROFILE. Although for products and services, trust may be achieved through ratings and reviews, for users it's important that they establish a high REPUTATION, especially if they want to transact online or gain respect from other online community members. One aspect of reputation is based on the size of users’ social networks. Social applications, therefore, facilitate users to connect with others with shared interests, backgrounds, and experiences (DISCOVER NETWORK MEMBERS). Once discovered, not only can they “friend” them (FRIEND LIST) and/or “follow” their activities online, but they can also create groups to discuss and share common interests (GROUPS/SPECIAL-INTEREST COMMUNITIES). Social applications also facilitate interaction among friends by allowing them to chat in real time, send messages to each other, and write comments in shared areas (MESSAGING); for encouraging real-time messaging it's also important to convey users’ online status (PRESENCE INDICATOR).
Participation and interaction are further enhanced when users can share photos, news stories, videos, bookmarks, and other content—commonly referred to as social objects—with their friends and trusted colleagues (SHARING) or work together to coordinate activities and events or co-create content (COLLABORATION).

Add/Upload Content

Problem

Users need to transfer content files, such as music, photos, presentations, and so forth from their own computers to those of the application providers to share it with other users.

Solution

Provide users a way to upload one or more content files. In addition, if appropriate, allow users to describe (and tag) the content and indicate their preferences for who can view it (Figure 9.1).
B9780123742650000098/gr1.jpg is missing
Figure 9.1
SlideShare allows users to upload content (i.e., presentations) as well as provides a way to describe and label it to make it easy to find and share. It also allows users to indicate viewing and privacy preferences. In addition, to facilitate uploading of content, SlideShare offers several upload options: bulk upload, single upload, URL upload, email upload, and browser plug-in.

Why

Making uploading of files easier is essential for web applications that rely on content provided by its users. Furthermore, to make it easy for users to find their uploaded content, allow them to tag it (see the TAGGING pattern next).

How

In most cases, users will have the content files on their computer. Therefore, make it easy for them to upload them from their computer. When users are likely to upload several files at a time, such as when uploading photos, allow them to select multiple files and upload them all together (Figure 9.2).
B9780123742650000098/gr2.jpg is missing
Figure 9.2
Flickr allows users to select and upload multiple photos at the same time.

ALLOW USERS TO COPY FILES FROM OTHER ONLINE SOURCES

In cases where users may already have uploaded their files (e.g., photos) on sites such as Picasa or Flickr, make it easy for them to copy files directly from those accounts (Figure 9.3) rather than make them search for the files on their computers or download them from the original site to their computers before uploading them again.
B9780123742650000098/gr3.jpg is missing
Figure 9.3
MyFolia allows users to import photos from their Flickr or Picasa accounts.

ALLOW USERS TO REMOVE SELECTED CONTENT FILES FOR UPLOAD

It is possible for users to select incorrect files to upload or change their minds about certain files after they have selected them. Allow them to remove such files (Figure 9.4).
B9780123742650000098/gr4.jpg is missing
Figure 9.4
Flickr allows users to remove files selected for upload.

ALLOW USERS TO INDICATE PRIVACY PREFERENCES

Users may not want to share uploaded content or may want to limit sharing to certain users. Offer them options to specify such privacy and/or sharing preferences (Figure 9.5).
B9780123742650000098/gr5.jpg is missing
Figure 9.5
Flickr allows users to define privacy settings for uploaded photos.

KEEP USERS INFORMED ABOUT THE UPLOAD PROGRESS

Allow users to monitor the progress of content uploading by providing a progress indicator (see the DELAY/PROGRESS INDICATOR pattern in Chapter 8). This makes it easier for them to judge the time it will take to upload the files. In addition, users can interrupt the upload if they feel that it may take longer than they had anticipated or they realize that they selected an incorrect file to upload.

CONFIRM SUCCESSFUL UPLOAD OF CONTENT FILES

Acknowledge to users a successful upload of files. Once files have completed uploading, either take users to the page where they can manage the uploaded files or keep them on the same page with the option to upload more files. If users would benefit by tagging content or providing descriptions, suggest appropriate next steps to them.

Related design patterns

Because uploaded files may be large, especially when adding media files, use of the DELAY/PROGRESS INDICATORS (see Chapter 8) pattern is relevant and should be considered. In addition, most sites that support user-generated content require that users describe them using tags (TAGGING).

Tagging

Problem

Web applications that allow users to add content (e.g., bookmarks, photos, music, videos, and so forth) may also want to allow them to describe or label their uploaded content to make it easier to find later. However, with all the different ways users may want to label content, it may be impossible to anticipate and make available all potential labels and variations (or categories and subcategories). For example, users may want to label personal photos with labels such as the names of people, occasions, locations, ages, emotions, and so forth.

Solution

Allow users to label (i.e., tag) content with any descriptive information they desire so as to make it easy to find it later (Figure 9.6). The labels used for tagging content should not be restrictive except when they might be offensive to other users of the application; for example, an application might not want to include profanity in labels.
B9780123742650000098/gr6.jpg is missing
Figure 9.6
YouTube asks users to add tags when uploading videos.

Why

The use of open-ended tags encourages a personally meaningful and natural vocabulary. This makes it easy for users to find items later and allows them to explore and interact with content in a myriad ways (Marlow et al., 2006). For example, by allowing users to label emails (and add multiple labels to the same email), Gmail permits users to not only use tags that describe the content of the email but also to describe actions and priorities (e.g., “to do,” “important,” ”urgent,” and so forth). In addition, users don't have to force-fit items into a category/subcategory combination; they can place them in many virtual categories at once.
Application developers also benefit from tagging because they do not have to address the whole categorization scheme (i.e., taxonomy) in advance. They can rely on users’ tags to continually create a dynamic, evolving taxonomy (also referred to as folksonomy) 1 and, if necessary, complement a high-level taxonomy with the emergent folksonomy to facilitate navigation.
1Thomas Vander Wal (2007) coined the term folksonomy and described it as follows: “Folksonomy is the result of personal free tagging of information and objects (anything with a URL) for one's own retrieval. The tagging is done in a social environment (usually shared and open to others). Folksonomy is created from the act of tagging by the person consuming the information.”
Finally, tagging can encourage user participation and sharing since it helps create communities with shared interests and/or allows users to explore content that is tagged similar to theirs.

How

Typically, adding tags to a content item is straightforward. To enter tags, let users enter keywords separated by a space or a comma (or another delimiter) in a text field. Using space as a delimiter may be problematic when users want to enter multiword tags. Therefore, use commas, semicolons, or other special characters are better delimiters. In addition, allow users to tag both the content they are adding and the content that already exists (Figure 9.7).
B9780123742650000098/gr7.jpg is missing
Figure 9.7
Flickr allows users to add tags to photos they upload.

KEEP TAGGING OPTIONAL

The main purpose of tagging is to allow users to provide some descriptive information about content to facilitate finding it in the future. Because the primary user task is to add content, tagging (or providing other descriptive information) should be optional. However, users should be permitted to add tags later.

ALLOW USERS TO TAG SEVERAL ITEMS TOGETHER

For content such as photos, users may want to add the same tags to several items. Allow them to select items that will share the same tags and apply tags to them in “bulk” or “batch” mode (Figure 9.8).
B9780123742650000098/gr8.jpg is missing
Figure 9.8
Flickr allows users to apply tags in a “batch” mode. Users can batch photos that they want to tag and then click “Add Tags” to add descriptions to all the items in the batch.

SUGGEST TAGS TO MINIMIZE VARIABILITY

One of the problems with tagging is that items may be tagged using seemingly similar labels caused by typos, plurals, or minor differences in spellings (e.g., color versus colour). For example, one user may label an item as “web site,” another as “website,” and yet another as “web_site” or “websites.” By suggesting tags, users can pick from existing tags, and the application can minimize redundancy and unnecessary distinctions in tags.
In addition, suggesting tags may also make users consider alternative ways to describe content and avoid conservative labels among users new to tagging. Suggestions may be in the form of the following (Smith, 2007):
Previously used tags. Tags that the user has entered already.
Popular tags. Tags that have been used frequently by others.
Recommended tags. Tags the user should consider based on popular tags, recently used tags, and other factors.
To make it easy to add suggested tags, allow users to select from a list (Figure 9.9). While entering tags, they may be provided with suggested tags, using the AUTOSUGGEST/AUTOCOMPLETION rich-interaction pattern (see Chapter 8).
B9780123742650000098/gr9.jpg is missing
Figure 9.9
Del.icio.us both recommends tags and lists popular ones for users to consider when adding a bookmark and tagging it. To use one or more tags, users just have to click on them, and those tags are populated in the “tags” text field.

ALLOW USERS TO CHANGE AND DELETE THEIR TAGS

Users may want to change their tags because they made a mistake or have found other tags that better describe the content. Also, if users have tagged a content item to describe an action they are going to take (e.g., labeling an item “to do” or “urgent” in Gmail), they may want to remove those tags if they are no longer relevant. To accommodate such needs, allow users to remove, change, or add tags to an existing item (Figure 9.10).
B9780123742650000098/gr10.jpg is missing
Figure 9.10
Del.icio.us allows users to change or delete tags by clicking “edit” next to the bookmarked item.
Managing tags should be possible in batch mode as well—that is, users should be able to change or delete tags for multiple items at the same time. If it would help users, allow them to replace one tag with one or more tags.

Related design patterns

When tags are used for labeling items, TAG CLOUDS are usually offered as a way to navigate and find content (see Chapter 5).

Ratings

Problem

With an abundance of content accessible on the Web, users are faced with the problem of identifying relevant and useful content; this is made even more difficult with user-contributed content that has not been reviewed or edited for context quality. In addition, applications face a similar problem when they try to offer users personalized content or recommend content that may be of interest to them.

Solution

Allow users to indicate their likes and dislikes by rating items (e.g., movies, music, videos, restaurants, hotels, and so forth; Figure 9.11). Ensure that rating an item is quick and does not take too long or interrupt users’ main task.
B9780123742650000098/gr11.jpg is missing
Figure 9.11
Amazon allows users to rate items using a five-star rating system. They also make it clear that rating the item will help Amazon provide better recommendations.

Why

It is impossible for users to weed through all the available content to separate useful and relevant content. In addition, when buying products and services, deciding among the available options can be paralyzing (Schwartz, 2004). Therefore, to help make decisions, users depend on others’ experiences, which are typically conveyed through ratings and reviews (see the REVIEWS pattern that follows).
Ratings in the form of star ratings are useful for two reasons: (1) providing ratings is relatively straightforward; and (2) they provide quick, at-a-glance information about the usefulness or quality of products, services, content, and other items as judged by other users. This makes it easy for users to at least filter out content at a gross level. Ratings are now used in a variety of ways. For example,
• eBay, a marketplace for buying and selling products, uses ratings to create a detailed feedback profile of sellers.
• Amazon, an online retailer and marketplace, uses ratings for its products as well as its sellers.
• NexTag, a comparison-shopping application, uses ratings to show the quality of products as well as the reliability of sellers.
An indirect measure often used to judge items is its popularity based on the number of purchases, downloads, wishlist additions, and so forth. However, this method indicates users’ actions and behaviors, but not their satisfaction and experience with the product or service after they have purchased or experienced it. Popularity and quality are not the same. For example, a best-selling author may sell many copies of a newly published or to-be-published book even before anyone has had an opportunity to read and review it. In addition, the ratings obtained from other users of a product have been found to be useful and trustworthy to help users make purchase decisions. Gauri et al. (2008) concluded:
It is interesting that of all the attributes, positive customer reviews have the greatest impact on repurchase intention. This is consistent across all categories (i.e., books and magazines; DVDs and videos; and flowers and food). Even more impressive is the finding that number of years on the Web has the least impact on repurchase intention. It suggests that stores would attract more customers by having positive customer reviews. Another interesting finding is that it is not the total number of reviews that influences customer repurchase intention, but the percentage of positive reviews.

How

Web applications that attempt to capture users’ feedback relatively quickly employ a star-rating approach with one star representing the lowest rating and five stars representing the highest rating; some applications allow increments of half stars, thus increasing the range of the scale.
Two types of interaction approaches are commonly used when using star ratings:
1. Separating the user’s ratings from the average rating. With this approach, users are shown the average rating separately from their own rating. To rate an item, users are shown a set of five “empty” stars. As users hover over the stars, stars reflecting the corresponding rating are highlighted. Users then click to assign and save a rating. Users are usually then shown their ratings in a different color from the average rating (Figure 9.12); they are also offered an option to either remove their ratings or change previously assigned ratings.
B9780123742650000098/gr12a.jpg is missing
B9780123742650000098/gr12b.jpg is missing
Figure 9.12
Blockbuster shows users “empty” stars before they have rated an item (a) and then in color after users have entered their rating (b).
2. Combining the average rating with the user’s ratings. By default, users are shown stars in red to indicate the current average item rating. As users hover over the stars, the red stars are replaced by yellow stars (or another color). As users click to assign and save a rating, the stars are shown in the yellow state to indicate that the item has been rated by the user (Figure 9.13).
B9780123742650000098/gr13a.jpg is missing
B9780123742650000098/gr13b.jpg is missing
B9780123742650000098/gr13c.jpg is missing
Figure 9.13
Netflix shows the current rating using red stars (a). As users hover over the stars, the fill color changes to yellow to indicate their rating (b). Once a desired rating is noted, the stars are filled yellow to indicate that users have rated the item (c).
Although it makes intuitive sense to separate the current rating from the users’ ratings, both of these approaches are widely used. In some instances, both approaches are used within the same application. For example, Blockbuster separates the aggregated average rating from the users’ rating on the movie details page but combines them on other listing pages; it may be using the “combined” approach on listing pages to save space and minimize clutter.

ANCHOR THE RATINGS

Anchor each rating with a verbal descriptor to clarify to users what each star rating means (Figure 9.14).
B9780123742650000098/gr14.jpg is missing
Figure 9.14
Hulu, an application for watching TV episodes and movies, anchors each star rating with a verbal descriptor.

INDICATE TO USERS IF THEY HAVE ALREADY RATED AN ITEM

To ensure that users don't waste time rerating an item, let users know if they have already rated it (Figure 9.15). Although users should be allowed to change their mind and remove their ratings, to prevent abuse, they should not be allowed to rate the same item more than once.
B9780123742650000098/gr15.jpg is missing
Figure 9.15
Netflix shows the user's star ratings in yellow and aggregated average ratings (that users have not rated) in red.

SHOW USERS A BREAKDOWN OF THE RATINGS

Average ratings are typically used to show an item's rating. However, when an item has received fewer ratings, the average rating is not very reliable. For example, an item may receive a rating of five stars, four stars, and one star. When showing the rating, it will display the average rating of three stars, not a true reflection of its rating. To ensure that the item's quality is judged more accurately, show users a breakdown of the ratings (Figure 9.16).
B9780123742650000098/gr16.jpg is missing
Figure 9.16
Amazon shows the rating distribution when users hover over the average rating. In addition, to make it easy for users to get to the reviews, they link ratings to corresponding reviews.

ALLOW USERS TO RATE AN ITEM USING MULTIPLE CRITERIA

When an item may be judged on several criteria (e.g., ambience, quality of service), offer users additional evaluation criteria to more precise evaluations (Figure 9.17). Providing additional rating criteria may also identify specific aspects of an item that users favored (or did not favor).
B9780123742650000098/gr17.jpg is missing
Figure 9.17
In addition to asking users to provide an overall rating, TravelPost offers them the option to provide a detailed rating.

Related design patterns

To get a rationale for users’ ratings and encourage participation, consider complementing them with REVIEWS. The PERSONALIZATION pattern is also relevant for user ratings, as applications using personalization often rely on user feedback to recommend relevant and useful content (see Chapter 4).

Reviews

Problem

Although ratings are useful, they do not provide insights in to the reasons for a higher or lower rating. In addition, users rating an item may want to share the reasons behind their opinions about the quality of an item, satisfaction with a transaction, or experience at a location. Showing a simple rating system may be restrictive because users won't be able to elaborate on their reasoning.

Solution

In addition to providing a rating, allow users to write a review that expresses their opinions and reasons for the quality of an item or satisfaction with their transactions (Figure 9.18).
B9780123742650000098/gr18.jpg is missing
Figure 9.18
Yahoo! Local allows users to both rate restaurants and write reviews.

Why

Users invariably trust reviews by other like-minded and “unbiased” users over the claims made by the product's seller. Edelman's Trust Barometer (2008) found that about 60 percent of people tended to trust people like them—that is, those who shared their interests and held similar beliefs. In addition, understanding a range of experiences from different viewpoints helps users judge how well an item's attributes match their needs, and thus they can make better, informed decisions.

How

Offer users an option to write a review in addition to rating an item. If an item has not received any ratings or reviews, encourage users to be the first to write a review (Figure 9.19).
B9780123742650000098/gr19a.jpg is missing
B9780123742650000098/gr19b.jpg is missing
Figure 9.19
For unreviewed products, HP asks users to be the first to review them (a). Yelp encourages users to review items quickly by recognizing the first reviewer (b).

ALLOW USERS TO JUDGE USEFULNESS OF EXISTING REVIEWS

To encourage users to write quality reviews and to minimize abuse, allow other users to vote on the usefulness of reviews (Figure 9.20).
B9780123742650000098/gr20.jpg is missing
Figure 9.20
Yelp allows users to rate reviews as “Useful,” “Funny,” or “Cool.”

ALLOW USERS TO SORT REVIEWS

To prevent giving undue emphasis to high or low ratings, show reviews in reverse chronological order by default. However, users may prefer to sort reviews by high ratings or low ratings (Porter, 2008). Therefore, allow them to sort reviews on the ratings and date posted.

Related design patterns

Reviews usually go hand-in-hand with RATINGS because users are generally asked to supplement their ratings with reviews. To improve the quality and usefulness of reviews, consider asking other users to indicate whether a review was useful and use that information to compute users’ REPUTATION. In addition, ask users to LOG IN before allowing them to write reviews to minimize abuse and biases (see Chapter 3).

Vote to Promote

Problem

Web applications driven by user-generated or user-contributed content2 need a way to determine the most useful or interesting content and make it available to the rest of the community.
2User-contributed content includes pointers to existing resources such as interesting news, video, photos, and so forth.

Solution

Allow community users to vote in favor of or against submitted items based on their usefulness, quality, or “interestingness,” and promote items with the most votes (Figure 9.21).
B9780123742650000098/gr21.jpg is missing
Figure 9.21
In the “New Links” tab, DZone.com allows users to vote a story up or down (a). The stories that receive the largest number of votes then get promoted to the “Popular Links” tab (b).

Why

In applications with an active user community, the total number of submitted items can be so large that identifying content that users will find useful and interesting can be extremely difficult. Designating a few people to identify useful stories for the rest of the community would be neither feasible nor practical. In addition, if items submitted by users are time sensitive (e.g., news stories), delays in surfacing relevant items may compromise the usefulness of the application itself.
Using a democratic voting process to identify items that deserve to be promoted and shared with other users is perhaps the most optimal way to make the application useful. Further, asking users to vote on items they find valuable also increases their involvement and participation.
This voting approach to promote a story has its downsides, however. Because voting is based more on what a user finds interesting, rather than the voted item's quality and verifiability (especially if it's a news story), often sensational stories are surfaced, leaving useful content at the bottom.

How

Show users submitted items and allow them to vote for or against them. As they cast their vote, increase or decrease the vote count and acknowledge that they have voted on the item (Figure 9.22).
B9780123742650000098/gr22a.jpg is missing
B9780123742650000098/gr22b.jpg is missing
Figure 9.22
When a user “diggs” a story on Digg (a), the total number of diggs increases by one and the “digg it” button label changes to “dugg!”

ALLOW USERS TO “UNVOTE”

Users should be able to change their minds—“unvote” an item—if they believe they made a mistake. Therefore, ensure that users can change votes (Figure 9.23).
B9780123742650000098/gr23.jpg is missing
Figure 9.23
Digg allows users to “undigg” a story on the users’ profile pages within 15 minutes of “digging” a story.

SHOW THE NUMBER OF VOTES FOR ITEMS

Show the number of votes received by items so users can determine the popularity of an item in comparison to others (Figure 9.24).
B9780123742650000098/gr24.jpg is missing
Figure 9.24
Yahoo! Buzz shows users the total number of votes received by a news item when a user hovers over an item.

TAKE STEPS TO MINIMIZE ABUSE

Users may have reasons to promote specific items or demote other items and may adopt practices to manipulate the voting system. To minimize such abuse, consider incorporating one or more of the following:
1. Allow only logged-in users to vote on items. This prevents abuse where a few users can artificially promote an item up or down.
2. Limit the number of items users can vote for or against within a certain time period.
3. Restrict the rate at which an item can be voted up or down.
4. Include criteria other than the total number of votes in computing an item's popularity score. For example, Digg considers the source of the story, user history, traffic in the category to which the items belong, and so forth to calculate an item's “interestingness.”

ALLOW VOTING TO BE INITIATED FROM ANOTHER SITE

To make it easy to promote an item, many social applications provide the means (i.e., widgets) to be placed on other web sites. Once placed on a web page, users can promote content directly from another web site rather than visiting the application that shows “promoted” content (Figure 9.25).
B9780123742650000098/gr25.jpg is missing
Figure 9.25
YouTube offers users several options to promote a video on applications such as Digg and Reddit.

Related design patterns

To allow voting to be initiated from other sites, it's important that the application support SHARING.

User Profile

Problem

Web applications that require users to log in typically store user information. Users need easy access to this information so they can manage (i.e., add, update, and remove) it and keep it up to date, if they so desire. In most applications, this information is private and accessible only to the account owner. Social applications, however, allow users to make some or all of this information public. User information, typically labeled as user profile, on such applications is quite detailed and may never be completely filled out.

Solution

Allow users to manage their profiles and keep all or part of their profiles private. In addition, for social networking applications, extend user profiles to include their connections and interactions with their online community (Figure 9.26).
B9780123742650000098/gr26.jpg is missing
Figure 9.26
Facebook allows users to manage their profiles and also to indicate how they want to share personal information.

Why

For online community–based applications and social networking applications, users’ identities are revealed through their profiles. The more detailed a user's profile, the easier it is for other users (and the application) to decide whether they share similar interests and whether they can trust him or her before connecting (or “friending”) them.
This is not to downplay the fact that users’ profiles may contain “made-up” information when they believe it will improve their appeal to other users—for example, in matchmaking applications and online marketplaces. However, part of users’ identities are also established by what others say about them—their ratings, recommendations, testimonials, and so forth—and can help, at least to a certain extent, to mitigate fraud and misrepresentation.

How

At the most basic level, user profiles include a name and photo; although the latter is usually optional. Any additional profile information should match the purpose of the application. For example, Google Health asks for users’ demographic information, medications, allergies, immunizations, and so forth, whereas Match.com, a matchmaking application, asks for information about physical and social characteristics and those users prefer for a partner (Figure 9.27).
B9780123742650000098/gr27a.jpg is missing
B9780123742650000098/gr27b.jpg is missing
Figure 9.27
Google Health's profiles include users’ demographic and medical information (a), whereas Match.com's profiles include physical and social characteristics of users and desired partners (b).

SUPPORT UNIVERSAL IDENTITY OPTIONS SUCH AS OPENID

Users may be hesitant when signing up for an application if they feel they may have to reenter all their personal information. To facilitate the transfer of such information, consider using universal identity options such as OpenID (see the REGISTRATION pattern in Chapter 3).

MAKE IT EASY TO CONNECT TO KNOWN USERS

Social networking applications rely considerably on users’ network of friends, family, and colleagues to improve their experience. However, transferring tens or hundreds of contacts can be time consuming. To facilitate the process, social networking applications typically offer an import feature from popular email applications and use that information to determine which users’ friends already use the application to help them connect with each other (Figure 9.28).
B9780123742650000098/gr28a.jpg is missing
B9780123742650000098/gr28b.jpg is missing
Figure 9.28
imeem, a social networking site for media professionals, offers users an option to find friends already on imeem after they have signed up (a) using users’ address books (b).

LET USERS BUILD THEIR PROFILES GRADUALLY

Users typically don't like to provide detailed personal information when signing up (see the REGISTRATION pattern in Chapter 3). However, to provide useful recommendations and/or to offer ways to connect them with other users with similar interests, it's important that users’ profiles be as complete as possible. To support such opposing user goals and application needs, build users profiles gradually. A common approach to effectively building a profile is to trigger relevant profile-related questions when users take certain actions. For example, LinkedIn asks users profile-related questions when they are requesting to connect with another user or accepting another user's request to connect (Figure 9.29).
B9780123742650000098/gr29.jpg is missing
Figure 9.29
LinkedIn asks users how they know another person when they are trying to connect with them. When they respond to the question, their profiles are updated accordingly.

GIVE USERS AN INCENTIVE TO UPDATE THEIR PROFILES

On social networking sites, the value of the application to users grows as they increase their connections. In such cases, offering an incentive, monetary or otherwise, can encourage people to update their profiles; this also benefits application providers, as more users may sign up for their service.

INDICATE TO USERS THE EXTENT TO WHICH THEIR PROFILES ARE COMPLETE

To encourage users to complete their profiles, indicate the extent to which they are complete. In addition, offer suggestions as to the actions they can take to improve the completeness of their profiles (Figure 9.30).
B9780123742650000098/gr30.jpg is missing
Figure 9.30
LinkedIn shows users to what extent their profiles are complete. They also suggest that adding a picture will increase profile completeness to 85 percent.

ALLOW USERS TO MAKE ALL OR PART OF THEIR INFORMATION PRIVATE

Profile pages usually help in three ways:
1. They make it easy for users of the application to find others and learn about them, as well as connect with them.
2. They help personalize the application for its users.
3. They help users maintain relevant information about themselves in one place.
Users should ultimately decide which information they want to keep private, even though the more users are willing to share information, the more useful the application can be made (Figure 9.31).
B9780123742650000098/gr31.jpg is missing
Figure 9.31
For each individual piece of information in the profile, imeem let's users decide whether they want to keep that information private (i.e., “Myself”), share it with users in the network (i.e., “Friends”), or share it with all imeem users (i.e., “Everyone”).

ALLOW USERS TO USE PSEUDONYMS AND AVATARS

In addition to allowing users to indicate which information they prefer to share (and not share), allow users to use a pseudonym and an avatar3 for themselves; they are also referred to as handles. Avatars have been particularly popular in forums and gaming applications where users may prefer to take on different personas (Figure 9.32).
3An avatar is a textual or graphical representation of a user in an online application.
B9780123742650000098/gr32.jpg is missing
Figure 9.32
When joining the Xbox 360 community, users can choose a pseudonym (i.e., “Gamertag”) and their avatar (i.e., “Gamer Picture”).
Because pseudonyms and avatars are how users “recognize” each other in social applications (because many of them may not have met in person), it is a common practice to restrict how often they can be changed. Many applications penalize users if they change their pseudonyms and avatars too often, and some of them may allow changing only the avatar but not the pseudonym. In addition, to encourage “good” behavior, online communities may restrict access to those who are unwilling to divulge their true identities (e.g., match making applications).

MAKE USER PROFILES DYNAMIC

For social applications, the user profile, in terms of information about users themselves, does not change enough and may become uninteresting for their network friends. To make it more relevant and more interesting, and to communicate what is happening in one's life, make the profile dynamic by doing one or more of the following (Porter, 2008):
• Show new friends, connections, and groups that a user has joined.
• Show a list of public comments (i.e., scraps, pokes, wall comments, etc.).
• Show users’ status and mood information.
• Show any recent activities in their applications that they have subscribed to (e.g., books they have read, movies they have watched, etc.)
Showing such information makes users' profiles seem more “alive” and useful for their friends.

Related design patterns

Because users have to register to set up their account and user profile, consider the best practices identified in the REGISTRATION pattern (see Chapter 3). In addition, because users may be interacting with others with whom they have no prior experience, they need a way to determine their trustworthiness, which may be established through their REPUTATION.

Reputation

Problem

In many community-based web applications, it's important that users feel comfortable interacting or transacting with others with whom they have no prior experience. In addition, given the available options, users may need some indicators to identify the trustworthiness or expertise of people who are offering suggestions, solutions, or products. Some common scenarios are choosing a seller from whom to purchase an item (e.g., eBay, Amazon Marketplace, NexTag), choosing a book to buy (e.g, Amazon), choosing a movie to rent (e.g., Netflix), choosing a restaurant to visit (e.g., Yelp), trusting a suggestion or an answer offered by a person (e.g., Yahoo! Answers), and so forth.

Solution

Enable some form of reputation system to help users identify those with high reputations. The reputation system must not only make it easy to identify and compare user reputations, but it should also have a consistent and reliable way for building reputations (Figure 9.33).
B9780123742650000098/gr33.jpg is missing
Figure 9.33
eBay allows buyers to rate sellers on several criteria. Once sellers receive 98 percent positive feedback, they receive a Power Seller badge.

Why

Online interactions and transactions (monetary or otherwise) involve two types of users: providers (or sellers) and receivers (or consumers) of services, products, and information. In the absence of a face-to-face interaction, providers need a way to establish trust or a positive reputation with receivers. Designing a reputation system is then a way to establish criteria for determining a reputation of providers and receivers within the community. Having a reputation system in place, therefore, helps users to anticipate the likelihood of the outcome when interacting or transacting with other community users.
Further, not all community users are equal—some are more experienced, reliable, and credible than others. Distinguishing them helps in determining how much weight to give their opinions and recommendations. Finally, using a reputation system is not just a way of establishing trust, but it can also serve as a way for users to build their reputations and is an important motivation for users to participate in community-based applications (Porter, 2008).

How

Users' reputation is typically based on two criteria (Figure 9.34):
B9780123742650000098/gr34.jpg is missing
Figure 9.34
Yelp offers several ways for users to gain a reputation: total number of friends, number of reviews, number of first reviews, number of fans, number of lists, number of compliments, and so forth.
1. A user's connections, actions, and history within the community. This commonly includes how long a user has been an active community member, the total number of connections (or friends), the number of followers (or fans), the number of recommendations, the number of reviews, and so forth.
2. The feedback from other community members. In other words, what others who have no apparent interest in a user's reputation say about him or her (Crumlish, 2004; Porter, 2008). Therefore, a reputation system must include a feedback mechanism to judge the quality, timeliness, and accuracy of claims made about the products, services, and information. In addition, a reputation system should be robust enough to prevent abuse and manipulation by its users.
Having multiple ways to achieve a reputation is important because it allows users to gain reputations in ways that match their behaviors and personalities. Like connectors and mavens in Malcom Gladwell's The Tipping Point (2000), some can achieve a reputation by having a large network and others by writing useful and extensive reviews.

OFFER USERS A QUICK WAY TO JUDGE A REVIEW'S USEFULNESS

Web applications that allow users to submit reviews, also allow readers of those reviews to indicate their usefulness. Allowing users to see the helpfulness of submitted reviews reduces the chances of bias and abuse and encourages reviewers to submit detailed and relevant information.
To make it easy to rate usefulness and not interrupt the task of reading reviews, users are typically asked to simply indicate if a review was helpful or useful without any accompanying comments or star-rating system (Figure 9.35).
B9780123742650000098/gr35.jpg is missing
Figure 9.35
Amazon asks users whether a review was helpful to them with “Yes” and “No” options. It also clarifies why users should judge the review by prefacing the question with “Help other customers find the most helpful reviews.”

RECOGNIZE THE ACHIEVEMENTS OF COMMUNITY MEMBERS

Like merit badges, recognizing achievement in communities helps distinguish performance, activity, and expertise levels among members. This may be as simple as achieving a Power Seller badge on eBay by maintaining a 98 percent positive feedback score and providing a high level of service to buyers. Achieving the Power Seller badge helps buyers know that they are working with an experienced eBay seller. It also helps sellers, since they may get more (and higher) bids as more buyers feel comfortable transacting with them.
Alternatively, the achievement may be in the form of ranked levels as on Amazon Web Services forum, where community members earn points by providing correct and helpful answers. By accumulating points, members achieve different score levels and receive associated icons (see Figure 9.36).
B9780123742650000098/gr36.jpg is missing
Figure 9.36
Community members on the Amazon Web Services forum can receive badges (e.g., “Ace,” “Expert,” “Guide,” etc.).

ON COMPETITIVE SITES, SHOW USERS’ RANKS

In web applications where users are competing with each other (e.g., Gaming), show their relative performance to help them understand where they rank relative to other players. This may be in the form of a leaderboard, which further helps because users can also see who the “top players” are (Figure 9.37).
B9780123742650000098/gr37.jpg is missing
Figure 9.37
Kwanzoo, an entertainment trivia site, shows top players’ ranks and points in a leaderboard format. It also shows whether a user moved up or down and by how much.
Leaderboards should be used with caution if they could lead to a perception of cheating. For example, Digg abandoned their Top Contributors page because it led to the perception of manipulation of the top stories on their home page (see blog.digg.com/?p=60). And on Amazon, there is a backlash against the reviewer Harriet Klausner, as other reviewers feel that she cannot possibly read seven books a day and post reviews in order to be the top reviewer (see Is Harriet Klausner for Real?, available at www.bokardo.com/archives/is-harriet-klausner-for-real/).

CLEARLY INDICATE HOW USERS CAN REACH THE NEXT LEVEL

When using different levels, make it easy for users to determine how they can reach the next level. This keeps users interested and motivated to participate (Figure 9.38).
B9780123742650000098/gr38.jpg is missing
Figure 9.38
Yahoo! Answers shows users how many points they have accumulated and the number of points that they need to get to the next level.

CONSIDER INCORPORATING PEER RECOMMENDATIONS

In the reputation systems discussed so far, users indirectly earn a reputation based on the swiftness of transactions, quality of the products delivered, usefulness of advice, and so forth. Many social networking applications, on the other hand, allow users to establish reputations through testimonials or recommendations that they receive. LinkedIn, for example, allows users to write recommendations for others. Users who get recommendations receive a thumbs-up icon on their profiles and an indication of how many people have recommended them.
Although it could be argued that peer recommendations are based on past interactions, transactions, or services provided, and there are other similar forms of reputation systems, an important difference is that the recommendation action is phrased more directly toward the person rather than the services offered or products sold by him or her—that is, “recommend this person,” instead of “recommend services offered by this person.”

Related design patterns

Both RATINGS and REVIEWS patterns may accompany REPUTATION because gaining reputation requires users to rate and review the transactions or activities they are involved with.

Discover Network Members

Problem

Users new to a social application may not know how to connect with others with similar interests or with whom they have lost touch. In addition, users who are part of other community-based applications may want to find out if anyone on their current “friends” list is already a member of the community they are joining.

Solution

Make it easy for users to discover network members based on common interests, past workplaces, other online communities, and contacts (i.e., email address books) (Figure 9.39). In addition, recommend friends based on users’ profiles and stated interests to make it easy for users to find new “friends.”
B9780123742650000098/gr39.jpg is missing
Figure 9.39
Facebook offers users several options to find friends: by email (and they allow the uploading of contact files); by schools, colleges, and work locations; and by IM buddy lists. They also offer recommendations via the “Discover People You May Know” section based on users’ profiles and current network.

Why

Social networking or community-based applications revolve around connecting users with current, past, and potentially future friends and colleagues. Without an easy way to connect with them, the community aspect of the application disappears.

How

Social networking applications can help users discover friends in a myriad of ways: by email address books, instant messenger (IM) buddy lists, users’ existing networks, recommendations, and searches. Having multiple ways to discover connections is important, since users may not have filled out their profiles completely and may use email addresses differently than those in their address books.

ALLOW DISCOVERY OF FRIENDS BY EMAIL ADDRESS BOOKS

Enable users to import their existing address books from popular email applications such as Outlook, Gmail, Yahoo! Mail, and so forth (Figure 9.40). Offer this as an option during sign up. This helps in the following ways:
B9780123742650000098/gr40.jpg is missing
Figure 9.40
When signing up, Yelp offers users an option to find existing friends by matching their contact lists on email systems such as Hotmail, Yahoo! Mail, AOL Mail, and Gmail.
1. To facilitate quick sign-up, users typically provide (or are asked to provide) very minimal information about themselves. This makes it difficult to connect them with people they already know in the community. By not getting a sense of community after signing up, users may question the usefulness of the application and may not return.
2. Accessing users’ email address books is relatively straightforward once they have provided their login credentials, which makes it easy for the application to help users find and connect with those already in their contact lists.

ALLOW DISCOVERY OF FRIENDS BASED ON USERS’ PROFILES

Another option is to allow users to discover friends based on their profiles. Once users have completed at least part of their profiles with information about their workplace or educational institutions, inform them about users who match their information (Figure 9.41).
B9780123742650000098/gr41.jpg is missing
Figure 9.41
Using past organizations and educational institutions in users’ profiles, LinkedIn offers options to discover friends.

ALLOW DISCOVERY OF FRIENDS BASED ON EXISTING CONNECTIONS

Allow users to explore their friends’ profiles and view friends’ friends to make it possible for them to discover common friends they didn't know were part of the community. In addition, rather than making users actively browse friends’ profiles to discover common friends, the application can periodically suggest friends from users’ connections who they may know.

ALLOW USERS TO SEARCH OTHER COMMUNITY MEMBERS

Offer users a standard and/or parametric search mechanism to find people (Figure 9.42) in addition to allowing them to discover members based on their profiles, address books, and buddy lists (see SAMPLE SEARCH and PARAMETRIC SEARCH in Chapter 6).
B9780123742650000098/gr42a.jpg is missing
B9780123742650000098/gr42b.jpg is missing
Figure 9.42
LinkedIn offers users several options to search their membership list (a). They also offer a reference search for finding people in one's network who may be able to provide references for a candidate (b).

REQUIRE CONFIRMATION OF “FRIEND” REQUESTS

While it's easy to find network members with whom users may want to connect (i.e., a “friend”), it should not be an automatic process. It's important that requests to “friend” someone are acknowledged and confirmed before adding them to the friends’ lists. In addition, when accepting a request to become a friend, it helps to ask them to indicate the nature of their relationship. This information can be used to update profiles (and make them more complete) and further discover other network members with whom users can connect.

SUPPORT THIRD-PARTY INTRODUCTIONS

Users may want to “friend” with the community of users they do not know. Although users should be permitted to send direct requests to add them to their network, if there's a mutual friend that both users know, allow them to be introduced. This may help reduce hesitation on the part of both users in becoming friends.

ALLOW USERS TO “FOLLOW” OTHERS

Offer another recently popular “friending” approach called “following,” where users can visit other users’ profile pages and choose to “follow” their activities (or “status” in Twitter's case) (Figure 9.43).
B9780123742650000098/gr43.jpg is missing
Figure 9.43
Twitter allows users to follow other users; “followed” users’ activities are then shown as updates on the “followers'” pages.

Related design patterns

As users add friends to their networks and indicate their relationship to their friends, it offers a good opportunity for the application to update their USER PROFILES. In addition, it is important to offer mechanisms for users to grow their network, because the size of the network is an important factor that contributes to their REPUTATION.

Friend List

Problem

Users are likely to communicate with the same core group of people—friends, colleagues, family, and acquaintances. Requiring them to remember their information every time they want to contact someone would make the interaction inefficient.

Solution

Allow users to create and maintain a friend list (Figure 9.44). A friend list is also referred to as “buddy list,” based on the name given to it by America Online (AOL) when they first offered the chat feature.
B9780123742650000098/gr44.jpg is missing
Figure 9.44
MySpace allows users to view and manage their friend lists on the My Friends page. In addition, it allows users to group friends into separate categories. They can also indicate privacy settings in terms of who can view the categories they create.

Why

A friend list is similar to an address book and enables users to find their friends and their profile information quickly. In addition, like address books, many users of social networking applications have tens to hundreds of friends. If presented just as a simple list or paginated list, finding friends can become difficult. Therefore, it's important for users to be able to group their friends based on their relationship, how frequently they interact, how they were introduced, and so on. In essence, this helps users maintain, if they so desire, an accurate “social graph” of their friend list. Furthermore, this feature also allows them to tailor their privacy controls and send messages to each branch of their social graph.

How

Update users' friend lists whenever they accept a request to become a friend or when their request to “friend” someone is accepted.

ALLOW USERS TO GROUP THEIR FRIENDS

Users may want to group their friends to make finding them easier—for example, they may want to group them based on the nature of their relationship or on the frequency of their interaction with them. To afford maximum flexibility on how they want to organize their friends, allow them to create their own groups. If users have created groups, make assigning friends to a group part of the accept (or “request to add”) process (Figure 9.45).
B9780123742650000098/gr45.jpg is missing
Figure 9.45
Orkut allows users to group their friends into different categories. By default, they offer the groups “best friends,” “family,” “school,” and “work”; users can also create their own groups and put the same friend in more than one group.

MAKE THE FRIENDS LIST EASILY ACCESSIBLE

Among the common reasons users visit social networking applications is to interact with their friends or see their status and history. To enable quick access to such information, make it easy for them to access their friend list. Most social applications allow users to see a list of friends on their home pages.

ALLOW USERS TO VIEW THEIR FRIENDS’ ONLINE STATUS

An important reason to maintain a friend list is to enable messaging between friends (both synchronously and asynchronously). To initiate asynchronous messaging (i.e., chats), it's important to know if a friend is online (Figure 9.46; see the MESSAGING pattern later in this chapter).
B9780123742650000098/gr46a.jpg is missing
B9780123742650000098/gr46b.jpg is missing
Figure 9.46
MySpace allows users to filter their friend list by who is online (a). Gmail, on the other hand, shows a green bullet in front of users online (b).

Related design patterns

A friend list may be shown as an IMAGE GRID (see Chapter 7). In addition, the PRESENCE INDICATOR pattern is also relevant because many applications show friends’ online status to promote messaging between users and their friends.

Groups and Special-Interest Communities

Problem

Users need a way to connect with those with similar interests and experiences so that they can learn, share their knowledge and opinions, build relationships, grow professionally, grow their networks, and so forth.

Solution

Allow users to join and create groups, also referred to as forums or online communities (Figure 9.47).
B9780123742650000098/gr47.jpg is missing
Figure 9.47
LearnHub, a site that supports educational communities, allows users to join existing ones or to start their own community.

Why

One of the reasons users participate in community-based applications is to connect with those who share similar interests and experiences. Enabling users to create groups and connect with others therefore contributes to a sense of community and encourages participation. For companies, forums and communities are also useful for customer support because they allow customers to help each other and, in the process, reduce support costs.

How

Groups or online communities are virtual places where users with like interests can share and connect with each other. Therefore, a community can be in the form of discussion groups around a topic (e.g., Usenet); groups created within a social networking application (e.g., Facebook); discussions around social objects such as photos, music, movies, books, and so forth (e.g., YouTube, Flickr); comments in response to a blog entry (e.g., blogger); or communities created by companies to support their customers (e.g., Dell Support Forums).
Groups can be derived dynamically by using shared tags (Figure 9.48), or users can create them explicitly based on their interests or some other criteria (Figure 9.49). Creating groups dynamically is a good way to discover people who share common interests. However, they may not be sustainable when users have not chosen to be part of that group. Explicitly formed groups, on the other hand, require users to join them and may have better chances of surviving.
B9780123742650000098/gr48.jpg is missing
Figure 9.48
43 Things creates groups dynamically based on tags.
B9780123742650000098/gr49.jpg is missing
Figure 9.49
Facebook allows users to create their own groups.
Groups may also be created around specific events by people attending, or those wishing to attend, the event. Events are just a type of group with additional information (e.g., location and dates). The advantage of event-based groups is that they can allow users to navigate to relevant groups using a calendar and a location. A good example is SlideShare (www.slideshare.net), where users can create event-based groups.

ALLOW USERS TO MAKE GROUPS PUBLIC OR PRIVATE

Groups created by users can be either public or private (Figure 9.50). Public groups are helpful for general-interest subjects, such as cooking, hiking, politics, and so forth, that are likely to invite participation from many users. These public groups may spawn more specialized subcommunities as their users’ interests demand. Private groups are typically created by users who have very specific goals or are dealing with topics that are sensitive in nature.
B9780123742650000098/gr50.jpg is missing
Figure 9.50
Facebook categorizes groups into open, closed, and secret groups. Open groups are public groups, secret groups are private groups, and closed groups are semipublic, since they require approval of the group administrator to join.
Public groups can be joined by anyone and may or may not require acceptance by the creator of the group. Private groups, on the other hand, are restricted to those invited by the creator of the group. Joining public groups is usually as easy as clicking “Join this group” and confirming the intent.

ENCOURAGE USERS TO JOIN AND PARTICIPATE

Users generally prefer to join groups or communities that are active. Therefore, it is important to show indicators of group activity such as number of users, number of posts, number of replies, recency of posts, and so forth (Figure 9.51).
B9780123742650000098/gr51.jpg is missing
Figure 9.51
Flickr shows users the number of group members (a), the “photo pool” (b), and a list of ongoing discussions (c) to indicate activity in the group.
It also helps to show a gallery of active group users. This may be done by showing users’ avatars as part of the discussion and/or showing a gallery of new or active community members.

SHOW USERS THEIR FRIENDS’ GROUPS

Because users share some commonality with their friends, they are more likely to join the groups to which their friends also belong. Therefore, it's important for users to see the groups their friends have joined.

CREATE COMMUNITIES TO INVITE IDEAS AND SUGGESTIONS

It is not necessary to have communities started only by users. They may be started by companies to invite comments and feedback from customers (Figure 9.52).
B9780123742650000098/gr52.jpg is missing
Figure 9.52
Rally Software uses communities to support new and existing users, share their release backlog, invite users to request features, and so forth.
Several companies have used communities to shape their products and service offerings. Salesforce.com uses the IdeaExchange community to invite ideas from its users and ask users to promote or demote ideas they consider for their roadmap (see ideas.salesforce.com/popular/ideas_under_consideration).

Related design patterns

TAG CLOUDS are important navigation mechanisms for dynamically created groups because users can click relevant tags and navigate to the desired group (see Chapter 5). In addition, as users participate in communities, they may gain a REPUTATION based on the quality of their contribution.

Messaging

Problem

One of the reasons users participate in an online social community is to be able to communicate with one another. This may be in the form of a conversation (i.e., chat) or as a message that can be responded to later. In some instances, users may want to send a broadcast message—that is, send a message to several people at once—and they may not necessarily need a response.

Solution

Enable users to communicate with each other synchronously (e.g., chat) or asynchronously (e.g., messages, pokes, scraps, etc.) (Figure 9.53).
B9780123742650000098/gr53.jpg is missing
Figure 9.53
Facebook offers users several messaging options: send an email, chat in real time (a green bullet indicates that the user is online), and poke (a nonverbal message).

Why

An important aspect of being in an online community and sustaining it is to encourage communication among its members. The easier it is for users to communicate with each other, the more likely that the community will be able to thrive and sustain itself.

How

Allow users to communicate with each other synchronously in real time using Instant Messaging (IM) features (e.g., chat), as well as asynchronously via sending messages to one another or posting messages on a shared public area. The most common asynchronous messaging options are to allow users to send private messages to an individual (Figure 9.54) or posting a comment in a forum or blog.
B9780123742650000098/gr54.jpg is missing
Figure 9.54
LinkedIn allows users to communicate with each other using the “Send a Message” option.

TO FACILITATE CHATS, SHOW FRIENDS’ ONLINE STATUS

Because synchronous messaging requires users to be online simultaneously to initiate conversation, indicate whether users are online (Figure 9.55; see also the PRESENCE INDICATOR pattern next for additional details).
B9780123742650000098/gr55.jpg is missing
Figure 9.55
Facebook shows users the number of their friends who are online.

SUPPORT BROADCAST MESSAGES

Although one-to-one communication between users is effective via messaging options such as chat and email, users may want to write a message for everyone to see. It's a broadcast message rather than a message targeted to a specific person in the network. Several different terms are in use today to indicate this feature, such as walls (e.g., Facebook), scraps (e.g., Orkut), and comments (e.g., MySpace) (Figure 9.56).
B9780123742650000098/gr56.jpg is missing
Figure 9.56
Facebook allows users to post comments on their friends’“walls.”

ALLOW USERS TO INDICATE THEIR MESSAGING PREFERENCES

Because broadcast messages, such as comments and scraps, are part of a user's profile, they are visible to anyone who is granted access to profiles. However, allow users to manage permissions so that they can specify who can write and view comments (Figure 9.57). Once set, it's important that such preferences be clearly indicated on users’ profile pages (Figure 9.58).
B9780123742650000098/gr57a.jpg is missing
B9780123742650000098/gr57b.jpg is missing
Figure 9.57
Facebook allows users to specify who can write comments on the wall (a). It also allows specific users to be excluded from writing comments (b).
B9780123742650000098/gr58.jpg is missing
Figure 9.58
Yahoo! Answers indicates users' communication preferences on their profile pages. In this example, the user has chosen to not communicate via either IM or email.

Related design patterns

To allow users to communicate synchronously (i.e., in real time), it's important that they know when their “friends” or “contacts” are online. Having a PRESENCE INDICATOR helps communicate users’ online status and willingness to converse.

Presence Indicator

Problem

In applications that allow users to interact with each other and maintain their friends (or contact) list, users may want to know whether and when they can initiate a real-time conversation with one or more friends.

Solution

Show users an indication of whether another user is online (Figure 9.59). However, respect each users’ privacy preferences and do not indicate their status, if they so desire.
B9780123742650000098/gr59.jpg is missing
Figure 9.59
Meebo, an online IM aggregator, shows users their contacts and online statuses. Like other desktop-based instant messaging aggregators, it groups offline users separately and distinguishes contacts’ IM account types with icons.

Why

An important purpose of community-based applications is to promote interaction and communication among its members. Although this can be achieved by offline messaging approaches such as email, allowing real-time communication promotes a better sense of community. Therefore, knowing whether a user is online can suggest to others if they can initiate a conversation.

How

Like instant messaging programs (e.g., AOL Instant Messenger, Yahoo! Messenger, MSN Messenger), uses a status image or some other marker to indicate whether a user is online.

ALLOW USERS TO INDICATE THEIR ACTIVITY STATUS

A recent trend is to allow users to indicate their activity status along with their presence indicator (Figure 9.60). This approach is also referred to as status casting (popularized by Twitter, which allows users to send short messages informing others of what they are doing). Status casting is similar to status messages in IMs, where users indicate their current status such as “Busy,” “ Out to lunch,” “Be right back,” and so forth, except that many of the instant messengers offer preset options for users to choose from in addition to allowing users to set their own messages.
B9780123742650000098/gr60a.jpg is missing
B9780123742650000098/gr60b.jpg is missing
Figure 9.60
Facebook allows users to indicate what they are working on (a). Once they indicate their status, it is shown to other users (b).

ALLOW USERS TO SET THEIR STATUS PREFERENCES

For privacy, or other reasons, some users may choose not to display their online presence indicator and status to other users. Or they may want (or not want) specific users to see their online status. To accommodate such preferences, allow users to set their preferences as to who can (and cannot) view their status.

Related design patterns

Online presence indicators are useful not just for knowing if other users are online but also in deciding whether to initiate a conversation with them. Therefore, the PRESENCE INDICATOR pattern usually accompanies the MESSAGING pattern.

Sharing

Problem

Users may want to share content—photos, videos, news articles, and so forth—with others; the content being shared may or may not belong to the person sharing it.

Solution

Enable users to share content with others (Figure 9.61).
B9780123742650000098/gr61.jpg is missing
Figure 9.61
SlideShare offers several sharing options. When someone uploads a slideshow, it's automatically shared with others. In addition, users can click “Share this slideshow” to invite specific people to view it, or they can share it with the general population by adding the link to applications such as Digg, Reddit, and MySpace.

Why

There are several reasons why users may want to share information, including (Porter, 2008):
• To keep family and friends informed
• To share unique and/or enjoyable experiences
• To reciprocate
• To help answer others’ questions or do research
• To introduce people to one another
• To share laughs
An interesting by-product of sharing is that it may help users increase their reputation within the community—by recognizing them as experts in some fields (see the REPUTATION pattern earlier in this chapter). In addition, sharing is the foundation of social interaction. For a community to thrive (and survive), whether online or offline, it's essential that it support sharing and improve participation and interaction between its community members.

How

Porter (2008) identified two forms of sharing: implicit and explicit. Implicit sharing occurs when content is shared by virtue of users’ participation in a community. For example, when users bookmark a page on Del.icio.us, upload photos to Flickr, or put videos on YouTube, the items are implicitly shared with the rest of the community, unless they are marked as private by users. Explicit sharing, on the other hand, requires users to send an explicit message, usually via an email, to access or post content on applications such as Digg, Reddit, Del.icio.us, and so forth.
Implicit sharing doesn't require any specific action from other users either. Items are shared with community users as soon as they are posted or made available to the application (Figure 9.62).
B9780123742650000098/gr62a.jpg is missing
B9780123742650000098/gr62b.jpg is missing
Figure 9.62
Users’ photographs are shared with all the Flickr users (a), unless marked as private when uploaded (b).

ALLOW USERS TO SHARE CONTENT VIA EMAIL

The most basic sharing feature is to allow users to send interesting content (e.g., news stories, recipes, photos, videos, travel plans, etc.) via email. Allow users to enter one or more recipient names and email addresses and their own information to let recipients know who is sending the information. The shared content may be part of the email or sent as a link depending on the nature and size of the content. For example, recipes may be included in the email itself, but photos and videos may require recipients to follow a link provided in the email.
To ensure that users who initiate sharing are human, consider using CAPTCHA (see Chapter 3). In addition, to quell users’ concerns about the web company's intent to harvest email addresses, include a link to the privacy policy.

ALLOW USERS TO POST CONTENT ON OTHER SITES

With increasing user participation, it's important to make sharing easier through third-party applications as well. Many applications and content sites now allow users to promote content on their applications through sites such as Digg, Facebook, Del.icio.us, and so forth (Figure 9.63).
B9780123742650000098/gr63.jpg is missing
Figure 9.63
SlideShare allows users to share a presentation to a variety of web applications.

SET UP PERMALINKS

Permalinks are permanent URLs for web content and make it easy to link to a specific blog or forum post. Content that may move from its current location (e.g., home page or the front page of a blog) benefits from having a permalink because the link does not change and therefore makes it easy for other users to link to it.
For example, with blogs, the main blog page changes as new entries are posted. When a blog entry first appears, it may be at the top of the page and then moves down the page as more entries appear, eventually getting pushed to a different page. To make sure that users can access the entry any time in the future, allow users to access it using its permalink.
Permalinks are also useful when content is likely to be linked from sources other than the application providing the content. In addition, permalinks are typically designed to be easier to read compared to the original URL.
Using the format shown in the Tip consistently allows web crawlers to extract permalinks and establish the relationship between the documents rather than deciphering the relation from the anchor (i.e., <a>) tag.

TIP
Include the permalink of a page within the HTML using rel=“bookmark” as follows:
<link rel=“bookmark” href=“permalink URL”/>

ALLOW CONTENT TO BE EMBEDDABLE

Allow content such as videos, forums, and so forth to be shared by making it embeddable on applications other than where the original content resides. Make embedding content easy by requiring users to copy the necessary HTML (or JavaScript) and paste it on a web page and publish it to the server (Figure 9.64).
B9780123742650000098/gr64.jpg is missing
Figure 9.64
Not only does YouTube make it easy for users to embed a video on web pages of their choosing, but it also allows them a few customization options.

OFFER PRINTABLE VERSIONS OF THE PAGE

Not all sharing happens online. There are users who prefer to share printed materials. Offer them options to view a printer-friendly version of the page or a PDF (Figure 9.65). They can then print the page or share it offline. If they have Adobe Acrobat, users may find it easier to annotate the material as well.
B9780123742650000098/gr65.jpg is missing
Figure 9.65
Knowledge@Wharton not only offers users the online options to read the article, listen to it, and share it with others, but it also promotes offline use by allowing the download of the audio and article's PDF version.

Related design patterns

To prevent spam or submissions by automated web crawlers, CAPTCHA is often used when users share content with others (see Chapter 3). Sharing is also the first step for COLLABORATION.

Collaboration

Problem

When sharing, users may not want to just share information with others but also work with them collaboratively by letting them contribute to the final result.

Solution

Enable collaboration such that the participants can work on the same item (e.g., documents, worksheets, etc.) at the same time or by taking turns (Figure 9.66).
B9780123742650000098/gr66.jpg is missing
Figure 9.66
Google Docs allows multiple users to work on the same worksheet at the same time. To distinguish among participants, they are assigned different colors. It also allows them to chat while working on the same document, further facilitating collaboration.

Why

For their successful completion, many tasks require collaboration between two or more people. The nature of collaboration is often in real time, where all participants work (i.e., discuss, write, sketch, chat, etc.) simultaneously, or collaboration may be of a turn-taking nature, when only one person works on the item at a time.

How

Collaboration involves several activities: sharing information with others, coordinating and inviting others to participate, working together on shared documents, reviewing changes and updates, and, if necessary, reverting to older versions.

ALLOW USERS TO SPECIFY THE NATURE OF SHARING

As a first step in collaboration, users must share the item with others and specify how the item should be shared. The item's owner can determine whether the people with whom the item is shared can view the item, comment on it, and/or modify it (Figure 9.67).
B9780123742650000098/gr67.jpg is missing
Figure 9.67
Buzzword (from Adobe) allows users to indicate the roles of people with whom the document is shared: “Co-author,”“rdquo; ”“ldquo;Reviewer,” or “Reader.” A reader can only view the document, a reviewer can read and comment on the document, and a co-author can read, comment, and modify the document.

FACILITATE SCHEDULING

Coordination is an important aspect of working together. An important task when working together is to determine a mutually convenient time for all participants. This can be done in several ways. One approach is to allow participants to share their schedule so that available times can be discerned from the schedules of all participants. Many calendar web applications allow users to share their calendars to help identify times that are open for scheduling (Figure 9.68).
B9780123742650000098/gr68.jpg is missing
Figure 9.68
This example from Google Calendar shows four shared calendars. Once overlapped, it's easy to see that the only open time for all four users is on Tuesday from 12:00–12:30 p.m.
When sharing calendars is not possible, a common approach is to have the team leader suggest a few times and let the rest of the team members vote on their most preferred time (Figure 9.69).
B9780123742650000098/gr69.jpg is missing
Figure 9.69
To find a mutually convenient time, Doodle.ch allows users to create a poll and have the rest of the team members respond by checking convenient times to hold a meeting or an event.
Not all meetings can be scheduled. Often, when chating or having a conversation, users may want to share a document or start a collaborative session. Allow users to have such impromptu meetings to improve collaboration.

ALLOW ADDITIONAL MODES OF INTERACTION

While working in real time, either on the same document or brainstorming using a whiteboard, improve collaboration by letting participants see each other, chat with each other, talk to each other, write notes, and so forth (Figure 9.70).
B9780123742650000098/gr70.jpg is missing
Figure 9.70
Adobe's ConnectNow allows users to chat, take notes, view each other on a web cam, talk to each other, and so forth while having a meeting or collaborating on a whiteboard.

ALLOW USERS TO MANAGE REVISIONS

When working together on the same document, it's important that users are not overwriting one another's updates. The application should create necessary “locks” to make the interaction relatively seamless, rather than having users “check out” documents to make changes and then “check in” the updated documents (Figure 9.71).
B9780123742650000098/gr71a.jpg is missing
B9780123742650000098/gr71b.jpg is missing
Figure 9.71
While showing users who is editing the document (a), Adobe Buzzword does not permit others to make changes. If they attempt to do so, a message indicating the reason they are “locked” from updating the document shows up (b).
When several participants work on a document, it's important to know what changes were made and who made them. Most applications allow users to select versions of the document and show a comparison by highlighting what was added, deleted, and changed (Figure 9.72).
B9780123742650000098/gr72.jpg is missing
Figure 9.72
When comparing revisions, Google DOCS indicates the changes that were made and who made them.
Once users have identified the changes, if they do not agree with the changes or prefer a previous version of the document, they should be allowed to revert back to any of the previous versions (Figure 9.73). This is very common in wikis, 4 where pages can be added, edited, or deleted by any of the participants. Most wikis, therefore, allow users to roll back the pages to previous versions.
4A wiki is a web application that allows users to collaboratively create, edit, and link web pages using a very simple markup method; more recently, wikis have provided rich-text editing capabilities as well.
B9780123742650000098/gr73.jpg is missing
Figure 9.73
Zoho Writer shows users the documents' version in the “Show version” dropdown list. Users can view any version and then click “Revert” to revert to that document. Note that this feature is enabled for users regardless of whether they are collaborating.

Related design patterns

The first step in collaboration is SHARING documents or other artifacts; in addition, to facilitate collaboration, MESSAGING among users is essential.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.224.109.21