Today's Web is the product of over a billion hands and minds. Around the clock and around the globe, a world full of people are pumping out contributions small and large: full-length features on Vimeo; video shorts on YouTube; comments on Blogger; discussions on Yahoo! Groups; and tagged-and-titled Del.icio.us bookmarks. User-generated content and robust crowd participation have become the hallmarks of Web 2.0.
But the booming popularity of social media has created a whole new set of challenges for those who create websites and online communities, as well as for the users who consume those sites:
Reputation systems can provide an effective solution to all of these problems.
What is reputation in an online community? In its broadest sense, reputation is information used to make a value judgment about an object or a person. There are potentially many components to reputation. For example, karma is a reputation score for a user in a community, it may be comprised of many components, such as:
Having access to a person's reputation might help you make better informed judgments. Judgements like…
The same principles of reputation can also be applied to that person's individual contributions-the video, photo or textual content that they've authored. Content reputation can answer questions such as:
For the site operator, reputation is at its most powerful when karma (people reputation) is used in concert with content reputation to increase your understanding of your online community, and the relative value of its participants and contents. For the community itself, reputation is relevance. To the site, reputation represents value and return on investment.
So What does a reputation system do? It powers the whole process: it monitors the community; makes note of the actions that community-members take; assesses the community's response to those actions; and keeps a running tally of the history of it all. (Optionally, the system may then show the results of these calculations back to users, enabling them to make judgments about the people and things they encounter.)
Reputation systems are the underlying mechanisms behind some of the best-known consumer websites. All of the following are powered-in whole or in part-by reputation systems:
But, of course, developing a successful reputation system is not easy. Our experience is that reputation is one part each of engineering, social science, psychology and economics. Social media architects and designers must pay careful attention to multiple factors: the context in which the community is situated; the incentives they'd like to provide contributors (which often demand a nuanced understanding of the actions they want to encourage and discourage); and the effects that decisions made early in the design process may have on the community spirit, downstream.
Building Web Reputation Systems provides a complete, soup-to-nuts process for designing and developing your own community's reputation program. In a guided fashion, you will start with the hard questions:
…and then you'll learn how to build reputation models to accurately reflect all of these inputs. To do so, you'll need a reputation grammar, which we've developed and applied to many successful reputation systems used across the web.
We also provide well-diagrammed reputation patterns for common Web needs (“Digg-style” voting systems, ratings & reviews, simple karma) and some extended reputation system reviews and a case study based on actual reputation deployments at industry-leading social sites including Yahoo!, Flickr and eBay.
We wrote this book because we saw how critical reputation has become to the survival and growth of the web. Though there are many academic research papers on specific generational algorithms and social effects of reputation systems, we couldn't find a single book that put it all in context-describing it as a separate domain of knowledge, complete with a grammar, emerging best-use patterns, and recurring anti-patterns. Until now.
Our extensive experience creating and deploying several reputation systems across a wide range of social media at Yahoo! provided much of our base of knowledge for this book. We add a comprehensive review of other existing applications to venture forth into unexplained territory to offer a working definition of web reputation systems: a survivor's guide for those who would follow. We hope this book will improve the quality of conversation about reputation systems, and help improve the quality of products that are using them.
This book and the supporting blog and wiki (http://buildingreputation.com) are targeted at several audiences:
Successful social media design is hard. Many companies and organizations understand that. Rewarding points for user participation may generate activity and build audience, but site owners should be wary of possible negative impact on content quality. They need this book to help them choose the right reputation model for their site, and to learn how to help them evaluate the health of their deployed social collaboration system.
This book assumes that the reader has a rudimentary understanding of application logic, can read basic flow-charts, creates content for the web, and has direct experience interacting with other users on socially active web sites. No programming or web engineering experience is required, though some of the more technical aspects of the book will be greatly aided by some passing familiarity with programmatic thinking.
This book is broken into three main sections; Reputation Defined and Illustrated, Extended Elements and Applied Examples, and Building Web Reputation Systems. It was written to be consumed sequentially, but readers who are already experienced developing web sites heavy in user-generated content may be able to move more quickly through Section I.
Chapter_1 briefly introduces reputation basic concepts and terminology and sets reputation systems in their proper historical context. With this context in mind, Chapter_2 goes on define a complete grammar for thinking about reputation and provides a graphical language to clearly describe reputation systems for analysis and development.
The primitive reputation grammar elements described in Section I are to be combined in Chapter_3 into higher-level building blocks that can be used as-is for simple reputation systems, or combined to create more complex ones. In Chapter_4 we show how the grammar and blocks we've described can be used to elucidate many of the reputation systems currently deployed across the web, including Digg, Ebay, and Flickr. In this sections, practitioners tips become a regular feature of most chapters-the lessons we've learned are not to be missed-even by the casual reader.
The last section, comprising more than half the book, goes beyond cookie-cutter reputation needs to offer detailed advice on designing, building, deploying, and operating a custom reputation system. The project begins, not by drawing a model or screen mockups, but by answering the three big questions posed in Chapter_5 that define and limit your reputation choices. With those answers, Chapter_6 helps to identify your application's objects, methods, and inputs powering your reputation. With all of this in mind, you can start drawing the reputation model. Chapter_7 helps you decide how to display reputation, and Chapter_8 describes other common uses for reputation, such as providing search relevance. At this point, the reputation model is designed, and the screen mocks are ready. Next up is implementation, testing, and deployment for which strategies and tips are covered in Chapter_3 . We wrap it all up with a case study in Chapter_10 : The Yahoo! Answer's Community Moderation Model. This chapter ties the entire book together, revisiting each of the steps outlined in detail with a single concrete example. It is a successful reputation model that provides inspiration, many insights, and several notes of caution.
Appendix_A is intended for technical readers, such as system architects and platform engineers. It describes the Reputation Framework-execution environment for multiple reputation models. The Yahoo! Reputation Platform is described in detail as an example of a framework that can scale to tens of thousands of transactions-per-second-but had to make some functional trade-offs that are quite illustrative.
Here are a few alternate chapter reading list recommendations, based on your professional role.
The following typographical conventions are used in this book:
Please address comments and questions concerning this book to the publisher:
Oâ€™Reilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472800-998-9938 (in the United States or Canada)707-829-0515 (international or local)707 829-0104 (fax)We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at:
http://www.oreilly.com/catalog/<catalog page> To comment or ask technical questions about this book, send email to:
firstname.lastname@example.org For more information about our books, conferences, Resource Centers, and the Oâ€™Reilly Network, see our web site at:
As with any book that reports so much personal experience with a topic, there are more people to thank than we even know or recall-to any we've missed, know that we are grateful for the lessons you helped us learn, even if we're forgetful of your names.
We are first-time authors, so our editorial and publishing supporting cast come foremost to mind:
Mary Tressler, our Editor at O'Reilly and our mentor-you helped us learn the ropes and were always supportive when we stumbled.
Havi Hoffman, head of Yahoo! Press-you believed in this project from the beginning, and despite all logistical and legal challenges, you made it happen along with the unbounded support of your fellow Yahoos: Douglas Crockford, Christian Crumlish, and Neal Sample. Without all of you, there'd be no book at all.
Cate DeHeer, at DutchGirl.comour main copy editor-you unified our voices and made us both sound great without losing our personality.
Sanders Kleinfeld, Marlowe Shaeffer, Adam Witwer, and the rest of the support staff at O'Reilly-you made it all go as smoothly as possible.
The Yahoo! Reputation Platform team, in its various incarnations: Alex Chen, Matthias Eichstaedt, Yvonne French, Jason Harmon, Chip Morningstar, Dmitri Smirnov, Farhad Tanzad, Mammad Zadeh-you all helped define, implement, operate and refine one of the world's finest platforms that provided us with most of the grammar and technical lessons used in this book.
The Yahoo! reputation-enabled product managers: Micah Alpern, Frederique Dame, Miles Libby, Cheralyn Watson, Ori Zaltzman, and so many others-when others scoffed, you were visionary and saw reputation as an unique opportunity to improve your product. So many of the socially oriented stories we've used here are a direct result of your pioneering work.
Our author-mentors: Douglas Crockford, Christian Crumlish, Amy Jo Kim, and Erin Malone-you all helped us understand just what it takes (and what it doesn't) to be an author.
The readers/commentors on our blog, wiki, and manuscript-by letting us know what you think as we went along, you significantly improved the first edition of this book. For those of you who comment after this is published-thank you so much for helping us keep this information up-to-date and accurate. Web publishing FTW!
First and foremost, I'd like to thank my partner on this project, Bryce Glass-who presented the idea about us writing a book about reputation together just at the time I was feeling the desire to write something, but too timid to do it on my own. I knew immediately that this was a great idea, and that he would be the perfect coauthor-I had some the product and engineering experience and he really understood the UX design issues as well as being world-class at creating wonderfully simple images to communicating complex concepts. Truly our talents combined produced a book that is greater than the sum of it's parts.
Without the explicit encouragement from my wonderful wife, Pamela, this book would never have been started. I began working on it while being nominally unemployed, and at the worst of the 2008 economic downturn. Though I had enough contract work to just barely meet expenses, I could have just continued my search for full time employment and simply deferred the opportunity to write down my experiences in favor of a steady paycheck. While I was dithering, unsure about taking on mantle of authorship, she said “You should go for it!” Her faith in and support for me is an inspiration.
To my parents-Frank and Kathy Farmer: for your constant encouragement to dig ever-deeper into whatever topic I was interested in, I am forever grateful. I hope that sharing my knowledge with others will help others along a similar path.
Reeve, Cassi, Amanda, and Alice Farmer-you are my pride and joy, and the reason I keep striving to improve the world you will inherit.
I'd also like to acknowledge folks who personally influenced me in significant ways that eventually led me here:
I, too, would like to thank my coauthor, Randy Farmer. His enthusiasm for, and absolute grasp of, social media and online communities was a large part of what drew me to Yahoo!'s Community Platforms team. Listening to Randy expound upon web-based reputation (or identity, or incentives, or context, or…) has been that rarest of professional treats for me: working on projects with Randy is like auditing a really good graduate-level course in social software design. Most inspiring of all, though, Randy is your enthusiasm and zest for learning-you don't just work at this stuff, you love it, and your energy is contagious.
The real, untold hero of this book-for me-has been my wife LeeAnn. What a long, strange trip it's been, honey! In the eighteen-some months since we first drafted the proposal, I've been laid off, unemployed, re-employed and spent way too many evenings and weekends stealing away for “a couple of hours to write.” You, meanwhile have been carrying our next child (with grace) while caring for our wonderful son Edison and three bratty dogs. I'll never forget the sacrifices you've made this year to help me see this book through-next year is all about you, I promise.
It truly does take a village, so I'd like to thank my loving parents, Larry and JoAnne Glass, as well as my wonderful inlaws, James and Diane Dick, for the many weekends of babysitting that freed Daddy up for… yes, more writing.
I'd also like to thank two of our early manuscript reviewers. Clay Spinuzzi and Bill Hart-Davidson, you both brought analytical eyes and rhetoricians' minds to our draft, and I especially appreciate your help. (Bill-you in particular gave us so much good feedback that we had to defer much of it. Are you available for our second edition?)
I'd also like to thank several past-and-present Yahoos: the aforementioned Christian Crumlish-you've been a great champion of our book, and a great friend as well; my first manager at Yahoo!, Erin Malone-thank you, thank you, thank you for your friendship, mentoring and assigning me to work with the Reputation Platform team!; Matt Leacock, who supported that platform before me, and is an all-around amazing UX designer and longtime friend; and finally my last manager at Yahoo!, Amanda Linden, who threw her unabashed support and approval behind the book and my involvement in it.
And finally, I'd like to thank my new team at Manta Media, Inc. Particularly my manager Marty Vian and my design compatriot David Roe. I'm afraid that you all inherited a slightly flawed and damaged designer-one with this baggage-laden book attached-and, whether you've realized it or not, you have all been supportive in the extreme in helping me get it to the finish line.