Building Social Software for the Anti-Social: Part I


Published on

Five scary rules for building social software, based on our experience at Stack Overflow and Stack Exchange.

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • I know a little bit about community, after watching a sizable one form around my programming blog. So big, in fact, it changed my career forever.Blog comments does not equal a vibrant community. What do you do with the stored energy of a large community? How can you harness that energy and turn it into something positive, something the community can build together?
  • Again, with the theme of collaboration.I’ve studied Clay’s writing for years, and his book “Here Comes Everybody” was a sort of blueprint for what came next.
  •   In February 2008 launched, a “social coding” site which provides Git hosting and rich social networking tools to all the developers using the site, gratis for open source code.
  • Good programmers write. Great programmers steal.Joel and I wanted a mashup of all the social website concepts that we knew worked at places where programmers hang out.We did a LOT of research into sites that worked.
  • Let’s start with a static phpBB style discussion forum. A chronological list of messages.
  • Voting – digg/reddit. AJAX style. So the best stuff goes to the top. You don’t have to read 40 messages to find that one nugget of useful technical information buried in there.
  • Bring in editing. So a year later, after this API has been deprecated, or if there’s a better way to do this, users can change their posts.Note that editing brings in discussion about the editing as well. This is important.
  • Blogs –owner authorship. From delicious, the concept of tagging.
  • Finally, bringing it all together. A Web 3.0 forum.
  • Loving not necessarily each other, because people can be hard to love – but loving the thing we are creating together for the future.
  • How do you deal with the loud dumb anonymous people on the internet? YouTube is a great example. All YouTube comments are a waste of time!Or are they?
  • Mutual constraints, mutually agreed upon
  • This is the most viewed video on YouTube for the month of March at the time I visited.
  • This is the big leap of faith.
  • Who wrote this article? Where is the byline?
  • We absorbed a tremendous amount of design friction from our choice to allow both selfless wiki editing, and authorship.At the very least, attribution provides context for the words. It’s additional information.
  • Well, not quite everyone. But once we learn to trust you – the more reputation you have, the more abilities you have on the site.
  • This sort of collaborative editing ends up being familiar to programmers – it’s like pair programming!
  • Remind you of anything? Developers understand revisions and source control, it’s part of every programmer’s DNA.
  • Story two: : The Bronze Beta – is a Buffy fan site, When Warner Bros was selling Buffy to UPN – they told them that they had also set up a community bulletin board. UPN said please tell the users the old board will close down and we will set up our own. Clay told us that the users were not happy. They pooled resources and paid for a new site. They had fallen in love with each other and just wanted to be there. When they got their new site they didn’t want lots of new features, just text really.And so this story confirms for me (Clay) that social software is the only area in software that I know that the later products have fewer features than the previous products – not the same in other areas. If someone a few years ago had told you that most of what would be published in 2008 will use the simpler tools not the more complicated tools. You wouldn’t have believed that if someone had predicted it as you want as many toys in your box as possible. If the tool is social then it matters a lot how you use it and how I use it.
  • The other hard thing: how do you tell people they don’t belong?
  • If you’re only playing a game, that time disappears. The difference here is that we’re investing this time in our career.
  • You can have your cake and eat it too. Get paid to do something you love. This is a wonderful thing. We are very, very fortunate. Embrace this!
  • Statistics and experience levels – a familiar concept to geeks.
  • From the early 1980s. “roguelike”. From UC Santa Cruz, to Berkeley, and distributed with BSD 4.2.
  • Many years later, we’re still levelling up.
  • Clay uses Slashdot as an example of defending against this. Slashdot has managed to not be swamped by negative activity over the years. The basic trick is that Slashdot members defend readers from writers. He describes the karma system. The average reader never see posts rated 0 or -1. That accounts for 20% of the comments. Moderating is done by logged in users with high karma, randomly selected to moderate, who have chosen to moderate. That’s a daunting chain of decisions.Slashdot isn’t easily replicated, even by using the using the actual code base. Neither the gestalt of understanding nor the actual code is sufficient, so we need a pattern.
  • The problem Slashdot faces is the tragedy of the commons. Each poster has a motive to hurt the commons to gain notoriety for themselves. Here’s the pattern:1. Move comments to a separate page2. Treat readers and writers differently3. Let users rate posts4. Use defensive defaultsBut who guards the guardians? A second pattern solves the problems that the first pattern creates:1. Treat users and members differently2. Measure good behavior3. Enlist committed members4. Judges can’t post
  • Encourage positive behaviors, discourage negative behaviorsTHINK about what you’re encouraging. Design the game responsibly.
  • When you design your software, work under the assumption that some of your users will be evil: out to game the system, to defeat it at every turn, to cause interruption and denial of service, to attack and humiliate other users, to fill your site with the vilest, nastiest spam you can possibly imagine.
  • When you design your software, work under the assumption that some of your users will be evil: out to game the system, to defeat it at every turn, to cause interruption and denial of service, to attack and humiliate other users, to fill your site with the vilest, nastiest spam you can possibly imagine.
  • both the manual human being way, and the automatic computer way. These complement each other.
  • Even after spending a lot of time thinking about this, we still got bitten.
  • Building Social Software for the Anti-Social: Part I

    1. Geoff KyleJeff NYC HQ Rebecca Jarrod Nick Kevin Robert
    2. Marc Ben Sam
    3. “… designing software forgroup-as-user is a problemthat cant be attacked in thesame way as designing aword processor or a graphicstool.”
    4. know your audience
    5. Q:How do you tell an introvertedcomputer programmer from anextroverted computerprogrammer?
    6. A:An extroverted computerprogrammer looks at your shoeswhen he talks to you.
    7. “In the early years of programming,a program was regarded as theprivate property of theprogrammer. One would no morethink of reading a colleaguesprogram unbidden than of pickingup a love letter and reading it.”
    8. “This is essentially what a programwas, a love letter from theprogrammer to the hardware, fullof the intimate details known onlyto partners in an affair.”
    9. REM The IBM Personal Computer DonkeyREM Version 1.10 (C)Copyright IBM Corp 1981, 1982REM Licensed Material - Program Property of IBMDEF SEG : POKE 106, 0SAMPLES$ = "NO"DIM CAR%(900)GOTO 1010SAMPLES$ = "YES"1010 KEY OFF: SCREEN 0, 1: COLOR 15, 0, 0: WIDTH 40: CLS : LOCATE 5, 19: PRINT "IBM"LOCATE 7, 12, 0: PRINT "Personal Computer"COLOR 10, 0: LOCATE 10, 9, 0: PRINT CHR$(213) + STRING$(21, 205) + CHR$(184)LOCATE 11, 9, 0: PRINT CHR$(179) + " DONKEY " + CHR$(179)LOCATE 12, 9, 0: PRINT CHR$(179) + STRING$(21, 32) + CHR$(179)LOCATE 13, 9, 0: PRINT CHR$(179) + " Version 1.10 " + CHR$(179)LOCATE 14, 9, 0: PRINT CHR$(212) + STRING$(21, 205) + CHR$(190)COLOR 15, 0: LOCATE 17, 4, 0: PRINT "(C) Copyright IBM Corp 1981, 1982"COLOR 14, 0: LOCATE 23, 7, 0: PRINT "Press space bar to continue“1100 IF INKEY$ <> "" THEN GOTO 11001110 CMD$ = INKEY$IF CMD$ = "" THEN GOTO 1110
    10. This series of books is affectionately dedicatedto the Type 650 computer once installed atCase Institute of Technology,in remembrance of many pleasant evenings.Donald Knuthdedication toThe Art of Computer Programming1968
    11. know your topic
    12. One of the great pioneers of computerand online gaming, Dani Berry died in1998. Some of her aphorisms are stillfrequently quoted by game developers,including”No one ever said on their deathbed,‘Gee, I wish I had spent more timealone with my computer.’”
    13. Programming used to be an intenselyprivate experience.Programming is now a public, socialactivityLike it or not.
    14. SourceForge is about projects. GitHub isabout people... A world of programmersforking, hacking and experimenting. Thereis merging, but only if people agree to doso, by other channels... GitHub gives memy own place to play. It lets me share mycode the way I share photos on Flickr, thesame way I share bookmarks on’s something I found useful, for whatit’s worth...
    15. Moreover, I’m sharing my code, for what it’sworth to me to share my code... I amsharing my code. I am not launching anopen source project. I am not beginning asearch for like minded developers to avoidduplication of efforts. I am not showing upat someone else’s door hat in hand, askingfor commit access. I am not looking to dobattle with Brook’s Law at the outset of mybrainstorm.
    16. Social software for the anti-social (programmers)
    17. understand people’smotivations
    18. Modern programming may be asocial activity, but programmers arestill introverted and anti-social.*What motivates us to work withconfusing, complicated, erraticpeople instead of simplecomputers?*and that’s how we like it!
    19. A shared passion:We love programming.
    20. A common enemy:We hate Bad Code.
    21. • I don’t have to agree with you• I don’t have to be “friends” with you• I don’t even have to like you… but we have a shared passion, ashared enemy, and we can learn fromeach other.
    22. The currency of Stack Overflow is information. Programmers map social relationships on top of that.Do you really need software to tell you who your friends are?
    23. Work
    24. Work is when your boss tells you to dosomething, you do it, and you get is motivated by inherent interestand generally unpaid.
    25. Usability testing techniques developedover the past 25 years for Work nolonger apply for work.We shouldnt be asking, “Can youcomplete the task?” but rather “Areyou motivated to do it in the firstplace?”
    26. Little-w work:Tiny slices of frictionless effort Amortized across the entire community
    27. “If you take Wikipedia as a kind of unit,all of Wikipedia, the whole project --every page, every edit, every talk page,every line of code, in every languagethat Wikipedia exists in -- thatrepresents something like thecumulation of 100 million hours ofhuman thought.”
    28. • Fast, fast, fast• No registration required• Simple Markdown formatting• Edit anything, anytime (even anon!)Every question has an input box at thebottom, inviting you to participate andshare what you know
    29. “Im doing a (free) operating system (just ahobby) [...] Id like to know what featuresmost people would want.”“Humor me. Go there and add a littlearticle. It will take all of five or tenminutes.”“In the past, we could do little things forlove, but big things required money. Now,we can do big things for love.”
    30. 1. Radically lower the bar for participation2. Trusting (some of) your users3. Life is the world’s biggest MMORPG4. Bad stuff happens5. Love trumps money
    31. Scary Idea #1Radically lower the bar forparticipationNo registration.None. Nada. Zilch.
    32. The Tragedy of the Commons
    33. everyone’sattention
    34. Fred Rescues the Neighborhood SquirrelsViews5,348,838Comments48,710
    35. Optical Effects of Special RelativityViews45,866Comments153
    36. Scary Idea #2Trusting (some of) your usersWhat if everyone could editeverything?
    37. OilThe value of theinformation is moreimportant than theindividual authors.WaterInformation fromcredible authors is morereliable.
    38. Channel Rules1. No whining2. No colours or other formatting, especially in automated scripts.3. Do not paste code (or anything) on the channel.4. If you feel you have been unfairly treated, abused or just arent getting your moneys worth ($0), see Rule #1.
    39. Scary Idea #3Life is the world’s biggestMMORPGWhat if you embraced the game-like aspects of your profession?
    40. Slashdot
    41. How Moderation Happens
    42. “A soldier will fight long and hard for abit of colored ribbon.”
    43. “Even though points onConsumating were redeemable forabsolutely nothing, not even a goldstar, our members had anunquenchable desire for them.”
    44. Scary Idea #4Bad stuff happensIt’s OK for bad things to happenas long as the community hasways of dealing with them.
    45. “So, Lone Starr, now you seethat evil will always triumph,because good is dumb.”
    46. Don’t be dumb.
    47. 3138 Edits 1574 UsersAve: 1.99
    48. Scary Idea #4Love Trumps MoneyEven the most staunch capitalistswill do things for love that theywould never do for money.
    49. Because the community is engaging, gives you newand different problems to solve, your help isappreciated and no one can force you to dosomething that you dont want to (as long as youdont want to troll or set things on fire) and you donthave the stress of having to answer correctly or youlllose your food (being fired). Lack of having to answerto a clueless PHB is just a plus.In short: You are here for intellectualleisure/engagement/fun, you are at work to getmoney so you can eat every day and sleepcomfortably (consumerism aside).
    50. Linux“Im doing a (free) operatingsystem (just a hobby) [...] Idlike to know what featuresmost people would want.” Wikipedia“Humor me. Go there and add alittle article. It will take all of fiveor ten minutes.”
    51. 1. Radically lower the bar for participation2. Trusting (some of) your users3. Life is the world’s biggest MMORPG4. Bad stuff happens5. Love trumps money
    52. .. it’s a trap!
    53. I live in US – skycbc5405Can you get a GTX 480? You can get thembrand new in the UK now for like £200-£220 –AtomfixWhat kind of resolution do you play on? Thatwould help us pick out the right GPU for you?– tryagainplss
    54. The other thing I wanted was that they be reallyliterate in whatever language they write to otherhumans. I want people who can write, becausewe spend a lot of time writing to each other.We’re writing email or documentation. We’rewriting plans. We’re writing specifications. I wantto know the people on my team are capable ofdoing that, and that turns out to be a verydifficult skill. I would actually rather see peoplestart as English majors than as math majors toget into programming. -- Douglas Crockford
    55. Another is Elements of Style, which isn’teven a programming book. You should readit for two reasons. The first is that a largepart of every software engineer’s job iswriting prose. If you can’t write precise,coherent, readable specs, nobody is going tobe able to use your stuff. So anything thatimproves your prose style is good. Thesecond reason is that most of the ideas inthat book are also applicable to programs. -- Joshua Bloch
    56. I heard about a computer sciencedepartment where in the tutor’s officethey had a stuffed animal and the rulewas that you had to explain yourproblem to the stuffed animal beforeyou could bother the tutor. “Ok,Mister Bear, here’s the thing I’mworking on and here’s my approach –aha! There it is.”
    57. I’ve occasionally been asked to advise universitieson syllabus subjects for computer sciencecourses. And I say “Well, turn ‘em out being ableto write and argue cogently.” Most graduateswho come out, they’ve got degrees in computerscience, but writing’s not their strong point.It’s very difficult to teach *writing+ because it’svery individual. Somebody’s got to take your textand a red pen and explain to you what you didwrong. And that’s very time consuming. -- Joe Armstrong
    58. Everyone should write a lot – whether it’s a blog,a book, SO answers, emails or whatever. Write,and take some care over it. Clarifying yourcommunication helps you to clarify your owninternal thought processes, in my experience.It’s amazing how much you find you don’t knowwhen you try to explain something in detail tosomeone else. It can start a whole new processof discovery. -- Jon Skeet
    59. where do we go from here?