- Begin with a Plan
- Facebook's Guiding Principles
- Examples of Great Applications
- Summary
Facebook's Guiding Principles
Facebook has laid out a set of Guiding Principles to help developers understand how to make successful applications. Most of these seem like common sense, but you can easily find applications that don't follow any of these guidelines and suffer the consequences of low user count, bad reviews, and short lifetimes. Not every application has to offer all these things, but the better an application is at incorporating them, the better its chances are of getting and keeping users.
Make Them Meaningful
As previously discussed, applications need to provide users with some value. That value must be apparent to get users to authorize it, and they must continue to see value to keep it on their profile, allow it into their stream, invite their friends, or simply keep using it. The following sections discuss the types of value recommended by Facebook's Guiding Principles.
Enable Social Activities
The most powerful feature of Facebook is the social graph. Harnessing the information from a user's friends allows applications to help them connect in new ways or more easily, or just learn more about each other. Some good examples of applications that use Social Activities are iLike, which helps music Fans create and share playlists, and Movies, which uses quizzes to identify similar movie tastes with friends.
Be Useful
Applications must strive to do more than allow users to "throw sheep" at each other. They need to help users easily organize things on a scale that just isn't possible outside of Facebook. Applications like We're Related enable users to quickly build their family trees, whereas users of Cities I've Visited can mark their travels and create reviews to share with everyone.
Allow Users to Express Themselves
Users can fill out their profile info, update their statuses, and upload photos and videos using Facebook's built-in applications. However, many more possibilities exist to allow users to share more about themselves and create content. Sports applications, like Boston Red Sox Fans, allow users to show off their sports affiliations by starting Waves. (Lil) Green Patch lets users demonstrate their support for the environment by building a Green Patch with their friends.
Engage Users' Attention
Applications need to be interesting enough that users will want to use them more than once, even for short periods of time. Social games, like Texas HoldEm and Scrabble, enable users to play against each other. SuperPoke, with its large variety of pokes, has people constantly sending things back and forth.
Make Them Trustworthy
Reading stories about people losing out on jobs because of pictures they shared on Facebook might make you think that privacy isn't that important to Facebook users. Based on the reaction to the last changes Facebook made to its Terms of Use, users really care about it. (Chapter 5 covers this.) They also want applications to work as they expect, both in the interface and in the messages it sends on their behalf.
Secure User Privacy
Facebook users put a lot of trust in applications to treat their data carefully; applications have access to information that some of their friends can't see! Users expect that the same privacy settings they have set in Facebook will be mirrored in the applications they use. Therefore, Facebook requires users to take specific actions to allow applications to get detailed user information, send emails, and access their data when the user isn't online. However, applications must keep user data secure and private without Facebook forcing them to do so.
Be Respectful of Users
Most applications want their user base to grow, and Facebook provides many methods to let users tell their friends about an application. This creates a temptation to use all the available methods at all opportunities. However, users don't want to be spammers—they want to pass on only information that they think their friends will find interesting. Applications end up being proxies for these users, so the applications must use these communication channels carefully and with content that users would find acceptable.
Have Transparent Functionality
When a user clicks a button or accesses an application, he expects a certain behavior. Applications must not trick users with something else, such as an OK button that secretly sends messages to all of their friends without their permission or creates News stories about actions they never took. Applications that abuse a user's trust will be uninstalled, reviled, and can be suspended by Facebook, as Chapter 5 outlines.
Make Them Well Designed
Well-designed applications are a pleasure to use. Their easy-to-use interfaces consistently deliver the results that users expect.
Build Clean Interfaces
The best looking application in the world will fail if it is too difficult to use. Sometimes, even one difficult step in a workflow is enough to doom an application to failure. When an application is intuitive, users can quickly navigate it, use all the available functionality, and are likely to come back. Design workflows up front and test them after launching to make sure that they function as both you and users expect. Look at top applications for interface patterns that work well and have gone through many iterations in response to user feedback.
Respond Quickly
When applications take a long time to respond to user actions, one of two things will happen: The user will get tired of waiting and give up, or Facebook will display a timeout page saying that something is wrong with the application. In either case, the user didn't get what she expected and, if it continues to happen, she will stop using the application. Use the Insights tool for your application to look at the response times and timeouts, and work to fix these as soon as possible. It is important to identify performance issues early in the cycle, before scalability becomes a real crisis.
Work Reliably
Great applications have great quality. Functionality should be tested before and after deployment to make sure that everything works. When things do go wrong, the developer needs to work to resolve the problems quickly and communicate the results or status with affected users. Users appreciate applications that respect their time and trust.