Delicious: not so tasty now

December 17, 2010 | 2 comments

Logo of DeliciousHe’s dead, Dave. Everybody’s dead. Everybody is dead, Dave.

It’s the end of the road: Delicious, one of the darlings of the “Web 2.0” movement, is being shelved. The social bookmarking site was famous for its simple interface, which introduced tags and cloud services to the world, not to mention creative use of available domain names, bookmarklets and social networking for a purpose. Its creator, Joshua Schachter, is a smart guy whose opinions about software design are worth taking seriously.

As a result, it was widely used: I directly know people who have relied on it in academia, public arts bodies, private companies and in their personal lives. Delicious served a genuine user need. The trouble was, Yahoo! didn’t make any money running it, despite having paid between $15-20 million for the privilege.

Money: get away. Build a service that will pay, and you’re okay.

That’s not Joshua’s fault, nor an intrinsic fault with Delicious (although they could probably have tried harder to drive direct revenue and cement their sustainability). Yahoo has a track record of mismanaging its web properties, going back to the first dotcom bubble – leading to 600 job losses a few days ago.

More generally, it’s arguably a symptom of Web 2.0 fever around five years ago; lots of great services were being funded, despite not having any business models to speak of. It’s only a matter of time before many of the remaining services from the era go the same way. Be smart: look at how to save your data now.

Near; far; wherever you are, ensure that your data lives on.

What’s next for the site’s 5.5+ million members, and their 180 million bookmarks? Lifehacker has a guide to exporting your data from Delicious into your web browser, but that’s not going to be good enough for many users.

Other bookmarking services are available. There’s even a spreadsheet doing the rounds comparing Delicious alternatives. But I’d like to suggest that it’s only a matter of time before many of them, too, are shuttered.

We know that the cloud is useful and important – but it’s no longer enough to put something out there. Responsible developers should know how their product is going to continue to exist, for the sake of their users. Here are some questions to ask when picking a service to house your valuable data:

  1. Does it have a sustainable business model? Are you being directly charged, or is your data being sold somehow? (Advertising on its own is not a sustainable business model in most cases.)
  2. Do the owners have a track record?
  3. Is there a way to get your data out and move it somewhere else? If not, can you buy the software and host it yourself, on your own infrastructure?

I would suggest that if the answers to any of the above are “no”, you might want to move on and look at something new.

Delicious logo render by Bernard Goldbach, released under a Creative Commons license. Title apologies go to the Red Dwarf team, Pink Floyd and Celine Dion respectively. I’m so sorry.

Building the user-centered web

July 1, 2009 | 9 comments

The following post contains my notes for a talk I gave at the Hauser Center for Nonprofit Organizations at Harvard University on June 25, 2009.

What is a social network?

I would like to reclaim some language:

Social is an adjective that means relating to human society and its members.

A network is an interconnected system of things or people.

Therefore, I’d suggest that we can define a social network as just being an interconnected system of people.

The audience of this talk is a social network; so are your friends, colleagues, interest groups and so on. Social networking tools facilitate social networks. The universe of social tools certainly includes web applications with social functionality, but it also includes structured face to face interactions, telephone, post, SMS, email. In other words, the web is just one possible tool for this purpose – albeit a very effective one.

If you build it, they will come

You can’t install a social networking tool and instantly expect usage: Field of Dreams is not a good model for community development. The web is littered with ghost sites created using Ning, Elgg and more that have been established in the hope that a user-base will magically appear; however, if your main selling point is the social network itself, nobody’s going to join until that network of people exists and is actively using it. It’s a chicken-and-egg problem.

Therefore, you either need to have an existing network of people to facilitate interactions between (for example, when Facebook launched at Harvard) or compelling functionality that is useful without a network of existing users (for example, Delicious).

If we’re creating a tool that’s useful for the first user who signs up, without a pre-existing social network, then what we’re really talking is a software application that uses the web as an interface, and happens to have social functionality as one of its features.

The web as applications

When the web was conceived, it consisted of documents and pages linked with hypertext: linked words and phrases that, when clicked, would load another, relevant document. Each page had its own Uniform Resource Locator, which allowed you to return to that specific page at any time. Each page could be a destination in itself, and although the sites (collections of pages) could be linked together through hypertext, each one had no need to know about your activities elsewhere on the web. Why would they? Documents don’t have memory; their role is simply to impart information.

Step forward to today, and the web is not entirely made of pages: applications now represent a large amount of the web. (Princeton WordNet defines an application as “a program that gives a computer instructions that provide the user with tools to accomplish a task”; Google Docs, Remember The Milk, Flickr, Delicious etc are all applications by this definition.)

