Joshua Schacter – del.icio.us: what we’ve learned
- Browser inconsistencies
- Scaling – SQL isn’t great under heavy load
- Think beyond one web server, one db server
- “Idiots are a lot smarter than you”
- Wait to see what breaks before you fix it
Apache
- Know it inside out
- Put a proxy in front that isn’t apache – helm? – to add throttling etc etc
- Images on a separate server
- RSS on a separate server
- Use throttling – mod_throttle doesn’t work very well…
APIs
- Built in from the start, because the developer needed it
- Greatly encourages adoption
- No lock-in – the user owns their data
- No API key in del.icio.us – low barrier to entry
- Hundreds of plugins have been created
- Don’t expose the internal ID, especially if computer generated, or people will try and programmatically hammer & scrape the service.
Features
- Don’t add features that exist elsewhere – e.g. messaging
- Build features that people will actually use, not what they ask for (what they need, not what they want)
RSS
- important – the native way to describe a list of links
- put them everywhere you possibly can – (msk note: PWA needs RSS!)
- Understand caching & headers, the “if not modified” header
- del.icio.us has more RSS traffic than HTML & API traffic, due to poorly-written RSS readers…
URLs
- make ‘em simple
- hide your implementation
- design them for the user, not the developer
Surprises – expect them
Passion
- del.icio.us started from a text file of links – 25,000 entries
- next step – a single-user db-backed system
- then thought “maybe other people would like to use it too…” del.icio.us was born
- don’t go looking for problems to solve – solve your own problems that you’re passionate about
Release
- Don’t go closed beta, be open!
- Get passionate users using your app quicker
Attention
- “The daily popular”
- Aggregation of attention works for small groups
- Less useful when the population of the app grows larger
- But…you can aggregate by tag
Spam
- “attention theft”
- “social software is that which gets spammed”
- No top 10 on del.icio.us – not very interesting
- If it were there, it would be a spam-magnet, people trying to get to the top of the list
- Don’t provide feedback – let them think things are still working. No error messages to give the a clue that they’ve been rumbled.
Tags
- It’s not about organisation, but about UI and recall by the user
- Not all metadata is tags
- There’s a bit of difficulty involved in adding a URL to del.icio.us, but not too much. Don’t make it too easy, nor too hard.
- Beware librarians! Don’t try to impose a vocabulary/taxonomy.
Motivation
- Make it useful for the user in itself
- Make it so the users want to bring other users into the system – evangelism
Effort
- Don’t spend time building features that no-one will use!
Measurement
- “Intuition is guesswork backed by numbers”
- Measure the system itself
- Measure behaviour rather than claims
Testing
- User-acceptance testing
- Test that it matches the users
- Don’t assign people goals and make people do them
Language
- Speak the user’s language
- Bookmarks only make sense to Netscape/Firefox users – IE users speak “favorites”
Registration
- Make as much functionality available without registration as possible
- People are wary of spam & marketing
- Short and sweet reg, then send back to whence they came…
Design grammar
- emulate the structure of the web world out there – don’t deviate from established conventions too much
Morals
- How users are treated
- It’s users’ data, not yours
- Many systems don’t allow account deletion – it’s good to allow people to jump ship if they want to.
- Deleted data should be really deleted
Infection
- zero-dollar promotion
- totally word-of-mouth
- RSS important
- E-mail not so much – you don’t want to be seen as a spammer
- “viral vectors” – umm? RSS, iCal etc etc? Bzzt.
Communities
- There’s no community in del.icio.us in the traditional sense
- Saves having flamewars etc.
- Enable communities to use your system without providing an actual community
This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.