Preface
Over the past decade, the Web has become an increasingly social place. Social activity has moved beyond message boards to become a wider part of the Internet. Most people have heard of Facebook, MySpace, and Twitter; indeed, many people now have a profile on a social network. The term social media is part of our lives for better or for worse, and expressions such as citizen journalism are commonplace. Facebook alone has more than 200 million registered people.[] What is different in this new world? People will come to you with a prior existence; they are on the Web already.
You need to recognize and incorporate this change into your design and development processes. Your website needs to offer something genuinely useful and become a home away from home for your community; the people coming to your site need to feel comfortable talking to other people there and keen to come back for more.
This book is about making applications in this new Web, frequently referred to as Web 2.0. Much heat and light (and a lot of hot air) have been spent on defining exactly what Web 2.0 is, but this book will focus on the social web. Over these 18 chapters, well look at designing systems that support social human behaviors. Ill be using terms such as social software and community to describe what we are building and to reinforce the idea that there are people out there, beyond the servers.
Design As the Primary Approach
This is primarily a design is how it works book, based on my experience as an interaction designer and product manager. The hardest part of creating a social application happens before any code is written. Understanding human behavior and creating something that fits in and perhaps changes current behavior is a tough nut to crack. There will be plenty of technical discussion later in the book, too. This book will show you how the Web is changing, as well as some emerging patterns for widespread social interaction, where individuals act as a composite person across dozens of sites on the social web.
Who This Book Is For
The book is aimed primarily at developers and designers (of all kinds: product, interaction, and visual), as well as project managers and editorial staff members. These are the people who will be implementing and running the actual product. If you are already running a web community, perhaps as a community manager or a developer evangelist, this book will help you figure out how to extend the functionality of your site to make the most of your community. If you have one of the many other roles involved in making a web company tickbusiness owner, web producer, marketing, or editorialthis book will help you understand the issues involved in bringing people to your website.
Who This Book Is Not For
I hope this book has something to offer most people who are considering building a social web application. However, I should give you an idea of what you will not find in these pages. If you are looking for detailed code examples of how to implement the various features in social web applications, this book is not for you; it is deliberately light on code samples. Languages and frameworks rise and fall in popularity, and Im not a regular software developer. So, rather than include a load of code I didnt write, I spoke to a range of active software developers and included their thoughts throughout the book.
What Youll Learn
There are dozens of decisions you will need to make before you can launch your new feature or site. This book aims to help with the ones that fall between project management, design, and development. These are the decisions that derive the essence of the product you are making, but there is no single group of people that makes them.
The title of this book deliberately focuses on the application side of building things for the Web. Websites are gaining application programming interfaces (APIs) and a means of data exchange, so they are becoming more application-like and less a collection of pages.
The Web is important, but it is not all-encompassing (for most people). You need to see your website in the context of peoples lives, not the other way around. Building social software focuses mainly on human behavior and expectations and less on technical issues, so there is not a lot of code in this book. Reading this book will challenge you with a wide range of questions about the site that you have or are planning. Answering these questions will enable you to build an appropriate product that fits well into peoples lives. This book will help you articulate and quantify some critical things:
How to go about creating the productthe vital initial planning phase
How to figure out what to make first and what you are actually making
How to model the relationships between yourself and the people on your site, as well as their independent relationships to one another
How to represent these relationships in ways that feel right for your audience
Understanding how your website interacts with the rest of the Web, how to make these connections stronger, and why this is a good idea
How to implement these ideas in code, and the issues you will need to deal with when iterating your site after launch
Why having an API is important for your site
Why simple feature-for-feature copying of another site often fails
You must know how to do the following things in order to encourage a devoted community :
I cant guarantee that reading this book will allow you to create the next Flickr or Facebook, but you will understand what made those sites a success, as well as how to apply those ideas and nuances to your own area.