The benefits are tangible: you can access an application’s functionality from any web-compatible device, anywhere in the world. You’re no longer bound to the software you happen to have installed on a particular machine, and you no longer need to worry about whether you’ve remembered to save a particular file onto a particular drive. Because of historic resource limitations, web applications tend to be easier to use, and entirely bypass the need for IT departments, which have unfortunately earned a reputation for being obstacles to productivity in many organizations.

This change of web usage has been reflected in the ongoing development of HTML, the markup language that all web interfaces are written in. The first four versions were largely orientated towards documents; however, HTML 5, currently in development, is the first version that explicitly contains functionality to support web applications. That includes offline storage and usage, sessions, and more advanced interface features. However, aspects of the document-orientated model remain.

Silos of information

Each application is its own atomic destination with its own URL, and is by default only aware of data created within it. That means we need to register for each application we want to use, fragmenting our accounts over potentially hundreds of products and company data centers, and that the documents, files and data we create within them can’t easily be shared with other applications. On my desktop, I can write a document in Word and open it in OpenOffice, or take a Paint doodle and load it in Photoshop, but there’s no easy, generic way to take my bookmarks from Delicious into another bookmarking tool, or to take my Google Docs and open them in Acrobat.com.

Currently, each web application is like a silo: they exist on their own, and if they interoperate at all, it’s through specific links between applications that have to be individually developed. Certainly, data created in an application stays in that application; sometimes you can check your GMail address book for contacts in order to find existing friends on a service you’ve just signed up to, for example, but it’s rare that you can actually export data fully into another product. As many of these services are free, a significant portion of their business models revolve around being able to control user-contributed data, keep users coming back, and sell user-generated activity data for marketing purposes. (One has to question whether the market for personal details will continue to be profitable, or whether, like the web advertising market before it, it will saturate and crash.)

In a social networking tool, the site model means that your contacts, the information you share and any detailed access permissions all relate solely to the application they were created in. However, collaborative spaces in social web applications are like documents: they’re one of the currencies of the social web. Just as I need to be able to use my wordprocessor of choice to edit a document, I need to be able to use my social tool of choice to collaborate with others.

Turning the model upside down

Right now, we have to register with each application we want to use. What if we required each application we used to register with us, in digital identities under our own control?

What if, using these identities, anyone could connect to anyone else, and anyone could store their data anywhere as long as the storage provider followed the same broad standards?

The web itself would become a social networking tool.

This is far more flexible, and future-proof:

  • Your ability to collaborate is not subject to a single company’s success: social functionality and application infrastructure are inherent in the web itself
  • The possibilities for collaboration are not subject to technology beyond common open standards, which can evolve
  • A wider range of application possibilities is ensured, because web applications gain the ability to interoperate in a general way
  • Privacy and user control are established by allowing a person to determine which application has access to which data

By establishing a general standard for social application interactions, the services and technologies used to make connections become less relevant; the Internet is people, one big social network, and users no longer have to worry about how they connect. We can all get on with communicating and collaborating rather than worrying about where we connect.

User-centered identities

Under this model, providing the software that hosts your digital identity becomes big business. This hasn’t gone unnoticed by the main service providers, and they’re already fiercely competing to be your identity on the web:

  • Facebook wants your central identity to be a Facebook account (and arguably have made the user-centric model for the web part of their strategy for a very long time)
  • Google wants it to be a Google account
  • Twitter wants it to be a Twitter account
  • Microsoft wants it to be a Live ID
  • OpenID want it to be any OpenID-capable URL

Because I use all of these services, the result is a very complicated identity space. These are a subset of my profiles:

For identities to be usable as a generic standard, you should be able to use any of these – or all of them. Nobody has just one facet (or persona) comprising their identity; everyone has a collection, representing the different parts of their lives. Ben Werdmuller the web strategist for hire doesn’t need to be connected to Ben Werdmuller the Doctor Who fan, who in turn doesn’t need to be connected to the Oxford resident. They can be connected if I choose to make them, but separating parts of your life is part of a user’s control over their identity.

However, that needs to be context-specific, not application-specific. Currently, for example, my Facebook account tends to be personal, while my Twitter tends to be professional. That doesn’t make sense: in order to write personally on Twitter, I either have to accept the collision of those two parts of my life, or I need to create an entirely separate, fragmented Twitter account. Wouldn’t it be better to be able to control who sees which interactions, and choose tools based on the functionality they add to a conversation? Otherwise you have the situation I present above: one identity per communication context per application. That will quickly become unmanageable, and the web will be littered with dead profiles.

Conversely, I believe the future of the web is in atomic digital identities based on permissive, open standards, linked together as an application framework.

How do we make this work?

Problem to solve: user control

First and foremost, the framework for decentralization must be established – in other words, the actual social mesh standards that will make it possible.

Technical mechanisms need to be established for controlling access to a resource or collaborative space, which should be easy to use without removing any of the flexibility of the platform, and should allow for the maintenance of multiple personas.

Another part of access control is allowing a resource to expire gracefully. It’s important to know when to lose data: sometimes documents, resources, spaces, personas or entire identities may be transient and only required for a certain length of time. There’s no need for everything on the web to exist indefinitely; currently, rigorous indexes like Google ensure that much of it does.

Finally, the tools and standards we create must be permissive of goals, content and structure that we might not have thought of. There certainly doesn’t need to be an overarching structure or taxonomy between individual identity spaces, and constraining the technology to a rigid set of activities and data types would limit the scope of the platform.

Problem to solve: ownership

Existing web applications tend to have a single-ownership model for resources. However, Silona Bonewald rightly pointed out to me that this isn’t always the case, and in a free-flowing social mesh, multiple ownership needs to be represented. For example, all collaborators on a resource should have ownership access, unless they explicitly choose to rescind that right.

In a company environment, a user’s employer may have shared ownership (or full ownership, with author access available to the employee). The same may be true with students in a university environment. On sites like Facebook, the service owner may in reality have some ownership rights over the content.

How can we maintain this granularity, but also retain user control?

Problem to solve: privacy & transparency

There is a very public attitude of "when you put something online, it’s published" in some parts of the software development community, which is a useful concept that gives developers carte blanche to share data freely. In a fully user-controlled environment, this public-or-completely-private binary situation can no longer be the case; a resource may have been published to a few select people. Ignoring this trait disallows the platform’s use in important environments like enterprises or public bodies.

When you sign up to a service, you agree to that service’s terms and conditions and privacy policy. However, your data may be farmed out to a collection of other, secondary services via APIs, without your knowledge or consent.

An important aspect of user control is knowing how your data is used and where it is transmitted by the applications you use, so I propose a simple, human-identifiable and machine-readable mark that:

  1. Applies permissions to how my data can be used by applications (like Creative Commons does for shared content)
  2. Tells you in a visual way what happens to your data when you visit a site
  3. Incorporates multi-ownership

It may be that these issues are addressed within the terms and conditions of a service. However, it’s very unlikely that a user will actually read the full contract. Therefore, a simple graphic icon with a link to a plain-English description, with an underlying microformat for machine-readable use, would be a welcome addition to the user experience. As the web becomes more mesh-like and data moves around more freely, conveying what happens to data owned by less-technical end users will become more and more important.

Problem to solve: platform

Finally, while it’s great having a conversation about this, these ideas aren’t useful to anyone unless someone goes ahead and builds it.

There are some existing projects and thinkers who are on these tracks:

  • The Diso Project is turning the WordPress open source blogging tool into a decentralized digital identity through an array of open standards, and the project’s Chris Messina has a lot of wise things to say about its development.
  • Laconi.ca is a decentralized microblogging platform, whose Open Microblogging standard may be adaptable into a more widely-scoped technology.
  • The Open Stack is a set of developing technologies that address some of the issues.
  • Marc Canter’s Open Mesh treatise goes into detail on many of the issues.

All of these are important contributions that strongly address some of the issues; however, we’re still a long way away from the vision of an open, social web.

Conclusion

I believe strongly, for the reasons stated above, that a decentralized, user-centered model for the web is the best way to advance it as an application platform.

Needless to say, I have my own ideas about how to actually build the platform, based on my Making the most of the web principles. However, it has to be a collaborative process: there’s no sense in building an open collaborative standard by yourself. My main concern is that the platform is created and works in an open, lightweight, flexible, easy-to-develop-for way while remaining secure and yielding control to the main user. The result will be an entirely new kind of platform, and presents a unique opportunity for anyone who wants to jump on board.

Images:

  • WOW! My 1000 Friends by Cavin was released under a CC Attribution Generic 2.0 License
  • Lonely Tree by Jule Berlin was released under a CC Attribution Generic 2.0 License
  • Logo 2.0 part II by Stabilo Boss was released under a CC Attribution-Noncommercial-Share Alike 2.0 Generic License
  • Upside Down by Johnny Jet was released under a CC Attribution Generic 2.0 License
  • Pro Control 24 by Aud1073cH was released under a CC Attribution-Share Alike Generic 2.0 License

The Internet is People

December 4, 2008 | 3 comments

The following post is a fleshed-out version of my notes for my talk at the Elgg International Conference on Monday, December 1st, wherein I discussed my attitude to social networks and how they should be built.

My slides are available in Powerpoint or OpenDocument Presentation format.

Let’s take this to first principles. Stating the obvious, what is a social network? Is it a collection of profiles, friends lists and so on, or is it something more fundamental? What does the term even mean?

Social is an adjective that means relating to human society and its members.

A network is an interconnected system of things or people.

Therefore, I’d suggest that we can define a social network as just being an interconnected system of people.

When defined like this, everyone has a social network, regardless of Internet or technology use, and they’re as old as human society. Your friendships, colleagues, professional contacts, fellow students and book group members are all social networks. They’re not necessarily communities – a “community” tends to imply a common geography or set of interests, which isn’t always true to a social network. But while a social network is not always a community, a community is always a social network.

Clearly, social networks are made of people, who are joined through something in common – perhaps something as community-like as an interest or a shared geography, or something fuzzier, like a mutual friend, a chance encounter, etc. People are complicated; they have individual personalities, quirks and foibles, which make it hard to interact with them in a cookie-cutter way.

Because people are complicated, networks of people are exponentially more complicated. To get the most out of your social networks, you need to be able to embrace everyone’s individuality. Furthermore, they’re not discrete; they may overlap in all kinds of ways. My friends may also be my coworkers, or someone at work may also be a part of my knitting circle. (If I had a knitting circle. Cough.) They have all kinds of different contexts, which may impose requirements on how the members of the network interact with each other. Work colleagues generally need to communicate within an office space, or via methods imposed by management, for example. More formal networks have more restrictions. Personalities may also impose restrictions: some people are bad at talking on the phone, for example.

Of all the tools and methods social networks can talk to each other, the Web is just one. Face to face conversations, telephone calls, SMS messages, faxes, emails, letters and telegrams are all perfectly valid types of communication.

So in short, let’s reclaim a piece of language: a social network is an interconnected system of people, as I’ve suggested above. The websites that foster social networks are simply social networking tools. A social network doesn’t live on the Web, but a website can help its members communicate and share with each other.

With this in mind, what’s the best way to foster a social network using a Web tool?

Joshua Schachter, the creator of Delicious, has this to say:

“If you need scale in order to create value, it’s hard to get scale, because there’s little incentive for the first people to use the product. [...] The system should be useful for user number one.” 

In other words, people need to be able to visit your site and see something immediately useful, even when a network has not developed around it. Flickr, first and foremost, is a site for uploading photographs. Delicious is a flexible bookmarking utility. Facebook is the exception to this rule, because it’s a utlity that helps you keep in touch with your existing friends – but because it was initially limited to Harvard students, Mark Zuckerburg et al were able to carefully grow it from a handful of people. The Harvard community was an existing social network, and Zuckerburg simply gave them a tool.

To summarise: you cannot install a social networking tool and assume that a network will grow around it. You must either have another purpose, or an existing network of people to plug into it. Either way, it’s also going to take a lot of work: you need to lead by example, and participate heavily every day.

As each tool should focus on one particular network, or at least type of network, I’d argue that the exact feature set should be dictated by the needs of that network. Educational social networks might need some coursework delivery tools; a network for bakers might need a way to share bread recipes. The one common feature in any social network is people; even profiles may not be entirely necessary. (Look at Twitter.)

What they should do, however, is amplify the network effect. The idea of a social networking tool is to make that network communicate more efficiently, so anything that the tool does should make it easier for that network to talk to each other and share information. The tool itself shouldn’t attempt to create the network – although that being said, new network connections may arise through a purpose. Most of us have made new contacts on Flickr or Twitter, for example, because we enjoyed someone’s content.

The final lesson is that, once again, people are individuals, and social networks are complicated. Therefore, the featureset in any tool needs to embrace as much of the full range of personalities and ways of communicating as possible. Tagging was a great invention, because it didn’t try and dictate the terms with which people sorted their content. As Schachter said about Delicious in the above linked article:

“If I went in there and said, Hey, you’re using that tag wrong, people would just tell me [where to go].” 

In other words, he was smart enough to leave people to sort their bookmarks however best suited them. There will be inevitable variations in the tags different people use to describe the same resource, but because the network’s personalities are catered for, they’re more likely to continue to use the tool.

This attitude is what led us to develop Elgg, initially for the educational market: a user-centred social networking tool to support educational communities rather than the top-down, rigidly specified software that was common at the time. The features we built into it – extremely granular access controls, cross-site tagging, personalisation and customisation for site admins – drew a lot of attention, and it quickly became apparent that they would be useful in scenarios well beyond education. We spent the next four years developing Elgg into a flexible tool for facilitating social networks.

The latest version – rewritten from the ground up to be even more flexible, while learning from all the feedback and Elgg usage to date – addresses all the aspects of social networks I’ve discussed above, except for one: overlapping networks. That’s what the Open Data Definition is trying to solve – and something we’re coming very close to being able to support. Marc Canter is trying to solve something similar with his Open Mesh, and he’s not alone.

The Web has become a great tool for supporting networks of people, and with the kind of innovation we’ve seen over the last eight years, can only become better. The only remaining question is: what kind of network do you want to build?